Here’s the hard truth about traditional software test automation: It requires significant manual effort. It sounds counter-intuitive, but it’s true. There is a considerable amount of human intervention involved in what are considered “automated” software testing processes.
In the O’Reilly Media report, AI-Driven Testing: Bridging the Software Automation Gap, author and chief scientist, Tariq King, describes the current “rift” between manual and automated testing. King argues that the best way to close this gap is to use artificial intelligence (AI) in your approach to test generation and execution.
1. Testing is more than checking.
A simple statement, but I think it’s a really important point to make. When we think of test automation, we often think of test execution. However, there is more than that. Testing, when done well, is all about learning, experimenting, troubleshooting, trial and error, observation, extrapolation – you get the picture. These are complex and highly cognitive tasks that typically require a human tester to perform manually.
This is where the AI comes in. Advances in AI and Machine Learning (ML) technologies have made it possible to optimize repetitive tasks, perform bug hunting and monitor changes – which brings me to the next takeaway…
2. AI can test things we previously thought were subjective.
A common obstacle on the path to automation is the inability of machines to handle some of the nuances of human perception. For user interface (UI) design in particular, most developer requirements are qualitative in nature. Attributes such as usability, accessibility, and reliability can all fall into this category.
However, AI has shown us that machines are capable of modeling patterns, workflows, and tasks, including UI design testing. AI can test user interfaces, services and lower-level components and can assess the functionality, performance, design, accessibility and reliability of applications.
3. AI-based test automation requires very little maintenance for visual updates and redesigns.
The purpose of functional UI testing is simply to find out how it sounds – to confirm the functionality of an application’s UI. For most web and mobile apps, functional UI testing can be challenging when using testing frameworks that rely on the Document Object Model (DOM). DOM-based element selectors make testing susceptible to breakage because the structure and behavior of the UI changes with each update.
AI, and more specifically a branch of AI known as intelligent computer vision, gives us the new ability to perceive and test anything with a screen. Using image-based analysis, AI robots recognize what appears on an application screen regardless of how it is implemented. Without the need for DOM-based parsing, UI design changes don’t result in excessive test script maintenance.
4. AI-based test automation will increase both the level of coverage and the speed of testing.
Traditional approaches to test automation involve manually creating test cases for each new feature or application. This can take weeks or even months, and creating test cases manually has a high level of risk. As King states in the report, “Over time, the test coverage required to validate the quality of your software product deviates from the engineering team’s ability to design and write test scripts to this one.” Essentially, software complexity is growing faster than test automation can keep up.
AI-based testing essentially closes this gap between software complexity and test automation. This is especially beneficial in the enterprise space, where modern business applications require end-to-end testing and time-to-market cycles are continually shrinking.
5. AI-based test automation is not a thing of the future; it’s already there.
We once thought that tasks such as voice and image recognition, driving, and even composing music were impossible for a machine to perform. But we are already seeing this kind of automation today. It should therefore not surprise you to know that we are currently training AI robots to perceive, explore, model and test software functionality.
With all the activity and buzz around AI for software testing, we are at the start of a new era of test automation. AI testing enables testers, developers, and all software professionals to overcome challenges once considered insurmountable.
For a comprehensive overview of the growing role AI is playing in software test automation, I highly recommend downloading O’Reilly’s report, AI-Driven Testing: Bridging the Software Automation Gap.