UML-based regression testing for OO software - Mansour, Nashat (2010)
In software maintenance, a system has to be regression tested after modifying it. The goal of regression testing is to ensure that modifications have not adversely affected the system. Regression test selection determines a subset of test cases, from the initial test suite, which concentrates on the parts of the system affected by the modification. Previous techniques have been mainly code-based and several of them have addressed procedural programs. When working with large and complex object-oriented systems, source code-based regression testing is usually costly. This paper proposes a programming-language-independent technique for regression test selection for object-oriented software based on Unified Modeling Language (UML 2.0) design diagrams. These diagrams are: the newly introduced interaction overview diagram, class diagrams, and sequence diagrams. We assume a test suite that contains both unit and system test cases. Based on the software changes reflected in the class and the interaction overview diagrams, our proposed technique selects test cases in phases. In the first phase, we select both unit and system test cases that directly traverse the changed methods and their calling methods. For the second phase, we present algorithms for detecting system level changes in the interaction overview diagram. If the change is at the action level, which is represented by a sequence diagram, only the test cases that execute changed methods will be selected. We apply our proposed technique to a few object-oriented subject applications and evaluate its precision and inclusiveness in addition to the number of selected tests; the results demonstrate the advantages of the technique. Copyright © 2010 John Wiley & Sons, Ltd.