In Continuous Integration (CI) environments, the productivity of software engineers depends strongly on the ability to reduce the round-trip time between code commits and feedback on failed test cases. Test case prioritization is popularly used as an optimization mechanism for ranking tests by their likelihood in revealing failures. However, existing techniques are usually time and resource intensive making them not suitable to be applied within CI cycles. This paper formulates the test case prioritization problem as an online learn-to-rank model using reinforcement learning techniques. Our approach minimizes the testing overhead and continuously adapts to the changing environment as new code and new test cases are added in each CI cycle. We validated our approach on an industrial case study showing that over 95% of the test failures are still reported back to the software engineers while only 40% of the total available test cases are being executed.
Mon 9 MayDisplayed time zone: Eastern Time (US & Canada) change
04:45 - 06:00 | Session 2SBST at SBST room Chair(s): Giovani Guizzo University College London, Sebastiano Panichella Zurich University of Applied Sciences | ||
04:45 45mTutorial | Learning and Refining Input Grammars for Effective Fuzzing SBST Rahul Gopinath CISPA, Germany | ||
05:30 15mTalk | Learning to Rank for Test Case Prioritization SBST | ||
05:45 10mTalk | Wasserstein Generative Adversarial Networks for Online Test Generation for Cyber Physical Systems SBST Jarkko Peltomäki Åbo Akademi University, Frankie Spencer Åbo Akademi University, Ivan Porres Åbo Akademi University |