Being able to monitor how quality evolves is a good start (see Historical Information).

The next step would be to manage your technical debt on your current developments in order to keep it under control.

To deal with that, a Differential Services is provided on measures, issues and coverage by unit tests on new code.

Differential Views

Differential Views on Measures

To activate this service, pick the desired period in the Time changes... drop down list:

When a period is selected, the differential values will appear next to the project measures:

Differential Views on Issues

When clicking on the "Added:" link available on the "Issues and Technical Debt" widget (see previous screenshot), this will initiate a drilldown on issues based on the corresponding period and keep this period all the way through:

To determine the creation date of an issue, during each analysis, the following algorithm is executed to determine if an issue is new or existed previously. For each issue, three of four criteria (rule; line number; line content or "hash"; and message) must match for a detected issue to be matched up with an existing one:

In any other case, the issue is a new one.

Three reasons can explain this:

  1. This Issues Drilldown service only shows added issues, not fixed ones. Therefore the number you see in this service can be different from the one displayed on a dashboard through the Rules Compliance widget (that displays added issues - fixed issues).
  2. The algorithm detecting new issues is very good but still perfectible. Therefore new issues can sometimes appear only because SonarQube did not recognize it already existed.
  3. You are looking at a period of X days which goes beyond the first analysis made after migration to version 2.5. In this case there can be a discrepancy due to the fact that prior to 2.5, data to build this service were not collected. This issue will disappear as soon as period does not go beyond first analysis.

 

Code Coverage on New/Changed Code

When activating the SCM Activity Plugin, you will be able to separate coverage by unit tests of new code from old (based upon a given cut-off date) in order to track the new code which does not have any/enough unit tests.


A live example is available on Nemo.

Differential Views Settings

Global Configuration

Three periods can be configured globally and will be available and common to all projects. Go to Settings > General Settings > General > Differential Views to set these properties.

Project Configuration

Two additional periods can be configured and be specific to the current project. Select your project and go to Settings > General > Differential Views to set these properties