白盒测试之逻辑覆盖

PS:课程笔记(里面有余九九课本里的举例)

        首先, 逻辑覆盖是一种基于程序内部逻辑结构的动态白盒测试方法;其次,根据逻辑覆盖的强度由低到高可以分为语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖

 语句覆盖(可执行语句)

        在使用语句覆盖设计测试用例时,要求程序中可执行的语句必须至少被执行一次。它只关注每个判定表达式的最终结果逻辑值(Y或N),并不关注判定表达式中不同条件的取值情况,所以,某些测试用例是无法检测出错误的(eg:如果判定表达式是“if((x>0)&&(y>0))”错将“&&”写成“||”输入“x=1,y=1”程序结果还是Y,就无法检测出错误)。

        设计测试用例:

void test(int x,int A,int B){
    if(A>1)&&(B==0)     //语句①
        x=x/A;          //语句②
    if(A==2)||(x>1)     //语句③
        x++;            //语句④
}
测试用例输入数据(A>1)&&(B==0)①(A==2)||(x>1)③覆盖语句
xAB
Test Case1120YY②④

判定覆盖(判定表达式)

        又称分支覆盖,要求程序中每个判定表达式的Y和N分支至少被执行一次。

        设计测试用例:

测试用例输入数据(A>1)&&(B==0)①(A==2)||(x>1)③覆盖语句
xAB
Test Case1120YY②④
Test Case2131NN

或者

测试用例输入数据(A>1)&&(B==0)①(A==2)||(x>1)③覆盖语句
xAB
Test Case1130YN
Test Case2222NY

条件覆盖(判定条件)

         要求程序中每个判定表达式里的每个判定条件的Y和N都要至少被执行一次。

        设计测试用例(只写一组)

测试用例输入数据(A>1)(B==0)(A==2)(x>1)覆盖语句
xAB
Test Case1120YYYN②④
Test Case2211NNNY

判定/条件覆盖(里外)

        要求每个判定表达式和每个判定表达式里的每个判定条件的Y和N都需要至少被执行一次。

        设计测试用例(只写一组)

测试用例输入数据(A>1)&&(B==0)①(A==2)||(x>1)③(A>1)(B==0)(A==2)(x>1)覆盖语句
xAB
Test Case1222NYNNYY
Test Case2140YNYYNN

条件组合覆盖(里外组合)

        要求每个判定表达式里的判定条件的Y和N的组合(就是1下面有11和12两个条件,那么组合有“YY”,"YN","NY","NN"四种组合)至少被执行一次

        设计测试用例(只写一组)

测试用例输入数据(A>1)(B==0)(A==2)(x>1)覆盖语句
xAB
Test Case1420YYYY②④
Test Case2111NYNN
Test Case3221YNYN
Test Case4211NNNY

路径覆盖(路径)

        要求所有路径至少被执行一次。(对于较复杂的循环结构程序很难做到)

        设计测试用例(只写一组)

  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值