Course Overview Testing changes to an existing system is more difficult than testing new code because of the danger that a change will inadvertently break something else.
Studies show that, compared to new code, changes are ten times more likely to contain bugs.
This class presents the special techniques needed for testing changes to the system, whether those changes are enhancements or bug fixes. Regression testing is a simple concept. The problem is that there are a large number of pitfalls which are expensive to uncover by experience. It's easy to do regression testing almost right, which turns out to have serious consequences. Symptoms include large test sets of unknown content, lots of redundant tests, and bugs that slip through even though we supposedly used regression testing to eliminate the side effects of changes.