使用测试覆盖率改进测试

发表于:2011-10-21 13:15

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

 作者:肖利琼    来源:51testing 投稿

分享:

  针对路径覆盖,可设计如下测试用例

  用例1:a=1,b=1,val=11;
  用例2:a=1,b=0,val=1;
  用例3: a=0,b=1,val=10;
  用例4: a=0,b=0,val=0;

  很好,可见上面4条用例覆盖了代码中的所有路径,路径覆盖涵盖了语句之间的所有可能组合情况,是最强的一种覆盖标准。

  可惜,一般代码覆盖率工具都不支持,BullseyeCoverage也不支持。

  到此为止,聪明的你也许已注意到,是否只要代码覆盖率做到100%的路径覆盖就没有bug了,回答是否定的。路径覆盖仅是某函数中的路径覆盖,是局部的,而我们研发的项目或产品,其业务功能向来都不是孤立存在的,与其他函数之间存在调用或被调用关系,它们之间存在一定的逻辑关系。或者可以理解,这些函数只不过是完成业务流程功能的某一节点,其本身的业务处理是正确的,但其他节点的处理如果有问题,如输出的值与其他接口传递时有问题,将影响着软件的正常运行。另外,即使路径覆盖到了,有些与路径覆盖本身可能没有太多关系的,如介绍语句覆盖率时,提到的分母为零的情况。

  那么,代码覆盖率到底可以帮助我们什么呢,它有那些限制,在工作中我们如何做到扬长避短呢,下节将进行详细介绍。

  5、代码覆盖率分析在项目中的应用

  5.1 覆盖率分析流程

  要对代码覆盖率信息进行分析,首先需把测试软件与覆盖率工具进行绑定,以使得软件在执行时生成覆盖率信息。覆盖率工具依据所测软件的不同,而采用不同的支持软件,如常见的GCOV可用于基于GCC编译器Linux平台开发的C语言软件,Bullseye可以获得基于VC编译器开发的C++软件的覆盖率信息,使用NCOV可获得用C#开发的应用软件覆盖情况等。

  有了可输出覆盖率信息的软件,可通过自动或手动执行用例的方式,获取想要的覆盖率信息。一般情况下,覆盖率工具输出的信息用一种特殊格式的文件保存,为了方便分析时阅读,可用LCOV工具进行转化,变成html格式保存的信息,如图5所示,是对某一目录覆盖率信息的展示。图6是具体某个文件中的代码覆盖情况,页面上的信息标识如何解读,可参考LCOV相关的使用说明。

图5

图6

  总结起来,在项目测试中开展覆盖率分析应用时,整个过程可用如下流程图来清晰表达。

图7

65/6<123456>
重磅发布,2022软件测试行业现状调查报告~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号