What Is Regression Testing and What Does It Have to Do with Cooking?
I was perplexed. In front of me stood all of the ingredients that I needed to make a fantastic curry (if anyone wants the recipe just drop me a line in the comments below). The recipe called for specific amounts of pretty much all of the main ingredients except for the spices! My partner had delivered to me instructions that contained the main parts but was missing the key component - the spice measurements! I began to think about how closely my cooking process was mirroring regression testing with a hint of functional testing thrown in for good measure. Be warned there may be food related puns in the rest of this blog (don’t say I didn’t warn you!)
Once I realised I didn’t have all the steps needed for this recipe (my regression test cases) I knew I would have to take a step back and build a proper plan of attack (a test suite you might say). How was I going to approach making a complex sauce and make sure that flavours, ingredients and consistency were not harmed? I decided to approach the spices one by one as my test plan. This way, I could fix any bugs in the sauce as they happened. Since the recipe already existed, I simply had to conduct regression tests each time I added a new ingredient or spice.
"Regression testing is defined as a type of software testing to confirm that a recent program or code change has not adversely affected existing features. Regression testing is nothing but full or partial selection of already executed test cases which are re-executed to ensure existing functionalities work fine. "
This type of approach to test management ensures that my existing functionality (flavour and consistency) isn’t affected each time I add in a new seasoning. One of the very first things you need to regression test is spiciness level. This recipe called for cumin seeds, ground cumin, ginger paste, garlic paste, coriander, cayenne pepper and salt. For each seasoning I added, I thought about it as testing the existing functionality of the sauce.
In the end, my curry turned out quite delicious but it was because I was able to apply a bug fix on the spot if I needed to. For instance, if I discovered that I had put too much cayenne into the sauce, I could test that and complete an impact analysis. Is this something that needed fixing? Was it a critical bug? In the case of cayenne, the answer is yes!
The same concept applies to your products and services; some of the parts are critical. Quality assurance then for these functional areas of your product will be that much more important than others. This is where regression testing of those specific parts of the software becomes so important. With my curry, I could have not performed the regression testing of the ground cumin because the impact could have been negligible on the overall performance of said dinner.
We often use testing techniques in our lives even when we don’t think we are. From feeling the temperature of water before taking a bath to turning a computer on and off, we’re always testing in our lives. That’s how we think about regression testing at Global App Testing. While automation tools can instantly tell us that a piece of functional code isn’t working, it doesn’t supplant the human experience factor.
When you release a new part of your software or bug fix another, existing functionality needs to be tested to ensure quality assurance isn’t impacted. The earlier you can integrate these type of tests within your specific software development life cycles, the quicker regression testing is performed. While I will confess that cooking a curry is not the same as developing a software application, I think it is important to highlight just how much we live and breathe QA testing.
Take for example the login function of your application. Pretty fundamental right? A suite of automated test tools can tell you during regression testing that the login form exists in the code. What it can’t tell you, however, is whether or not that renders correctly on the target device. It’s at this point that fundamentally we can begin to understand the importance of humans in regression testing.
Taking this concept to the curry example we started with, an automated software testing suite might be able to test that cumin seeds are present in the sauce but it cannot tell us whether the sauce has become too spicy for consumption. I’d argue that you can’t ever get too spicy but I know lots of people who will disagree with me!
We look at regression testing as a combination of automation and human interaction through our use of crowdsourced testers. By combining the power of automation for quick execution and the expertise of a human, we get the best of both worlds for your QA needs. You end up with a quality you can rely on, in a time your development team can work with.
You need to have a solid test plan in place and we can help you do that. From testing existing functionality to building out full regression test case suites, we have a global crowd of QA professionals ready to go. Quality assurance requires a wide range of tools at your disposal (including automated regression testing and unit tests) because consumers in today’s economy demand your application or services are at top of their game. And the problem with that is you’re not just competing in the same category as your competition…
According to Wunderman, consumers now expect that brands compete with other category leaders. This means that the experience your customers have is in competition with the experience they receive at Starbucks or the speed of delivery with Amazon. There’s never been a more exciting (and panic-inducing) time to in the QA industry. Focusing on delivering an exceptional experience your customers will love is the only clear way to differentiate your products. You don't want salty customers after they use your products or services...
For more information on regression testing, exploratory testing or how Global App Testing has helped brands of all sizes and shapes deliver amazing experiences for their customers, contact us today.