One of the most exciting areas in quality assurance (QA) at the moment is the potential impact of machine learning and artificial intelligence. We’re starting to ask the question, what if software could learn to test itself? What if software could automatically track down and eliminate bugs?
This is not just fanciful thinking. The 2016-2017 World Quality Report (registration required) states: “We believe that the most important solution to overcome increasing QA and testing challenges will be the emerging introduction of machine-based intelligence. This will be the next big wave of change after the introduction of risk-based test strategies and test automation technologies.”
Research by Forrester argues testing is currently the “most popular phase of the software delivery life cycle in which to apply AI.” In a survey we conducted at Belatrix, 81% of business and technology professionals (registration required) said machine learning will have some or significant impact on their organizations within five years.
AI-Enabled Testing is the natural step after automation.
We’re seeing a gradual evolution from manual testing to automated, to AI-enabled testing. We can trace this development:
• Manual testing still has a core role to play: Testing started with and continues to rely on manual testing. No software has been produced without bugs. Even today with all the tools available, manual testing remains a part of testing strategies, particularly for ensuring high-quality user experiences.
• As software became more complex, automation comes to the fore: Test automation is a mature approach. In many cases it represents the only realistic option — the only way to run large numbers of test cases with different scenarios and complete regression on time. It provides greater efficiency, finding a large number of defects with less effort and time.
The future will see AI-enabled testing: Automation is becoming “smarter” by using huge quantities of data to effectively use machine learning and AI. We’re seeing AI-enabled testing, for example, with visual verification or with the use of basic bots to tap and swipe through applications and measure performance. We will see AI play a role with automatic code reviews, improved security via vulnerability assessments and automatically generated test cases. QA engineers feed algorithms with historical data to increase detection rates. Machine learning can also be used to provide real-time feedback on application performance, adjusting automatically.
Despite the rise of AI, quality assurance engineers should not fear for their jobs.
There are basic testing services available on the market that use machine learning to test mobile applications, such as Eggplant AI. These tools are useful for finding errors in your applications — the engine behind the automation solution generates new test paths through the application. What we will have are web apps that use learning algorithms to auto-generate test cases. However, it’s important to note that what you’re getting is a level of testing occurring at the end of the product development lifecycle.
The challenge is that if companies decide to solely take this route, they miss out on the tremendous value that highly qualified QA engineers can provide, from security and risk management, assessing scalability and performance, documentation management, process assurance such as regulatory compliance and tracking key metrics.
QA engineers can use AI to become better.
While AI will not make testers redundant, QA engineers will be amiss if they are not familiar with AI and how it can help them create better software. AI won’t just help to identify bugs faster, but also help decide what needs to be tested, or where bugs are likely to be found. For example, if manual testers use learning algorithms to create test cases, more user experiences can be tested, including those that human testers wouldn’t dream up.
My belief is that machine learning will actually increase our need for highly qualified, specialized QA experts. This is because the algorithms’ underlying software will be making decisions based on the data they receive and then make a decision. The potential variables increase. How will the QA engineer know what is the right result?
Imagine the future of testing based on self-learning patterns.
When thinking about what the future has in store, it is worth turning to discuss neural networks and recent advances that scientists have made. Neural networks, while trainable, don’t necessarily learn from experience. You have to put them in “learning mode.” However, AI scientists have come up with “generative adversarial networks” or GANs, which are essentially neural networks, that spar against each other to get better and “learn” from each other. Now imagine a world where there are different neural networks testing and learning all the time that compete to break software systems and find security holes. It is a step closer to unsupervised learning and would represent a revolution in building and testing software.
So if you are a developer and you think you have it safe, think again — you will also be impacted in some ways. And just to see what this will look like, look at the work some individuals are doing on recurrent neural networks (RNNs): One expert was able to feed President Obama’s speeches to a RNN, and the network now produces text that “sounds” like Obama. But even scarier, he fed the Linux source code to it and it now produces well-structured C code (although it doesn’t compile, you could imagine a supervising neural network running multiples of these and promoting the ones that produce code that compiles in an evolutionary way, so that at some point the neural network is producing code that actually compiles).
AI-enabled testing will be essential in the digital age.
As organizations look to continuous delivery and businesses require faster software development, AI-enabled testing will become a core part of QA. It will be the only way to ensure quality in the digital age. However, we will still need human testers because humans understand what other humans need, and machines are still a long way from developing “common sense.” We’re still going to need creative, highly qualified QA engineers to apply their insights throughout the product development lifecycle.