Sonar-Overall Coverage

2019-02-09 20:26发布

问题:

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.