軟件測試 | Sonarqube中的覆蓋率分析
導(dǎo)入覆蓋率
sonarqube 可以分析 jacoco 的 exec 文件與 xml 文件,并自動導(dǎo)入覆蓋率。exec 文件的分析后續(xù)會放棄 支持,主支持 xml 文件的分析。
限定范圍的代碼覆蓋

可以通過如下參數(shù)限定要分析代碼的范圍,通常是指明要覆蓋的 package 范圍
sonar.sources
sonar.inclusions
新增代碼覆蓋率
sonarqube 可以智能分析新老版本之間的新增代碼的覆蓋率,這點(diǎn)非常不錯,以前一些分析代碼 diff 的 工作就節(jié)省了。他的代碼分析也比較智能,簡單的換行并不會干擾代碼 diff 的分析范圍。

通用覆蓋率數(shù)據(jù)
sonarqube 支持兩種通用的測試數(shù)據(jù)導(dǎo)入
通用覆蓋率數(shù)據(jù):sonar.coverageReportPaths
通用測試執(zhí)行數(shù)據(jù):sonar.testExecutionReportPaths
這樣方便與各種框架進(jìn)行集成,也方便測試工程師二次定制。
通用測試數(shù)據(jù)模板
通用覆蓋率數(shù)據(jù)模板

在 sonarqube 的 scanner 分析中,加入對應(yīng)的配置參數(shù)即可導(dǎo)入通用測試數(shù)據(jù)。
通用測試數(shù)據(jù)導(dǎo)入的常見用途
將各種測試工具的測試報告轉(zhuǎn)換為 sonarqube 支持的格式從而導(dǎo)入平臺
將各種覆蓋率工具的覆蓋率報告轉(zhuǎn)換為標(biāo)準(zhǔn)格式導(dǎo)入平臺
根據(jù)需求對差異 diff 覆蓋率進(jìn)行定制,比如除了對新增代碼做覆蓋,還要對使用了新增代碼的依賴 代碼也做分析
代碼diff方法
代碼的 diff 分析是一個比較大的話題,diff 只是對代碼的最簡單的一個分析策略,要想深入的理解代 碼,我們還需要更進(jìn)一步的分析代碼的調(diào)用鏈。我們先看最簡單的代碼 diff 分析工具。
代碼 diff 分析工具
JGit:git 分析工具
JavaParser:語法分析
ASM:讀取字節(jié)碼
javap:jdk 自帶字節(jié)碼分析工具
掃描下方可領(lǐng)取更多學(xué)習(xí)資料(無償哦~)
