Learn More
The purpose of regression testing is to ensure that changes made to software, such as adding new features or modifying existing features, have not adversely affected features of the software that should not change. Regression testing is usually performed by running some, or all, of the test cases created to test modifications in previous versions of the(More)
This paper proposes a strategy for automatically fixing faults in a program by combining the processes of mutation and fault localization. Statements that are ranked in order of their suspiciousness of containing faults can then be mutated in the same order to produce possible fixes for the faulty program. The proposed strategy is evaluated against the(More)
Finding a fault in a program is a complex process which involves understanding the program's purpose, structure, semantics, and the relevant characteristics of failure p r o ducing tests. We describe a t o ol which supports execution slicing and dicing based on test cases. We report the results of an experiment that uses heuristic techniques in fault(More)
Amongst the various testing strategies, mutation testing has been empirically found to be the most eeective in detecting faults. However, mutation often imposes unacceptable demands on computing and human resources due to the large number of mutants that need to be compiled and executed on one or more test cases. In addition, the tester needs to examine(More)
An important question in software testing is whether it is reasonable to apply coverage based criteria as a lter to reduce the size of a test set. An empirical study was conducted using a test set minimization technique to explore the eeect of reducing the size of a test set, while keeping block coverage constant, on the fault detection strength of the(More)