Sonar gives a value of Overall coverage which is a combination of line and branch coverage. I am not sure how important is this metric. What does the value of overall coverage signifies? How it is better than line and branch coverage? Any suggestions would be helpful.
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
From Sonar's documentation:
It is a mix of Line coverage and Condition coverage. Its goal is to provide an even more accurate answer to the following question: How much of the source code has been covered by the unit tests?
Coverage = (CT + CF + LC)/(2*B + EL)
where
CT = conditions that have been evaluated to 'true' at least once
CF = conditions that have been evaluated to 'false' at least once
LC = covered lines = lines_to_cover - uncovered_lines
B = total number of conditions
EL = total number of executable lines (lines_to_cover)
Source: https://docs.sonarqube.org/display/SONAR/Metric+Definitions#MetricDefinitions-Tests
回答2:
Here's how the overall coverage is computed: https://docs.sonarqube.org/display/SONAR/Metric+Definitions#MetricDefinitions-Tests
If branch coverage is lower than line coverage (and thus lower than overall coverage), it means that your unit tests test the main cases but not really the corner cases.