|
ABSTRACT
For certain structural testing criteria a significant proportion of tests instances are infeasible in the sense the semantics of the program implies that test data cannot be constructed that meet the test requirement. This paper describes the design and prototype implementation of a structural testing system that uses a theorem prover to determine feasibility of testing requirements and to optimize the number of test cases required to achieve test coverage. Using this approach, we were able to accurately and efficiently determine path feasibility for moderately-sized program units of production code written in a subset of Ada. On these problems, the computer solutions were obtained much faster and with greater accuracy than manual analysis. The paper describes how we formalize test criteria as control flow graph path expressions; how the criteria are mapped to logic formulas; and how we control the complexity of the inference task. It describes the limitations of the system and proposals for its improvement as well as other applications of the analysis.
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.
 |
Andrews81
|
|
 |
Bibel81
|
|
| |
Bicevskis79
|
Bicevskis, J., Borzovs, J., Straujums, U., Zarins, A., and Miller, E. SMOTL -- a system to construct samples for data processing program debugging. IEEE Transactions on Software Engineering SE-5, 8 (August 1990), 60-- 66.
|
| |
Bledsoe83
|
Bledsoe, W. W. The UT interactive prover. Tech. Report ATP- 17B, Department of Mathematics, The University of Texas at Austin (1983).
|
 |
Boyer75
|
|
| |
Boyer86
|
|
| |
Clarke76
|
Clarke, L.A. A system to generate test data and symbolically execute programs. IEEE Transactions on Software Engineering SE-2, 3 (September 1976), 215--222.
|
 |
Clarke88
|
Lori A. Clarke , Debra J. Richardson , Steven J. Zeil, TEAM: a support environment for testing, evaluation, and analysis, Proceedings of the third ACM SIGSOFT/SIGPLAN software engineering symposium on Practical software development environments, p.153-162, November 28-30, 1988, Boston, Massachusetts, United States
|
| |
Field93
|
Field, J., A simple rewriting semantics for realistic imperative programs and its application to program analysis, Revision of paper appearing in the 1992 Workshop on Partial Evaluation and Semantics-Based Program Manipulation, San Francisco.
|
| |
Frankl88
|
|
 |
Goff91
|
Gina Goff , Ken Kennedy , Chau-Wen Tseng, Practical dependence testing, Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, p.15-29, June 24-28, 1991, Toronto, Ontario, Canada
|
 |
Hoare69
|
|
 |
Horwitz88
|
S. Horwitz , J. Prins , T. Reps, On the adequacy of program dependence graphs for representing programs, Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.146-157, January 10-13, 1988, San Diego, California, United States
[doi> 10.1145/73560.73573]
|
| |
Howden77
|
Howden, W.E. Symbolic testing and the DISSECT symbolic evaluation techniques. IEEE Transactions on Software Engineering SE-4, 4 (1977), 266--278.
|
 |
Jasper94
|
Robert Jasper , Mike Brennan , Keith Williamson , Bill Currier , David Zimmerman, Test data generation and feasible path analysis, Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis, p.95-107, August 17-19, 1994, Seattle, Washington, United States
[doi> 10.1145/186258.187150]
|
| |
Korel90
|
|
 |
Kotik89
|
G. Kotik , L. Markosian, Automating software analysis and testing using a program transformation system, Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification, p.75-84, December 13-15, 1989, Key West, Florida, United States
|
| |
Laski90
|
|
| |
Letovsky88
|
|
 |
Murray87
|
|
 |
Pugh92
|
|
| |
Ramamoorthy76
|
Ramamoorthy, C., Ho, S., and Chen, W. On the automated generation of program test data. IEEE Transactions on Software Engineering SE- 2, 4 (December 1976), 293--300.
|
| |
Reasoning90
|
RefineTM 3.0 User's Guide, Reasoning Systems Incorporated, Palo Alto, CA. May 25 1990.
|
| |
Reasoning92
|
Refine/Ada User's Guide, Reasoning Systems incorporated, Palo Alto, CA. July 26, 1992.
|
 |
Shostak79
|
|
 |
Shostak81
|
|
 |
Shostak84
|
|
| |
Smith90
|
|
| |
Tripathy91
|
|
| |
Wang85
|
Wang, T.C. Designing examples for semantically guided hierarchical deduction. In 9th International Joint Conference on Artificial Intelligence (Los Angeles, California, August 18-23, 1985).
|
| |
Wang87
|
|
| |
Wang92
|
|
| |
Werner91
|
|
| |
Weyuker88
|
Weyuker, E.J. An empirical study of the complexity of data flow testing. In Proceedings of the Second Workshop on Software Testing, Analysis, and Verification, Banff, Canada, July 19-- 21, 1988, IEEE Computer Society, pp. 188--195.
|
| |
Weyuker90
|
|
| |
Wills87
|
|
| |
Woodward80
|
Woodward, M.R., Hedley, D., and Hennell, M.A. Experience with path analysis and testing. In Tutorial: Software Testing & Validation Techniques, 2Ed, E.Miller and W. Howden, Eds. IEEE Computer Society Press, Los Alamitos, CA, 1981, pp. 194--206.
|
| |
Wos68
|
Wos, L., and Robinson, A, Paramodulation and set of support. Proceedings of the IRIA Symposium on Automatic Demonstration, Versailles, France, France, Spring-Verlag (1968) 276-310.
|
 |
Yates89
|
D. Yates , N. Malevris, Reducing the effects of infeasible paths in branch testing, Proceedings of the ACM SIGSOFT '89 third symposium on Software testing, analysis, and verification, p.48-54, December 13-15, 1989, Key West, Florida, United States
|
CITED BY 8
|
|
Robert Jasper , Mike Brennan , Keith Williamson , Bill Currier , David Zimmerman, Test data generation and feasible path analysis, Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis, p.95-107, August 17-19, 1994, Seattle, Washington, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|