There is relationship between functional testing, user acceptance testing
and regression testing.
The nature of regression testing is to process a test case/scenario/module
which has been previously executed and the results proven to be correct.
You then ensure that this test case then returns the same results.
If you need to create test cases then it is not regression testing, it is
functionality testing.
Regression testing scripts are built up over time. As your functional tests
are proven to be correct, they are added to your regression test.
In my experience, a regression test consists of (inter alia);
When changes are made, those changes are subjected to the various systems
tests (load / stress/performance security etc) and also to functional and
user acceptance testing.
You would also process the areas of your current regression script which
include test cases for the areas of the application identified as possibly
being impacted by the change.
There are then three possible results of the regression test.
- The identical results are returned. This indicates that there has been no unforeseen adverse impact on that area of the system
- The results are different, because the nature of the change being tested changes that test case (e.g. a report which used to list clients in alphabetical order has now changed to zip code order, because the client asked for it)
- The results are different, because the change has accidentally 'screwed up' some other area of the system (precisely the reason we do regression testing). We fix it, do functional tests / UAT and start the regressions testing over again (and again).
Once the results of this testing are proven to be correct, the change
is included in the released software. You then add (some or all) of the
functional and user acceptance testing to your regression script, to be
used again.
Obviously, this leads to an enormously valuable database of test cases and
results, which you can call upon at any time. However the regression testing
can add a lot of time to the testing.
As well as the time taken, the benefits of the regression testing are not as obvious as the other types of testing.
Most people can see the merits of spending time doing functional/user
acceptance testing, finding bugs, fixing them, retesting etc as there is
an obvious return on the time spent doing this.
However, you may find that you could invest a large amount of time processing
your regression test and only turning up one or two minor bugs. This will
not seem such a great benefit, yet this is probably a very important part
of the testing, as every time a change is applied you risk introducing a
new bug.
It is the fact, that regression testing is enormously important, yet can
be incredibly time consuming (not to mention boring - doing the same testing
over and over again) that has lead to the development of automated testing
tools.
The choice of the right tool, that will allow you to capture the details
of a test case, how to enter it, capture the results returned and then allow
that test case to be played back, time and time again, and the tool compares
that the results are always the same.
We are currently evaluating testing tools, so I cannot make a recommendation of the right choice, nor can I let uyou have the benefit of my experience in choosing a tool. I can however provide a link to a site which has a comprehensive list of testing tools, and reviews for them. That site is http://www.methods-tools.com/tools/frames_testing.html
Home | Read my CV | Search the WWW | Pictures
User Acceptance Testing | Learning to Program in C
ICQ Page (including Software Testers ICQ Group