
当开展软件测试工作的时候,逻辑覆盖包含六种方法,这六种方法能够直接判断代码检查的精细程度,不同的方法,在发现潜在错误方面所产生的效果,它们之间的差异是非常显著的。
语句覆盖

语句覆盖有着这样的要求啊,此要求是测试用例要去执行程序里的每条语句,并且最少得执行一次。拿DoWork函数当作例子来说的话,仅仅需要设计一个输入,便能够覆盖路径abd上的全部语句。这种方法相对而言是比较简单的,而且还较为快捷,然而存在着明显的局限,它只关注语句的执行情况,却不去检查判断逻辑。比如说存在当第二个判断条件出错写成y的情况 。<5时,语句覆盖无法发现这个错误,因为测试用例仍能顺利执行全部语句。


判定覆盖

有判定覆盖这般要求,其要求每个判断真假分支都至少执行一回,对于DoWork函数而言,这便需要设计两个测试用例,这两个测试用例要分别覆盖路径abd与ace,此方法相较于语句覆盖更为具深度,它能发现更多逻辑错误,在实际测试里,判定覆盖通常被当作最低测试标准,然而它不检查判断条件内部组合情况,所以可能遗漏由某些特定条件组合引发的缺陷。

条件覆盖
对于每个判断,其中每个条件,都必须获取到真假值,各至少一次,这属于条件覆盖的要求,DoWork函数存在四个条件,要设计测试用例,去覆盖八种情形,这种办法重视条件取值的完整性,能够发现条件表达式当中的错误,然而条件覆盖不一定能保证判定覆盖,有可能出现所有条件取值都已经被测试,但是某个判定分支却没有被执行的情况 。
判定条件覆盖

它将判定覆盖跟条件覆盖的要求予以结合,一方面要实现对所有判定分支的覆盖,另一方面还得对所有条件取值达到覆盖。从理论层面来讲,这般的方法具备更强的全面性,然而在实际开展编译操作进程中,因逻辑运算符所拥有的短路特性,某些特定条件有可能会被跳过。比如说,在运用逻辑与运算符之际,若首个条件为假,那么第二个条件便不会启动运行,这会致使条件覆盖无法达成完整状态。
条件组合覆盖
每个判定里,所有条件可能组合都得至少出现一回,这是条件组合覆盖的内容,DoWork函数有两个判定,存在八种条件组合,要设计出对应的测试用例,这种办法能够发现条件相互影响,测试强度较高,不过它可能无法覆盖全部路径,像表4-9的用例就遗漏了abe路径。
路径覆盖

路径覆盖存在这样的要求,程序所有可能的执行路径都必须被测试,在DoWork函数当中,要基于条件组合覆盖,对那些测试用例进行再次调整,以便确保路径abe能够被覆盖,这种方法是最为彻底的,只是测试用例数量会随着程序复杂度呈现类似指数那样的增长态势,需要留意的是,路径覆盖不一定包含所有条件组合,这两者要依据测试目标进行权衡 。
在实际项目里,你会依据优先级去挑选哪一种覆盖准则,以此来平衡测试成效与成本呢,欢迎分享你的测试经历,要是觉得这篇文章有帮助,请点赞予以支持 !