Test data generation for sequential and distributed programs
Roger Ferguson · 1993
Software testing is very labor-intensive and expensive; it accounts for a significant portion of the cost of software system development. If the testing process could be automated, then the cost of developing software should be reduced significantly. The aim of this dissertation is to improve the process of automated test data generation for sequential and distributed programs. Test data generation in software testing is the process of identifying program input which satisfy selected testing criterion. Structural testing coverage criteria is the requirement that certain program statements, or combinations thereof, be exercised (e.g., statement coverage, branch coverage). In our approach, referred to as the chaining approach, test data are derived based on the actual execution of the program under test. The approach starts by executing a program for a arbitrary program input. When the program is executed, the program execution flow is monitored. If an undesirable execution flow is observed at some branch (p,q), (e.g., the current branch doesn't lead to the selected program element), then a search algorithm is used to find a different input to change the flow of execution at this branch. If flow cannot be changed, then the chaining approach identifies statements in the program by using dependency analysis, which are to be executed prior to execution of this branch (p,q); as a result, the flow of execution can be altered at this branch, allowing execution to continue. The chaining approach significantly improves the effectiveness of the process of test data generation. Finally, we have performed research on test data generation for distributed programs. Test data generation for distributed programs introduces new research challenges which do not exist in the testing of sequential programs, because of the nonreproducible execution behavior. For distributed software, we have proposed two approaches: the path oriented approach and the chaining approach.