python 白盒測試 白盒測試方法

2021-10-11 22:17:47 字數 1682 閱讀 7795

白盒測試是單元測試階段常用到的測試方法,其特點有:​

(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個測試用例)

黑盒測試 白盒測試

黑盒測試 black box testing,又稱為功能測試或資料驅動測試 是把測試物件看作乙個黑盒子。利用黑盒測試法進行動態測試時,需要測試軟體產品的功能,不需測試軟體產品的內部結構和處理過程。黑盒測試注重於測試軟體的功能性需求,也即黑盒測試使軟體工程師派生出執行程式所有功能需求的輸入條件。黑盒測...

軟體測試 白盒測試

1 白盒測試的概述 由於邏輯錯誤和不正確假設與一條程式路徑被執行的可能性成反比。由於我們經常相信某邏輯路徑不可能被執行,而事實上,它可能在正常的情況下被執行。由於 中的筆誤是隨機且無法杜絕的,因此我們要進行白盒測試。白盒測試又稱結構測試,透明盒測試 邏輯驅動測試或基於 的測試。白盒測試是一種測試用例...

軟體測試 白盒測試

白盒測試分為 語句覆蓋 判定覆蓋 條件覆蓋 判定條件覆蓋 條件組合覆蓋 路徑覆蓋 以下程式為例 語句覆蓋 顧名思義 把所有語句都都走一遍 按上圖 測試路徑 p1 a c e 判定覆蓋把所有判定都走一遍 按上圖 測試路徑 答案不唯一 p1 a c e p2 a b d 條件覆蓋把所有條件都走一遍 按上...