Program slices are useful in debugging, testing, maintenance, and understanding of programs. The conventional notion of a program slice, the <italic>static slice</italic>, is the set of all statements that <italic>might</italic> affect the value of a given variable occurrence. In this paper, we investigate the concept of the <italic>dynamic slice</italic>… (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)
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)
The purpose of regression testing is to ensure that bug xes and new functionality introduced in a new version of a software do not adversely aaect the correct functionality inherited f r om the previous version. This paper explores eecient methods of selecting small subsets of regression test sets that may be used t o e s-tablish the same.
Conventional approaches to analyze the behavior of software applications are black box based, that is, the software application is treated as a whole and only its interactions with the outside world are modeled. The black box approaches ignore information about the internal structure of the application and the behavior of the individual parts. Hence they… (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)
One of the most important steps towards eeective software maintenance of a large complicated system is to understand how program features are spread over the entire system and their interactions with the program components. However, we m ust rst be able to represent a n abstract feature in terms of some concrete program components. In this paper, we use an… (More)
This paper reviews some of the difficulties and decisions in implementing data flow coverage criteria for the C language as realized in ATAC, a data flow coverage testing tool for C. We also address a particular, language independent problem with the concept of the all-du-paths data flow coverage criterion and suggest a solution.