在白盒测试目的中,有一项是实现逻辑覆盖,要实现逻辑覆盖,可以分为几个实现等级,分别为语句覆盖、分支覆盖、条件覆盖、条件-分支覆盖、条件组合覆盖、路径覆盖。
在很多资料和教材中,声明实现了条件覆盖,不一定能实现分支覆盖,所以才会有条件-分支覆盖。
但实际上这是一种错误理解。
举例说明:
if(x>3 && y<10){
……
}
如果要实现分支覆盖,只要设计两个测试用例:取假分支x=2,y=9 和取真分支x=5,y=3
如果要实现一般资料中所说的条件覆盖,使用每一个条件表达式的取真和取假都至少执行一次,需要设计两个测试用例:
x>3 y<10
真 真 x=4,y=4
假 假 x=2,y=20
但两个测试用例中,第二个测试用例并未真正使用y<10的条件取到假,因为在很多开发语言中,前一个条件表达式取假、逻辑运算符为与时,第二个条件表达式根本不会被判断,也就不会被执行。也就未真正实现每一个条件表达式取真和取假至少执行一次的要求。
如果要实现上述要求,就要追加一个测试用例
x>3 y<10 分支
真 真 x=4,y=4 真
假 假 x=2,y=20 假
真 假 x=4,y=20 假
这样才真正实现了条件覆盖。但由此我们还会发现,如果真实现了条件覆盖,则分支覆盖是一定实现的。
所以应该将条件-分支覆盖一项取消,同时声明条件覆盖实现,一定会实现分支覆盖。
分类目录
-
最近文章
近期评论
- 王 淑娟 在 802.11ad——您前所未见的最快WiFi解决方案 上的评论
- 李 伟斌 在 【转载】记一次 superblock 损坏导致服务器无法启动的故障修复 上的评论
- 李 伟斌 在 【转帖】树莓派入门之自动登陆及自动运行程序 上的评论
- 李 伟斌 在 【转载】系统状态查询IOSTATE的一些细致分析。 上的评论
- 心的海洋 在 NAT地址转换原理全攻略[转载] 上的评论
文章归档
- 2025 年三月
- 2025 年二月
- 2024 年十月
- 2024 年七月
- 2024 年六月
- 2024 年四月
- 2024 年三月
- 2024 年一月
- 2023 年十二月
- 2023 年九月
- 2023 年八月
- 2023 年五月
- 2023 年二月
- 2022 年十一月
- 2022 年九月
- 2022 年一月
- 2021 年十一月
- 2021 年七月
- 2021 年三月
- 2021 年二月
- 2021 年一月
- 2020 年十二月
- 2020 年十一月
- 2020 年十月
- 2020 年九月
- 2020 年八月
- 2020 年七月
- 2020 年六月
- 2020 年五月
- 2020 年四月
- 2020 年三月
- 2020 年二月
- 2020 年一月
- 2019 年十二月
- 2019 年十一月
- 2019 年九月
- 2018 年七月
- 2018 年四月
- 2018 年三月
- 2017 年十二月
- 2017 年十月
- 2017 年九月
- 2017 年八月
- 2016 年十月
- 2016 年九月
- 2016 年八月
- 2016 年一月
- 2015 年十月
- 2015 年九月
- 2015 年八月
- 2015 年一月
- 2014 年九月
- 2014 年八月
- 2014 年六月
- 2014 年四月
- 2014 年二月
- 2014 年一月
- 2013 年十二月
- 2013 年十一月
- 2013 年九月
- 2013 年八月
- 2013 年七月
- 2013 年六月
- 2013 年五月
- 2013 年四月
- 2013 年三月
- 2013 年二月
- 2013 年一月
- 2012 年十二月
- 2012 年十一月
- 2012 年十月
- 2012 年九月
- 2012 年八月
- 2012 年七月
- 2012 年六月
- 2012 年五月
- 2012 年四月
- 2012 年三月
- 2012 年二月
- 2011 年十二月
- 2011 年十一月
- 2011 年十月
- 2011 年九月
- 2011 年六月
- 2011 年四月
- 2011 年三月
- 2011 年二月
- 2011 年一月
- 2010 年十二月
- 2010 年十一月
- 2010 年十月
- 2010 年九月
- 2010 年八月
- 2010 年六月
- 2010 年五月
- 2007 年九月
- 0 年