Description / Features
Total Quality plugin combines four domains measures (architecture, design, code, and tests) in order to calculate a global and unified project quality health. Plugin provides metrics at project level only.
The default formula is :
TQ= 0.25*ARCH + 0.25*DES + 0.25*CODE + 0.25*TS
or
TQ= 0.25*ARCH + 0.25*DES + 0.25*CODE + 0.25*OVERALL_TS (if computing Quality with IT Tests is enabled )
where :
Architecture (ARCH)
ARCH = 100 - TI
TI = Tangle Index
Design (DES)
DES = 0.15*NOM + 0.15*LCOM + 0.25*RFC 0.25*CBO + 0.20*DIT
NOM = (1 - (class_complexity - 12) / (acel * 12)) * 50 + (1 - (method_complexity - 2.5) / (acel * 2.5)) * 50
LCOM = (1 - (lack_of_cohesion_of_method - 1) / (acel * 1)) * 100
RFC = (1 - (response_for_class - 50) / (acel * 50)) * 100
CBO = (1 - (efferent_coupling - 5) / (acel * 5)) * 100
DIT = (1 - (depth_of_inheritance_tree - 5) / (acel * 5)) * 100
acel is an accelerator factor whose value can be configured in the Sonar settings page.
The default threshold for each metric can be also configured (for instance, 50 is the default response_for_class threshold).
Code (CODE)
Code = 0.15*DOC + 0.45*RULES + 0.40*DRYNESS
DOC = Documented API density
RULES = Rules compliance index
DRYNESS = 100 - Duplicated lines density
Test (TS)
Testing quality is based on coverage metric family (coverage, and test success).
Test = 0.80*COV + 0.20*SUC
COV = Code coverage
SUC = Unit Tests success density
Overall Test (OVERALL_TS)
Testing quality is based on coverage metric family (coverage, and test success).
Test = 0.60*TS + 0.40*IT_COV
TS = Test Quality of Unit Tests
IT_COV = Integration Tests coverage
Configuration
Every limit and every formula should be configure with administration view.
If you want to remove a metric just do,
"ARCH=0.25 DESIGN=0.25 CODE=0.50 TESTS=0.00"
| To enable the computation of IT Tests in Test Quality metric you need to enable it by setting "true" the sonar.tq.it_tests.enabled property on a global or project level. |
Known limitations and TODO
- See SONARPLUGINS-415
Usage & Installation
1. Copy the jar into /extensions/plugins/ directory
2. Restart Sonar Web server
3. Launch a new quality analysis and the metrics will be fed
Changelog
| Release 1.1 (2 issues) | |||
|---|---|---|---|
| Type | Key | Summary | Priority |
|
|
SONARPLUGINS-2591 | Remove calls to deprecated Sonar API |
|
|
|
SONARPLUGINS-1314 | Integrate Total Quality plugin with JaCoCo plugin |
|
| Release 1.0.2 (1 issues) | |||
|---|---|---|---|
| Type | Key | Summary | Priority |
|
|
SONARPLUGINS-772 | Use sonar-plugin packaging |
|
| Release 1.0.1 (1 issues) | |||
|---|---|---|---|
| Type | Key | Summary | Priority |
|
|
SONARPLUGINS-537 | Some metrics are currently not reported in Views |
|

