Reinforcement Learning Reward Function for Test Case Prioritization in Continuous Integration

Hajar Mirzaei, Mohammad Reza Keyvanpour · 2022

Given that software systems are constantly changing at a fast rate during the software development process, Continuous integration testing that a cost-effective software development practice is characterized by constantly evolving test cases, rapid return, and limited performance time. Regression test is performed after any change in the software, so we must seek to optimize the regression test methods. One of the methods that have attracted a lot of attention today is the prioritization of the test using reinforcement learning. The purpose of this study was to survey and compare reinforcement learning reward functions, which are used to test case prioritization. We divided these reward functions into two categories: reward functions that depend on current information and reward functions which depend on historical information. The current information based reward functions rely only on the information of a previous implementation and the historical information-based reward functions rely on the whole information of the past. Each of these functions has the strengths and weaknesses that we have discussed in this study. Among the reward functions of these two categories, the HFCW reward function has better performance both in terms of fault detection and usage time. Keywords— Continuous integration, Test case prioritization, Machine learning, Reinforcement learning, Reward function

Read the paper · More papers on PaperTik