A Comparison of Reinforcement Learning Frameworks for Software Testing Tasks

Software testing activities aim to find the possible defects of a software product and ensure that the product meets its expected requirements. Some software testing approached are lacking automation or are partly automated which increases the testing time and overall software testing costs. Recently, Reinforcement Learning (RL) has been successfully employed in complex testing tasks such as game testing, regression testing, and test case prioritization to automate the process and provide continuous adaptation. Practitioners can employ RL by implementing from scratch an RL algorithm or use an RL framework. Developers have widely used these frameworks to solve problems in various domains including software testing. However, to the best of our knowledge, there is no study that empirically evaluates the effectiveness and performance of pre-implemented algorithms in RL frameworks. In this paper, we empirically investigate the applications of carefully selected RL algorithms on two important software testing tasks: test case prioritization in the context of Continuous Integration (CI) and game testing. For the game testing task, we conduct experiments on a simple game and use RL algorithms to explore the game to detect bugs. Results show that some of the selected RL frameworks such as Tensorforce outperform recent approaches in the literature. To prioritize test cases, we run experiments on a CI environment where RL algorithms from different frameworks are used to rank the test cases. Our results show that the performance difference between pre-implemented algorithms in some cases is considerable, motivating further investigation. Moreover, empirical evaluations on some benchmark problems are recommended for researchers looking to select RL frameworks, to make sure that RL algorithms perform as intended.

READ FULL TEXT
research
11/03/2020

Reinforcement Learning for Test Case Prioritization

Continuous Integration (CI) significantly reduces integration problems, ...
research
01/18/2022

Using Reinforcement Learning for Load Testing of Video Games

Different from what happens for most types of software systems, testing ...
research
07/16/2020

DRIFT: Deep Reinforcement Learning for Functional Software Testing

Efficient software testing is essential for productive software developm...
research
05/02/2023

Validation of massively-parallel adaptive testing using dynamic control matching

A/B testing is a widely-used paradigm within marketing optimization beca...
research
07/25/2022

Differential testing for machine learning: an analysis for classification algorithms beyond deep learning

Context: Differential testing is a useful approach that uses different i...
research
07/03/2020

Strategies for Using Proximal Policy Optimization in Mobile Puzzle Games

While traditionally a labour intensive task, the testing of game content...
research
06/19/2023

AdaStop: sequential testing for efficient and reliable comparisons of Deep RL Agents

The reproducibility of many experimental results in Deep Reinforcement L...

Please sign up or login with your details

Forgot password? Click here to reset