Regression testing ( a type of automation testing) is done to confirm a recent code or program change has not affected features. This test is fully or partially selected from already executed test cases which are re-executed to confirm existing functionalities are working as expected. This testing is done to ensure that the old code is still working after the code changes has been done.
When does Regression Testing is required:
This test is needed when there is a requirement to change the code and we need to ensure that the changes won’t affect other parts of the application software. It is also used for defect fixing.
How Regression Testing is done:
In regression testing we debug the code to identify the error. After error identification changes are made to fix the issues. After fixing test is performed with different cases from the test suite which covers both affected and modified parts of the code.
Software maintenance involves error connections, enhancements, and optimization of existing features. Modifications may cause errors in system that is why regression testing is done.
There are three types of regression testing techniques:
RETEST ALL: This is the most expensive method of regression testing. In this method all the tests are re-executed in the test suite.
TEST SELECTION: In this method we select few test cases from test suite and execute them to check the modified code are affecting the software or not. This test is further divided into two parts. Reusable test cases which can forwarded into deep regression cycles and obsolete test cases which are not used for succeeding cycles.
Prioritizing cycle: Depending on the frequently used functionalities we prioritize the cases. Test cases selection greatly reduce the regression suite.
HOW TO SELECT TEST CASES:
Selecting test cases for regression testing is an art and its not easy to check the defects at the last minute of big fixes. However, accurate testing can be done by electing the following test cases:
- Cases with frequent defects
- Visible functionalities
- Cases which verify the core functionalities of the product
- Test cases with frequent and recent changes
- Integration cases
- Complex cases
- Value boundary test cases
- Successful test cases
- Failed test cases
Tools for Regression Testing:
If you make frequent changes to the software testing cost will ultimately increase. In this scenario manual test execution takes place which is a lot time consuming. In such scenario automation testing is recommended. This type of automation depends on number of re-useable and successful regression cycle.
The following tools are used for this testing:
Selenium: This tool is used for the automation of web applications. It is a open source tool.
QTP: Quick test professional is a tool which is used to automate functional and regression testing. VBS script is used as a language for automation. It is a keyword based open source tool.
RFT: Rational functional testeris a tool which is java based and helps in automate the test cases. This tool also integrates the test cases with functional tester.
Configuration management is crucial when there is being continues modification of code. While doing configuration we need to ensure the following things:
- Code should be under configuration management tool.
- During testing coding should not be allowed.
- Database should be isolated and no changes should be made.