Software testing consists of a number of different types of tests. These can easily be confused due to their resemblance and seemingly overlapping purposes.
Retesting and regression testing are two commonly confused concepts. Not only do they sound alike, they also have several similarities.
Let’s clear up the meaning of these concepts.
The verb regress means to return to a former state or condition. In software, this usually isn’t considered a good thing.
That is why software developers test for regressions, hence the term regression testing. The point of regression testing is to ensure that new updates or features added to a software don’t break any previously released updates or features.
To perform regression testing you typically have a regression suite – a series of test cases set up to test these older features.
Regression test cases are often automated because, as you can perhaps imagine, these tests tend to build up as the software changes or grows.
Where retesting differs from regression testing is that, instead of being designed to search through all the previous updates and features of the software to find unforeseen defects and bugs, retesting is designed to test specific defects that you’ve already detected (typically during your regression testing).
In other words, regression testing is about searching for defects, whereas retesting is about fixing specific defects that you’ve already found.
They can therefore occur in one and the same testing process, where:
- You update your software with a new feature
- You test the existing functionality (regression testing)
- You detect a bug in your existing functionality
- You fix the bug
- You retest that functionality (and hope that it works!)
Regression testing vs retesting: Key differences
You could actually say that regression testing is a type of retesting. Retesting essentially just means to test something again. And when you are regression testing, you’re typically testing something that you’ve tested numerous times before.
But determining what the two have in common might confuse more than it will help. So for the sake of clarity, here’s an overview of the key differences.
Make sure to read our blog post on regression testing to learn more about the topic, and to find out how you can perform regression tests faster and more efficiently.