白盒測試是單元測試階段常用到的測試方法,其特點有:
(1)可以構成測試資料,使特定程式部分得到測試;
(2)有一定的充分性度量手段;
(3)可獲得較多工具支援;
(4)通常只用於單元測試。
下邊通過一段**來看一下白盒測試中的邏輯覆蓋:
那麼為了清晰,我們畫出乙個該程式的流程圖:
1、語句覆蓋
語句覆蓋是最弱的邏輯覆蓋準則。要求設計足夠多的測試用例,使得每一條語句至少被執行一次。
對於示例來說,可以設計:
執行路徑:abd
(理解:不能短路任何語句,比如路徑走acd就會短路語塊1)
2、分支覆蓋
要求設計足夠多的測試用例,使得每乙個判定的每乙個分支至少各執行一次。
對於示例來說,可以設計:
執行路徑:abe
執行路徑:acd
(理解:只要將每個判定即每個菱形框的真假都各取過一次即可,比如走路徑abd和ace也是可以的)
3、條件覆蓋
要求設計足夠多的測試用例,使得每乙個判定的每乙個條件的每乙個取值(真或假)至少各執行一次。
對於示例來說,可以設計:
條件取值:tftf
條件取值:ftft
條件取值:ttff
(理解:只要將每個判定即每個菱形框裡的每個條件真假都各取一次,但注意,比如tftf時由於第二個判定裡的邏輯運算子是||,那麼條件y>5不執行,同理,ftft時z<10不執行,就引出了第三條測試用例)
4、分支條件覆蓋
要求設計足夠多的測試用例,使得每乙個判定的每乙個條件的每乙個取值(真或假)至少各執行一次,並且使得每乙個判定的每乙個分支至少各執行一次。
對於示例來說,可以設計:
條件取值:tttt 執行路徑:abd
條件取值:ffff 執行路徑:ace
條件取值:tfft 執行路徑:acd
(理解:先滿足每個條件的真假都各取一次,最好使用tttt和ffff,這樣肯定會滿足abd和ace路徑,那麼再考慮執行過程中tttt中的第4個t和ffff中的第2個f被遮蔽的問題,再加一條tfft的就好了,因為此時分支已經全部覆蓋,所以第三條不用考慮分支覆蓋的問題)
5、條件組合覆蓋
要求設計足夠多的測試用例,使得每乙個判定的每乙個條件(同乙個判定中)的可能的組合至少被各執行一次。
對於示例來說,可以設計:
條件取值:tftf
條件取值:tttt
條件取值:ftft
條件取值:ffff
(理解:將每乙個判定框中的條件組合再重新組合,比如第乙個判定框中的兩個條件的取值組合tt__、tf__、ft__、ff__和第二個判定框中的兩個條件的取值組合__tt、__tf、__ft、__ff進行組合,但這8個組合必須都出現一次。所以說這個例子中條件組合判斷的測試用例至少4個)
6、路徑覆蓋
要求設計足夠多的測試用例,覆蓋程式中的所有可能路徑。
對於示例來說,可以設計:
執行路徑:abd
執行路徑:abe
執行路徑:acd
執行路徑:ace
(理解:將每乙個判定的分支組合起來,並保證每個判定的每個分支的所有可能組合都出現,比如第乙個判定框可能為真,也可能為假。若第乙個判定框為真,那麼就有abd和abe的可能組合;若第乙個判定框為假,那麼就有acd和ace的可能組合,所有的可能情況就出來了,不難看出,至少也需要4個測試用例)
python 白盒測試 白盒測試方法
白盒測試是單元測試階段常用到的測試方法,其特點有 1 可以構成測試資料,使特定程式部分得到測試 2 有一定的充分性度量手段 3 可獲得較多工具支援 4 通常只用於單元測試。下邊通過一段 來看一下白盒測試中的邏輯覆蓋 那麼為了清晰,我們畫出乙個該程式的流程圖 1 語句覆蓋 語句覆蓋是最弱的邏輯覆蓋準則...
白盒測試方法
白盒測試方法 定義 白盒測試又稱結構測試 透明盒測試 邏輯驅動測試或基於 的測試。白盒測試是一種測試用例設計方法,盒子指的是被測試的軟體,白盒指的是盒子是可視的,你清楚盒子內部的東西以及裡面是如何運作的。白盒 法全面了解程式內部邏輯結構 對所有邏輯路徑進行測試。白盒 法是窮舉路徑測試。在使用這一方案...
測試方法 白盒測試簡介
定義 白盒測試需要深入到軟體的內部,去檢視源 去分析程式的內部結構,如資料型別 演算法 異常處理等。應用領域 a.設計某些方法以盡可能覆蓋源 所有分支,提高測試的覆蓋率。b.通過白盒測試找記憶體洩露。c.對源 進行靜態分析找出某種極端情況下才會出現的問題。分類 a.靜態分析 只是靜態地分析程式的 是...