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
Link To Document