Abstract
The study and development of techniques for automated generation of “useful” tests, the development of a system that implements those techniques, and the development of methods for the analysis of programs designed for solving this problem are based on the earlier works of the author of the present paper, the works by B. Korel, and on the desire to understand if the approaches suggested can be used to develop real-world software. The first problem is as follows: determine, which information on the program must be collected to automatically generate a set of tests, and develop a component for collecting this information. The emphasis was made on collecting this information statically using a powerful flow analyzer developed in a laboratory of the Institute of Information Systems. Another problem consists in developing a prototype system for trying both well-known and new test generation methods suggested by the author. As a result, path-oriented and objective-oriented methods of test generation and the chaining approach (which turned out to be the most interesting one) are considered. This approach uses the concept of influence of an input variable on an operator along a certain program execution path and is based on dynamic analysis. The concept of influence can be extended for the case of all paths; then, such influences can be detected statically. In this paper, the influence along any path is rigorously defined and its constructive flow reformulation is given. On the basis of this reformulation, a language processor is developed that performs a static analysis of dependencies and calculates, for every statement of the program, the set of input variables that influence it.
Similar content being viewed by others
REFERENCES
Korel, B., Automated Software Test Data Generation, IEEE Trans. Software Eng., 1990, vol. SE-16, no. 8, pp. 870–879.
Korel, B. and Al-Yami, Ali M., Assertion-oriented Automated Test Data Generation, Proc. ISCE-18, Los Alamitos: IEEE Computer, 1996, pp. 71–80.
Ferguson, R. and Korel, B., The Chaining Approach for Software Test Data Generation, ACM Trans. Software Eng. Methodology, 1996, vol. 5, no. 1, pp. 63–86.
Kaufman, A.V. and Chernonozhkin, S.K., Supporting Structural Testing in the SOKRAT System, in Sredstva i instrumenty okruzhenii programmirovaniya (Tools of programming environments), Novosibirsk, 1995, pp. 30–45.
Kaufman, A.V. and Chernonozhkin, S.K., Structural Testing in the SOKRAT System, in Programmnye sistemy (Programming Systems), Novosibirsk, 1995, pp. 135–148.
Kaufman, A.V. and Chernonozhkin, S.K., OCT—A Coverage Tool for Modula-2 Programs, Preprint of Inst. of Informatics Systems, Siberian Division, Russian Academy of Sciences, Novosibirsk, 1997, no. 38.
Kaufman, A.V. and Chernonozhkin, S.K., Testing Criteria and a System for Evaluating Completeness of a Test Set, Programmirovanie, 1998, no. 6, pp. 44–59.
Shelekhov, V.I., The Structure of Program in the Language-Oriented Flow Analysis, Programmirovanie, 1996, no. 3, pp. 47–59.
Shelekhov, V.I., An Invariant of the Programming Language, in Sredstva i instrumenty programmirovaniya (Programming Tools), Novosibirsk: Institute of Informatics Systems, Siberian Division, Russian Academy of Sciences, 1995, pp. 6–22.
Shelekhov, V.I., Internal Representation of Programs in the SOKRAT System, Preprint of Inst. of Informatics Systems, Siberian Division, Russian Academy of Sciences, Novosibirsk, 1992, no. 15.
Shelekhov, V.I. and Kuksenko, S.V., Static Checker of Semantic Run-Time Errors, Programmirovanie, 1998, no. 6, pp. 27–43.
Cousot, P. and Cousot, R., Abstract Interpretation: A Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints, Rec. 18th ACM Symp. on Principles of Programming Languages, ACM, 1977, pp. 55–56.
Vasil'ev, F.P., Chislennye metody resheniya ekstremal'nykh zadach (Numerical Methods for Solving Extremum Value Problems), Moscow: Nauka, 1988, pp. 342–347.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Chernonozhkin, S.K. Automated Test Generation and Static Analysis. Programming and Computer Software 27, 86–94 (2001). https://doi.org/10.1023/A:1011050827465
Issue Date:
DOI: https://doi.org/10.1023/A:1011050827465