What Why How – Quality Assurance Testing
What is Quality Assurance Testing?
Quality Assurance (QAT) is a subset of the SQA process that uses metrics to determine the overall quality of a software product, from development through to user experience. QAT ensures the optimal testing methodologies, feedback loops and development processes are used for the required product deliverables.
Why is QAT important?
SQA is a collective responsibility. Every person, team and department involved in the software development lifecycle (SDLC) is responsible for one or more facets of SQA, including testers. By working together, product owners, software developers, testers and even customers share and develop ideas about how the software should look, feel and work, which ultimately ensures the best overall product quality is maintained.
Testing of and by itself can only provide a limited view of the robustness and performance of the product. But as part of the SQA process, QAT is a more holistic function, taking into account the type of products in development, expected time to market, and also input from various stakeholders involved in the project.
The benefits of QAT include better quality control, risk mitigation, and cost reduction, resulting in improved customer confidence in the product.
How is SQA testing done?
A SQA Analyst typically creates a test strategy best suited for the type of product in development. This generally includes:
- Drawing up a requirements list with the customer and determining what needs to be tested;
- Determining the type of testing best suited for the product, usually a combination of manual testing and test automation, along with additional requirements such as regression, exploratory testing and performance testing;
- Determining where and how often testing needs to be done, for instance at the unit, API or UI level;
- Separating functional defects from environmental factors, and determining what level of functional and/or user acceptance testing is required for each product;
- Working together with software development teams using SDLC tools such as defect tracking and SQA management software; and
- Assisting with software release schedules and product user guides as required.