Change-effects analysis for effective testing and validation of evolving software
Santelices, Raul A.
MetadataShow full item record
The constant modification of software during its life cycle poses many challenges for developers and testers because changes might not behave as expected or may introduce erroneous side effects. For those reasons, it is of critical importance to analyze, test, and validate software every time it changes. The most common method for validating modified software is regression testing, which identifies differences in the behavior of software caused by changes and determines the correctness of those differences. Most research to this date has focused on the efficiency of regression testing by selecting and prioritizing existing test cases affected by changes. However, little attention has been given to finding whether the test suite adequately tests the effects of changes (i.e., behavior differences in the modified software) and which of those effects are missed during testing. In practice, it is necessary to augment the test suite to exercise the untested effects. The thesis of this research is that the effects of changes on software behavior can be computed with enough precision to help testers analyze the consequences of changes and augment test suites effectively. To demonstrate this thesis, this dissertation uses novel insights to develop a fundamental understanding of how changes affect the behavior of software. Based on these foundations, the dissertation defines and studies new techniques that detect these effects in cost-effective ways. These techniques support test-suite augmentation by (1) identifying the effects of individual changes that should be tested, (2) identifying the combined effects of multiple changes that occur during testing, and (3) optimizing the computation of these effects.
Showing items related by title, author, creator and subject.
De Baets, Peter Wilfried Gaston; Zentner, John Marc; Mavris, Dimitri N. (Georgia Institute of Technology, 2002-11)In this paper, an overview is given of the different alternatives to an integrating computational framework. A new framework will be introduced, which incorporates the latest computational techniques and more importantly ...
Kazman, Rick; Abowd, Gregory D.; Bass, Leonard J.; Clements, Paul (Georgia Institute of Technology, 1995)Software architecture is one of the most important tools for designing and understanding a system, whether that system is in preliminary design, active deployment, or maintenance. Scenarios are important tools for ...
Bowring, James Frederick; Harrold, Mary Jean; Rehg, James Matthew (Georgia Institute of Technology, 2005)One approach to the automatic classification of program behaviors is to view these behaviors as the collection of all the program's executions. Many features of these executions, such as branch profiles, can be measured, ...