在实际的软件生产交付过程中,我们通过单元测试、接口测试、功能测试、自动化测试等手段来保障软件质量;但是无论使用哪种测试手段,case 设计是否全面、精简,显得尤为重要。在实际的项目测试过程中,case 的设计也会经常出现以下问题:
-
开发同学写了大量单元测试,有的公司可能做得很少的单元测试,一直重复执行一段代码逻辑,少数场景或异常代码逻辑并未执行到;
-
测试同学在设计的测试用例时经过多方的case 评审仍有可能存在未覆盖到的异常场景,出现漏测情况;
-
接口自动化测试case 的实施作为日常回归手段,也无法做到确定是否覆盖所有代码逻辑,其可靠性无法评估。
-
那么问题出现了我们就要想办法去解决,今天我们将围绕 SuperJacoco 代码覆盖率这个工具的使用环境上开始入手。
一、什么是 SuperJacoco 工具?
以下这些概念定义大家在网上都很容易搜索得到,此处只是复述出来,为了保证大家有一个整体的理论认识。
说 SuperJacoco 之前,我先来说一下什么是 Jacoco,Jacoco 是一个开源的代码覆盖率工具,可以嵌入到Ant 、Maven 中,并提供了 EclEmma Eclipse 插件,也可以使用JavaAgent 技术监控 Java 程序。很多第三方的工具提供了对 Jacoco 的集成,如 sonar、Jenkins等。
SuperJacoco 是基于 Jacoco、git 二次开发打造的一站式 JAVA 代码全量 diff 覆盖率收集平台,能够低成本、无侵入的收集代码覆盖率数据;Super-