Machine Learning and Evolutionary Computing for GUI-based Regression Testing

by   Daniel Kraus, et al.

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 without reducing the overall code coverage and performance significantly.


Lasting Diversity and Superior Runtime Guarantees for the (μ+1) Genetic Algorithm

Most evolutionary algorithms (EAs) used in practice employ crossover. In...

Concurrent Pump Scheduling and Storage Level Optimization Using Meta-Models and Evolutionary Algorithms

In spite of the growing computational power offered by the commodity har...

The GA-cal software for the automatic calibration of soil constitutive laws: a tutorial and a user manual

The calibration of an advanced constitutive law for soil is a challengin...

Using Defect Prediction to Improve the Bug Detection Capability of Search-Based Software Testing

Automated test generators, such as search based software testing (SBST) ...

Multi-Objective Search-Based Software Microbenchmark Prioritization

Ensuring that software performance does not degrade after a code change ...

Testability-Aware Low Power Controller Design with Evolutionary Learning

XORNet-based low power controller is a popular technique to reduce circu...

Enhanced image feature coverage: Key-point selection using genetic algorithms

Coverage of image features play an important role in many vision algorit...

Please sign up or login with your details

Forgot password? Click here to reset