说说软件测试覆盖率统计的相关事情

发表于:2012-4-12 11:32

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:nilxin    来源:51Testing软件测试网采编

  What?

  先说说什么是代码覆盖率: 它是反映测试用例对被测软件覆盖程度的重要指标,也是衡量测试工作进展情况的重要指标。它是对测试工作进行量化的重要指标之一。

  我们平时所说的测试覆盖率分为三大类:

  1、行覆盖率度量被测代码中每个可执行语句是否被执行到

intfoo(inta,intb)
{  return  a / b;
}

  测试用例:

TeseCase:  a = 10, b = 5

  2、分支覆盖率:度量程序中每一个判定的分支是否都被测试到

  3、条件覆盖率:度量判定中的每个子表达式结果true和false是否被测试到

intfoo(inta,intb)
{     if(a < 10 || b < 10)// 判定  {        return0;// 分支一   }    else   {       return1;// 分支二    }
}

  分支覆盖率100%

TestCaes1: a = 5, b = 任意数字  覆盖了分支一
TestCaes2: a = 15, b = 15          覆盖了分支二

  条件覆盖率100%

TestCase1: a = 5, b = 5    truetrue
TestCase2: a = 15, b = 15  false,false

  我想这里,大家可能会问这样的几个问题。100%的行覆盖率能证明代码是正确的吗?

  100%的条件覆盖能否代表100%的分支覆盖?

  当然,答案非常明显,测试覆盖率仅仅能够告诉我们什么没有被测试,根本就回答不了软件是否经过了有效测试!上面条件覆盖的例子都只覆盖率分支一,对于分支二都没有涉及到。

  WHY

  为什么我们要做覆盖率统计?

  既然测试覆盖率不能证明代码是正确的,那么它存在又有什么意义了?有过开发,测试经验的同学都能体会到,覆盖率能够帮助我们发现代码的一些问题,如下:

  1、被测系统中有没有存在代码,没有被当前的测试用例集所覆盖的

  2、找出冗余的代码,提高开发质量

  3、可以及时反馈当前系统的测试质量,间接衡量测试的质量。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号