Header menu link for other important links
X
Mahtab: Phase-wise acceleration of regression testing for C
Shouvick Mondal,
Published in Elsevier Inc.
2019
Volume: 158
   
Abstract
Software regression testing consists of offline, online, and execution phases which are executed sequentially. The offline phase involves code instrumentation and test-coverage collection. Subsequently, the online phase performs program differencing, test-suite selection and prioritization. Finally, the selected test-cases are executed against the new version of software for its re-validation. Regression testing is a time-consuming process and is often on the critical path of the project. To improve the turn-around time of software development cycle, our goal is to reduce regression testing time across all phases using multi-core parallelization. This poses several challenges that stem from I/O, dependence on third-party libraries, and inherently sequential components in the overall testing process. We propose parallelization test-windows to effectively partition test-cases across threads. To measure the benefit of prioritization coupled with multi-threaded execution, we propose a new metric, EPSilon, for rewarding failure observation frequency in the timeline of test-execution. To measure the rate of code-change coverage due to regression test prioritization, we introduce ECC, a variant of the widely used APFD metric. We illustrate the effectiveness of our approach using the popular Software-artifact Infrastructure Repository (SIR) and five real-world projects from GitHub. © 2019 Elsevier Inc.
About the journal
JournalData powered by TypesetJournal of Systems and Software
PublisherData powered by TypesetElsevier Inc.
ISSN01641212
Open AccessNo
Concepts (12)
  •  related image
    Regression analysis
  •  related image
    Software design
  •  related image
    Testing
  •  related image
    CODE INSTRUMENTATION
  •  related image
    CONFINEDNESS
  •  related image
    OBSERVATION FREQUENCIES
  •  related image
    PARALLELIZATIONS
  •  related image
    PROGRAM DIFFERENCING
  •  related image
    REGRESSION TEST SELECTION
  •  related image
    SOFTWARE DEVELOPMENT CYCLES
  •  related image
    TEST PRIORITIZATION
  •  related image
    Software testing