Software regression
Encyclopedia
A software regression is a software bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...

 which makes a feature stop functioning as intended after a certain event (for example, a system upgrade, system patching
Patch (computing)
A patch is a piece of software designed to fix problems with, or update a computer program or its supporting data. This includes fixing security vulnerabilities and other bugs, and improving the usability or performance...

 or a change to daylight saving time
Daylight saving time
Daylight saving time —also summer time in several countries including in British English and European official terminology —is the practice of temporarily advancing clocks during the summertime so that afternoons have more daylight and mornings have less...

). A software performance regression is a situation where the software still functions correctly, but performs slowly or uses more memory when compared to previous versions.

Regressions are often caused by encompassed bug fixes
Hotfix
A hotfix was originally the term applied to software patches that were applied to live i.e. still running systems. Similar use of the terms can be seen in hot swappable disk drives...

 included in software patches. One approach to avoiding this kind of problem is regression testing
Regression testing
Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing functionality after changes have been made to a system, such as functional enhancements, patches or configuration changes....

. A properly designed test plan
Test plan
A test plan is a document detailing a systematic approach to testing a system such as a machine or software. The plan typically contains a detailed understanding of what the eventual workflow will be.-Test plans:...

 prevents this possibility before releasing any software. Automated testing and well-written test case
Test case
A test case in software engineering is a set of conditions or variables under which a tester will determine whether an application or software system is working correctly or not. The mechanism for determining whether a software program or system has passed or failed such a test is known as a test...

s can reduce the likelihood of a regression.

A software regression can be of one of three types:
  • Local – a change introduces a new bug in the changed module or component.
  • Remote – a change in one part of the software breaks functionality in another module or component.
  • Unmasked – a change unmasks an already existing bug that had no effect before the change.


The term regression was originally used to refer to a change that caused a previously fixed bug to reappear and the software to thus regress to a prior, incorrect state. Regression test suites were accordingly composed of tests which tried to ensure the continued effectiveness of past bug fixes. However, the term has since evolved to its current, more general meaning of any change that breaks existing functionality.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK