The ideal objective would be not to introduce any technical debt on new developments. But in real life, it is not always possible or worth it.
So, in order to keep control of your technical debt on your current developments, SonarQube offers the Reviews feature.
It allows your team to review all new violations and treat them according to their criticity:
- Fix immediately
- Plan for next sprint(s)
- Keep in mind that you have this piece of technical debt but don't take corrective action yet as the return on investment is low
Review LifecycleThe objective of the Manual Review feature is to be able to assign a violation to a user and start a discussion thread which should possibly lead to the correction of the violation.
A review has four possible status: Open, Resolved, Reopened and Closed. SonarQube automatically takes care of closing a review as soon as its underlying violation gets resolved, which means that no one can close an issue manually.
The first status of review is Open. From there a review can be resolved with one the the two resolution types: Fixed or False-Positive. At any point of time a Resolved review can be reopened either by the user or by SonarQube. Indeed, if a review is marked as Resolved with resolution Fixed but the violation is still there after a new analysis, SonarQubeautomatically reopens the review.
Reviews can be managed in action plans.
Creating a Review
To create a review, you must be first logged in and have the Users role on the project containing the violation to review. Then, directly in the component viewer, a new "Review" link appears to start creating a new review when placing the mouse over the violation title:
A comment must be filled before being able to really create the review by clicking on the "Add comment" button:
By default, a review is assigned to the creator of the review but the assignee can be changed or simply removed.
Once a review has been created on a violation, every user can see the review below the violation :
Only the last comment on a review can be edited by the creator of this last comment.
Flagging a Violation as False-positive
If a violation is a false-positive, this is pretty straight forward to switch off this violation by clicking on the "Flag as false-positive" link:
Once a violation is switched off, this violation is no more displayed by default in the component viewer. The option "False-Positives only" must be selected to display those false-positive violations:
Moreover, all measures on the project like the number of violations will be updated the next time an analysis will run.
Reopening a Review
Once a review has been fixed or flagged as false positive, it's stil possible to reopen it at any point of time:
Searching for Reviews
The Reviews page allows to search for any review with optional filter parameters like the project, the author of the review, the severity of the violations, the status of the review, etc.:
By default, all reviews assigned to the current user are displayed.
Clicking on the title of a review allows to display the detail of this review:
It is also possible to track false-positive reviews from this search engine:
Creating a Manual Violation
Whenever a quality defect is detected “manually”, the person who detected it has the ability to create a new violation (with its associated review) directly through the web interface.
The related violation is then displayed within the source code and will be accounted for in metrics after the next analysis of the project.
Changing the Severity of a Violation
Creating an Action Plan
Action plans can be created to group reviews together. Action plans are buckets of reviews that you want to group as they are going to have similar timeframe for resolution:
Linking a Review to an Action Plan
Each review can be linked to an action plan:
Linking a Review to an External Task Manager
It is possible to link a review to an external task manager. To link reviews to JIRA, you can install the SonarQube JIRA plugin.
SonarQubecomes with several widgets that are specialized to display reviews information in dashboards. Those widgets are grouped in their own category in the dashboard configuration:
Here is the type of dashboard you can create to manage reviews:
It is possible to get notified by email on violations and reviews. See the Notification page for more information.