Quality assurance (QA) plays a critical role in the software development process. A good QA process protects a company’s reputation, keeps its development costs low and customer satisfaction high. However, there are numerous time-intensive and manual QA tasks which slow down QA teams and keep QA costs high. Artificial intelligence is enabling autonomous tools for time-consuming QA tasks.
What is quality assurance?
Quality Assurance is a set of methods and activities designed to ensure that software meets expected specifications or standards. These predefined standards can be one or a combination of ISO 9000, CMMI model, ISO15504, etc. The main aim of QA is to find ways to prevent possible bugs in the process of software development through comprehensive testing. Bugs that are found and fixed early are less costly.
Quality assurance focuses on five quality characteristics:
- Functionality: Examines the functionality of the software, potential security vulnerabilities and integration issues
- Reliability: Software’s ability to continue operating correctly and consistently under challenging conditions
- Usability: Ease-of-use of the software
- Efficiency: The quality assurance teams need to make sure that architecture and coding practices of the software are well designed. The whole software system should be able to operate under the resource constraints it can face in production environments.
- Maintainability: Ease of maintenance, taking into account how future proof the software architecture is.
Why is Quality Assurance important now?
Leading companies in every industry from Goldman Sachs to Walmart claim to be technology companies. Today’s technology from biotech to nano-tech is inseparable from software and software quality is dependent on QA. Companies in all industries need to pay attention to their QA process and ensure that they have a best practice software development process.
What are the benefits of QA?
An effective QA process
- improves customer satisfaction and protects a company’s reputation
- reduces software development cost as early discovery of bugs reduces debugging efforts
How is AI changing QA?
Companies can not afford to hold back releases due to QA. Releasing software fast enables companies to fix bugs faster and make customers happier. Machine learning techniques are being used to reduce the time consuming aspects of QA to enable faster releases.
For example, during the testing process with artificial intelligence, changes on the software can be monitored and proper tests can be suggested by the AI powered QA tools. This results with less time spent to select test methods, saving developer time.
Test selection & design
A Facebook QA team has developed a method based on machine learning aims to select regression tests for code changes. This method develops an automated test selection strategy by reviewing code changes and running small test subsets. Model learns from the results, uncovering bugs faster over time.
Netflix has developed a library called Lerner that plans test scenarios using a series of micro services and scalable agents. A code change may trigger hundreds of time consuming test scenarios. Lerner, using a reinforcement learning approach, suggests tests cases to prioritize which leads faster discovery of bugs, dramatically reducing overall test time.
Infosys Pandit is another software example that relies on machine learning to optimize testing scenarios and automate testing.
Detection of GUI defects
RPA and ITPA techniques and tools are used to automate traditional testing activities. For example, bots are built to automate user interface tests of new devices (e.g. smartwatches, smartphones), new web and mobile applications. These bots ensure that consistency of the UI is continuously and automatically checked.
A research group in eBay has developed a faster and more effective method than traditional automated and manual tests using convolutional neural networks. This team used ML to detect abstract components such as images, shapes, text and extract these components and their respective positions. This helped to identify the GUI defects across multiple operating systems, devices, screen resolutions, and browsers.
If you have questions about how Quality Assurance is important for your business, we can help:
How can we do better?
Your feedback is valuable. We will do our best to improve our work based on it.