详述白盒测试的逻辑覆盖的条件覆盖及其优缺点
條件覆蓋
- 詳述白盒測試的邏輯覆蓋的條件覆蓋及其優缺點:
- 條件覆蓋的定義:
- 與判定覆蓋的區別:
- 條件覆蓋率:
- 測試實例:
- 代碼:
- 優缺點:
詳述白盒測試的邏輯覆蓋的條件覆蓋及其優缺點:
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
條件覆蓋的定義:
設計測試用例,使得判定中的每個條件至少有一次取得真值,一次取得假值。所以,不僅程序中的每個語句至少被執行一次,而且使每個判定表達式中的每個條件都取到各種可能的結果。
與判定覆蓋的區別:
條件覆蓋率:
條件覆蓋率=每個真假值至少出現一次/條件結果的總數
eg: 案例代碼中有判定兩個,條件4個,條件結果8個,假如測試用例執行8個條件結果,條件覆蓋率就為100%。
測試實例:
如下圖中例子所示:圖中共有兩個判定表達式,每個判定表達式中有兩個條件,為了做到條件覆蓋,應選取測試數據使得在a點有下述各種結果出現。
A>1,A<=1,B=0,B!=0
在b點有下述各種結果出現:
A=2,A!=2,X>1,X<=1
只需要用下面兩組測試數據就可以達到標準:
滿足A>1,B=0,A=2和X>1的條件,執行路徑ace
滿足A<=1,B!=0,A!=2和X<=1的條件,執行路徑abd
上面圖片和用例舉例引用了:https://baike.baidu.com/item/%E6%9D%A1%E4%BB%B6%E8%A6%86%E7%9B%96/9632173?fr=aladdin
以java為例,根據上圖我們可以得到以下
代碼:
package kunlin;import java.util.Scanner;public class Cook {public static void main(String[] args) {//三個不定值變量A,B,XScanner sc =new Scanner(System.in);System.out.println("請輸入A,B,X的值");//三個變量都是整形int A =sc.nextInt();int B =sc.nextInt();int X =sc.nextInt(); //第一個判斷當A>0 和 B ==0if (A>1 && B==0) {//符合按c路線X=X/A;}else if(A==2 || X>1) {//前面第一個是if判斷,所以只要符合就執行不符合進行整個b階段//如果符合這個判斷,進入e階段X=X+1;}System.out.println("X的值:"+X);} }當我們輸入用例的值時得到以下兩個結果:
分別執行了ace 和abd兩條路徑。完成了兩個判定,判定覆蓋率100%。
優缺點:
優點:條件覆蓋比判定覆蓋增加了對判定中所有條件的測試,對于條件來說更加全面
缺點:但條件覆蓋并不能完全保證判定覆蓋。
https://blog.csdn.net/hanhanwanghaha寶藏女孩 歡迎您的關注!
歡迎關注微信公眾號:寶藏女孩的成長日記
如有轉載,請注明出處(如不注明,盜者必究)
總結
以上是生活随笔為你收集整理的详述白盒测试的逻辑覆盖的条件覆盖及其优缺点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 06_go语言基础
- 下一篇: xshell与xftp如何实现相互连接