Database Reference
In-Depth Information
Figure 9: The Is_Different algorithm
Is_Different
(
N1
,
N2
) :
if
N1
!=
N2
then
return true
for each component
C
in Component(
N1
)
if
C
is modifi ed then
if
C
is a module then
if
C
does not belong
Component
(
N2
)
return true
else
return true
for each component
C
in
Component
(
N2
)
if
C
does not belong
Component
(
N1
)
return true
return false
Case 1
Change the defi nition of trigger
Update_Balance
. Instead of “after insert”, change it to
“after delete”. This modifi cation makes the trigger refrain from fi ring when statement 3 in
Pay_Check
module is executed, and thus the statement 3 is affected and all test cases execut-
Pay_Check
ing this statement are included in the retest list. These test cases are T2, T3, and T4.
Pay_Check
module is executed, and thus the statement 3 is affected and all test cases execut-
Case 2
Add a not-null constraint to value_date column in table TRANSACTIONS. This column
is not listed within the insert list of the insert statement in module
Pay_Check
. However,
in our impact analysis we include this column as an implicit usage since it is set to null. By
adding not-null constraint to this column, the insert statement is using implicitly a modifi ed
component. Thus, all test cases executing this statement should be executed. Similar to case
1, statement 3 in module
Pay_Check
is affected and the same test cases are selected. These
test cases are T2, T3, and T4.
Case 3
Statement 2 in function
Stolen_Check
is to be modifi ed. The statement, return(true),
Stolen_Check
becomes return(false). This modifi cation implies that all test cases executing statement 2
should be added to the retest list, which are test cases T1 and T5.
Call Graph Firewall
Leung and White (1990a) present a selective regression testing technique for inter-
procedural testing that deals with both code and specifi cation changes. Their technique
determines where to place a fi rewall around modifi ed code modules. Then, it selects unit