码友抖音账号:小码哥聊软件测试
代码覆盖率(英文:Codecoverage)是软件测试中的一种衡量标准,描述了被测试程序中源代码的比例和程度,得到的比例称为代码覆盖率。
测试覆盖率
测试覆盖率是测试完整性的衡量标准。 测试覆盖率是测试需求和测试用例的覆盖率或执行代码的覆盖率的表示。 一方面可以判断测试工作本身的有效性,提高测试效率。 另一方面可以提高代码质量,减少bug,提高产品的可靠性和稳定性。
代码覆盖率的含义
·分析代码中未覆盖的部分,进而推断前期的测试设计是否充分,未覆盖的代码是否是测试设计的盲区,为什么不考虑? 需求/设计不够明确、对测试设计的理解错误、工程方法的应用导致的策略放弃等,然后进行补充测试用例设计。
检测程序中的垃圾代码可以扭转代码设计中的混乱点,提醒设计者/开发人员理清代码的逻辑关系统计软件教程,提高代码的质量。
·高代码覆盖率并不意味着高代码质量,而另一方面,低代码覆盖率,代码质量也不会上去,它可以作为测试自我反思的重要工具之一。
JaCoCo 是 EclEmma 团队根据多年使用和集成现有库的经验创建的免费 Java 代码覆盖库工具。 其官方网站地址为。 无论是开发还是测试,都会有自己写的单元测试用例,比如统计覆盖了多少业务代码之类的需求。 另一个需求是统计结果可以手动生成HTML报告。 接下来我会使用maven、junit、jacoco来实现上面的功能。 这两个要求。
首先需要在maven的pom配置文件中添加以下三个插件:
maven-surefire-插件、jacoco-maven-插件、maven-编译器-插件。
这三个插件对应的功能是:
maven-surefire-plugin插件在执行junit和testng框架单元测试用例时使用;
jacoco-maven-plugin插件用于单元测试用例覆盖业务代码率时;
maven-compiler-plugin插件是根据其配置的jdk版本编译java源代码时使用的。
以下3张截图为具体配置内容,您也可以根据最新版本更新替换版本号。
然后需要为业务代码编写单元测试用例,分别对应下面两张截图,
需要注意的是,测试用例的包名必须与业务代码的包名一致,否则JaCoCo很难计算覆盖率。
免费发放码友软件测试课程笔记+海量学习资料+完整视频+最新笔试题,可以转发文章+私信“码友666”获取资料
然后执行以下三个maven命令进行清理、安装插件、测试
之后,在target\site\jacoco目录下可以看到本轮单元测试结果报告的HTML格式的结果。
打开如下所示html格式的JaCoCo报告,统计总体覆盖率信息。 点击包名链接可以查看详细的统计信息。
值得注意的是,App业务代码类中只有1个main方法,统计方法数量为2个。
这个统计数据不准确吗? 统计数据是准确的。 App 类中还有一个默认构造函数。 即使没有显示,如何证明另一个方法是构造函数? 我们可以减少App测试类AppTest中构造函数的测试用例,如下图所示。
再次执行单元测试统计软件教程,生成的JaCoCo单元测试覆盖率报告如下,Missed未命中数由2变为0。在证明JaCoCo统计的方式中包含了手动生成的默认构造函数。 冠状病毒。 本栏目是统计指定业务的单元测试用例的整体覆盖率; 和 MissedBranchesCov。 本栏目为当存在分支时,覆盖业务代码分支的单元测试用例的覆盖率。 如果 MissedBranchesCov。 某个业务类别的分支覆盖率n/a表示该业务类别没有分支,就会出现n/a的结果。 下图中,App和CoCo这两个业务类中没有分支代码,所以MissedBranchesCov的统计结果。 覆盖率n/a,可以理解为这两个业务类不需要统计分支覆盖; 其他栏目不是覆盖率统计,是实际工作过程中关注的重点。