Software quality is primarily determined by the quality of the software development process. The goals of software testing are to assess and improve the quality of software. Software testing has proven to be difficult in the absence of design information. Without an adequate understanding of a program’s structure, it is difficult to test it properly. Program recognition is a technology that can help testers to recover a program’s design and, consequently, make software testing effective. Syntactically, a program is a sequence of statements. If the flow of the program can be recovered and used to analyze the testing paths automatically, then generating test data based on adequate testing criteria will help testers to understand the program structure and efficiently improve the software quality. This paper provides a method for analyzing the control-flow of a program and obtaining to the original program structure. An approach to analyzing the testing paths automatically to test every branch of a program is provided. The proposed method defines a number of command types and test data generating rules. An algorithm to scan program and analysis testing paths is also provided. This will allow testers to recover a program's design and understand the software structure to assist software maintenance.
Journal of Information Science and Engineering 21(6), pp.1213-1226