Regression testing is used to verify that features and functionality that worked correctly before any coding updates were carried out still work as intended after the updates.
Regression testing is used verify that features that worked correctly before any coding updates were carried out still work as intended afterwards.
What is the purpose of regression testing on a website?
Regression testing, also known as sanity testing, is carried out to ensure that the features and functionalities on a website which were functioning correctly prior to coding updates continue to work as intended after the updates.
The main purpose of regression testing is to confirm that the updates have not negatively impacted other features, causing them to either function or display in ways which are unintentional, or even fail completely.
Regression testing is not exclusive to website development, but also to apps and software development in general.
Why is regression testing important?
The main reason that regression testing is important is that the addition of new features or functionality, or updates to existing features and functionality can cause unwanted changes elsewhere.
Similarly, when defects are found and resolved (which usually requires code changes), regression testing ensures that previous test cases are rerun to confirm not only that the defects (also commonly referred to as
bugs) have been fixed, but also that the change which were carried out to fix the bugs did not introduced new issues.
By re-executing relevant test cases or test suites, regression testing helps ensure that the software still functions correctly after changes have been made. Regression testing can therefore be very repetitive, which explains why many companies with larger websites use automated regression testing tools.
Is regression testing really necessary?
If web developers didn't make mistakes, would we need regression testing?
Some may argue that regression testing would be unnecessary if web developers didn't make mistakes. But that's not the case... Firstly that's a bit harsh on web developers, and secondly, even in the absence of mistakes, there is always a possibility of unforeseen problems arising.
- Database entries might suddenly start causing unpredictable things to happen on the website. In other words something in the databases in the
back endcause strange things to happen on the website at the
- Changes to styling definitions (in the CSS which the website uses) may have been updated for the new feature, but has impacted another feature which shared some of those styling parameters.
- With many websites using plug-ins and external font and styling libraries, those external sources are often outside of the control of the website being tested. If those change or break, they could have unforeseen consequences on your website!
It's not my fault!
These might not necessarily be mistakes on the part of the developer, but also bear in mind that many large website platforms undergo a number of separate project implementations at the same time, and those might be handled by different developers who are working in isolation.
The despite each of those separate projects being tested successfully under a process known as
User Acceptance Testing when those individual projects (or updates) come together on the same platform, there might be some incompatibility issues.
Regression testing could find those issues, and then bugs can be reported, tracked, fixed, and then regression tested again before the project can proceed along the path towards being released into the live environment.
Levels of regression testing
Regression testing can be performed at various levels, such as:
unit testing(testing individual components or modules),
integration testing(testing the interaction and compatibility between components), and
system testing(testing the entire system as a whole),
And as already mentioned it can be carried out manually or automated using testing tools, depending on the complexity and scale of the software application.