Abstract-We present an integrated method for program proving, testing, and debugging. Using the concept of metamorphic relations, we select necessary properties for target programs. For programs where global symbolic evaluation can be conducted and the constraint expressions involved can be solved, we can either prove that these necessary conditions for program correctness are satisfied or identify all inputs that violate the conditions. For other programs, our method can be converted into a symbolic-testing approach. Our method extrapolates from the correctness of a program for tested inputs to the correctness of the program for related untested inputs. The method supports automatic debugging through the identification of constraint expressions that reveal failures.
The work REF combines symbolic execution, testing and automatic debugging, through the identification of counterexamples violating metamorphic relations for the program under test.
Semi-Proving: An Integrated Method for Program Proving, Testing, and Debugging
IEEE Transactions on Software Engineering
IEEE Transactions on Software Engineering
Computer Science