English

Efficient Incremental Code Coverage Analysis for Regression Test Suites

Software Engineering 2024-10-30 v1

Abstract

Code coverage analysis has been widely adopted in the continuous integration of open-source and industry software repositories to monitor the adequacy of regression test suites. However, computing code coverage can be costly, introducing significant overhead during test execution. Plus, re-collecting code coverage for the entire test suite is usually unnecessary when only a part of the coverage data is affected by code changes. While regression test selection (RTS) techniques exist to select a subset of tests whose behaviors may be affected by code changes, they are not compatible with code coverage analysis techniques -- that is, simply executing RTS-selected tests leads to incorrect code coverage results. In this paper, we present the first incremental code coverage analysis technique, which speeds up code coverage analysis by executing a minimal subset of tests to update the coverage data affected by code changes. We implement our technique in a tool dubbed iJaCoCo, which builds on Ekstazi and JaCoCo -- the state-of-the-art RTS and code coverage analysis tools for Java. We evaluate iJaCoCo on 1,122 versions from 22 open-source repositories and show that iJaCoCo can speed up code coverage analysis time by an average of 1.86x and up to 8.20x compared to JaCoCo.

Keywords

Cite

@article{arxiv.2410.21798,
  title  = {Efficient Incremental Code Coverage Analysis for Regression Test Suites},
  author = {Jiale Amber Wang and Kaiyuan Wang and Pengyu Nie},
  journal= {arXiv preprint arXiv:2410.21798},
  year   = {2024}
}

Comments

Accepted as a conference paper at ASE 2024