Database Reference
In-Depth Information
checking the effectiveness of their technique in test case reduction. Beydeda and Gruhn
(2001) present a black box based regression testing technique. They represent a software
system by a domain model and test case selection is based on changes to the model. Their
approach is divided into two phases. In phase one, test case selection is performed on old
test cases. In phase two new test cases are generated to test newly added parts.
Other algorithms invloving regression testing include: incremental slicing algorithm
(Agrawal, Horgan & Krauser, 1993), slicing algorithms based on data fl ow testing and in-
cremental data fl ow analysis described by Gupta, Harrold, and Soffa (1996) and Harrold and
Soffa(1988), fi rewall-based approaches presented by Hsia et al., (1997), Kung et al. (1995),
Leung and White (1990a, 1990b), and Leung and White (1992), stochastic search algorithms
(Mansour & El-Fakih, 1999), safe algorithm based on module dependence graph described
by Rothermel and Harrold (1997, 1998), semantic differencing approach (Binkley, 1997),
and textual differencing approach (Vokolos & Frankl, 1998). However, to the best of our
knowledge, database programs have not been specifi cally dealt with in regression testing
research. SQL-based database programs support a number of features that do not exactly
apply in the cases of procedural and object-oriented programs. Examples of these features
are: SQL statements, table constraints, exception programming, and table triggers. These
features introduce new diffi culties that hinder regression test selection.
CONCLUSIONS AND FURTHER WORK
We presented a two-phase regression testing methodology for SQL-based systems.
In phase 1, we suggested techniques for modifi cation detection and modifi cation Impact
Analysis, in which we determined affected modules and test cases traversing them. In phase
2, we presented two alternative algorithms for reducing the test cases selected in phase 1.
The Graph Walk algorithm is statement-based and extends to the inter-procedural level. The
Call Graph Firewall algorithm is based on fi rewalls for database applications. In addition,
we developed a support system and used it for the experimental work.
In phase 1, we showed that exceptions could be modeled using existing control fl ow
constructs with some alteration. We presented control fl ow modeling techniques that take
into consideration nested compound statements with exception handling. Also, we proposed
a data fl ow analysis method that uses database interactions and is based on identifying the
usage of table columns. Furthermore, we provided a detailed analysis of the component
dependencies that exist between various database components. We found that control fl ow
analysis, Call Graph modeling, data fl ow analysis, dependency analysis and Impact Analysis
are useful for regression test selection.
From the empirical results, we conclude that: (i) the proposed techniques are better
than the Select-All approach in saving regression testing time and are more reliable than
the Select-Random approach in selecting modifi cation revealing tests; (ii) Impact Analysis
is very effective in localizing the effects of modifi cations and is useful in a preliminary
selection of regression test cases; (iii) the Graph Walk technique is particularly successful
in reducing the number of selected tests for code modifi cations while ensuring the selection
of modifi cation revealing tests; (iv) the Call Graph Firewall technique for test reduction is
most useful when applied to modular applications that include a hierarchy of module calls.
However, it may miss some modifi cation revealing tests.
Search WWH ::




Custom Search