Software Quality Assurance In Software Engineering
- Software quality product is defined in terms of their fitness of purpose.
- That a quality product does precisely what the users want it to do.
- For software products, the fitness of use is generally explained in terms of satisfaction with the requirements.
Consider a functionally correct software product. That is, it performs all tasks as specified in the software requirement specification (SRS) document. But, has an almost unusable user interface. Even though it may be functionally right, we cannot consider it to be a quality product.
Quality Assurance and Quality Control
What is Quality Assurance (QA)?
- Assurance is nothing but a positive declaration of a product or service.
- It provides a guarantee that the product will work without any problems as per the expectations or requirements.
- Mostly related to the process and checking that client expectation is met properly or not.
What is Quality control (QC)?
- Quality control is popularly abbreviated as QC.
- It is a Software Engineering process used to ensure the quality of a product or a service.
- It examines the quality of the “end products” and the final outcome.
- The main aim of total quality control is to check whether the products meet the specifications and requirements of the customer.
- If an issue or problem or bug is identified, it needs to be fixed before delivery to the customer.
Difference between Quality Assurance and Quality Control?
- Sometimes, Quality Assurance is confused with quality control. Statistical quality control is to examine the product or service and check for the result.
- Quality Assurance in Software Engineering is to examine the processes and make changes to the processes which led to the end product.
Quality Assurance vs Quality Control
Software Quality Assurance (QA) Complete Process
Quality Assurance methodology has a defined cycle called the PDCA cycle or Deming cycle.
The phases of this cycle are:
Let’s look into the above Quality Assurance Process steps in detail:
Plan: The organization should plan and establish the process-related objectives and determine the processes that are required to deliver a high-Quality end product.
Do: Development and testing of Processes and also “do” changes in the processes
Check: Monitoring of processes, modifying the processes, and checking whether it meets the defined objectives or not.
Act: A Quality Assurance tester should implement actions that are necessary to achieve improvements in the processes
An organization must use Quality Assurance to ensure that the product is designed and implemented with the correct procedures.
This helps reduce problems and errors, in the final product.
Quality Assurance Certifications:
There are several certifications available in the industry to ensure that Organizations follow Standards and Quality Processes. Customers make this qualifying criterion while selecting a software vendor.
The Capability Maturity Model Integrated (CMMI) is a process improvement approach developed especially for software process improvement.
This model is widely used in Software Development Organizations.
CMMI has 5 levels.
An organization is certified at CMMI levels 1 to 5 based on the maturity of its Quality Assurance Mechanisms.
- Level 1 – Initial: In this stage the quality environment is unstable. Simply, no processes have been followed or documented
- Level 2 – Repeatable: Some processes are followed which are repeatable. This level ensures processes are followed at the project level.
- Level 3 – Defined: Set of processes is defined and documented at the organizational level. Those defined processes are subject to some degree of improvement.
- Level 4 – Managed: This level uses process metrics and effectively controls the processes that are followed.
- Level 5 – Optimizing: This level focuses on the continuous improvements of the processes through learning & innovation.