Quality in Focus - Techniques and Tools for Analyzing Software Quality

Quality in Focus - Techniques and Tools for Analyzing Software Quality

Disclaimer: The information presented in this article is for informational purposes only and should not be considered professional advice. Readers should seek additional guidance or consult with a professional before making any decisions based on the information provided.


Software quality is a critical factor that can impact the success of software development projects. 

Software quality is difficult to be evaluated by just obtaining the number and the severity rank of the defects. 

Hence, quantitative method shall be utilized to assess and provide clarity to visualize the quality status to all the stakeholders.


We will explore the following topics:

Analyzing software quality with metrics and indicators

Method used to analyse software quality 


Analyzing software quality with metrics and indicators

The first step in analyzing software quality is to identify the metrics and indicators that are relevant to the project. There are many different metrics and indicators that can be used to analyze software quality, including code coverage, code complexity, defect density, test coverage, and more. 

Each of these metrics provides valuable insights into the software's performance and can help developers identify areas that need improvement.

One essential metric for analyzing software quality is code coverage. Code coverage refers to the percentage of the code that has been executed during testing. High code coverage indicates that the software has been thoroughly tested and that there are fewer untested areas that could contain bugs or defects. 

Code coverage can be measured using a range of tools, including code coverage analysis tools and automated testing tools.

Another critical metric for analyzing software quality is code complexity. Code complexity refers to the level of difficulty in understanding and modifying the code. High code complexity can make it challenging to maintain and update the software over time, which can lead to additional bugs and defects. Code complexity can be measured using tools such as static analysis tools, which analyze the code and provide insights into its complexity.

Defect density is another important metric for analyzing software quality. Defect density refers to the number of defects per unit of code. High defect density indicates that there are many bugs or defects in the software, which can impact its reliability and performance. Defect density can be measured using tools such as defect tracking software, which helps developers identify and track bugs and defects in the code.

Test coverage is another critical metric for analyzing software quality. Test coverage refers to the percentage of the code that has been tested. High test coverage indicates that the software has been thoroughly tested and that there are fewer untested areas that could contain bugs or defects. Test coverage can be measured using tools such as test coverage analysis tools and automated testing tools.

Quality Metrics is the information for the visualization of Quality status and the improvement on accuracy of Quality estimation.

Analyzing software quality with metrics and indicators is an essential aspect of software development. 


Methods used to analyze software quality

a) Quality Control Chart (QCC) - A chart which visualizes the relation of test progress and defects status.


How to create Quality Control Chart

No alt text provided for this image
No alt text provided for this image

How to analyze Quality Control Chart

Explanation of Chart :

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image


Analyse progress with QCC

No alt text provided for this image


Analyse the quality status with QCC

No alt text provided for this image

Scenario of two difference situations

No alt text provided for this image

b) ODC Analysis

What is the ODC analysis ?

  • ODC stands for Orthogonal Defect Classification.
  • A methodology of Software quality analysis originated by IBM Watson laboratory in 1992.
  • The ODC methodology involves analyzing and categorizing defects.
  • ODC is often used in conjunction with other software testing methodologies, such as defect tracking, root cause analysis, and quality assurance. The ODC approach can be applied to any software development project, regardless of the industry or application domain.

Why is the ODC analysis necessary?

Example 1:  The following graph show the number of defects found based on severity rank.              

Note: The program size and test cases are equivalent for both software A & Software B

Which of A and B do you think has better quality?

Question: Which of A and B do you think has better quality?



After further analysis, the tendency of defect emergence tells you different aspect.

No alt text provided for this image

Do you still think Software B has better quality?

Example 2:  The following graph shows no significant difference between Software A & Software B.  

No alt text provided for this image

However, after some analysis and detailed checks it reveal some differences.

No alt text provided for this image

Do you still think both Software A & Software B have same quality?


In summary, you shall not just evaluate the quality just by the number or severity rank of defects as you already seen from the previous examples.

ODC is designed for the accurate analysis of software quality.


Before ODC analysis can be performed, a defect management database with detail information is required to be established as illustrated below.

No alt text provided for this image

Defect info have to be classified to several areas from various viewpoints.

Each of such viewpoint is called an “ODC attribute”.

There are five attributes in total as shown below.

No alt text provided for this image

Beside genuine ODC attributes, general defect info such as “severity”, “date” or “status” are also been used for ODC analysis.


Details of the ODC attributes will be explained below.

No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image
No alt text provided for this image

Let’s explore what ODC analysis can tell ?

Evaluate Test maturity and potential defects

No alt text provided for this image

Evaluate implementation maturity

No alt text provided for this image

Evaluate the transition of the severity in order to grasp the defects trend and the overall quality status

No alt text provided for this image

Evaluate the quality status by checking on the trend changes at each testing phases

No alt text provided for this image

Evaluate the test maturity by the Trigger that detect defects

No alt text provided for this image

Evaluate the test maturity by the trend changes at each test phases

No alt text provided for this image

Evaluate the maturity of design and implementation by changes on the defect type

No alt text provided for this image

The choice of technique or method used for analyzing software quality depends on the specific goals and objectives of the analysis. For example, if the goal is to identify and fix defects in software, then testing techniques may be more appropriate.

In summary, analyzing software quality requires a multidisciplinary approach, involving a range of techniques and methods. The results of such analysis can be used to improve software quality and ensure that it meets the needs of users and stakeholders.

~~~~~ The end ~~~~~

To view or add a comment, sign in

More articles by Chou Kee Set

Others also viewed

Explore content categories