A regression test is a test that is intended to reveal any regressions introduced by modifications in software, an inevitable constant in todays rapidly changing business environments. Such regressions may or may not be desirable as they could be bugs caused by change side effects. Regression testing could be performed manually by a user exercising a set of predefined use case scenarios, automatically using a tool or a combination of the two. Obviously, the extent at which regression tests can be automated determines the agility of the SDLC, and the efforts should really focus on constructing the regression tests with validation assertions at the right fidelity, so that changes in the system can allow for easy maintenance and updates of these tests while execution is automated as part of the build cycle.
There is no silver bullet to constructing correct regression test suites beyond certain practices such as making sure that defined process is followed in mapping them to use case scenarios, which in turn are associated with business requirements and then ensuring that these use cases are covered starting from high priority ones and going down.
This was first published in July 2008