AI Case Study

ReTest automates testing of Java based software application GUI with 82% accuracy using artificial neural networks and machine learning

ReTest's platform is trained to use software applications like a user and record everything. Once there is a change, the platform tests the system and highlights the differences specifically for regression testing to make sure previously developed components are not affected by the change. The platform uses evolutionary computing, artificial neural networks and machine learning .

Industry

Technology

Software And It Services

Project Overview

ReTest's AI platform tests software applications to detect whether any of the previous components were impacted by the changes. It is trained on using application like a regular user and records everything. The platform detects the changes in the GUI and tests it to verify existing components are working fine.

Reported Results

Reduces the gap between manually created and automatically generated regression tests. The algorithm ranks GUI actions with an accuracy of 82 % based on the knowledge obtained from existing tests.

"ReTest is a novel testing tool for Java applications with a graphical user interface (GUI), combining monkey testing and difference testing. Since this combination sidesteps the oracle problem, it enables the generation of GUI-based regression tests. ReTest makes use of evolutionary computing (EC), particularly a genetic algorithm (GA), to optimize these tests towards code coverage. While this is indeed a desirable goal in terms of software testing and potentially finds many bugs, it lacks one major ingredient: human behavior. Consequently, human testers often find the results less reasonable and difficult to interpret. This thesis proposes a new approach to improve the initial population of the GA with the aid of machine learning (ML), forming an ML-technique enhanced-EC (MLEC) algorithm. In order to do so, existing tests are exploited to extract information on how human testers use the given GUI. The obtained data is then utilized to train an artificial neural network (ANN), which ranks the available GUI actions respectively their underlying GUI components at runtime---reducing the gap between manually created and automatically generated regression tests. Although the approach is implemented on top of ReTest, it can be easily used to guide any form of monkey testing. The results show that with only little training data, the ANN is able to reach an accuracy of 82% and the resulting tests represent an improvement without reducing the overall code coverage and performance significantly."

Technology

Artificial neural network (ANN), genetic algorithm (GA), ML-technique enhancedEC(MLEC), GUI testing, test generation

Function

Information Technology

Devops

Background

Human testers are finding it more and more difficult to keep up with the pace of software changes these days with DevOps culture

Benefits

Data