单元测试覆盖率计算

上一篇 / 下一篇  2012-12-22 21:34:33 / 个人分类:单元/集成测试

  一般来说,单元测试主要考究2类覆盖率:
  一、逻辑覆盖
    1、语句覆盖:走了几个语句?
    2、分支(判定覆盖):至少走了一次判定的真或者假
    3、条件覆盖:至少走了一个条件的真或者假,复合条件则累加
    4、条件组合覆盖(分支条件覆盖):至少走了一次判定的真和假,同时至少走了一个条件的真和假,即同时考虑条件的组合值和判定结果的检验
    5、路径覆盖:一次至少走了一条路径
 
  二、功能覆盖
    1、需求覆盖
    2、面向对象覆盖:函数覆盖,继承上下文覆盖,基于状态的类的覆盖
 
  三、覆盖率计算: XX覆盖 = 走了XX个/实际存在的XX总数
 
  四、例子:
    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); //语句块1
}
if ( (x==4)||(y>5) )
{
j=x*y+10;
} //语句块2
j=j%3; //语句块3
}
 
测试用例为:4,5,9,对应xyz
语句覆盖为:4/4=100%
判定覆盖:(1+1)/4=50%
条件覆盖:(1+1+1+1)/8=50%
条件组合覆盖:(2+4)/(4+8)=50%
路径覆盖:1/4=25%
 
特别注意:当存在多种测试用例的时候,计算这些覆盖率的时候,需要合并各种情况一并计算!

TAG:

 

评分:0

我来说两句

Open Toolbar