Visible to the public An Extensive Study of Static Regression Test Selection in Modern Software Evolution

TitleAn Extensive Study of Static Regression Test Selection in Modern Software Evolution
Publication TypeConference Paper
Year of Publication2016
AuthorsLegunsen, Owolabi, Hariri, Farah, Shi, August, Lu, Yafeng, Zhang, Lingming, Marinov, Darko
Conference NameProceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering
PublisherACM
Conference LocationNew York, NY, USA
ISBN Number978-1-4503-4218-6
Keywordsclass firewall, composability, Human Behavior, pubcrawl, regression test selection, Resiliency, static analysis, static code analysis
Abstract

Regression test selection (RTS) aims to reduce regression testing time by only re-running the tests affected by code changes. Prior research on RTS can be broadly split into dy namic and static techniques. A recently developed dynamic RTS technique called Ekstazi is gaining some adoption in practice, and its evaluation shows that selecting tests at a coarser, class-level granularity provides better results than selecting tests at a finer, method-level granularity. As dynamic RTS is gaining adoption, it is timely to also evaluate static RTS techniques, some of which were proposed over three decades ago but not extensively evaluated on modern software projects. This paper presents the first extensive study that evaluates the performance benefits of static RTS techniques and their safety; a technique is safe if it selects to run all tests that may be affected by code changes. We implemented two static RTS techniques, one class-level and one method-level, and compare several variants of these techniques. We also compare these static RTS techniques against Ekstazi, a state-of-the-art, class-level, dynamic RTS technique. The experimental results on 985 revisions of 22 open-source projects show that the class-level static RTS technique is comparable to Ekstazi, with similar performance benefits, but at the risk of being unsafe sometimes. In contrast, the method-level static RTS technique performs rather poorly.

URLhttp://doi.acm.org/10.1145/2950290.2950361
DOI10.1145/2950290.2950361
Citation Keylegunsen_extensive_2016