Bringing AI to Automated Testing
Artificial intelligence and machine learning will be necessary for automated testing to keep pace with software development and deployment.
Join the DZone community and get the full member experience.Join For Free
As the complexity of software continues to increase and as release delivery cycles shorten, testers need to provide quality feedback to developers nearly instantaneously. In this age of continuous testing, companies are adopting a new mantra: test smarter, not harder. There’s simply no other choice, given the pace of new software launches. Today, releases that happened once a month now happen on a week weekly basis and updates are often made several times a day.
I spoke with Gerd Weishaar, Chief Product Officer at Tricentis, who says the key to making software testing smarter and more efficient is artificial intelligence (AI). By incorporating machines that can accurately imitate human behavior, testers can move beyond traditional, manual testing models and toward automated, precision-based continuous testing.
Tricentis has been pairing AI deep learning with continuous testing for more than a year, and according to Gerd, Tricentis’ continuous testing platform can optically recognize changed controls more accurately than a human, and with ever-improving algorithms, even the slightest changes are able to be seen.
AI is being used in object application categorization for all user interfaces (UI) within test automation. Recognized controls are categorized when you create tools. Users can pre-train controls commonly seen for out-of-the-box setup. Other algorithms are needed for optical character recognition (OCR). Once you see the hierarchy of controls, you are able to create a technical map so the AI is looking at the GUI to obtain a label for the control.
According to Gerd, it takes a while to see positive results with learning algorithms. What’s more promising is a human user and machine learning from the business using deep learning to distill core transactions. Tricentis has successfully used this methodology with a partner in information systems companies for SAP monitoring and testing to observe information on the user side, log cases, and create custom-made cases without human interaction.
Testing is all about verification of results. You need access to test data. Google DeepMind created an artificial intelligence program using deep reinforcement learning to play video games by itself, thereby generating plenty of test data.
In the future, AI will be able to observe users in the testing site performing exploratory testing using the human brain to identify the application being tested. This will bring business users into testing. Customers will be able to fully automate test cases.
By monitoring user behavior, you can monitor, categorize, and assign a risk preference. This data is a classic case for automated testing to learn and look for anomalies. Heat maps will help see bottlenecks in the process and help determine which tests you need to conduct. There is flakiness in classic data analysis. Gerd recommends testers look for redundant test cases that can be eliminated and manual tests that can be replaced with automation, so humans can focus more on making data-driven connections and decisions.
Gerd also noted that when automated testing goes to the cloud, customer A will be able to learn from customer B while all of their data remains segregated and secure. Deep in the core, repository tests are highly linked with one another, giving every relationship a data point. AI neural networks have hundreds of parameters and become stronger as more data is added.
Risk-based test automation helps users determine which tests to run to get the greatest coverage when there is a limited amount of time to test. By adding AI to test creation, execution, and data analysis, testers can more quickly identify controls, spot links between defects and other components, and eliminate the need to constantly update test cases by manual means.
Opinions expressed by DZone contributors are their own.