白盒测试-分支(判定)覆盖

​ 分支覆盖,也叫判定覆盖,是指运行代码进行测试时,程序中的所有判定语句的真、假分支至少都被执行过一次

​ 分支覆盖率的计算方法为:测试时覆盖到的判定语句真、假分支的总数 / 程序中判定语句真、假分支的总数。

​ 白盒测试中的分支(判定)覆盖法是指设计适当数量的测试用例,运行被测程序,使得程序中每个判定语句的真、假分支至少被执行一次。流程图中一个菱形框就是一个判定语句,分支(判定)覆盖就是要设置一些测试用例使判定语句为 T和 F 的分支都至少被执行一次

栗子

public static int test(int a, int b, int c) {
    int result = 0;
    if (a == 0 || b > 2) {
        result = b - a;
    }
    if (a > 0 && c > 0) {
        result = c * a;
    }
    return result;
}

使用语句覆盖法设计白盒测试用例的具体步骤如下:

分析待测试代码,画出程序的流程图。

在这里插入图片描述

分析流程图,设计测试用例

​ 根据分支(判定)覆盖的定义,我们需要设计一些测试用例,使程序中的每个判定条件至少被执行一次,即上图中的判断语句 ② 和 ③ 的真、假分支都需要至少被执行一次

测试用例编号输入数据预期结果分支覆盖情况语句覆盖情况
testcase_01a = 0 , b = 5 , c = 9result = 5覆盖判断语句 ② 的真分支和判断语句 ③ 的假分支1,2,4,3,6
testcase_02a = 5 , b = -2 , c = 3result = 15覆盖判断语句 ② 的假分支和判断语句 ③ 的真分支1,2,3,5,6

​ 从上表中我们可以看出:如果程序的分支覆盖率达到 100% ,所有的语句也会被覆盖到,即分支覆盖率达到 100% 时,语句覆盖率也为 100% 。

​ 如果程序判定语句的逻辑存在问题,分支(判定)覆盖可能无法发现 。例如,在上述代码中,如果将判断语句 ② if(a = 0 or b > 2) 中的 or 错写成 and ,使用上面这两个用例仍然执行通过,也可以让分支(判定)覆盖率达到 100% ,但是这个逻辑错误却不能被发现。

  • 16
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值