软件测试 | Sonarqube 中的覆盖率分析
导入覆盖率
sonarqube 可以分析 jacoco 的 exec 文件与 xml 文件,并自动导入覆盖率。exec 文件的分析后续会放弃 支持,主支持 xml 文件的分析。
限定范围的代码覆盖
可以通过如下参数限定要分析代码的范围,通常是指明要覆盖的 package 范围
sonar.sources
sonar.inclusions
新增代码覆盖率
sonarqube 可以智能分析新老版本之间的新增代码的覆盖率,这点非常不错,以前一些分析代码 diff 的 工作就节省了。他的代码分析也比较智能,简单的换行并不会干扰代码 diff 的分析范围。
通用覆盖率数据
sonarqube 支持两种通用的测试数据导入
通用覆盖率数据:sonar.coverageReportPaths
通用测试执行数据:sonar.testExecutionReportPaths
这样方便与各种框架进行集成,也方便测试工程师二次定制。
通用测试数据模板
通用覆盖率数据模板
在 sonarqube 的 scanner 分析中,加入对应的配置参数即可导入通用测试数据。
通用测试数据导入的常见用途
将各种测试工具的测试报告转换为 sonarqube 支持的格式从而导入平台
将各种覆盖率工具的覆盖率报告转换为标准格式导入平台
根据需求对差异 diff 覆盖率进行定制,比如除了对新增代码做覆盖,还要对使用了新增代码的依赖 代码也做分析
代码 diff 方法
代码的 diff 分析是一个比较大的话题,diff 只是对代码的最简单的一个分析策略,要想深入的理解代 码,我们还需要更进一步的分析代码的调用链。我们先看最简单的代码 diff 分析工具。
代码 diff 分析工具
JGit:git 分析工具
JavaParser:语法分析
ASM:读取字节码
javap:jdk 自带字节码分析工具
搜索微信公众号:TestingStudio 霍格沃兹的干货都很硬核
评论