Results 1 - 10
of
17
Analyzing regression test selection techniques
- IEEE Transactions on Software Engineering
, 1996
"... Abstract-Regression testing is a necessary but expensive maintenance activity aimed at showing that code has not been adversely affected by changes. Regression test selection techniques reuse tests from an existing test suite to test a modified program. Many regression test selection techniques have ..."
Abstract
-
Cited by 130 (38 self)
- Add to MetaCart
Abstract-Regression testing is a necessary but expensive maintenance activity aimed at showing that code has not been adversely affected by changes. Regression test selection techniques reuse tests from an existing test suite to test a modified program. Many regression test selection techniques have been proposed; however, it is difficult to compare and evaluate these techniques because they have different goals. This paper outlines the issues relevant to regression test selection techniques, and uses these issues as the basis for a framework within which to evaluate the techniques. We illustrate the application of our framework by using it to evaluate existing regression test selection techniques. The evaluation reveals the strengths and weaknesses of existing techniques, and highlights some problems that future work in this area should address. Index Terms-Software maintenance, regression testing, selective retest, regression test selection. 1
A Safe, Efficient Regression Test Selection Technique
- ACM TRANSACTIONS ON SOFTWARE ENGINEERING AND METHODOLOGY
, 1997
"... Regression testing is an expensive but necessary maintenance activity performed on modified software to provide confidence that changes are correct and do not adversely affect other portions of the software. A regression test selection technique chooses, from an existing test set, tests that are d ..."
Abstract
-
Cited by 127 (51 self)
- Add to MetaCart
Regression testing is an expensive but necessary maintenance activity performed on modified software to provide confidence that changes are correct and do not adversely affect other portions of the software. A regression test selection technique chooses, from an existing test set, tests that are deemed necessary to validate modified software. We present a new technique for regression test selection. Our algorithms construct control flow graphs for a procedure or program and its modified version, and use these graphs to select tests that execute changed code from the original test suite. We prove that under certain conditions, the set of tests our technique selects includes every test from the original test suite that can expose faults in the modified procedure or program. Under these conditions our algorithms are safe. Moreover, although our algorithms may select some tests that cannot expose faults, they are at least as precise as other safe regression test selection algorith...
Analysis and Testing of Programs with Exception-Handling Constructs
- IEEE Transactions on Software Engineering
, 1999
"... Analysis techniques, such as control-flow, data-flow, and control-dependence, are used for a variety of software engineering tasks, including structural and regression testing, dynamic execution profiling, static and dynamic slicing, and program understanding. To be applicable to programs in langu ..."
Abstract
-
Cited by 31 (5 self)
- Add to MetaCart
Analysis techniques, such as control-flow, data-flow, and control-dependence, are used for a variety of software engineering tasks, including structural and regression testing, dynamic execution profiling, static and dynamic slicing, and program understanding. To be applicable to programs in languages such as Java and C++, these analysis techniques must account for the effects of exception occurrences and exception-handling constructs; failure to do so can cause the analysis techniques to compute incorrect results and thus, limit the usefulness of the applications that use them. This paper discusses the impact of exception-handling constructs on several analysis techniques. The paper presents techniques to construct representations for programs with exception occurrences and exception-handling constructs, along with algorithms that use these representations to perform the desired analyses. The paper also discusses several software engineering applications that use these analyses. Finally, the paper describes empirical results pertaining to the occurrence of exception-handling constructs in Java programs and their impact on some analysis and software engineering tasks.
Automated Testing of Classes
, 2000
"... Programs developed with object technologies have unique features that often make traditional testing methods inadequate. Consider, for instance, the dependence between the state of an object and the behavior of that object: The outcome of a method executed by an object often depends on the state of ..."
Abstract
-
Cited by 24 (1 self)
- Add to MetaCart
Programs developed with object technologies have unique features that often make traditional testing methods inadequate. Consider, for instance, the dependence between the state of an object and the behavior of that object: The outcome of a method executed by an object often depends on the state of the object when the method is invoked. It is therefore crucial that techniques for testing of classes exercise class methods when the method's receiver is in different states. The state of an object at anygiven time depends on the sequence of messages received by the object up to that time. Thus, methods for testing object-oriented software should identify sequences of method invocations that are likely to uncover potential defects in the code under test. However, testing methods for traditional software do not provide this kind of information.
Regression Test Selection for C++ Software
- Software Testing, Verification & Reliability
, 1999
"... Regression testing is an important but expensive software maintenance activity performed with the aim of providing condence in modied software. Regression test selection techniques reduce the cost of regression testing by selecting tests for a modied program from a previously existing test suite. Ma ..."
Abstract
-
Cited by 23 (6 self)
- Add to MetaCart
Regression testing is an important but expensive software maintenance activity performed with the aim of providing condence in modied software. Regression test selection techniques reduce the cost of regression testing by selecting tests for a modied program from a previously existing test suite. Many researchers have addressed the regression test selection problem for procedural language software, but few have addressed the problem for object-oriented software. This paper presents a regression test selection technique for use with object-oriented software. The technique constructs graph representations for software, and uses these graphs to select tests, from the original test suite, that execute code that has been changed for the new version of the software. The technique is strictly code based, and requires no assumptions about the approach used to specify or test the software initially. The technique applies to modied and derived classes, and to applications programs that use m...
Testing Adaptive Software During Class Evolution
- Northeastern University
, 1995
"... Class evolution has significant impact on program maintenance and testing. Changes in class structure require maintenance of existing class methods, which must then be retested. Existing test cases can not simply be rerun, since the test cases may no longer be consistent with the class structure. ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Class evolution has significant impact on program maintenance and testing. Changes in class structure require maintenance of existing class methods, which must then be retested. Existing test cases can not simply be rerun, since the test cases may no longer be consistent with the class structure. The benefit of reuse is reduced if generic software requires testing to start from scratch each time a component is reused. Adaptive software components are designed to be flexible to changes in class structure, allowing reuse with many class designs. This paper presents an incremental approach to testing adaptive software during class evolution. Paper Category: Research Topic Area: Object Testing and Metrics, Templates and Generic Programming 1 Introduction Object-oriented software engineering is being increasingly used for system development, primarily due to advantages gained from the production of reusable components. While reuse is an assumed benefit, it is vital that a compone...
Change Impact Model Encompassing Ripple Effect and Regression Testing
- In Proceedings of the Fifth International Workshop on Quantitative Approaches in Object-Oriented Software Engineering
, 2001
"... Maintenance is one of the major concerns of software developers and industries. The success of this critical phase depends highly on the changeability of the software. In order to evaluate the flexibility of a software to accommodate changes, we have defined a change impact model for object-oriented ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Maintenance is one of the major concerns of software developers and industries. The success of this critical phase depends highly on the changeability of the software. In order to evaluate the flexibility of a software to accommodate changes, we have defined a change impact model for object-oriented systems. As previously defined, it calculates the impacted classes due to an atomic change. In this paper we present an extension of the change impact model to obtain a fine-grained assessment of system changeability. As a first extension, we take into account the classes that are impacted by ripple effect. In a second extension, we also count classes that need to be re-tested even if they are not directly affected. An experimentation is planned to study the relationship between software’s changeability assessed by the extended change impact model and design properties.
A Coherent Family of Analyzable Graphical Representations for Object-Oriented Software
, 1996
"... Many software engineering tools and techniques rely on graphical representations of software, such as control flow graphs, program dependence graphs, or system dependence graphs. To apply these tools and techniques to object-oriented software, we cannot necessarily use existing graphical representat ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Many software engineering tools and techniques rely on graphical representations of software, such as control flow graphs, program dependence graphs, or system dependence graphs. To apply these tools and techniques to object-oriented software, we cannot necessarily use existing graphical representations of procedural software. Representations of object-oriented software, like those for procedural software, must depict individual procedures (methods) and entire programs; however, they must also depict classes and their interactions, and account for the effects of inheritance, polymorphism, and aggregation. These representations should facilitate the use of existing program analysis tools and techniques, rather than requiring us to create new techniques. A system for constructing and managing these representations should take advantage of the code reuse inherent in object-oriented software, by reusing representational components. In this paper, we describe a coherent family of graphical ...
Change Impact Analysis for A Class Hierarchy
- Proc. Asia Pacific Software Engineering Conf. (APSEC'98), IEEE Comp. Soc
, 1998
"... Modified programs are required to be retested to determine whether changes have been made correctly and to investigate whether those cause any adverse effect on the program behavior. Then, the key issue is the extent of the retesting tasks. To save time and efforts, retesting should be done on only ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Modified programs are required to be retested to determine whether changes have been made correctly and to investigate whether those cause any adverse effect on the program behavior. Then, the key issue is the extent of the retesting tasks. To save time and efforts, retesting should be done on only the parts that might be affected by changes. Change impact analysis is the activity which identifies the parts to be retested.
A case study of the class firewall regression test selection technique on a large scale distributed software system
- In Proceedings of the International Symposium on Emperical Software Engineering
"... Regression testing is expensive and may consume much of organizations ’ software development budgets. Thus, it is of interest to reduce the total time devoted to test execution by using test selection techniques. Many techniques have been proposed but few have been evaluated on real-world, large sca ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Regression testing is expensive and may consume much of organizations ’ software development budgets. Thus, it is of interest to reduce the total time devoted to test execution by using test selection techniques. Many techniques have been proposed but few have been evaluated on real-world, large scale systems. In this paper we report on an empirical evaluation of using the class firewall regression test selection technique, in combination with scenario testing, on a large scale industrial software system using the Java byte code in the analysis. The study was performed on a large complex distributed software system in one of Sweden’s largest banks. Effects of using scenario testing together with regression test selection are reported. The results are that not all test cases were selected by the class firewall selection technique. Using scenario testing, where test cases are dependent, affects the number of test cases selected, as do the location and number of changes in the system. 1

