Developing a Regression Testing Strategy



Before agile, regression testing was simple. The testers would take all the ideas for regression testing that were created during a release cycle, add them to the existing ideas, and then run each one until the entire stack was complete. The time it would take to ship software was easy to calculate when it was released once a quarter or every six months. Software teams today aim to release software every two weeks or faster.

Agile teams test every function during the release cycle. They may do some light poking one day before shipping and then give their approval. They could also do nothing, and the software still ships. A regression testing strategy is a better approach to this problem.

How to Develop a Regression Testing Strategy

Each new software update can introduce new problems. A user might be presented with a new page, and asked to submit a date format that the programmer didn't expect. The user might get an error message on the page, explaining what they don't understand or care about. These are all risks that are easily imagined and where feature testing during sprints shines. 

These scenarios can be performed by testers, who will then report the issues. Programmers can review the code and fix any problems. Then, they can create automated checks that run along with the build to help the team quickly find out if there are new ones.

At the end of every sprint there are a lot of small changes and new features. Each of these was tested a bit on its own. It seems that everything is fine now. It could be, but it is possible. The interactions between each of these changes with the rest of the product can pose a risk.

Software is not an isolated entity. The authentication library interacts directly with user profiles. These interact with screen design, data access, and reporting. One feature's tendrils can touch another. Sometimes, unexpected ways are discovered. These surprises can sometimes be discovered through regression testing.

How to create a regression testing strategy

Socializing regression testing information via a 'regression board' is one way to address the problem of short time for regression testing.

Each member of the testing group can post-it notes a change that they have worked on during sprints and stick it on a wall. The notes are arranged in a top-down order based on which changes should be tested first. This list can be ordered according to perceived risk or importance to the customer. The CEO could also order it based on that information. 

Based on their knowledge, other members of the team can slightly rearrange the cards. Because a programmer knows that changing a user profile can potentially impact a demographics report, she might add a card to the deck. Based on their unique project perspectives, different team members contribute their knowledge to the regression test board.

The board can be referred to by the test team when the feature work has been completed and it is time for pre-release testing. There are many decisions to be made if there is more than 12 hours of work on the board, provided everything is in order and testers don’t spend too much time investigating and reporting bugs. Managers can decide to remove a feature from the list. Other non-testing staff can also be hired to assist with low-risk features or extend the release. Managers can be more educated and make better decisions.

A well-organized and clear list of regression testing tasks create a shift in the conversation from "There's not enough time" to "This team knows what is important and how many hours are available."

The technical side of a regression testing strategy

Technical is the other side to a successful regression testing strategy. Programmers can create automated checks while developing new features. Culture shifts eventually can lead to a situation where a feature cannot be considered ready for commit until the programmer has completed some check building. Although this is not testing, it can prove that code changes work as expected. This is intended to reduce the risk of changing code and provide a system for change detection.

This is one example of a strategy to test regression before releasing new code to production. Next, assess the way that the development team prepares to release a new version and identify areas for improvement. Many teams already have a strategy but don't know how to use it.

Comments

Popular posts from this blog

Regression testing vs. UAT: Know the difference?

Regression Test Automation: A Quickstart Guide

What is the Purpose of Regression Testing?