skip to main content
10.1145/186258.186523acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
Article
Free Access

Applications of feasible path analysis to program testing

Authors Info & Claims
Published:01 August 1994Publication History

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

  1. Andrews81.Andrews, P. B. Theorem Proving via general mating. J. ACM 28 (2), 1981, 193-214. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Bibel81.Bibel, W. On matrices with connections. J. ACM 28(4) (1981) 633- 645. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 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.Google ScholarGoogle Scholar
  4. Bledsoe83.Bledsoe, W. W. The UT interactive prover. Tech. Report ATP- 17B, Department of Mathematics, The University of Texas at Austin (1983).Google ScholarGoogle Scholar
  5. Boyer75.Boyer, R., Elspas, B., and Levitt, K. SELECT -- A formal system for testing and debugging programs by symbolic execution. SIGPLAN Notices 10, 6, June 1975, 234--245. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Boyer86.Boyer, R. S. and Moore, J. S. Integrating decision procedures into heuristic theorem provers: a case study with linear arithmetic. In, Machine Intelligence 11, Oxford University Press, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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.Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Clarke88.Clarke, L. A., Richardson, D.J., and Zeil, S.J. TEAM: A support environment for testing, evaluation, and analysis. InProceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments Boston, MA, November 28--30, 1988, ACM, pp. 153-- 162. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 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.Google ScholarGoogle Scholar
  10. Frankl88.Frankl, P.G., and Weyuker, E.J. An applicable family of data flow testing criteria. IEEE Transactions on Software Engineering SE-14, 10, October 1988, 1483--1498. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Goff91.Goff, G., Kennedy, K. and Tseng, C., Practical dependence testing. In, ACM SiGPLAN '91 Conference on Programming Language Design and Implementation. ACM. Toronto, Canada, June 26--28, 1991, 15-29. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Hoare69.Hoare, C. An axiomatic basis for computer programming, CACM, 12,10 (1969). Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Horwitz88.Horwitz, S., Prins, J., and Reps. T. On the adequacy of program dependence graphs for representing programs. In, Fifteenth A CM Symposium on Principles of Programrning Languages. ACM San Diego, CA, January 13-- 15, 1988, 146--157. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Howden77.Howden, W.E. Symbolic testing and the DISSECT symbolic evaluation techniques. IEEE Transactions on Software Engineering SE-4, 4 (1977), 266--278.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Jasper94.Jasper, R., Brennan, M., Williamson, K., Currier, C., and Zimmerman, D, Test data generation and feasible path analysis. International Symposium on Software Testing and Analysis (Seattle, WA, August 17-- 19, 1994). Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Korel90.Korel, B. Automated software test data generation. IEEE Transactions on Software Engineering 16, SE-8 August 1990, 870--879. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Kotik89.Kotik, G.B., and Markosian, L.Z. Automating software analysis and testing using a program transformation system. In Proceedings of the ACM SIGSOFT '89 Third Symposium on Software Testing, Analysis, and Verification (Key West, F1, December 13-- 15, 1989), ACM, 48--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Laski90.Laski, Janusz, Data flow testing in STAD, J. Systems and Software, vol. 12 (1990), 3-14. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Letovsky88.Letovsky, S. I. Plan Analysis of Programs. Ph.D. Thesis, Yale University, Department of Computer Science December 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. Murray87.Murray, N.V., and Rosenthal, E. Inference with path resolution and semantic graphs, Journal of the ACM 34,2, (April, 1987), 225--254 Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Pugh92.Pugh, W. A practical algorithm for exact array dependence analysis. Communications of the A CM 35, 8, August 1992, 102-- 115. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 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.Google ScholarGoogle Scholar
  23. Reasoning90.RefineTM 3.0 User's Guide, Reasoning Systems Incorporated, Palo Alto, CA. May 25 1990.Google ScholarGoogle Scholar
  24. Reasoning92.Refine/Ada User's Guide, Reasoning Systems incorporated, Palo Alto, CA. July 26, 1992.Google ScholarGoogle Scholar
  25. Shostak79.Shostak, R. E. A practical decision procedure for arithmetic with functional symbols. Journal of the ACM 26, 2, April 1979, 351--360. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Shostak81.Shostak, R. E. Deciding linear inequalities by computing loop residues. Communications of the ACM 28, 4, October 1981,769--779. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Shostak84.Shostak, R. E. Deciding combinations of theories. Journal of the ACM 31, 1, January 1984, 1-- ! 2. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Smith90.Smith, D.R. KIDS ~- a semiautomatic program development system.IEEE Transactions on Software Engineering Special Issue on Formal Methods in Software Engineering 16, 9 (September 1990), 1024-- 1043. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Tripathy91.Tripathy, P., and Sarikaya, B. Test generation from LOTOS specifications, IEEE Trans. on Computers, 40, 4 (April, 1991), 543-561. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. 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).Google ScholarGoogle Scholar
  31. Wang87.Wang, T.C., and Bledsoe, W.W. Hierarchical deduction. Journal of Automated Reasoning 3, 1 (March 1987), 35--77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Wang92.Wang, T.C., and Goldberg, A. RVF: an automated formal verification system.in Eleventh Conference on Automated Deduction, D.Kapur, Ed. Springer-Verlag, Berlin, 1992, pp. 131-- 138.Lecture Notes in Computer Science, Vol. 607. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Werner91.Werner, L. and W.E. Howden, An investigation of the applicability of data usage analysis. J. Systems and Software, Vol 15 (1991), 205-215. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. 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.Google ScholarGoogle ScholarCross RefCross Ref
  35. Weyuker90.The cost of data flow testing: an empirical study, IEEE Trans. on Software Engineering, 16,2 (1990), 121- 128. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. Wills87.Wills, L. M. Automated program recognition. Tech. Rep. MIT-AI- 904, MiT AI Laboratory, February 1987. Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. 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.Google ScholarGoogle Scholar
  38. 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.Google ScholarGoogle Scholar
  39. Yates89.Yates, D.F., and Malevris, N. Reducing the effects of infeasible paths in branch testing. In Proceedings of the ACM SIGSOFT '89 Third Symposium onSoftware Testing, Analysis, and Verification (Key West, F1, December 13-- 15, 1989), ACM, 48--54. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Applications of feasible path analysis to program testing

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in
                • Published in

                  cover image ACM Conferences
                  ISSTA '94: Proceedings of the 1994 ACM SIGSOFT international symposium on Software testing and analysis
                  August 1994
                  241 pages
                  ISBN:0897916832
                  DOI:10.1145/186258

                  Copyright © 1994 ACM

                  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]

                  Publisher

                  Association for Computing Machinery

                  New York, NY, United States

                  Publication History

                  • Published: 1 August 1994

                  Permissions

                  Request permissions about this article.

                  Request Permissions

                  Check for updates

                  Qualifiers

                  • Article

                  Acceptance Rates

                  ISSTA '94 Paper Acceptance Rate16of69submissions,23%Overall Acceptance Rate58of213submissions,27%

                  Upcoming Conference

                  ISSTA '24

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader