For effective post-release software product support, defects reported by clients should be analyzed to correct the underlying software bugs. Diagnosis testing is generally used to recreate the defect scenario and to predict the bug.
Software maintenance usually comprises activities to adapt the software to various operational environments, or to make better the product in all possible ways.
Different software product updates through new releases can be an enlargement to these support activities. The software with a big history and multitudinous foregoing releases are generally referred to as legacy products.
In this case special way of testing named regression testing is normally used to assure that beforehand supported software functions are not negatively influenced by the updates.
Regression testing is closely associated with specific testing stages for legacy products and for main software support activities.
For new product releases, we often go through a full cycle of software testing, with the main attention on regression testing normally on the integration testing sub-stages where old and new software elements are integrated.
For small updates and software maintenance, regression testing may compose the major part of software testing.
Methods for regression testing are generally include: