Purpose
Unit Test Coverage shows a percentage of a source code covered by unit tests. It is a mix of Line coverage and Condition coverage. The metric can be also calculated for a new code only.
How this metric helps
Unit Test Coverage may be a guide for indicating a lack of coverage via Automated Testing - just because Unit Testing is the essential part of the Testing Pyramid. A trend helps to understand how a coverage is changing over time, if it is actually growing or falling and how those trends correlate with plans/investments about appropriate development efforts related to Unit Tests. Lack of coverage is typically a key obstacle for implementing the Continuous Integration and Continuous Delivery (CI/CD) on a project.
How it works
Chart overview
Chart shows Unit Tests Coverage in % by month:
In case if multiple Sonar projects are configured for a project in PERF, there is an option to view a summary over all them:
Calculation formula
Unit Test 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)
RAG thresholds: Red <= 20%, Amber <= 50%.
Unit Test Coverage for a New Code, % calculation is Identical to Unit Test Coverage but restricted to new/updated source code.
Data Source
Data for the metric can be collected from Sonar.