Imagine a scenario where your customers see a nasty bug in your application the day a major release was rolled out. You had been raving about the new update but the bug now blocks the main workflow.
The update did not add up to your company’s goodwill as it should have. Regression Testing is put in place just to avoid such situations.
What is regression testing exactly?
Regression testing can be defined as testing done to verify if the code changes in a software/app have any kind of impact on the existing functionality of the product.
Regression testing ensures that if any previously developed functionality of a software/app is broken, it is captured before the change is moved to production.
Check out a detailed guide on it: regression testing.
If not properly planned, regression testing can easily be overwhelming. To keep regression testing test cases effective and manageable, it is essential to be careful while selecting the corresponding test cases.
Here we present to you a few tips for selecting regression testing test cases.
A pro-tip for you before you start selecting the regression test cases is to make sure that your regression test suite is up-to-date and all obsolete test cases have been removed.
1. Select test cases for Regression testing where there are recent code changes or functional changes
Testers should first concentrate on all those test cases wherever there are recent changes in code/functionality of the application. There are higher chances of encountering issues in these areas. In the test case documentation, maintain the history of functionality changes in order to identify test cases which can be used in the regression suite later.
2. Select test cases that map to the business requirements
It should be ensured that the functionality of the application is working fine as per the software requirements specified by the client.
3. Select test cases for Regression testing in areas with frequent bugs/defects
Tester has to select the test cases in the areas where there are frequent bugs or defects. There might be some areas in the software which usually fail even with a small coding change. There are more chances of getting multiple issues in these areas.
4. Select test cases for Regression testing of the areas which are visible to the user
Suppose there is a web application on ‘School Management’. There might be several modules in it. Suppose in one of the modules, the logo of the application is incorrect. That’s an issue.
The issue is low in severity but has high priority from a user’s point of view. The tester has to select the test cases at the areas which are visible to the user.
5. Select all integration test cases for Regression testing
Integration testing is a type of software testing in which individual software modules are combined and they are tested in a group. Suppose there is 1 application that has 2 modules which are integrated in a way that module 2 uses data of module 1.
Now, whenever there is any update in the data of module 1, the data of module 2 doesn’t get updated.
This can be due to integration issues in the interface which is not allowing data transfer from module 1 to module 2. Testers need to check for these types of integration issues. All such integration test cases need to be selected during the regression testing.
6. Select all complex test cases for Regression testing
Software testing is becoming complex day by day. Most of the time, on executing complex test cases, the application gets crashed or the performance gets affected. This can become a serious issue.
To test the complexity efficiently, testers should use different methods and techniques to ensure software quality. Testers have to make sure that all complex test cases are included in the regression testing suite.
7. Select test cases based on priorities for Regression testing
With time, the regression test suite may become big and take a significant amount of time for execution. In such scenarios, to reduce the testing time and efforts, first select all the test cases which are of high priority from the user’s/customer’s point of view.
Make sure that these test cases are working fine followed by other test cases which are of medium and low priorities if time permits.
8. Select test cases for Regression testing based on criticality and impact of bug fixes
If the criticality and impact of bug fixes is low, then the tester can select just the high priority test cases for the impacted functionalities.
If the criticality and impact of bug fixes is high, then the tester needs to select all test cases from high, medium and low priorities.
9. Select a sample of successful and failed test cases for Regression testing
During regression testing, the tester needs to select some of the test cases which were earlier passed or failed. A test case that fails for a reason unrelated to the functionality of the application is termed as ‘failed test case’. As some areas in an application are more prone to errors, they usually fail even after making a small code change.
In case the result of a test case was passed in the previous builds and failed in the current build, then the regression test case is considered as failed.
Testers should select some of the successful and failed test cases to check if the application works as specified. Most of the time to check passed or failed test cases, the tester makes use of automation tools.
Many times, organizations face the challenge of managing a large regression test suite with hundreds of test cases and sometimes more. Sometimes, just to save on the time spent on regression testing, they skip it. But skipping is not a feasible solution for the long run as more often than not they miss catching a regression bug. When this regression bug is caught by a customer or a prospect, it does not bode well for the company’s reputation. Thus, a recommended solution is to automate your regression testing instead of skipping it. Read here to know how to best automate your regression testing.
If the software application undergoes frequent changes, then manually executing test cases can be time-consuming. A smarter way is to automate the regression test cases and then execute them.
Testsigma is a cloud-based solution that supports web, mobile and API test automation. Testsigma can identify the bugs introduced as a result of changes made in the code.
If there is a change in one attribute on one web page of your web application, other test cases corresponding to it may have been impacted. How do we check them?
One way is to let the test cases execute and then look at the failed ones, but this may require many iterations because some test cases may fail due to a different reason. One solution is to organize test cases by pages and workflows or adding tags.
But an ideal automated regression testing tool should suggest all affected test cases after a feature enhancement/bug fix. Testsigma does that for you!
- Easy scriptless testing in plain English
- Automatic suggestions to create regression test suites of test cases that have a direct impact on any change
- Schedule test executions
- Generate detailed reports of regression test executions on multiple device configurations at the same time
- Centralized object repository to easily track and rectify locator issues
- Prioritized test runs with custom filters to create lean and optimized regression test suites. This can be decided based on the end-user experience or the customer’s business requirements
- Easily integrates with CI/CD tools, Jenkins, JIRA, Slack, etc
- Testsigma also gives the flexibility to write custom functions, define prerequisites for regression test suites