How to Plan for Regression Testing and Why It’s So Important
Sometimes in fixing one defect, we end up introducing a new one. A tired developer rushing to get their code checked in and tick that bug fix off the list may just catastrophically break everything else. We’ve all been there. That’s why regression testing is so important. Done properly, you’ll be able to catch and trace any new problems quickly.
(Image source: unknown)
Test after any significant change
For regression testing to work the way it should, you really need to be doing it every time there’s a significant change in the code. That could be a new feature rolling out or an apparently simple bug fix. All of the existing functionality must be tested again to ensure it still works as expected. The regression testing will inevitably grow as the project does, so you need to allocate resources efficiently and keep things scalable.
If you expect to handle regression testing manually, then plan to increase the team size over time. It’s also important to ensure that the test cases planned for each regression test are relevant. Don’t just throw every new test case in there and forget about it. There may be redundancies in there based on dated documentation or ditched functionality. Review them regularly and prune or add as required. Limited resources can make it impossible to run the full regression test suite, so prioritize and focus on high-risk areas first.
Know when to automate
Regression testing can be laborious, repetitive work for manual testers. It’s worth considering automated testing for short, repetitive tasks wherever possible. Automated tests can be run at the push of a button as many times as you want. Running them at the end of each day makes sense as you’ll have an actionable report come the morning.
Bear in mind that they have to be scripted and there is an associated overhead. The complexity of the test case is obviously going to impact on the difficulty of scripting an automated test. In some cases, functionality will change so rapidly and have so many interconnections that the maintenance of automated testing will be a serious drain. There’s also a risk that automated tests will miss important defects if they aren’t well-written.
Choosing the right tool
Much depends on the test automation tools you choose so, you should know what to look for. Plan not just for the current project, but for the project after that and beyond. Ensure that the tool offers support for the environments and technology you are using currently and whatever you plan to use in the future. Make sure that the tool you choose is accessible and flexible. You ideally want it to be simple enough to use that anyone in your team can create or edit a test case and run it.
Don’t just consider the cost of the software tool you choose, but also factor in the training required and the cost of creating and maintaining the regression test suite. It should be easy to input data, but it also has to be easy to extract data in report form for at-a-glance overviews of the status.
It’s not one or the other
Employing some automated tests for regression testing doesn’t mean that you dispense with manual testing entirely. The best approach is always going to be a mixture of the two. It can be tempting to scale regression testing back or put it off, but you must understand there’s a risk that dangerous defects will slip through the cracks. The longer it takes to identify them, the harder they’ll be to nail down and fix.
ABOUT THE AUTHOR:
Simon is an experienced freelance technology journalist covering mobile technology, software, and videogames for a wide variety of clients in print and online. He regularly contributes to Digital Trends, Tech Radar, and Android Authority, and he ghostwrites for CEOs in the technology space. After completing a Masters in Scottish History at Edinburgh University, he began his career as a games tester, progressing to lead tester, game designer, and finally producer, before leaving the industry to write full time. He is passionate about the potential for good software and hardware to improve our lives, and strongly believes that thorough testing is a vital prerequisite for greatness.