How to achieve software quality

What is Quality?

In business, engineering and manufacturing, quality has a pragmatic interpretation as the non-inferiority or superiority of something; it is also defined as fitness for purpose. Quality is a perceptual, conditional, and somewhat subjective attribute and may be understood differently by different people (wiki).
  • Conformance to requirements. Lack of conformance is lack of quality
  • The presence of that which satisfies customers & users and the absence of that when dissatisfies

According to IEEE Quality is
  • The degree to which a system, component, or process meets specified requirements
  • The degree to which a system, component, or process meets customer or user needs or expectations.
According to ISO Quality is
  • The totality of characteristics of an entity that bear on its ability to satisfy stated and implied needs
According to Roger Pressman Quality Software is defined as
  • Conformance to explicitly stated and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of all professionally developed software

What is Software Quality?

Accordingly to IEEE Software Quality is
  • The totality of features and characteristics of a software product that bear on its ability to satisfy given needs, such as conforming to specifications.
  • The degree to which software possesses a desired combination of attributes.
  • The degree to which a customer or user perceives that software meets his or her composite expectations.
  • The composite characteristics of software that determine the degree to which the software in use will meet the expectations of the customer.

Standard Quality Model by CISQ 


 Factors involved in poor quality

  • Inadequate training of managers and staff
  • Inadequate defect and cost measurement
  • Inadequate application design and coding standards
  • Inadequate Processes and procedures
  • Excessive schedule pressure
  • Insufficient defect removal
  • High complexity levels
  • Ambiguous and creeping requirements and design (feature race & gimmicks)
  • No source code maintenance
  • Inadequate communication channel
  • Non-compliance with documentation and coding instructions
  • Inadequate documentation process

 How to Achieve Software Quality

“For a software application to achieve high quality levels, it is necessary to begin upstream and ensure that intermediate deliverables and work products are also of high quality levels. This means that the entire process of software development must itself be focused on quality” Capers Jones

 QA processes & procedures

  • Define the process and procedures (quality models) that best fit in your organization. While defining the process, focus should be on the use and benefits not on the documentations.
  • Target of quality is satisfying business users
  • Optimize the Use of Testing Tools

 Testing Framework & Guidelines

  • Apply and perform the testing on the right time
  • Get the requirements right , testing on ambiguous requirements means achieving nothing
  • Test as smarter to Test Less
  • Optimize the Use of Testing Tools 


  • Start performing reviews in the project beginning because defect prevention method is always better 
  • Defects found in early stages have low cost 

Measurement & Control(KPI’s/SLA’s)

  • Software quality measurement is about quantifying to what extent a system or software possesses desirable characteristics. This can be performed through qualitative or quantitative means or a mix of both. In both cases, for each desirable characteristic, there are a set of measurable attributes the existence of which in a piece of software or system tend to be correlated and associated with this characteristic.
    • Application Architecture Practices
    • Coding Practices
    • Application Complexity
    • Documentation
    • Portability
    • Technical & Functional Volume
  • Apply software metrics and measurements to measure the quality for corrective actions

 Software Engineering Methods

  • Use the best SE methods that best fits in the organization, focus should be on benefits not on documentation only.
  • Get the requirements right
  • Less rework means less retesting and fewer cycles, which greatly reduces the overall effort.
    • Simpler, cleaner designs result in code that is simpler, cleaner, and easier to test and rework. Which means that the code will have fewer bugs and that those bugs will be easier to diagnose and repair.
    • Avoid these defects origins
    • Poor Requirements
    • Poor Design
    • Poor Source code Maintenance
    • “Bad fixes” or mistakes made during repairs


SCM - Software Configuration Management have a key role in software quality. By using the SCM procedures you can achieve many quality factors
  • Formalize the use of reviews before a configuration item is baselined
  • Uniquely identify system components
  • Establish simple change control
  • Build up a repository of configuration items, change requests, and problem reports
  • Restrict access to the project library.