Regression Testing
Regression Testing
The purpose of this article is to outline a few techniques that will help
us answer these questions. The first issue we should consider is the
fact that it is not necessary to execute our regression at the end of our
testing cycle. Much of the regression effort can be accomplished
simultaneously to all other testing activities. The supporting assumption
for this approach is:
"We do not wait until all testing is done to fix our defects."
As we prepare to execute our second test run (Code Drop 2), we must
decide what tests will be executed. The rules we will use only apply to
our regression effort. There are rules we can apply to the subset of
tests that have passed, in order to find out which ones we should re-
execute. However, that will be the topic of another article.
The fundamental question we must now ask is: "Have any of the
defects found been fixed?" Let us suppose that defects 1, 2, and 3
have, in fact, been reported as fixed by our developers. Let us also
suppose that three more tests have been added to our test suite. After
"Code Drop 2", our matrix looks as follows:
This simple, but efficient approach ensures that our matrix will never
look like the matrix below (in order to more clearly show the problem,
we will omit the Defect # column after each code drop). We will also
consider Code Drop 5 to be our final regression pass.
These common sense rules will ensure that regression testing is done
smartly and in the right amount. In an ideal world, we would have the
time and the resources to test our product completely. Nevertheless,
today's world is a world of tight deadlines and even tighter budgets.
Wise resource expenditure today will ensure our ability to continue to
develop reliable products tomorrow.