测试覆盖率

覆盖率是用来度量测试完整性的一个手段。覆盖率是测试技术有效性的一个度量。

计算公式:覆盖率=(至少被执行一次的item数)/item的总数

覆盖率按照测试方法大体上可以划分为三类:

1)白盒覆盖率:也叫代码覆盖率或结构化覆盖率。白盒覆盖率中最常见的是逻辑覆盖率。

     逻辑覆盖率包括:语句覆盖(可执行的语句);

                                  判定覆盖(判定结果);

                                  条件覆盖(每个判定结果分为true、false);

                                  判定条件覆盖(将判定和条件覆盖的分子、分母分别相加);

                                  条件组合覆盖(将每组判定结果全排列后相加);

                                  路径覆盖。

     其他覆盖如指令块覆盖、判定路径覆盖等。

     例:

     

     针对上图程序,执行测试用例(A=3,B=0,X=1)分别计算这种情况下的语句覆盖率、判定覆盖率、条件覆盖率、判定条件覆盖率、条件组合覆盖率和路径覆盖率。

     语句覆盖率:1/2;

     判定覆盖率:2/4;

     条件覆盖率:4/8;

     判定条件覆盖率:6/12;

     条件组合覆盖率:2/8;

     路径覆盖率:1/4;

小结:

每种覆盖率度量的时候都有其局限性,因此要把各种覆盖率组合起来对测试进行度量。

各种结构测试方法都不能保证程序的正确性,但是测试的目的并非要证明程序的正确性,而是要尽可能找出程序中的错误。

2)灰盒覆盖率:一般指函数覆盖、接口覆盖。

3)黑盒覆盖率:主要是功能覆盖率。

     功能覆盖率中最常见的是需求覆盖,其含义是通过设计一定的测试用例,要求每个需求点都被测试到。

测试用例设计不能一味追求覆盖率,因为测试成本会随覆盖率的增加而增加。

猜你喜欢

转载自www.cnblogs.com/spring1122/p/9352909.html