Which tests to modify? A history-based test recommender
Abstract
Regression testing is critical for maintaining software quality. Therefore, developers must maintain efficient and effective regression test suites. However, the task can be tedious and challenging, especially in Continuous Integration (CI) where developers frequently change code. With each code change, developers may need first to identify all relevant tests for the code change and then identify specific tests among the relevant tests that need to be modified. This process can reduce developers' productivity if they do this manually. In this paper, we propose a technique and tool, TRec1, that identifies relevant tests for code changes in CI and recommends tests to developers for modifications. We evaluate the effectiveness of TRec by recommending tests for 1,867 developers' modified methods in 493 commits from three open-source Java projects. We find TRec's recommended tests include 3,180 (84.71%) of the 3,754 developers' modified tests for the 1,867 methods.