白盒测试 | 用例设计方法之判定覆盖
判定覆蓋也被成為分支覆蓋(Branch Coverage)是設計足夠多的測試用例,使得程序中的每一個判斷至少獲得一次“真”和一次“假”,即使得程序流程圖中的每一個真假分支至少被執行一次。使設計的測試用例保證程序中每個判斷的每個取值分支(ture or false)至少經歷一次。
使用此準則測試小程序,只需要涵蓋路徑ace和abd,或涵蓋路徑acd和abe,就可以使得兩個判定為“真”和為“假”的分支都執行一次。如果選擇后一種情況,生成的用例及其遍歷的路徑如下:
用例1:A=3,B=0,X=3 acd
執行用例1 ,判定(A > 1 and B == 0)為真 ,執行X = X / A ,X =3/3=1;
判定(A == 2 or X > 1)為假,不執行X = X + 1 ; 覆蓋路徑acd,序結束
用例2:A=2,B=1,X=1 abe
執行用例2 ,判定(A > 1 and B == 0)為假,不執行X = X / A ;
判定(A == 2 or X > 1)為真,執行X = X + 1,x=1+1=2 ; 覆蓋路徑abe,程序結束
我們僅有50%的可能性遍歷到X值未發生改變的路徑,即,只有我們選擇涵蓋路徑ace和abd的情況,而不是涵蓋路徑acd和abe時。對應的測試用例如下:
用例1:A=2,B=0,X=2?ace
執行用例1 ,判定(A > 1 and B == 0)為真 ,執行X = X / A ,X =2/2=1;
判定(A == 2 or X > 1)為真,執行X = X + 1 ,x=2+1=3; 覆蓋路徑ace,程序結束
用例2:A=3,B=1,X=1?abd
執行用例1 ,判定(A > 1 and B == 0)為假 ,不執行X = X / A ;
判定(A == 2 or X > 1)為假,不執行X = X + 1 ; 覆蓋路徑abd,程序結束
【優點】:分支(判定)覆蓋具有比語句覆蓋更強的測試能力。同樣分支(判定)覆蓋也具有和語句覆蓋一樣的簡單性,無須細分每個判定就可以得到測試用例。
【缺點】:往往大部分的分支(判定)語句是由多個邏輯條件組合而成,若僅僅判斷其整個最終結果,而忽略每個條件的取值情況,必然會遺漏部分測試路徑。判定覆蓋仍是弱的邏輯覆蓋。
總結
以上是生活随笔為你收集整理的白盒测试 | 用例设计方法之判定覆盖的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实例方法、类方法@class
- 下一篇: 线程池写入mysql_用多线程写入数据库