*项目名称:java服务测试覆盖率组件开发
*项目角色:开发、设计、测试、实施
*项目时间:2020.2-2020.4
*背景:为了提升团队精准测试水平,分析每次迭代未覆盖部分的代码,反推在前期测试设计是否充分,以及检测程序中的无用代码,核查代码设计中是否存在思维混乱点,进而提升代码质量,所以对jacoco基于jenkins持续构建插件进行了二次开发.
*技术:Java
*平台:maven Jenkins docker
*关键步骤:
1) 通过jacoco dump指令获取测试完成后的 exec 文件(二进制文件,里面有探针的覆盖执行信息);
2) 获取基线提交与被测提交之间的差异代码:基于AST语法树进行基线版本和测试版本代码对比,获取增量差异代码diff文件.
3) 将差异代码进行解析,切割为更小的颗粒度,选择方法作为最小纬度;
4) 改造 JaCoCo methodAnalyzer,使它仅支持对差异代码生成覆盖率报告;
成果:该工具上线以来,在版本迭代敏捷交付的过程中已经协助测试人员发现了一些测试设计上存在的问题,有效的提升了增量代码的覆盖率,对交付产品的质量提升起到了很好的促进作用.
点击空白处退出提示
评论