What is Quality?
Quality is extremely hard to define, and it is simply stated: "Fit for use or purpose." It is all about meeting the needs and expectations of customers with respect to functionality, design, reliability, durability, & price of the product.
What is Assurance?
Assurance is nothing but a positive declaration on a product or service, which gives confidence. It is certainty of a product or a service, which it will work well. It provides a guarantee that the product will work without any problems as per the expectations or requirements.
What is Quality Assurance?
Quality Assurance (QA) is defined as an activity to ensure that an organization is providing the best possible product or service to customers. QA focuses on improving the processes to deliver Quality Products to the customer. An organization has to ensure, that processes are efficient and effective as per the quality standards defined for software products. Quality Assurance is popularly known as QA Testing
What is Quality Control?
Quality control popularly abbreviated as QC. It is a Software Engineering process used to ensure quality in a product or a service. It does not deal with the processes used to create a product; rather it examines the quality of the "end products" and the final outcome.
The main aim of Quality control is to check whether the products meet the specifications and requirements of the customer. If an issue or problem is identified, it needs to be fixed before delivery to the customer.
QC also evaluates people on their quality level skill sets and imparts training and certifications. This evaluation is required for the service based organization and helps provide "perfect" service to the customers.
Best practices for Quality Assurance:
• Create a Robust Testing Environment
• Select release criteria carefully
• Apply automated testing to high-risk areas to save money. It helps to fasten the entire process.
• Allocate Time Appropriately for each process
• It is important to prioritize bugs fixes based on software usage
• Form dedicated security and performance testing team
• Simulate customer accounts similar to a production environment
Quality Assurance Functions:
There are 5 primary Quality Assurance Functions:
1.Technology transfer: This function involves getting a product design document as well as trial and error data and its evaluation. The documents are distributed, checked and approved
2.Validation: Here validation master plan for the entire system is prepared. Approval of test criteria for validating product and process is set. Resource planning for execution of a validation plan is done.
3.Documentation: This function controls the distribution and archiving of documents. Any change in a document is made by adopting the proper change control procedure. Approval of all types of documents.
4.Assuring Quality of products
5.Quality improvement plans
Quality Assurance Certifications:
There are several certifications available in the industry to ensure that Organizations follow Standards Quality Processes. Customers make this as qualifying criteria while selecting a software vendor.
This standard was first established in 1987, and it is related to Quality Management Systems. This helps the organization ensure quality to their customers and other stakeholders. An organization who wishes to be certified as ISO 9000 is audited based on their functions, products, services and their processes. The main objective is to review and verify whether the organization is following the process as expected and check whether existing processes need improvement.
This certification helps -
• Increase the profit of the organization
• Improves Domestic and International trade
• Reduces waste and increase the productivity of the employees
• Provide Excellent customer satisfaction
The Capability Maturity Model Integrated (CMMI) is a process improvement approach developed specially for software process improvement. It is based on the process maturity framework and used as a general aid in business processes in the Software Industry. This model is highly regarded and widely used in Software Development Organizations.
CMMI has 5 levels. An organization is certified at CMMI level 1 to 5 based on the maturity of their 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 are 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.
Test Maturity Model (TMM):
This model assesses the maturity of processes in a Testing Environment. Even this model has 5 levels, defined below-
• Level 1 - Initial: There is no quality standard followed for testing processes and only ad-hoc methods are used at this level
• Level 2 - Definition: Defined process. Preparation of test strategy, plans, test cases are done.
• Level 3 - Integration: Testing is carried out throughout the software development lifecycle (SDLC) - which is nothing but integration with the development activities, E.g., V- Model.
• Level 4 - Management and Measurement: Review of requirements and designs takes place at this level and criteria has been set for each level of testing
• Level 5 - Optimization: Many preventive techniques are used for testing processes, and tool support(Automation) is used to improve the testing standards and processes.
Quality Assurance is to check whether the product developed is fit for use. For that, Organization should have processes and standards to be followed which need to be improved on a periodic basis. It concentrates mainly on the quality of product/service that we are providing to the customers during or after implementation of software.