Software Quality Management
This article gives an overview of Software Quality Management and various processes that are a part of Software Quality Management. Software Quality is a highly overused term and it may mean different things to different people. You will learn What is Software Quality Management?, What does it take to Manage Software Quality?, Quality Planning, Quality Assurance, Quality Control, Importance of Documentation and What is Defect Tracking?
The definition of the ISO 8204 for quality:
“Totality of characteristics of an entity that bears on its ability to satisfy stated and implied needs.”
This means that the Software product delivered should be as per the requirements defined. We now examine a few more terms used in association with Software Quality.
In the Planning Process we determine the standards that are relevant for the Software Product, the Organization and the means to achieve them.
Once the standards are defined and we start building the product. It is very important to have processes that evaluate the project performance and aim to assure that the Quality standards are being followed and the final product will be in compliance.
Once the software components are built the results are monitored to determine if they comply with the standards. The data collected helps in measuring the performance trends and as needed help in identifying defective pieces of code.
What is Software Quality Management?
Software Quality Management simply stated comprises of processes that ensure that the Software Project would reach its goals. In other words the Software Project would meet the clients expectations.
The key processes of Software Quality Management fall into the following three categories:
1) Quality Planning
2) Quality Assurance
3) Quality Control
What does it take to Manage Software Quality?
The Software Quality Management comprises of Quality Planning, Quality Assurance and Quality Control Processes. We shall now take a closer look at each of them.
1) Quality Planning
Quality Planning is the most important step in Software Quality Management. Proper planning ensures that the remaining Quality processes make sense and achieve the desired results. The starting point for the Planning process is the standards followed by the Organization. This is expressed in the Quality Policy and Documentation defining the Organization-wide standards. Sometimes additional industry standards relevant to the Software Project may be referred to as needed. Using these as inputs the Standards for the specific project are decided. The Scope of the effort is also clearly defined. The inputs for the Planning are as summarized as follows:
a. Company’s Quality Policy
b. Organization Standards
c. Relevant Industry Standards
e. Scope of Work
f. Project Requirements
Using these as Inputs the Quality Planning process creates a plan to ensure that standards agreed upon are met. Hence the outputs of the Quality Planning process are:
a. Standards defined for the Project
b. Quality Plan
To create these outputs namely the Quality Plan various tools and techniques are used. These tools and techniques are huge topics and Quality Experts dedicate years of research on these topics. We would briefly introduce these tools and techniques in this article.
a. Benchmarking: The proposed product standards can be decided using the existing performance benchmarks of similar products that already exist in the market.
b. Design of Experiments: Using statistics we determine what factors influence the Quality or features of the end product
c. Cost of Quality: This includes all the costs needed to achieve the required Quality levels. It includes prevention costs, appraisal costs and failure costs.
d. Other tools: There are various other tools used in the Planning process such as Cause and Effect Diagrams, System Flow Charts, Cost Benefit Analysis, etc.
All these help us to create a Quality Management Plan for the project.
2) Quality Assurance
The Input to the Quality Assurance Processes is the Quality Plan created during Planning.
Quality Audits and various other techniques are used to evaluate the performance of the project. This helps us to ensure that the Project is following the Quality Management Plan.
The tools and techniques used in the Planning Process such as Design of Experiments, Cause and Effect Diagrams may also be used here, as required.
3) Quality Control
Following are the inputs to the Quality Control Process:
- Quality Management Plan.
- Quality Standards defined for the Project
- Actual Observations and Measurements of the Work done or in Progress
The Quality Control Processes use various tools to study the Work done. If the Work done is found unsatisfactory it may be sent back to the development team for fixes. Changes to the Development process may be done if necessary.
If the work done meets the standards defined then the work done is accepted and released to the clients.
Importance of Documentation:
In all the Quality Management Processes special emphasis is put on documentation. Many software shops fail to document the project at various levels. Consider a scenario where the Requirements of the Software Project are not sufficiently documented. In this case it is quiet possible that the client has a set of expectations and the tester may not know about them. Hence the testing team would not be able test the software developed for these expectations or requirements. This may lead to poor “Software Quality” as the product does not meet the expectations.
Similarly consider a scenario where the development team does not document the installation instructions. If a different person or a team is responsible for future installations they may end up making mistakes during installation, thereby failing to deliver as promised.
Once again consider a scenario where a tester fails to document the test results after executing the test cases. This may lead to confusion later. If there were an error, we would not be sure at what stage the error was introduced in the software at a component level or when integrating it with another component or due to environment on a particular server etc. Hence documentation is the key for future analysis and all Quality Management efforts.
In a typical Software Development Life Cycle the following steps are necessary for Quality Management:
1) Document the Requirements
2) Define and Document Quality Standards
3) Define and Document the Scope of Work
4) Document the Software Created and dependencies
5) Define and Document the Quality Management Plan
6) Define and Document the Test Strategy
7) Create and Document the Test Cases
8) Execute Test Cases and (log) Document the Results
9) Fix Defects and document the fixes
10) Quality Assurance audits the Documents and Test Logs
Various Software Tools have been development for Quality Management. These Tools can help us track Requirements and map Test Cases to the Requirements. They also help in Defect Tracking.
What is Defect Tracking?
This is very important to ensure the Quality of the end Product. As test cases are executed at various levels defects if any are found in the Software being tested. The Defects are logged and data is collected. The Software Development fixes these defects and documents how they were fixed The testing team verifies whether the defect was really fixed and closes the defects. This information is very useful. Proper tracking ensures that all Defects were fixed. The information also helps us for future projects.
The Capability Maturity Model defines various levels of Organization based on the processes that they follow.
The following is true for “Level 0” Organizations -
There are no Processes, tracking mechanisms, no plans. It is left to the developer or any person responsible for Quality to ensure that the product meets expectations.
Level 1 – Performed Informally
The following is true for “Level 1” Organizations –
In Such Organizations, Typically the teams work extra hard to achieve the results. There are no tracking mechanisms, standards defined. The work is done but is informal and not well documented.
Level 2 – Planned and Tracked
The following is true for “Level 2” Organizations –
There are processes within a team and the team can repeat them or follow the processes for all projects that it handles.
However the process is not standardized throughout the Organization. All the teams within the organization do not follow the same standard.
Level 3 – Well-Defined
In “Level 3” Organizations the processes are well defined and followed throughout the organization.
Level 4 – Quantitatively Controlled
In “Level 4” Organizations –
- The processes are well defined and followed throughout the organization
- The Goals are defined and the actual output is measured
- Metrics are collected and future performance can predicted
Level 5 – Continuously Improving
“Level 5” Organizations have well defined processes, which are measured and the organization has a good understanding of IT projects affect the Organizational goals.
The Organization is able to continuously improve its processes based on this understanding.
In this article we studied the Software Quality Management process.