Full documentation for SonarQube has moved to a new location: http://docs.sonarqube.org/display/SONAR

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Wiki Markup
{iframe:src=http://update.sonarsource.org/plugins/totalquality.html|width=700|height=250|frameborder=0}
Your browser does not support iframes.
{iframe}

Description / Features

Total Quality plugin combines four domain 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 SonarQube 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

Include Page
Include - Plugin Installation
Include - Plugin Installation

Usage

Add the "Total Quality" widget to your dashboard.

Run an analysis on the project to compute the Total Quality metrics.

Each threshold and every formula may be configured at either the property or global level.

To remove a metric just assign it a zero weight in the formula, like so,

"ARCH=0.25 DESIGN=0.25 CODE=0.50 TESTS=0.00"

Info
To enable the computation of IT Tests in the Test Quality metric you need to enable it by setting sonar.tq.it_tests.enabled property to "true" at the global or project level.

TODO

Change Log

JIRA Issues
anonymoustrue
titleRelease 1.1
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=17623&pid=11911&sorter/field=issuekey&sorter/order=DESC&tempMax=1000

 

JIRA Issues
anonymoustrue
titleRelease 1.0.2
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=16926&pid=11911&sorter/field=issuekey&sorter/order=DESC&tempMax=1000

 

JIRA Issues
anonymoustrue
titleRelease 1.0.1
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=16542&pid=11911&sorter/field=issuekey&sorter/order=DESC&tempMax=1000

 

JIRA Issues
anonymoustrue
titleRelease 1.0
renderModestatic
width900
columnstype;key;summary;priority
urlhttp://jira.codehaus.org/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?fixfor=16289&pid=11911&sorter/field=issuekey&sorter/order=DESC&tempMax=1000