Regression Testing
Regression Testing
Regression Testing
Introduction:
This article attempts to take a close look at the process and techniques in Regression
Testing.
If a piece of Software is modified for any reason testing needs to be done to ensure that it
works as specified and that it has not negatively impacted any functionality that it offered
previously. This is known as Regression Testing.
- That the application works as specified even after the changes/additions/modification were
made to it
Regression Testing plays an important role in any Scenario where a change has been made
to a previously tested software code. Regression Testing is hence an important aspect in
various Software Methodologies where software changes enhancements occur frequently.
Any Software Development Project is invariably faced with requests for changing Design,
code, features or all of them.
Each change implies more Regression Testing needs to be done to ensure that the System
meets the Project Goals.
All this affects the quality and reliability of the system. Hence Regression Testing, since it
aims to verify all this, is very important.
After the change the new functionality may have to be tested along with all the original
functionality.
With each change Regression Testing could become more and more costly.
To make the Regression Testing Cost Effective and yet ensure good coverage one or more of
the following techniques may be applied:
- Test Automation: If the Test cases are automated the test cases may be executed using
scripts after each change is introduced in the system. The execution of test cases in this
way helps eliminate oversight, human errors,. It may also result in faster and cheaper
execution of Test cases. However there is cost involved in building the scripts.
- Selective Testing: Some Teams choose execute the test cases selectively. They do not
execute all the Test Cases during the Regression Testing. They test only what they decide is
relevant. This helps reduce the Testing Time and Effort.
Since Regression Testing tends to verify the software application after a change has been
made everything that may be impacted by the change should be tested during Regression
Testing. Generally the following areas are covered during Regression Testing:
- Create a Regression Test Plan: Test Plan identified Focus Areas, Strategy, Test Entry
and Exit Criteria. It can also outline Testing Prerequisites, Responsibilities, etc.
- Create Test Cases: Test Cases that cover all the necessary areas are important. They
describe what to Test, Steps needed to test, Inputs and Expected Outputs. Test Cases used
for Regression Testing should specifically cover the functionality addressed by the change
and all components affected by the change. The Regression Test case may also include the
testing of the performance of the components and the application after the change(s) were
done.
- Defect Tracking: As in all other Testing Levels and Types It is important that Defects are
tracked systematically, otherwise it undermines the Testing Effort.
___________________________________________________________