Software Testing Quality Assurance - Quality of Software Testing
Software Testing Quality Assurance
Quality
- Quality is: “Fit for use or purpose”.
- Meeting the customer needs and expectations like functionality, design, reliability, durability and price of the product is termed as quality.
Assurance
- A positive declaration of a product or service, that gives confidence about a product is assurance.
- Assurance is a certainity that a product or service will work well without any problems as per the expectations or requirements.
Quality Assurance in Software Testing
- Procedure to ensure that quality of software products or services provided to the customers by an organisation is called Quality Assurance.
- The important focus of quality assurance is to improve the software development process and make it more effecient and effective as per the quality standards.
![Quality Assurance in Software Testing](https://wikitechy.com/cdn/tutorial/software-testing/software-testing-quality.jpg)
Quality Assurance in Software Testing
How to do Quality Assurance: Complete Process
- Quality assurane has a defined methodology cycle called PDCA cycle or Deming Cycle.
- The phases of the cycle are:
- Plan
- Do
- Check
- Act
- These above steps are repeated to ensure that processes followed in the organization are evaluated and improved on a periodic basis.
![PDCA cycle](https://wikitechy.com/cdn/tutorial/software-testing/pdca.jpg)
PDCA cycle
Plan
- Process related objectives and determine the processes that are required for delivering a high quality end product should be planned by organization.
Do
- Development and testing of Processes and also “do” changes in the processes
Check
- Process should be modified and monitored to check whether it meets the objectives.
Act
- Certain actions need to be implemented by the QA tester to achieve improvements in the processes.
Quality Control
- Quality control is popularly known as QC.
- It is a process in software engineering which is used to ensure the quality in a product or service.
- Processes used to create product are not dealt by QC. It determines the quality of end or finished products and their final outcomes.
- QC is done on the end products to check if the product meets the specifications and requirements of the customer.
- If any issues or problem is found in QC, it needs to be fixed before delivering it to the customer.
- Qc also checks the skill levels of the people and provides training and certifications.
- This evaluation is required for the service based organization and helps provide “perfect” service to the customers.
![Quality Control](https://wikitechy.com/cdn/tutorial/software-testing/quality-control.jpg)
Quality Control
Difference between Quality Control and Quality Assurance
- Qc examines the product or service and check for the result.
- QA in software engineering checks the processes and make changes to the processes which leads to the end product.
![QC vs QA](https://wikitechy.com/cdn/tutorial/software-testing/qc-vs-qa.jpg)
QC vs QA
Best practices for Quality Assurance
- Robust testing environment can be created.
- Release criteria should be selected carefully.
- For high risk areas automation testing can be applied to save money and will fasten the entire process.
- Time should be allocated appropriately for each process
- Based on software usage bugs fixes should be prioritized.
- Dedicated security and performance testing team should be formed.
- Similar to the production environment customer accounts need to be simulated.
![Best practices for Quality Assurance](https://wikitechy.com/cdn/tutorial/software-testing/qa-best-practices.jpg)
Best practices for Quality Assurance
Quality Assurance Functions
- There are 5 primary Quality Assurance Functions:
- Technology transfer
- This process involves getting a product design document and data and its evaluation is done on error and trial.
- Checked and approved documents are distributed within the team.
- Validation
- Here entire system is prepared for validation by validation master.
- Validating product and process is set and approved for test criteria. Resource planning for execution of a validation plan is done.
- Documentation
- Distribution and archiving of documents is controlled in this function.
- Proper change control procedure is followed for any changes in the document. Approval of all types of documents.
- Assuring Quality of products
- Quality improvement plans
CMMI Level
- The capability maturity model integrated approach is developed specially for improvement of software process.
- 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 : Quality environment is not stable in this stage. No process have been followed or documented.
- Level 2 – Repeatable : Repeatble process are followed in this stage and this level ensures that process are followed at the project level.
- Level 3 – Defined : In this level organization sets certain processes which are defined and documented at the origanizational level. These defined processes are subjected 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.
![CMMI Level](https://wikitechy.com/cdn/tutorial/software-testing/cmmi-level.jpg)
CMMI Level
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 : Only adhoc methods are used at this level and there is no quality standard followed for testing processes.
- Level 2 - Definition : Here process is defined.Test strategy,plans,test cases are prepared at this level
- Level 3 - Integration : V model type of testing is followed in this level, which is integration with the development activities and testing is carried out throughout the software development life cycle.
- Level 4 - Management and Measurement : For each level of testing certain criteria has been set and review of requirements and designs takes place at this level
- Level 5 - Optimization : Optimized preventive techniques are used for testing processes. Automation tool is also used for improving the testing standards and processes.
![TMM Model](https://wikitechy.com/cdn/tutorial/software-testing/tmm-model.png)
TMM Model