更新时间:2022-12-15 来源:黑马程序员 浏览量:
软件测试培训中会涉及到判定覆盖(Decision Coverage)这个概念,判定覆盖又称为分支覆盖,其原则是设计足够多的测试用例,在测试过程中保证每个判定至少有一次为真值,有一次为假值。判定覆盖的作用是使真假分支均被执行,虽然判定覆盖比语句覆盖测试能力强,但仍然具有和语句覆盖一样的单一性。以图3-1及其程序为例,设计判定覆盖测试用例。如表3-1所示。
表3-1 判定覆盖测试用例
由表3-1可以看出,这4个测试用例覆盖了acd、abd、ace、abe4条路径,使得每个判定语句的取值都满足了各有一次“真”与“假”。相比于语句覆盖,判定覆盖的覆盖范围更广泛。判定覆盖虽然保证了每个判定至少有一次为真值,有一次为假值,但是却没有考虑到程序内部的取值情况,例如,测试用例test4,没有将x>2作为条件进行判断,仅仅判断了z>0的条件。
判定覆盖语句一般是由多个逻辑条件组成的,如果仅仅判断测试程序执行的最终结果而忽略每个条件的取值,必然会遗漏部分测试路径,因此,判定覆盖也属于弱覆盖。