Automated Test Generation and Static Analysis

  • Authors:
  • S. K. Chernonozhkin

  • Affiliations:
  • Ershov Institute of Information Systems, Siberian Division, Russian Academy of Sciences, pr. Akademika Lavrent'eva 6, Novosibirsk, 630090 Russia schern@iis.nsk.ru

  • Venue:
  • Programming and Computing Software
  • Year:
  • 2001

Quantified Score

Hi-index 0.00

Visualization

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.