In this definition guide, you will learn what is regression testing. Regression testing is a testing methodology that ensures previously developed software code and features continue to work properly while retesting new code and features. This is vital in software development as it confirms changes to code have not caused unintended adverse side-effects.
“Regression testing ensures that older code and features still work while retesting the newly added code and functionality making sure it works as well with the existing code.” -Source: How AI is transforming software testing?
In fast Agile development lifecycles, software code is updated often. There are times when defective code can reappear in production due to either human error or poor revision control. Proper regression testing at the QA stage before production can catch these issues. Alternatively, a fix for one part of the code can inadvertently cause bugs in another part of the application.
For example, if we launch feature A it might break B. In practical terms, say we are building an e-commerce website, and change the search feature then break the item purchase flow. That’s where the regression happens. That is why we want to perform full regression testing because we cannot be fully sure one feature inadvertently affects another. Sometimes this can be overlooked by humans. However, machines could catch this flaw and notate with it screenshots for QA testers later on in a report. This is just one, of many, features in AI-powered test automation tools like Autify.
To avoid errors like this, it is a great coding practice to document any bugs and regularly run them through regression tests. To reduce possible human errors, it is best to use automated testing tools rather than manually running them. With a well-prepared test plan, you can use such tools to automatically execute test cases. Some DevOps teams schedule tests right after compilation, nightly, or even weekly.
Takahiro Yoshii, a QA (Quality Assurance) manager at SMN Corporation shared his experiences with regression testing. He stated, “there are times when adding new features causes problems for existing functions and causes regression. Of course, the more features you have, the more likely regression will be. The test itself will become complicated too.” He goes on to add, “it’s not uncommon to find a bug and have to check for regression. You start forgetting how much of the regression testing needs to be done manually.” He elaborates, “we are reaching that point, and it was becoming increasingly difficult to handle it manually.”
By implementing Autify for their regression testing solution, they would end up saving 40 to 80 man-hours per month. Takahiro mentions, “something that used to take 40 hours now takes virtually zero hours. A task that one staff used to spend a whole week doing is now entirely automated. The 40-hour saving happens once or twice a month.” This was valuable time that staff could be spent on other tasks Yoshii explains.