问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

白盒测试中的分支(判定)覆盖详解

创作时间:
作者:
@小白创作中心

白盒测试中的分支(判定)覆盖详解

引用
CSDN
1.
https://blog.csdn.net/m0_75269526/article/details/137493483

分支覆盖是白盒测试中的一种重要方法,它要求程序中的所有判定语句的真、假分支至少都被执行过一次。这种方法能够有效地检测代码逻辑的正确性,但也有其局限性。本文将通过一个具体的代码示例,详细介绍分支覆盖的概念、实现方法及其应用。

分支覆盖的基本概念

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

测试时覆盖到的判定语句真、假分支的总数 / 程序中判定语句真、假分支的总数

白盒测试中的分支(判定)覆盖法是指设计适当数量的测试用例,运行被测程序,使得程序中每个判定语句的真、假分支至少被执行一次。流程图中一个菱形框就是一个判定语句,分支(判定)覆盖就是要设置一些测试用例使判定语句为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_01
a = 0 , b = 5 , c = 9
result = 5
覆盖判断语句 ② 的真分支和判断语句 ③ 的假分支
1,2,4,3,6
testcase_02
a = 5 , b = -2 , c = 3
result = 15
覆盖判断语句 ② 的假分支和判断语句 ③ 的真分支
1,2,3,5,6

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

分支覆盖的局限性

虽然分支覆盖是一种有效的测试方法,但它也有其局限性。例如,在上述代码中,如果将判断语句 ② if(a = 0 or b > 2) 中的 or 错写成 and,使用上面这两个用例仍然执行通过,也可以让分支(判定)覆盖率达到 100%,但是这个逻辑错误却不能被发现。因此,在实际测试中,需要结合其他测试方法,如条件覆盖、路径覆盖等,以提高测试的全面性和准确性。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号