Description:

SonarQube is a universal tool for static code analysis that has become more or less the industry standard. Keeping code clean, simple, and easy to read is also a lot easier with SonarQube.

SonarQube :

SonarQube is an open-source platform developed by SonarSource for continuous inspection of code quality. Sonar does static code analysis, which provides a detailed report of bugs, code smells, vulnerabilities, code duplication.

SonarQube is a Code Quality Assurance tool that collects and analyzes source code, and provides reports for the code quality of your project. It combines static and dynamic analysis tools and enables quality to be measured continually over time. Everything from minor styling choices, to design errors are inspected and evaluated by SonarQube. This provides users with a rich searchable history of the code to analyze where the code is messing up and determine whether or not it is styling issues, code defeats, code duplication, lack of test coverage, or excessively complex code.

The software will analyze source code from different aspects and drills down the code layer by layer, moving module level down to the class level. Sonarqube also ensures code reliability, Application security, and reduces technical debt by making your code base clean and maintainable.

SonarQube Integration :

The following schema shows how SonarQube integrates with other ALM tools and where the various components of SonarQube are used.

Flow
  • Developers code in their IDEs and use SonarLint to run local analysis.
  • Developers push their code into their favourite SCM : git, SVN, TFVC, …
  • The Continuous Integration Server triggers an automatic build, and the execution of the SonarScanner required to run the SonarQube analysis.
  • The analysis report is sent to the SonarQube Server for processing.
  • SonarQube Server processes and stores the analysis report results in the SonarQube Database, and displays the results in the UI.
  • Developers review, comment, challenge their Issues to manage and reduce their Technical Debt through the SonarQube UI.
  • Managers receive Reports from the analysis. Ops use APIs to automate configuration and extract data from SonarQube. Ops use JMX to monitor SonarQube Server.

Benefits of SonarQube:

Sustainability – Reduces complexity, possible vulnerabilities, and code duplications, optimising the life of applications.

Increase productivity – Reduces the scale, cost of maintenance, and risk of the application; as such, it removes the need to spend more time changing the code

Quality code – Code quality control is an inseparable part of the process of software development.

Detect Errors – Detects errors in the code and alerts developers to fix them automatically before submitting them for output.

Increase consistency – Determines where the code criteria are breached and enhances the quality

Business scaling – No restriction on the number of projects to be evaluated

Enhance developer skills – Regular feedback on quality problems helps developers to improve their coding skills

Feature and Advantage of using SonarQube :

SonarQube platform significantly increases the lifetime of applications by reducing complexities, duplications and potential bugs in the code, by keeping neat and clean code architecture and increased unit tests. SonarQube increases maintainability of the software. It also has the ability to handle changes.

Conclusion:

Using SonarQube facilitates code quality control and decreases the number of real and potential bugs. Developers are now more focused on the logic itself and can devote their time to business analysis requirements and to finding optimal solution for a concrete case. Also, after its implementation, managers started tracking metrics, because based in the results, they believe it is possible to have better insight in development work.