白盒測試及用例編寫

白盒測試

白盒測試是什麼

白盒測試也稱爲結構測試或邏輯驅動測試,是針對被測單元內部是如何進行工作的測試。它根據程序的控制結構設計測試用例,主要用於軟件或程序驗證。
優點:代碼覆蓋率高,針對代碼邏輯測試。
缺點:覆蓋所有代碼路徑難度大;業務功能可能不全;測試開銷大。

使用場景:首先會進行黑盒測試進行系統功能測試,然後用白盒測試進行對重點代碼部分進行代碼邏輯測試。

白盒測試用例設計方法

在這裏插入圖片描述

邏輯覆蓋法

邏輯覆蓋法:是通過對程序邏輯結構的遍歷實現程序的覆蓋
覆蓋率:是用來衡量測試完整性的手段
覆蓋率 = 至少被執行一次的item數 / item的總數 (item:語句、判定、條件等)
邏輯覆蓋法的第一步就是將程序代碼轉換爲流程圖。
下面將分別介紹邏輯覆蓋法中的具體的典型方法:

語句覆蓋

語句覆蓋:設計測試用例,使得程序中的每條語句至少被執行一次。
在這裏插入圖片描述
語句覆蓋率儘可能100%覆蓋。
在這裏插入圖片描述
侷限性:覆蓋標準最弱,比如上述案例中第一步的 && 換成 || 也能全覆蓋,但代碼仍是錯誤的。

判定覆蓋

判定覆蓋:也叫分支覆蓋,設計測試用例,使得程序中的每個判斷的「真」和「假」都至少被執行一次。即:程序中的每個分支至少執行一次。
在這裏插入圖片描述
判定覆蓋率儘可能100%覆蓋。
在這裏插入圖片描述
侷限性:判定條件一定滿足語句覆蓋,但是同樣 && 換成 || 也能全覆蓋,但代碼仍是錯誤的。

條件覆蓋

條件覆蓋:設計測試用例,使得判定中的每個條件至少有一次取真值,有一次取假值。
在這裏插入圖片描述
條件覆蓋率儘可能100%覆蓋。
在這裏插入圖片描述
侷限性:條件覆蓋比判定覆蓋,增加了對判定中所有條件的測試。條件100%覆蓋並不能保證判定覆蓋的100%。

判定條件覆蓋

判定條件覆蓋:設計測試用例,使得被測試程序中的每個判斷本身的判定結果(真假)至少滿足一次,同時,每個邏輯條件的可能值(真假)也至少被滿足一次。即同時滿足100%判定覆蓋和100%條件覆蓋的標準。
在這裏插入圖片描述
判定條件覆蓋率儘可能100%覆蓋。
在這裏插入圖片描述
侷限性:滿足判定條件覆蓋一定能滿足條件覆蓋、判定覆蓋和語句覆蓋。但是同樣 && 換成 || 也能全覆蓋,但代碼仍是錯誤的。

條件組合覆蓋

條件組合覆蓋:設計測試用例,使得被測試程序中的每個判定中條件結果的所有可能組合至少執行一次。
在這裏插入圖片描述
條件組合覆蓋率儘可能100%覆蓋。
在這裏插入圖片描述
侷限性:條件組合覆蓋能滿足判定覆蓋、條件覆蓋、判定-條件覆蓋,也就包括語句覆蓋。但是不能保證所有的路徑都覆蓋。

路徑覆蓋

設計測試用例,覆蓋程序中所有可能的路徑(從頭到尾)。
在這裏插入圖片描述
路徑覆蓋率儘可能100%覆蓋。
在這裏插入圖片描述
侷限性:對程序進行徹底的覆蓋,比前面5種覆蓋都廣。但是,滿足路徑覆蓋並不一定能滿足條件覆蓋和條件組合覆蓋。而且當程序特別複雜,循環判斷都特別多的時候,路徑太多了。

基本路徑測試法

基本路徑測試法:在程序控制流圖的基礎上,通過分析程序的環路複雜性,導出基本可執行路徑集合(而不用導出全部的路徑),從而設計測試用例。

步驟:
在這裏插入圖片描述
案例:
第一步:
在這裏插入圖片描述
在這裏插入圖片描述
第二步:
在這裏插入圖片描述
第三步:
在這裏插入圖片描述
第四步:
在這裏插入圖片描述

總結

在這裏插入圖片描述

以上圖片均來源於網絡