逻辑覆盖是以程序内部的逻辑结构为基础的设计测试 用例的技术。它属白盒测试,一般来说,逻辑覆盖分为4个分支,语句覆盖 • 条件覆盖 • 分支覆盖 • 条件组合覆盖。下面一一来说。
先给出一个流程图:
一、语句覆盖:
设计测试用例,使得每个可执行的语句都要被执行一次,如上图的路线a->c->e就将4个可执行语句覆盖了。我们将该路线的判断语句进行合并,记住要考虑对应的情况,如果为F要取反。
取得满足条件的测试用例【(2,0,4),(2,0,3)】
二、分支覆盖
分支覆盖就是设计若干个测试用例, 运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。如上图,我们选择a->b->d,a->c->e就将所有的判断分支都走过了一遍。我们也像上面一样推导条件:
于是满足条件的测试用例【(1,0,1),(1,2,1)】
a->c->e满足条件的为【(2,0,4),(2,0,3)】(具体过程在一中已经推导)
三、条件覆盖
就是设计若干个测试用例, 运行被测程序,使得程序中每个判断的每个条件(按一个条件为单位)的可能取值至少执行一次。 例如上图中:
对于第一个判断:
条件A>1,取真为T1,取假为F1
条件 B=0 取真为T2 ,取假为F2
对于第二个判断:
条件 A=2,取真为T3,取假为F3
条件 X>1,取真为T4,取假为F4
由此,我们可以根据路径a->b->e的不同取值来满足条件覆盖,如下:
四、条件组合覆盖
条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断(按一个条件框为单位)的所有可能的条件取值组合至少执行一次。
由此: