A method for revalidating modified programs in the maintenance phase is presented. This method is based on an input partition approach which partitions the input domain of a given program into a number of classes using the information from the program specification and code, and the criterion which tests each class at least once. The testing criterion is satisfied by using a subset of the original test set of the program before modification and supplemented by generating additional test cases. After the criterion is satisfied, all the newly generated test cases and original test cases, whose execution exercises the modified portions of the program, are used for revalidation. This method uses data-driven symbolic execution for test execution and supports debugging of the modified modules when errors are detected.