• DocumentCode
    1558240
  • Title

    Semantics guided regression test cost reduction

  • Author

    Binkley, David

  • Author_Institution
    Dept. of Comput. Sci., Loyola Coll., Baltimore, MD, USA
  • Volume
    23
  • Issue
    8
  • fYear
    1997
  • fDate
    8/1/1997 12:00:00 AM
  • Firstpage
    498
  • Lastpage
    516
  • Abstract
    Software maintainers are faced with the task of regression testing: retesting a modified program on an often large number of test cases. The cost of regression testing can be reduced if the size of the program is reduced and if old test cases and results can be reused. Two complimentary algorithms for reducing the cost of regression testing are presented. The first produces a program called Differences that captures the semantic change between Certified, a previously tested program, and Modified, a changed version of Certified. It is more efficient to test Differences, because it omits unchanged computations. The program Differences is computed using a combination of program slices. The second algorithm identifies test cases for which Certified and Modified produce the same output and existing test cases that test new components in Modified. The algorithm is based on the notion of common execution patterns. Program components with common execution patterns have the same execution pattern during some call to their procedure. They are computed using a calling context slice. Whereas an interprocedural slice includes the program components necessary to capture all possible executions of a statement, a calling context slice includes only those program components necessary to capture the execution of a statement in a particular calling context. Together with Differences, it is possible to test Modified by running Differences on a smaller number of test cases. This is more efficient than running Modified on a large number of test cases. A prototype implementation has been built to examine and illustrate these algorithms
  • Keywords
    program testing; software cost estimation; software maintenance; subroutines; calling context slice; certified program; common execution patterns; interprocedural slice; modified program retesting; old test cases; procedure calls; program components; program differences; program slices; program statement executions; semantic change; semantics-guided regression test cost reduction; software maintenance; Automatic testing; Computer Society; Costs; Prototypes; Software debugging; Software engineering; Software maintenance; Software prototyping; Software testing; Software tools;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/32.624306
  • Filename
    624306