Content deleted Content added
misspelling |
No edit summary |
||
Line 1:
'''Regression testing''' is
Common methods of regression testing are re-running previously run tests and checking whether previously-fixed faults have reemerged.
Experience has shown that as software is developed, this kind of reemergence of faults is unfortunately quite common. Sometimes it occurs because a fix gets lost through poor [[revision control]] practices (or simple human error in revision control), but just as often a fix for a problem will be "fragile" - if some other change is made to the program, the fix no longer works. Finally, it is not unknown that when some feature is redesigned, the same mistakes will be made in the redesign that were made in the original implementation of the feature.
Line 7 ⟶ 9:
Regression testing is an integral part of the [[extreme programming]] software development methodology. There design documents are replaced by extensive, repeatable and automated testing of the entire software package at every stage in the [[software development cycle]].
Regression means to step backward. When software changes are made that break stuff that used to work, it is considered to regress. Regression is the opposite of progress.
<I>Remaining questions - who invented the term, where did it come from - academia, industry, ???? Who was the first to use it systematically? Does it get a mention in the Mythical Man-Month, for instance?</I>▼
▲<I>Remaining questions - who invented the term
As a consequence of the introduction of new bugs, program maintenance requires far more system testing per statement written than any other programming. Theoretically, after each fix one must run the entire back of test cases previously run against the system, to ensure that it has not been damaged in an obscure way. In practice, such <i>regression testing</i> must indeed approximate this theoretical idea, and it is very costly. -- Fred Brooks, Mythical Man Month (p 122)
|