ACM Home Page
Please provide us with feedback. Feedback
Incremental program testing using program dependence graphs
Full text PdfPdf (1.39 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages table of contents
Charleston, South Carolina, United States
Pages: 384 - 396  
Year of Publication: 1993
ISBN:0-89791-560-7
Authors
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 79,   Citation Count: 40
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/158511.158694
What is a DOI?

ABSTRACT

Program dependence graphs have been proposed for use in optimizing, vectorizing, and parallelizing compilers, and for program integration. This paper proposes their use as the basis for incremental program testing when using test data adequacy criteria. Test data adequacy is commonly used to provide some confidence that a particular test suite does a reasonable job of testing a program. Incremental program testing using test data adequacy criteria addresses the problem of testing a modified program given an adequate test suite for the original program. Ideally, one would like to create an adequate test suite for the modified program that reuses as many files from the old test suite as possible. Furthermore, one would like to know, for every file that is in both the old and the new test suites, whether the program components exercised by that file have been affected by the program modification; if no components have been affected, then it is not necessary to rerun the program using that file. In this paper we define adequacy criteria based on the program dependence graph, and propose techniques based on program slicing to identify components of the modified program that can be tested using files from the old test suite, and components that have been affected by the modification. This information can be used to reduce the time required to create new test files, and to avoid unproductive retesting of unaffected components. Although exact identification of the components listed above is, in general, undecidable, we demonstrate that our techniques provide safe approximations.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
S. Bates and S. Horwitz, "Incremental Program Testing Using Program Dependence Graphs," technical report in reparation, Computer Sciences Department, University of Wisconsin, Madison, WI (1992).
 
3
S. Bates and S. Horwitz, "On integrating Programs with Input," in preparation, Computer Sciences Department, University of Wisconsin, Madison, WI (1992).
 
4
S. Bates and S. Horwitz, "Test Data Adequacy Criteria Based on Program Dependence Graphs," in preparation, Computer Sciences Department, University of Wisconsin, Madison, WI (1992).
 
5
T. Chusho, "Coverage Measure for Path Testing Based on the Concept of Essential Branches," Journal of Information Processing 6(4) pp. 199-205 (1983).
 
6
 
7
L.A. Clarke, "A System to Generate Test Data and Symbolically Execute Programs," IEEE Transactions on Software Engineering SE-2(3) pp. 215-222 (September 1976).
 
8
 
9
V. Donzeau-Gouge, G. Huet, G. Kahn, and B. Lang, "Programming environments based on structured editors: The MENTOR experience," pp. 128-140 in Interactive Programming Environments, ed. D. Barstow, E. Sandewall, and H. Shrobe,MeGraw-Hiil, New York, NY (1984).
10
 
11
R. Gupta and M. L. Sofia, "Automatic Generation of a Compact Test Suite," Technical Report, University of Pittsburgh, Pittsburgh, PA (1991).
 
12
M.J. Harrold and M. L. Sofia, "An Incremental Approach to Unit Testing during Maintenance," Proceedings of the Conference on Software Maintenance (Phoenix, Arizona), pp. 362-367 (October 24-27, 1988).
13
14
15
16
 
17
 
18
W.E. Howden, "Reliability of the Path Analysis Testing Strategy," IEEE Transactions on Software Engineering SE- 2(3) pp. 208-215 (September 1976).
19
 
20
 
21
K.W. Krause, R. W. Smith, and M. A. Goodwin, "Optimal Software Test Planning Through Automated Network Analysis," Record of the 1973 IEEE Symposium on Computer Software Reliability (New York, New York), pp. 18-22 (April 30-May 2, 1973).
22
 
23
J.W. Laski and B. Korel, "A Data Flow Oriented Program Testing Strategy," IEEE Transactions on Software Engineering SE-9(3) pp. 347-354 (May 1983).
 
24
B. Mariek, "A Survey of Test Effectiveness and Cost Studies," Report No. UIUCDCS-R-90-1652, Department of Computer Science, University of Illinois at Urbana- Champaign, Urbana, IL (December 1990).
 
25
D. Notkin, R. Ellison, B. Staudt, G. Kaiser, E. Kant, A. Habermann, V. Ambriola, and C. Montangero, Special issue on the GANDALF project, Journal of Systems and Software 5(2)(May 1985).
 
26
S.C. Ntafos, "On Required Element Testing," IEEE Transactions on Software Engineering SE-10(6)pp. 795-803 (November 1984).
 
27
T.J. Ostrand and E. J. Weyuker, "Using Data Flow Analysis for Regression Testing," Proceedings of the Sixth Annual Pacific Northwest Software Quality Conference (Portland, Oregon), (September 19-20, 1988).
28
 
29
 
30
 
31
 
32
E. Schatz and B. G. Ryder, "Directed Tracing to Detect Race Conditions," LCSR-TR-176, Laboratory for Computer Science Research, Rutgers University, New Brunswick, NJ (February 1992).
 
33
A. Taha, S. M. Thebaut, and S. Liu, "An Approach to Software Fault Localization and Revalidation Based on Incremental Data Flow Analysis," Proceedings of the Thir. teenth Annual International Computer Software & Applications Conference (orlando, Florida), pp. 552-558 (September 20-22, 1989).
 
34
M. Weiser, "Program Slicing," IEEE Transactions on Software Engineering SE-10(4) pp. 352-357 (July 1984).
 
35

CITED BY  40

Collaborative Colleagues:
Samuel Bates: colleagues
Susan Horwitz: colleagues