Carving and Replaying Differential Unit Test Cases from System Test Cases

  • Authors:
  • Sebastian Elbaum;Hui Nee Chin;Matthew B. Dwyer;Matthew Jorde

  • Affiliations:
  • University of Nebraska, Lincoln;University of Nebraska, Lincoln;University of Nebraska, Lincoln;University of Nebraska, Lincoln

  • Venue:
  • IEEE Transactions on Software Engineering
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

Unit test cases are focused and efficient. System tests are effective at exercising complex usage patterns. Differential unit tests (DUT) are a hybrid of unit and system tests that exploits their strengths. They are generated by carving the system components, while executing a system test case, that influence the behavior of the target unit, and then re-assembling those components so that the unit can be exercised as it was by the system test. In this paper we show that DUTs retain some of the advantages of unit tests, can be automatically generated, and have the potential for revealing faults related to intricate system executions. We present a framework for carving and replaying DUTs that accounts for a wide variety of strategies and tradeoffs, we implement an automated instance of the framework with several techniques to mitigate test cost and enhance flexibility and robustness, and we empirically assess the efficacy of carving and replaying DUTs on three software artifacts.