AI in Testing: The third wave of automation
The evolution of agile methodology enforced the enterprises to innovate and deliver at lightning speed. While delivery cycle time is decreasing, the technical complexity required to deliver positive user experience and maintain a competitive edge is increasing—as is the rate at which we need to introduce compelling innovations.
To meet the continuous integration and delivery needs, we have turned to continuous testing backed by automation but how do we test when these trends continue and gaps widen? As this is the time of digital transformation, we need Digital Testing to meet the quality needs of future driven by AI, IoT, robotics and quantum computing.
If we look at how testing practices changed over time, till 2018 it was focused on CI/CD, scalability and continuous testing.
Now the expectations from testing are more about real-time risk assessment. To cope up the testing expectations in current scenarios, Artificial intelligence (AI), imitating intelligent human behavior for machine learning and predictive analytics, can help us get there.
Beyond Continuous Testing
If we analyze the journey since agile came into the picture, it has completely changed the way applications are delivered. Before agile, there used to be a release in a month or sometimes more than a month. With agile companies are aligned to have a two- weeks sprint and make a release in two weeks. To meet this, Continuous Testing came into the picture where automation suits were developed for regression and sanity testing. This supported quick deliveries and fast-paced testing cycles.
Now as the world is moving towards Digital transformation, the pressure to anticipate market requirements and build a system which is predictive and scalable enough to cater to future trends, going beyond continuous testing is inevitable. Testing will need additional assistance to accelerate the process. AI, imitating intelligent human behavior for machine learning and predictive analytics, can help us get there.
What is Artificial Intelligence?
Lets first understand what does artificial intelligence mean. Forrester defines AI as-
“A system, built through coding, business rules, and increasingly self-learning capabilities, that is able to supplement human cognition and activities and interacts with humans natural, but also understands the environment, solves human problems and performs human tasks. “
In simple words, AI enables machines to learn through data giving them the capability to make a decision. The algorithms are not written to solve a particular problem rather they are designed in such a way to enable the system to make a decision based on data.
How AI can be used in software testing?
Using AI and machine learning to automate-
a)Unit tests – Unit testing is very important to make sure that the build is stable and testable. With AI-powered unit test tools like RPA, a developer can get reduce the flaky test cases and maintenance of unit tests.
b)API testing- API testing saves time and effort by getting into the root cause of the issue. The problem with UI tests is that they are not reliable anymore as UI keeps changing in agile, while API tests give a deeper insight into the application and directly hit the root cause of an issue eventually making the application more robust.
There are many tools which are using artificial intelligence to help take the complexity out of API testing by converting manual UI tests into automated API tests, lowering the technical skills required to adopt API testing and helping organizations build a comprehensive API testing strategy that scales.
c) UI testing- The first step in automation is to convert manual UI tests into automated tests. There are tools which leverage AI to run the test cases on multiple platforms and browsers and also learn from the functional flow, reducing the maintenance effort and making testing more reliable.
Some of the most popular tools are mentioned below-
AI Powered testing tools- There are various testing tools which are using AI, though not harnessing the best of AI, they are still able to help testers a lot-
1. Applitools- It is an AI-powered visual testing and monitoring tool that can run tests on different browsers and platforms. It uses AI to identify the meaningful changes in UI and also identify them as bugs/ desired changes.
It also leverages ML/AI-based for automated maintenance (being able to group together similar groups of changes from different pages/browsers/devices)
2. Testim- It leverages machine learning into the most critical part of automation which is execution and maintenance of tests.
3. Sealights- Sealights uses AI and machine learning to analyze the code and run tests which cover the impacted area. It can be any kind of test- unit, functional, performance, manual, etc.
It provides a useful insight ‘Quality Risks’ which focuses user efforts on the things that matter by letting him or she knows exactly which files/methods/lines have changed in the last build that wasn’t tested by a specific test type (or any test type).
4. Test.AI- Test.AI is building as a tool that will add an AI brain to Selenium and Appium. It was created by Jason Arbon, co-author of How Google Tests Software and the founder of Appdiff. Tests are defined in a simple format similar to the BDD syntax of Cucumber, so it requires no code and no need to mess with element identifiers.
- AI just like a real person, IDENTIFIES the screens and elements in your app.
- AI EXECUTES user scenarios—test on-demand whenever you’re ready
- AI RECOGNIZES elements so that even if things change, your test doesn’t break.
5. MABL- Like the other AI-based test automation tools, MABL can automatically detect whether elements of your application have changed, and dynamically updates the tests to compensate for those changes. You just need to show the workflow that has to be tested and MABL does the rest.
6. Retest- Retest propagates an innovative testing approach, which is a combination of “intelligent” monkey testing and “difference testing” and works actually more like a GUI version management than conventional testing.
This tool does Monkey testing whereby the monkey( is called Surili) is artificially intelligent and can be trained by users by capturing user actions.
7. ReportPortal- ReportPortal, as the name suggests, is an AI-powered automation tool which focuses more on report analysis and management. As per its website it-
- Manage all your automation results and reports in one place
- Make automation results analysis actionable & collaborative
- Establish fast traceability with defect management
- Accelerate routine results analysis
- Visualize metrics and analytics
- Make smarter decisions together
8. Functionlize- Functionlize provides an overall solution for seamless automation with less/no efforts in maintenance all with the help of AI. Its AEA tool finds and fixes the broken test scripts thus eliminating the manual maintenance.
Functionize uses machine learning for functional testing and is very similar to other tools in the market regarding its capabilities such as being able to create tests quickly (without scripts), execute multiple tests in minutes, and carry out in-depth analyses.
It also gives scalability to test suites by maintaining them in the functionlize test cloud.
Challenges of AI in Testing
The machine learning process is completely dependant on the data thus leading to a large volume of the dataset. AI model test scenarios should be equipped to identify and remove human bias which often becomes part of training and testing datasets.
There is a lack of awareness about AI and Machine Learning process and proper training is required to the testers.
AI in 2019 and beyond
As we have progressed from a linear waterfall model to agile, the future is all about AI and machine learning technologies. As a tester, we need to be upfront and start digging more about the various aspects of AI, take the hands-on in AI-powered tools and utilize them.
There are so many places where AI has already paved its way whether it be chatbots or Amazon’s Alexa, we need to be very keen about how we are going to the device out test cases to test such applications and deliver quickly.
With the increasing demand of AI-powered testing tools, testers might need training at earliest. Having advance knowledge of AI and its applications will be very helpful.
Published on Java Code Geeks with permission by Arun Kulkarni, partner at our JCG program. See the original article here: AI in Testing: The third wave of automation Opinions expressed by Java Code Geeks contributors are their own. |