全球专业中文经管百科,由121,994位网友共同编写而成,共计436,047个条目

白盒測試

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

目錄

什麼是白盒測試

  白盒測試是按照程式內部的結構測試程式,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程式中的每條通路是否都能按預定要求正確工作。白盒測試一般用來分析程式的內部結構,對測試者而言是透明的,測試者可以看到被測程式源代碼,並分析其內部結構。因此,白盒測試也叫結構測試或邏輯驅動測試。[1]

白盒測試的功能[1]

  白盒測試主要是對程式模塊進行如下檢查:對程式模塊的所有獨立的執行路徑至少測試一遍:對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍:在迴圈的邊界和運行的界限內執行迴圈體;測試內部數據結構的有效性等等。

白盒測試的基本思想[2]

  白盒測試技術用於測試證明每種內部操作和過程是否符合沒汁規格和要求,允許測試人員利用被測程式內部的邏輯結構和有關信息設計或選擇測試用例,對程式所有邏輯路徑進行測試。白盒測試主要對程饃塊進行以下檢查:

  1)對程式模塊的所有獨立的執行路至少測試一次;

  2)對所有的邏輯判定,取TURE與取FAISE的兩種情況都能至少測試一次;

  3)存迴圈的邊界和運行界限內執行迴圈體;

  4)測試內部數據的有效性等

  白盒測試設計是以開發人員為主。

白盒測試的基本方法[2]

  白盒測試是針對軟體內部結構的測試,主要是用覆蓋的方式對程式代碼進行測試。下麵就白盒測試中的六種典型覆蓋方法進行探討。

  1)語句覆蓋

  作為最基本的邏輯覆蓋方法,語句覆蓋的含義是:選擇足夠多的測試數據,使得被測程式中的每個語句至少執行一次。通過語句覆蓋,可以直觀地從源代碼得到測試用例,無須細分每條判定表達式;然而,語句覆蓋對程式的邏輯覆蓋很少,對於一個包含多個條件的判定表達式,它只關心判定表達式的值,並沒有分別測試判定表達式中每個條件取不同值的情況。所以語句覆蓋無法全面反映多分支的邏輯運算,是很弱的邏輯覆蓋標準。

  2)判定覆蓋

  判定覆蓋也稱分支覆蓋。其含義為:不僅每個語句必須至少執行一次,而且每個判定的每種可能的結果都應該至少執行一次,即每個判定的每個分支都至少執行一次判定覆蓋相對於語句覆蓋,其邏輯覆蓋能力更強。然而判定覆蓋也具有和語句覆蓋一樣的簡單性,大部分的判定語句是南多個邏輯條件組合而成,它也僅判斷判定表達式的最終結果,而忽略每個條件的取值情況,故在執行過程中必然會遺漏部分測試路徑。

  3)條件覆蓋

  條件覆蓋的含義是,不僅每個語句至少執行一次,而且使判定表達式中的每個條件都取到各種可能的結果。相對於判定覆蓋,條件覆蓋的覆蓋能力更強,因為判定覆蓋只關心整個判定表達式的值,而條件覆蓋使判定表達式中每個條件都取到了不同的結果。條件覆蓋增加了對符合判定情況的測試。然而,要達到條件覆蓋,需要足夠多的測試用例,但條件覆蓋並不能保證判定覆蓋。因此,條件覆蓋只能保證每個條件至少有一次為真,而未考慮所有的判定結果。

  4)判定/條件覆蓋

  由於判定覆蓋不一定包含條件覆蓋,條件覆蓋也不一定包含判定覆蓋。故提出一種既能滿足判定覆蓋標準又能滿足條件覆蓋標準的覆蓋方法,即:判定/條件覆蓋。其含義是:選取足夠多的測試數據,使得判定表達式中的每個條件都取到各種可能的值,而且每個判定表達式也都取到各種可能的結果。判定/條件覆蓋準則的缺點是未能考慮條件的組合情況。

  5)條件組合覆蓋

  條件組合覆蓋是更強的邏輯覆蓋標準,其含義是:選取足夠多的測試數據,使得每個判定表達式中條件的各種可能組合都至少出現一次。滿足條件組合覆蓋準則的測試數據必然滿足判定覆蓋、條件覆蓋和判定/條件覆蓋準則。因此,條件組合覆蓋是述幾種覆蓋標準中最強的。然而,條件組合覆蓋存在兩個不足之處:是線性地增加了測試數據的數量;二是滿足條件組合覆蓋標準的測試數據不一定能使序中的每條路徑都執行到。

  6)路徑覆蓋

  路徑覆蓋要求選取足夠多的測試數據,覆蓋序中所有可能的路徑。其優點是:可以對程式進行徹底的測試,比前述五種的覆蓋面都廣。然而,由於路徑覆蓋需要對所有可能的路徑進行測試(包括迴圈、條件組合、分支選擇等),故需要設計大量、複雜的測試用例,使得工作量呈指數級增長。

白盒測試應用應考慮的問題[1]

  1.白盒法全面瞭解程式內部邏輯結構、對所有邏輯路徑進行測試。白盒法是窮舉路徑測試。在使用這一方案時,要求測試者必須檢查程式的內部結構.從檢查程式的邏輯著手,得出測試數據。貫穿程式的獨立路徑數是天文數字。但即使每條路徑都測試了仍然可能有錯誤。第一,窮舉路徑測試決不能查出程式違反了設計規範.即程式本身是個錯誤的程式。第二,窮舉路徑測試不可能查出程式中因遺漏路徑而出錯。第三,窮舉路徑測試可能發現不了一些與數據相關的錯誤。

  2.白盒測試是工作量巨大並且枯燥的工作.可視化的設計對於測試來說是十分重要的。在選購白盒測試工具時,應當考慮該款測試工具的可視化是否良好。例如:測試過程中是否可以顯示覆蓋率的函數分佈圖和上升趨勢圖,是否使用不同的顏色區分已執行和未執行的代碼段顯示分配記憶體情況實時圖表等,這些對於測試效率和測試質量的提高是具有很大的作用的。白盒測試目前主要用在具有高可靠性要求的軟體領域,例如:軍工軟體、航天航空軟體、工業控制軟體等等。

  新開發的軟體通過了黑盒測試和白盒測試以後.可以說基本滿足了設計要求,但並不能保證該軟體沒有問題存在.只有經過實際試運行的檢驗,才能更進一步完善和優化,達到軟體最優狀態。

  總之,軟體測試的目的不僅是為了發現軟體缺陷與錯誤,而且是對軟體質量進行度量和評估,以提高軟體的質量。

參考文獻

  1. 1.0 1.1 1.2 胥家瑞.淺談白盒測試和黑盒測試在軟體測試中的作用(A).天津市財貿管理幹部學院學報.2010,4
  2. 2.0 2.1 徐青翠,柴政.白盒測試方法分析與研究(A).電腦知識與技術:學術交流.2010,6
本條目對我有幫助8
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

Mis铭,Tracy,寒曦.

評論(共2條)

提示:評論內容為網友針對條目"白盒測試"展開的討論,與本站觀點立場無關。
钟莉 (討論 | 貢獻) 在 2015年11月5日 08:33 發表

錯別字太多

回複評論
Mis铭 (討論 | 貢獻) 在 2015年11月5日 14:39 發表

钟莉 (討論 | 貢獻) 在 2015年11月5日 08:33 發表

錯別字太多

謝謝提醒,已審查並修改相關錯別字!

MBA智庫百科是可以自由參與的百科,如有發現錯誤和不足,您也可以參與修改編輯!

回複評論

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

官方社群
下载APP

闽公网安备 35020302032707号