kirancodes.me
To Proof Maintenance & Beyond!

RECONTEST: Effective Regression Testing of Concurrent Programs

Valerio Terragni, Shing-Chi Cheung, Charles Zhang

Abstract

Concurrent programs proliferate as multi-core technologies advance. The regression testing of concurrent programs often requires running a failing test for weeks before catching a faulty interleaving, due to the myriad of possible interleavings of memory accesses arising from concurrent program executions. As a result, the conventional approach that selects a sub-set of test cases for regression testing without considering interleavings is insufficient. In this paper we present RECONTEST to address the problem by selecting the new interleavings that arise due to code changes. These interleavings must be explored in order to uncover regression bugs. RECONTEST efficiently selects new interleavings by first identifying shared memory accesses that are affected by the changes, and then exploring only those problematic interleavings that contain at least one of these accesses. We have implemented RECONTEST as an automated tool and evaluated it using 13 real-world concurrent program subjects. Our results show that RECONTEST can significantly reduce the regression testing cost without missing any faulty interleavings induced by code changes.

BibTeX
@inproceedings{Terragni-al:ICSE15,
  author    = {Valerio Terragni and
               Shing{-}Chi Cheung and
               Charles Zhang},
  title     = {{RECONTEST:} Effective Regression Testing of Concurrent Programs},
  booktitle = {ICSE (Part I)},
  pages     = {246--256},
  publisher = {{IEEE} Computer Society},
  year      = {2015},
}

Related papers