What is regression testing and types in software testing: Let’s begin from a valid point so that you can easily understand what is regression testing and why we are performing regression testing? Suppose you have raised a bug and the developer has fixed the bug then as a tester it’s your job to verify that the raised bug has fixed or not.
But at the same time, it’s your responsibility to verify that by the time fixing the old bug it does not break any other functionalities or affect any other existed functionalities. so to verify that no new issues arise or the bug fix will not affect any other features we are performing software testing that is called Regression testing.
Regression Testing Meaning
In regression testing, we have chosen some specific or already executed test cases and we re-executed that to ensure that the existing functionalities are working as expected.
This type of testing is mainly performed to make sure that new code changes for fix the bug does not impact on the existing functionalities and also to ensure that the old codes are working as expected after the new code changes.
When we do regression testing?
We need to perform regression testing when there is:
- When there is a new requirement the code needs to be modified according to the requirement
- When there are some new features added to the application
- Defect fixing
- When some performance issue fix happens
How to do Regression testing?
During the software maintenance activity of the software application, some of these activities are carried out like enhancements of the application, bug fixes, optimization of the existed codes, and deletion of an existed feature. When we perform the above operations after that we may get some unexpected behaviors of the application.
So to find out the unexpected behaviors of the application we need to perform the regression testing. Hence regression testing is an important testing process of software testing and so we can carry out by using the following techniques.
- Retest All Test cases: In this type, we are running all test cases that are why it will take more time and also resources also.
- Selected Test cases:
Instead of running all test cases, we can run some selected test cases by categorizing all test cases into 2 categories like
1. Reusable test cases: Reusable test cases can be used in success regression cycles.
2. Non-reusable test cases: Obsolete Test Cases can’t be used in succeeding cycles. - Prioritizing Test cases: We can also select those test cases which are the impact on the business, high priority, and are regularly used test cases for the regression suite. If we select the test cases based on such criteria then we can get a great regression test suite.
When you are select or prioritize the test cases based on the above principles then selecting test cases is not that much easy. So when we are a plan to add a test case in the regression suite then in that time we have to think about below things, which makes our selection process easy
- Select those test cases where you are getting frequent defects
- Select those functionalities test cases which is more visible to the user or used by the users
- Test cases which deal with the core features of the application
- Test cases of those functionalities which are changed recently
- Integration test cases
- Complex Test cases
Regression testing tools
if your software application going on frequent changes then it’s a good idea of doing regression testing. But if you are going to perform through manual then it’s not a good choice because it will take more time as well as resources also. In this case, automation of test cases is a good idea but for that, we can select only those test cases which are re-usable for regression cycles.
We can use below automation tools for performing regression testing
- Selenium
- Unified Functional Testing (UFT)
- Rational Functional Tester (RFT)
How to Configure for Regression Testing?
As in each and every organization is followed the agile methodology and in this type of process where the source code is changed frequently there, we need to perform the regression testing. So, to ensure the regression tests observe the following things:
- The code should be in configuration management tools like Jenkins for regression tests
- During the regression test phase, no new changes should be allowed.
- No Database change should be allowed and the database which is used for regression test should be kept in separate.
Challenges:
- For more accuracy, some time the test cases count is very large. Because of that due to some time and budget constraints we cannot run the entire regression suite.
- It is very much a stuff task to get the maximum test coverage by minimizing the test suite.
- Find out the frequency of regression test is another big challenge to choose among after each modification or after each build or after a bunch of bug fixes.
Please write comments if you find anything incorrect, or you want to share more information about this topic discussed above then you can use our contact us page.