使用Contest分析测试用例的代码覆盖率

发表于:2016-5-11 11:22

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

 作者:徐迎军,张维,行骁程    来源:51Testing软件测试网采编

分享:
  接下来弹出一个消息窗口显示全部的 Task 文件数目,这个数目和您在第一步生成的 Task 文件相同,如图 5 所示。
  
图 5. 所使用的 Task 文件的提示界面
  接下来选择所有的 Task 的文件属性,如图 6 所示。
  
图 6. 选择 Task 文件的属性
  接下来要选择生成报表,选择 Code-Coverage->Hierarchy (Drill Down). 如图 7 所示。
  
图 7. 生成报表菜单
  在这一步请选择 Trace 文件,然后运行所有的测试用例后生成 Trace,如图 8 所示:
  点击 Add 按钮,然后选择 Trace 文件所在的位置。
 
 图 8. 选择 Trace 文件界面
  选择完 Trace 文件后,点击 Create Report 按钮,这样就生成代码覆盖率的报表,生成报表的时间根据 Task 文件的数目而不同,最后生成的报表如图 9 所示。
  
图 9. 生成的报表
  图 9 第一行显示代码覆盖率为 49.2%,显示总共有 5593 个方法需要被测试,其中您的测试用例覆盖到 2752 个方法,两者的相除的结果就是代码覆盖率。接着再看红色部分显示的是没有覆盖的代码(覆盖率为 0%),绿色部分显示全部覆盖的代码 ( 覆盖率为 100%),黄色部分显示的是只有部分代码被覆盖。
  同时我们可以创建测试漏洞 (Test Hole) 报表,选择 Functional-Coverage -> Holes (Drill Down),如图 10 所示。
  
图 10. 选择测试漏洞菜单
  在这个窗口中,在目标路径上选择 Trace 文件,然后点击 Create Report 按钮,这样就生成测试漏洞报表,这个报表显示所有的没有被测试用例覆盖的代码,报表图 11 所示。
  
图 11. 生成测试漏洞报表
  如果我们需要看看那些代码没有被覆盖,直接点击 Substring 的项目去看详细内容,比如我们选择 delete 项目,点击进去看到如图 12 所示。
  
图 12. 测试漏洞详细报表
  在这个图表中,比如我们看到在目录 com\pasw\dms\uiservice\serviceImpl\quicklaunch 中的 UserPreferenceServiceImpl.java 源文件,检查到 deleteApplicationGroup (com.pasw.dms.userprefs.TypeApplicationBookmark) 方法没有被覆盖,这个报表非常明确地告诉测试人这个方法没有被测试到,那么我们就检查测试用例,是否有对应这个方法的测试用例,接着可以补充这个测试用例以提高代码覆盖率。以此类推检查所有没有被覆盖到的方法,并分析和补充缺失的测试用例。
  总结
  我们可以免费地获得 Contest 和 FoCuS 工具,并用于项目开发。这两个工具使用方法很简单,这样减少学习工具的时间开销,使测试人员只需要把时间花销在撰写测试用例层面。Contest 是一个用于检测和报告 Java 代码覆盖率的开源工具。它不但能很好的用于小型项目,很方便得得出覆盖率报告,而且适用于大型企业级别的项目。Contest 支持两种方式的代码覆盖率分析,用户可以根据自己的需要进行选择。
  FoCuS 工具可以很方便地针对本机以及远程机器上的 Java 程序进行代码覆盖分析,分析报告可自动生成。FoCuS 可以精确地找出被覆盖以及没有被覆盖的方法,以多种报表来展示给用户,通过覆盖率数据,可以知道测试得是否充分,测试得弱点在哪些方面,进而可以指导我们设计能够增加覆盖率的测试用例。
  代码覆盖率在实际应用中常与自动测试相结合以达到最好的效果。自动测试过程中的代码覆盖率分析,以最小的测试代价,最精确的分析,来获得当前的测试完成情况,为测试人员提高了良好的分析报告,以便测试人员改进和新增新的测试用例,大大提高了回归测试的测试效率与质量。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号