|
||||||||
|
|
Regression Testing
Posted by Randall Becker, Nexbridge Inc., 03-Jan-2000Regression testing is the practice of repeating the same set of tests against an evolving system or subsystem to ensure the same results. Regression testing ensures that changes introduced into the system do not break existing functionality. There are many techniques and points in software maintenance to accomplish this, including black box testing, white box testing, performing it during unit testing, system testing, integration testing, and most notably (but often forgotten) user acceptance testing. Regression testing seems like a relatively simple process, on the surface, where tests cases are added to the set of tests (known as the "test suite") performed as the software (I like to use the term "product" when change is involved) evolves. As with "Human Sacrifice", it seems like a good idea at the time - is often to the result. The test suites themselves usually need to be evolved as the product evolves, because the results often change, deliberately (extensions, formatting changes, message definition changes, 2 to 4 digit date changes). Maintenance of the test suites becomes, very often, as technically complex and challenging as the product being modified. Be careful so as not to underestimate this. Before going out and selecting "tools" for regression testing, you should have a good understanding of what exactly will require testing. As questions like "What will change over time?" "What can be reasonably tested?" "Where can we best use regression testing techniques and where are we just wasting time?" These are things the developers should be able to assist you in determining. Other questions like "Who will be doing the testing?" "Where will testing be performed in our development processes?" are for you to answer (with your management, if necessary).
|