Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration
Helge Spieker, Arnaud Gotlieb, Dusica Marijan, Morten Mossige

TL;DR
This paper presents Retecs, a reinforcement learning-based method that automatically prioritizes and selects test cases in continuous integration to reduce feedback time and improve bug detection efficiency.
Contribution
It introduces Retecs, the first reinforcement learning approach for adaptive test case prioritization and selection in CI environments, handling dynamic test suites.
Findings
Retecs effectively prioritizes error-prone test cases in industrial settings.
Reinforcement learning improves test efficiency and reduces feedback time.
The method adapts to changing test environments over multiple CI cycles.
Abstract
Testing in Continuous Integration (CI) involves test case prioritization, selection, and execution at each cycle. Selecting the most promising test cases to detect bugs is hard if there are uncertainties on the impact of committed code changes or, if traceability links between code and tests are not available. This paper introduces Retecs, a new method for automatically learning test case selection and prioritization in CI with the goal to minimize the round-trip time between code commits and developer feedback on failed test cases. The Retecs method uses reinforcement learning to select and prioritize test cases according to their duration, previous last execution and failure history. In a constantly changing environment, where new test cases are created and obsolete test cases are deleted, the Retecs method learns to prioritize error-prone test cases higher under guidance of a reward…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Engineering Research · Software Testing and Debugging Techniques · Software Reliability and Analysis Research
