This Article 
 Bibliographic References 
 Add to: 
Automated Software Test Data Generation
August 1990 (vol. 16 no. 8)
pp. 870-879

An alternative approach to test-data generation based on actual execution of the program under test, function-minimization methods and dynamic data-flow analysis is presented. Test data are developed for the program using actual values of input variables. When the program is executed, the program execution flow is monitored. If during program execution an undesirable execution flow is observed then function-minimization search algorithms are used to automatically locate the values of input variables for which the selected path is traversed. In addition, dynamic data-flow analysis is used to determine those input variables responsible for the undesirable program behavior, significantly increasing the speed of the search process. The approach to generating test data is then extended to programs with dynamic data structures and a search method based on dynamic data-flow analysis and backtracking is presented. In the approach described, values of array indexes and pointers are known at each step of program execution; this information is used to overcome difficulties of array and pointer handling.

[1] D. Alberts, "The economics of software quality assurance," inAFIPS Conf. Proc. 1976 Nat. Computer Conf., vol. 45, Montvale, NJ: AFIPS Press, pp. 433-442.
[2] R. Balzer, "EXDAMS--Extendable debugging and monitoring system," in1969 Spring Joint Computer Conf., AFIPS Conf. Proc., vol. 34, Montvale, NJ: AFIPS Press, pp. 576-580.
[3] J. Bauer and A. Finger, "Test plan generation using formal grammars," inProc. 4th Int. Conf. Software Engineering, 1979, pp. 425- 432.
[4] J. Benson, "Adaptive search techniques applied to software testing,"ACM Perform. Eval. Rev., vol. 10, no. 1, pp. 109-116, Spring 1981.
[5] J. Bergeretti and B. Carre, "Information-flow and data-flow analysis of while-programs,"ACM Trans. Program. Lang. Syst., vol. 7, no. 1, pp. 37-61, Jan. 1985.
[6] J. Bicevskis, J. Borzovs, U. Straujums, A. Zarins, and E. Miller, "SMOTL--A system to construct samples for data processing program debugging,"IEEE Trans. Software Eng., vol. SE-5, no. 1, pp. 60-66, Jan. 1979.
[7] D. Bird and C. Munoz, "Automatic generation of random self-checking test cases,"IBM Syst. J., vol. 22, no. 3, pp. 229-245, 1983.
[8] R. Boyer, B. Elspas, and K. Levitt, "SELECT--A formal system for testing and debugging programs by symbolic execution,"SIGPLAN Notices, vol. 10, no. 6, pp. 234-245, June 1975.
[9] F. Chan and T. Chen, "AIDA--A dynamic data flow anomaly detection system for Pascal programs,"Software--Practice and Experience, vol. 17, no. 3, pp. 227-239, Mar. 1987.
[10] L. Clarke, "A system to generate test data and symbolically execute programs,"IEEE Trans. Software Eng., vol. SE-2, no. 3, pp. 215- 222, Sept. 1976.
[11] R. DeMillo, W. McCracken, R. Martin, and J. Passafiume,Software Testing and Evaluation. Benjamin/Cummings, 1987.
[12] P. Gill and W. Murray, Eds.,Numerical Methods for Constrained Optimization. New York: Academic, 1974.
[13] H. Glass and L. Cooper, "Sequential search: A method for solving constrained optimization problems,"J. ACM, vol. 12, no. 1, pp. 71- 82, Jan. 1965.
[14] R. Fairly, "An experimental program-testing facility,"IEEE Trans. Software Eng., vol. SE-1, no. 4, pp. 350-357, Dec. 1975.
[15] J. Ferrante, K. Ottenstein, and J. Warren, "The program dependence graph and its use in optimization,"ACM Trans. Program. Lang. Syst., vol. 9, no. 3, pp. 319-349, July 1987.
[16] W. Howden, "Symbolic testing and the DISSECT symbolic evaluation system,"IEEE Trans. Software Eng., vol. SE-4, no. 4, pp. 266- 278, 1977.
[17] W. Howden,Functional Program Testing and Analysis. New York: Mc-Graw-Hill, 1987.
[18] D. Ince, "The automatic generation of test data,"Comput. J., vol. 30, no. 1, pp. 63-69, 1987.
[19] W. Jessop, J. Kanem, S. Roy, and J. Scanlon, "ATLAS--An automated software testing system," inProc. 2nd Int. Conf. Software Engineeering, 1976.
[20] B. Korel, "The program dependence graph in static program testing,"Inform. Processing Lett., vol. 24, pp. 103-108, Jan. 1987.
[21] B. Korel, "PELAS-Program error locating assistant system,"IEEE Trans. Software Eng., vol. 14, no. 9, pp. 1253-1260, Sept. 1988.
[22] B. Korel and J. Laski,Dynamic program slicing, " Inform. Processing Lett., vol. 29, no. 3, pp. 155-163, Oct. 1988.
[23] B. Korel, "TESTGEN--A structural test data generation system," Dep. Comput. Sci., Wayne State Univ., Detroit, MI, Tech. Rep. CSC-89-001, 1989.
[24] N. Lyons, "An automatic data generation system for data base simulation and testing,"Data Base, vol. 8, no. 4, pp. 10-13, 1977.
[25] E. Miller, Jr. and R. Melton, "Automated generation of testcase datasets,"SIGPLAN Notices, vol. 10, no. 6, pp. 51-58, June 1975.
[26] W. Miller and D. Spooner, "Automatic generation of floating-point test data,"IEEE Trans. Software Eng., vol. SE-2, no. 3, pp. 223- 226, Sept. 1976.
[27] S. Muchnick and N. Jones, Eds.,Program Flow Analysis: Theory and Applications. Englewood Cliffs, NJ: Prentice-Hall International, 1981.
[28] G. J. Myers,The Art of Software Testing. New York: Wiley, 1979.
[29] M Paige, "Data space testing,"ACM Perform. Eval. Rev., vol. 10, no. 1, pp. 117-127, Spring 1981.
[30] C. Ramamoorthy, S. Ho, and W. Chen, "On the automated generation of program test data,"IEEE Trans. Software Eng., vol. SE-2, no. 4, pp. 293-300, Dec. 1976.
[31] H. Ratschek,New Computer Methods for Global Optimization. New York: Halsted, 1988.

Index Terms:
automated software test data generation; function-minimization methods; dynamic data-flow analysis; input variables; program execution flow; function-minimization search algorithms; input variables; program behavior; dynamic data structures; backtracking; array indexes; pointers; automatic programming; data structures; minimisation; program testing; search problems.
B. Korel, "Automated Software Test Data Generation," IEEE Transactions on Software Engineering, vol. 16, no. 8, pp. 870-879, Aug. 1990, doi:10.1109/32.57624
Usage of this product signifies your acceptance of the Terms of Use.