Sometimes, when fixing bugs in validated software, new bugs in existing functionality can appear. These are called regressions. This is a common risk and simply part of the game. No matter how well conceived, software is almost always modified to help meet user requirements or fix defects during its development and testing lifecycle. Luckily, one of the ways to ensure quality is maintained and bugs are zapped is through regression testing.
Regression testing is a functional testing method that re-executes test cases to new iterations (e.g. additions, changes or removal of functionality, fixed defects, or platform change) in order to spot new defects to the functionality of the software application. For example, a change in one module could impact another module down the road. Just as humans are prone to error, so are our software applications. Since programs evolve and change is inevitable with software development, regression testing is integral to the process.
Scope of Work
The scope of testing depends on the newly added feature or fix, and the input provided from the developer on the amount of change required. Additionally, another factor to consider is how much the new fix or feature is impacting other aspects of the software and the general priority regarding risks and requirements. As the number of regression tests can get out of hand, having a test strategy in place to limit tests is also a good idea.
When to Automate Regression Testing
Automating regression testing not only executes all tests for each release, but can also be performed at any time and help with overall efficiency. No more headaches or worries about whether a regression test is getting deployed in a timely and quick manner. Furthermore, automated tests are the perfect option for short repetitive tasks, enabling more tests to be executed. This offers greater insight when comparing outputs, and leads to improved software quality and functionality.
When to Go Manual
Now, keep in mind that while automated tests are very useful and needed for regression testing, it doesn’t necessarily mean that you don’t need manual testing as well. Though automated regression testing is great for deploying many tests at once, allowing for more useful feedback, they do need to be scripted. Oftentimes, functionality will be modified quickly and continuously, increasing the difficulty of scripting and maintaining automated tests. While this isn’t an everyday issue, it is important to recognize when it’s time to perform manual regression tests instead of automated regression tests. Otherwise, time may be wasted and the continuing cost of operation could increase.
Whether you decide an automated regression test or manual regression test is what’s required, know that no matter what your best approach is to always perform a regression test regardless. The consequences of not running a regression test means more defects and harder fixes for you down the road.