This document discusses test-driven development using SonarQube. It begins by defining software quality and characteristics of quality code. It then lists the "Developer's 7 Deadly Sins" which SonarQube can help address, such as duplications, lack of coverage, and complexity. The document explains that SonarQube is an open source, web-based static code analysis tool that can analyze over 20 programming languages. It integrates with tools like Eclipse, Maven, Ant, and helps enforce coding standards to develop higher quality code through its analysis of the "Seven Axes of Quality". The document concludes by emphasizing that code quality is important and should be approached with discipline.
4. Characteristic of Quality Code
● Easily understandable as it is some text
● Self explanatory
● Uses a simple syntax
● Efficient, Robust, portable, Reusable, Secure, Maintainable
● short, focused units
● Highly Cohesive / Loosely Coupled
● Comment and document the code in necessary situations
● Put everything under version control
9. How to Avoid These Mistakes?
● Code Reviews (manual)
○ Expensive
○ Error Prone
● Use Tools (automated)
○ “Static Code Analysis”
■ is a method of computer program debugging that is done by examining the code
without executing the program.
10. SonarQube™
● Static Code Analyzer
● Open Source ( Community Edition )
● Web based application
● Covered more than 20 programing languages
● Extendable with plugins
● Out of the box integration to
○ Eclipse, Maven, Ant, SVN, Git, JIRA, Google Analytics…
● Covers the Seven Axes of Quality, also known as
○ “Developers’ Seven Deadly Sins”
Safety – Poor quality in software can be hazardous to human life and safety. Quality problems can impact the functionality of the software products.
Cost – Quality issues cost money to fix. Whether you believe that a defect is 100x more costly to fix late in the development cycle or not, doing work over because it is defective does not deliver more value than doing it right once.
Customer Satisfaction (internal) – Poor quality leads stakeholders to look for someone else to do your job or perhaps shipping your job and all your friend’s jobs somewhere else.
Customer Satisfaction (external) – Software products that don’t work, are hard to use (when they don’t need to be), or are buggy don’t tend not to last long in the marketplace.
Future Value – Avoiding quality problems increases the amount of time available for the next project or the next set of features. Increasing quality also improves team morale, improved team morale is directly correlated with increased productivity (which will increase customer satisfaction and reduce cost).
Consortium for IT Software Quality
The Consortium for IT Software Quality is an IT industry leadership group that develops international standards for automating the measurement of software size and software structural quality from system source code.
Object Management Group
The mission of the Object Management Group (OMG) is to develop technology standards that provide real-world value for thousands of vertical industries
Software Engineering Institute Carnegie Mellon
The Leader in Software Engineering and Cybersecurity