白盒测试的5种逻辑覆盖法

本文介绍了白盒测试中的5种逻辑覆盖法,包括判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖和修正的条件/判定覆盖。通过对这些覆盖法的详细解释,阐述了它们之间的关系和各自的优缺点,以帮助测试人员更好地进行程序测试。
摘要由CSDN通过智能技术生成

判定覆盖法 Decision Coverage (DC)

判定覆盖法的基本思想:
设计若干测试用例,运行被测程序,使得程序中每个判断的取真和取假分支至少经历一次,即判断的真假值都至少被满足一次。
由于一个判定代表程序一个分支,因而判定覆盖也被成为分支覆盖。
问题在于:T and T = T , T or T =T. F and F = F , F or F =F. 对于一个双条件判定而言,如果采用(T,T)和(F,F)去测试,那么程序中的and换成or,或者or换成and的错误是发现不了的。
满足判定覆盖一定满足语句覆盖(每个可执行的语句至少执行一次)

条件覆盖 Condition Coverage (CC)

条件覆盖比判定覆盖的粒度更小,它要求使得程序中每个判断的每个条件的所有可能取值至少被满足一次。
满足条件覆盖不一定满足判定覆盖。这就引出了判定-条件覆盖。

判定-条件覆盖 Condition-Decision Coverage

判定-条件覆盖是需要同时满足判定覆盖和条件覆盖的逻辑覆盖法,即所有判断的每个结果和所有条件的所有可能取值至少满足一次。
问题在于:and 与 or互换的bug还是测不出来。这就引入了条件组合覆盖。

条件组合覆盖 Multiple Condition Coverage (MCC)

条件组合覆盖要求:每个判断的真假结果和导致真假结果的所有组合都至少出现一次。
条件组合覆盖虽然能覆盖前面提到的3种覆盖方式,但还是有可能无法覆盖全部基本路径。
除了不够充分外,还有浪费的弊端,这就引出了修正的条件/判定覆盖。

修正的条件/判定覆盖 Modified Condition/Decision Coverage (MC/DC)

修正的条件/判定覆盖是对条件组合覆盖做的优化。
它不要求每个判断导致真假结果的所有组合都出现过,而是要求每个条件都独立地影响过判断的结果。

5种覆盖的关系

5种覆盖的包含关系为
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSU迦叶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值