白盒测试中的分支(判定)覆盖详解
创作时间:
作者:
@小白创作中心
白盒测试中的分支(判定)覆盖详解
引用
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%,但是这个逻辑错误却不能被发现。因此,在实际测试中,需要结合其他测试方法,如条件覆盖、路径覆盖等,以提高测试的全面性和准确性。
热门推荐
摄影基础:摄影中的光圈是什么,怎么迅速掌握光圈技巧?
马来亚大学最好的王牌专业有哪些?专业QS排名多少?
健康科普丨提前吃抗病毒药能预防甲流吗?奥司他韦和玛巴洛沙韦又该怎么选?
拿到体检报告心里咯噔!有异常指标?等等!医生专家告诉你:哪些嫑多虑,哪些须重视
TMS 治疗抗药性抑郁症患者
右眼疼痛怎么办?五种实用解决方案
点赞,山西如何凭一己之力拥有并留存中国最多的古建筑?
银行的定期存款利率与同业存单利率差异根源?
学会科学养“声”,避免“老年嗓”
跑马拉松的中年人,捧红一众网红
3D打印中的PEEK:一种耐用且要求严格的材料
牛市毋庸置疑!选好股票买入是重中之重。涨幅最大的是科技板个股
宾大排名相当于国内什么大学?相当于中国的清华大学和北京大学!
怎么修冰箱?小毛病可以自行解决
《哪吒2:魔童闹海》是4000CG人呕心沥血的佳作
孩子的行为很难管教,家长正确引导,孩子会变得更优秀
软件著作权保护的重要性与实用策略解析
出口增长24.01%!国产矿机欲与全球老牌霸主试比高
世界公认的五本财富学著作,强烈推荐!
应对酒精过敏:如何在社交场合中保护健康与享受乐趣
退货3次,终于搞清楚1.5m和1.8m床的区别:不是越大越好
水淹七军的历史事件及其发生地点
iOS的缺点盘点,看看准不准
墨水屏与纸质书:阅读体验、便携性与护眼功能的全方位比较
如何运用情感心理学提高婚姻满意度?
养宠物会引起哪些问题
新手入门《漫威:超级争霸战》游戏操作技巧与“黑科技”
来汝城,享受味蕾上的盛宴!
古代的骈文:从魏晋到清代的演变历程
中秋诗词赏析:月圆人团圆之美的诗意表达