{"about":{"site":"https://codewithpapers.app","non_affiliation":"Code with Papers and Syntology are not affiliated with, endorsed by, or sponsored by Papers with Code, Meta, or the pwc-archive mirror.","licence":"CC BY-SA 4.0","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","attribution":"https://codewithpapers.app/attribution","modified":"archive material modified by Syntology; see the attribution page"},"url":"/paper/reinforcement-learning-for-automatic-test","title":"Reinforcement Learning for Automatic Test Case Prioritization and Selection in Continuous Integration","arxiv_id":"1811.04122","date":"2018-11-09","proceeding":null,"authors":["Helge Spieker","Arnaud Gotlieb","Dusica Marijan","Morten Mossige"],"abstract":"Testing in Continuous Integration (CI) involves test case prioritization,\nselection, and execution at each cycle. Selecting the most promising test cases\nto detect bugs is hard if there are uncertainties on the impact of committed\ncode changes or, if traceability links between code and tests are not\navailable. This paper introduces Retecs, a new method for automatically\nlearning test case selection and prioritization in CI with the goal to minimize\nthe round-trip time between code commits and developer feedback on failed test\ncases. The Retecs method uses reinforcement learning to select and prioritize\ntest cases according to their duration, previous last execution and failure\nhistory. In a constantly changing environment, where new test cases are created\nand obsolete test cases are deleted, the Retecs method learns to prioritize\nerror-prone test cases higher under guidance of a reward function and by\nobserving previous CI cycles. By applying Retecs on data extracted from three\nindustrial case studies, we show for the first time that reinforcement learning\nenables fruitful automatic adaptive test case selection and prioritization in\nCI and regression testing.","url_abs":"http://arxiv.org/abs/1811.04122v1","url_pdf":"http://arxiv.org/pdf/1811.04122v1.pdf","source":{"archive":"pwc-archive (Hugging Face), CC BY-SA 4.0","snapshot":"2025-07-28","licence_url":"https://creativecommons.org/licenses/by-sa/4.0/legalcode","row_kind":"abstracts"},"code_links":[{"paper_slug":"reinforcement-learning-for-automatic-test","repo_url":"https://bitbucket.org/helges/retecs","is_official":1,"mentioned_in_paper":1,"mentioned_in_github":0,"framework":"none","reach":null},{"paper_slug":"reinforcement-learning-for-automatic-test","repo_url":"https://github.com/codeslord/RLforATCP","is_official":0,"mentioned_in_paper":0,"mentioned_in_github":0,"framework":"none","reach":null}],"tasks":[{"task_slug":"reinforcement-learning","task_name":"Reinforcement Learning"},{"task_slug":"reinforcement-learning-1","task_name":"Reinforcement Learning (RL)"},{"task_slug":"reinforcement-learning-2","task_name":"reinforcement-learning"}],"methods":[],"datasets_introduced":[],"methods_introduced":[],"results":[],"syntology":{"atlas_url":null,"mcp":null,"developers":"https://syntology.ai/developers"},"arxiv_metadata":null,"syntology_extracted_results":null}