Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/158511.158694acmconferencesArticle/Chapter ViewAbstractPublication PagespoplConference Proceedingsconference-collections
Article
Free access

Incremental program testing using program dependence graphs

Published: 01 March 1993 Publication History

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

[1]
A. V. Aho, R. Sethi, and J. D. Ullman, Compilers: Princi. ples, Techniques, and Tools, Addison-Wesley, Reading, MA (1986).
[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]
T. Chusho, "Test Data Selection and Quality Estimation Based on the Concept of Essential Branches for Path Testhag," IEEE Transactions on Software Engineering SE- 3(5) pp. 509-517 (May 1987).
[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]
R. A. DeMillo and A. L Offutt, "Constraint-Based Automatic Test Data Generation," IEEE Transactions on Software Engineering 17(9) pp. 900-910 (September 1991).
[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]
J. Ferrante, K. Ottenstein, and J. Warren, "The program dependence graph and its use in optimization," ACM Transactions on Programming Languages and Systems 9(3)pp. 319-349 (July 1987).
[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]
S. Horwitz, J. Prins, and T. Reps, "On the adequacy of program dependence graphs for representing programs," pp. 146-157 in Conference Record of the Fifteenth ACM Symposium on Principles of Programming Languages, (San Diego, CA, January 13-15, 1988), ACM, New York, NY (1988).
[14]
S. Horwitz, P. Pfeiffer, and T. Reps, "Dependence analysis for pointer variables," Proceedings of the SIGPLAN 89 Conference on Programming Language Design and implementation, (Portland, OR, June 21-23, 1989), ACM SIG- PLAN Notices 24(7) pp. 28-40 (July 1989).
[15]
S. Horwitz, J. thim, and T. Reps, "Integrating Noninterfering Versions of Programs," ACM Transactions on Programming Languages and Systems 11(3) pp. 345-387 (July 1989).
[16]
S. Horwitz, T. Reps, and D. Binkley, "Interprocedural slicing using dependence graphs," ACM Transactions on Programming Languages and Systems 12(I)pp. 26-60 (January 1990).
[17]
S. Horwitz and T. Reps, "Efficient comparison of program slices," Acta lnformatica 28 pp. 713-732 (1991).
[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]
J. C. Huang, "An Approach to Program Testing," ACM Computing Surveys 7(3) pp. 113-127 (September 1975).
[20]
B. Korel, "Automated Software Test Data Generation," IEEE Transactions on Software Engineering 16(8)pp. 870-879 (August 1990).
[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]
J. Larus and P. Hilfmger, "Detecting conflicts between structure accesses," Proceedings of the ACM SIGPLAN 88 Conference on Programming Language Design and Implementation, (Atlanta, GA, June 22-24, 1988), ACM SIGPLAN Notices 23(7) pp. 21-34 (June 1988).
[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]
K. Ottenstein and L. Ottenstein, "The program dependence graph in a software development environment," Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, (Pittsburgh, PA, Apr. 23-25, 1984), ACM SIGPLAN Notices 19(5) pp. 177-184 (May 1984).
[29]
S. Rapps and E. L Weyuker, "Selecting Software Test Data Using Data Flow Information," IEEE Transactions on Software Engineering SE-II(4)pp. 367-375 (April 1985).
[30]
T. Reps and T. Teitelbaum, The Synthesizer Generator: A system for constructing language.based editors, Springer- Verlag, New York, NY (1988).
[31]
T. Reps and W. Yang, "The semantics of program slicing and program integration," pp. 360-374 in Proceedings of the Colloquium on Current Issues in Programming Languages, (Barcelona, Spain, March 13-17, 1989), Lecture Notes in Computer Science Vol. 352, Springer-Verlag, New York, NY (March 1989).
[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]
W. Yang, "Identifying syntactic differences between two programs," Software- Practice & Experience 21(7)pp. 739-755 (July 1991).

Cited By

View all
  • (2023)Robust Test Selection for Deep Neural NetworksIEEE Transactions on Software Engineering10.1109/TSE.2023.333098249:12(5250-5278)Online publication date: 1-Dec-2023
  • (2023)Slicing and Visualizing F’ Topologies with F’PrismSoftware Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium10.1007/978-3-031-66326-0_23(375-389)Online publication date: 18-Sep-2023
  • (2021)An Efficient Regression Test Suite Optimization Approach Using Hybrid Spider Monkey Optimization AlgorithmInternational Journal of Swarm Intelligence Research10.4018/IJSIR.202110010412:4(57-80)Online publication date: 1-Oct-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
POPL '93: Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
March 1993
510 pages
ISBN:0897915607
DOI:10.1145/158511
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 March 1993

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

POPL93

Acceptance Rates

POPL '93 Paper Acceptance Rate 39 of 199 submissions, 20%;
Overall Acceptance Rate 824 of 4,130 submissions, 20%

Upcoming Conference

POPL '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)57
  • Downloads (Last 6 weeks)7
Reflects downloads up to 21 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Robust Test Selection for Deep Neural NetworksIEEE Transactions on Software Engineering10.1109/TSE.2023.333098249:12(5250-5278)Online publication date: 1-Dec-2023
  • (2023)Slicing and Visualizing F’ Topologies with F’PrismSoftware Architecture. ECSA 2023 Tracks, Workshops, and Doctoral Symposium10.1007/978-3-031-66326-0_23(375-389)Online publication date: 18-Sep-2023
  • (2021)An Efficient Regression Test Suite Optimization Approach Using Hybrid Spider Monkey Optimization AlgorithmInternational Journal of Swarm Intelligence Research10.4018/IJSIR.202110010412:4(57-80)Online publication date: 1-Oct-2021
  • (2021)D2ABS: A Framework for Dynamic Dependence Analysis of Distributed ProgramsIEEE Transactions on Software Engineering10.1109/TSE.2021.3124795(1-1)Online publication date: 2021
  • (2021)Dependence-Based Data-Aware Process Conformance CheckingIEEE Transactions on Services Computing10.1109/TSC.2018.282168514:3(654-667)Online publication date: 1-May-2021
  • (2020)Multi-criteria test cases selection for model transformationsAutomated Software Engineering10.1007/s10515-020-00271-wOnline publication date: 12-Apr-2020
  • (2019)Automated Functional Dependency Detection Between Test Cases Using Doc2Vec and Clustering2019 IEEE International Conference On Artificial Intelligence Testing (AITest)10.1109/AITest.2019.00-13(19-26)Online publication date: Apr-2019
  • (2018)Effective Program Debloating via Reinforcement LearningProceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security10.1145/3243734.3243838(380-394)Online publication date: 15-Oct-2018
  • (2018)Leveraging historical versions of Android apps for efficient and precise taint analysisProceedings of the 15th International Conference on Mining Software Repositories10.1145/3196398.3196433(265-269)Online publication date: 28-May-2018
  • (2018)Functional Dependency Detection for Integration Test Cases2018 IEEE International Conference on Software Quality, Reliability and Security Companion (QRS-C)10.1109/QRS-C.2018.00047(207-214)Online publication date: Jul-2018
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media