It's time to retire the idea of Regression Testing folks. Regression testing, at least the way its being performed today is typically a value free, wasteful exercise and falls into the category of “bad testing”.
“Regression testing is any type of software testing that seeks to uncover software errors by partially retesting a modified program.”
In fairness to Regression Testing. I’m not opposed to the above ideology(except for the partially retesting bit, thats stupid). I think it has some merit. The concept that modifications in code add risk which testing needs to address is a sound idea and worth taking into account while testing.
But we testers know, that this intent turns out to a different beast.
What gets called ‘Regression testing’ in many companies in my view is not very valuable and has a different intention. Regression testing ends up a packaged set of tests ( I wince to call them that, as they typically have the same idea repeated over and over) that get repeated at the end of testing to validate that nothing’s broken.
It’s more about maintaining the status quo than any in-depth testing. This to me seems wasteful.
It seems wasteful to me to repeat the same tests giving an illusion of repeatability when in reality we know that each test can never be exactly the same and that getting the same result in a test does not mean for certain that the test has passed.
It seems wasteful to me to exercise a feature using the same testing idea again and again when a different test idea might offer new information about the system
It seems wasteful to me to ask testers to perform tasks that result in the tester disengaging from the activity because its boring.
It seems wasteful to suggest that somehow new features need to be tested differently to older features. Why? Bugs are not ageist.
It seems wasteful to suggest that somehow regression testing demands less cognitive and skeptical thinking.
I think we’re looking at this problem the wrong way. I’d like to suggest a different paradigm.
I’d like to offer up the idea of Recession Testing. Where Regression Testing does its best to test as little as possible, Recession testing insists of focusing on value and removing waste, just like we need to do in a Recession in order to be competitive.
This means, instead of splitting a product into new and existing features, lets test all parts of a product with equal aggression, equal skepticism. When it comes to regression vs new feature bugs, lets make all bugs equal, not some more equal than others!
If we do need to prioritise our work, lets do so on the basis of risk, What are the impact of change on the feature? What is the importance of the feature being tested?
If you’re going to test a feature, do everyone a favour and test it like you mean it! Don’t give it some half baked, wishy washy run over, to check that its ok and then give the false assumption that you’ve properly tested it. Put the feature through its paces. The feature deserves your respect and more importantly you deserve to test in a cognitively challenging way.
You know it makes sense!
I wrote this post for Kim, one of my amazing testers who wanted to find out more about regression testing.
I’m sure there are many posts on this topic (if you know of some good ones, do us a favour and add a link in the comments).