语句覆盖,分支覆盖/判定覆盖,条件覆盖,判定/条件覆盖,条件组合覆盖,路径覆盖
语句覆盖:每条语句都得以执行
分支覆盖/判定覆盖:每个判断的真、假都得到了覆盖;每个判断可以由多个条件组成;虽然每个判m的真假都得到覆盖,但每个条件的正确性没有得到验证
条件覆盖: 每个判断里的条件真、假都得到了覆盖;虽然每个条件的真假都得到了覆盖,他们组合出来的结果可能不能保证每个判断的真假都得到了覆盖
判定/条件覆盖:每个条件的真、假都得到覆盖,并使得每个判定的真假得到覆盖;
条件组合覆盖:每个判定中的条件的各种组合至少出现一次
路径覆盖:程序中可能出现的路径至少被执行一次
列子分析:
public class Test{
void DoWork(int x, int y, int z)
{
int k=0,j=0;
if ((x>3) && (z<10)) ====
{
k=x*y-1;
j=sqrt(k);
}
if((x==4) || (y>5))
{
j=x*y+10;
}
j=j%3;
}
void anotherMethod() {..........}
}
满足语句覆盖的测试数据:
(1) x=4,y=3,z=5
满足判定覆的测试数据:
(1)判定1真,判定2真:x=4, y=3, z=3
(2)判定1假,判定2假:x=2,y=3,z=11
满足条件覆盖的测试数据:
(1)判定1中的条件1真,条件2真,判定2中的条件1,真条件2真:x=4, y=6, z=3
(2)判定1中的条件1假,条件2假;判定2中的条件1假,条件2假:x=2, y=3, z=11;
满足判定/条件覆盖的测试数据:
(1)判定1中的条件1真,条件2真且判定1真;判定2中的条件1真,条件2真且判定2真:x=4,y=6, z=3
(2)判定1中的条件1假,条件2假且判定1假;判定2中的条件1假,条件2假且判定2假:x=2,y=3,z=11
满足条件组合覆盖的测试数据:
(1)判定1中的条件1真,条件2真;判定2中的条件1真,条件2真:x=4, y=6, z=3
(2)判定1中的条件1真,条件2假;判定2中的条件1真,条件2假:x=4, y=3, z=11
(3)判定1中的条件1假,条件2真;判定2中的条件1假,条件2真:x=2, y=6, z=3
(4)判定1中的条件1假,条件2假;判定2中的条件1假,条件2假:x=2, y=3, z=11
满足路径覆盖的测试数据:
(1)判定1真,判定2真:x=4, y=6, z=3
(2)判定1真,判定2假:x=5, y=3, z=3
(3)判定1假,判定2真:x=4, y=6, z=3
(4)判定1假,判定2假:x=2, y=3, z=3