QASymphony / Blog / Building a Test Automation Strategy: Why are we Automating? | Whiteboard Friday
Building a Test Automation Strategy: Why are we Automating? | Whiteboard Friday
Welcome to a new Whiteboard Friday series, “Building a Test Automation Strategy.” In this series, we explore trends in test automation and what goes into making a good test automation strategy.
Watch the first episode to learn why many teams are incorporating automated testing into their QA strategies, as well as the benefits test automation offers.
Watch the Video
In this episode you will learn:
The driving forces behind the move to more test automation
5 main benefits of doing test automation
Why automated testing is key in a continuous delivery environment
Here’s the full transcript:
Hey, everyone. Ryan Yackel here with QASymphony, and we’re back with a brand new series of Whiteboard Fridays for you around test automation. And we’re gonna be giving you probably four to six topics on this, around test automation. It’s a very hot topic. It’s been a hot topic for about, you know, it seems like forever, but in the last 10 years or so, it’s been really picking up around what’s a good test automation strategy you should have?
And today the topic of conversation we’re really getting into is, why are we automating so much? Why is this pushed towards test automation? What’s driving all of this talk around that? And it really has to do with…from the beginning, it really has to do with all of the ways that the development methodologies have changed over the years.
So if you look at from going from Waterfall to Agile, and then getting into DevOps, more of that continuous integration and continuous delivery, continuous testing, all those continuous words, right, what you’re seeing is an increase in automation, not just in the testing area, but really in even the designing, the coding, the testing, and also the deploying of what goes on in your software development life cycle.
So if you think back what happened when you were at Waterfall, or doing a Waterfall projects, I did those, actually, when I was back at a consulting firm back in around 2010, and then also at a retail company as well. We were kind of more in the Waterfall moving towards Agile, right. And what you saw was that you had these really long phases of releases, right.
So your average may be one to four, one to six releases a year. So automation really wasn’t a necessary need for us at that time. We did a lot of manual testing. A lot of times, of course, you know, the coding took way too long. We were getting pinched in terms of a bottleneck for the actual deployment, right. All those same things could happen, right, when you get into talking about Waterfall and what happens with that.
But then when a move to Agile happens, you know, Agile Manifesto comes out, and then you have things like, “Hey, how do you bucket this Agile…this move towards Agile? Things like Scrum, things like Kanban, right. And what happened was, you ended up getting to the deployment process, it was around 6 to 20 releases per year. So you have this push towards automation around, “Okay, now we’re gonna do some more automated testing, make sure testing is not a bottleneck, right.”
And now we’re in the space where we’re not just releasing, you know, once every two weeks, once a month. We’re getting into, you know, into DevOps where it’s really around, you know, “Can we release every week? Can we release maybe even every day?”
And then if you’re in a large progressive companies where you’re really doing maybe releasing every hour or even a couple of hours. So what you’re needing, right, is to get to a way where you’re actually deploying software out at a rapid pace, you need to make sure you’re automating a lot of those processes, both that are upstream and downstream in your software development life cycles.
So whereas DevOps is an extension of Agile when it took the great process stuff around, you know, how do we do stand-ups? How do we do our user point kind of estimations and things like that, right? DevOps is what you’re doing, is you’re actually getting all the process stuff and you’re moving it more into, “Okay, we’re gonna do all that great process stuff, but then we’re gonna actually automate a lot of those processes to get it out into production.”
So a lot of that downstream process where we’re testing earlier and we’re testing more often to release those bottlenecks and get that out into production. So, again, what’s driving this push and why are we talking about automation is because people want to get out faster into market. They wanna decrease their time to get to market, and they’re adopting these different methodologies to get that done.
So now that we’ve talked, really, about what’s kinda driving that, the next question is, “Okay, why, then, are the benefits of test automation, right?” So we talked about what’s actually pushing that from an industry standpoint, but why are we actually moving towards more test automation? The first part is a faster time to market. So, usually what happens is, when you have builds that come into play, you need to validate those builds, right?
Whether you’re in a development environment, you’re in the staging environment, you’re in a UAT environment, at all those different stages, you need to test before it can actually get out into market. And what happens is you have a lot of this regression testing that’s going on, that’s really putting a bottleneck around, “We need to do all this testing, and even though the code’s done, we gotta run through all these iterations of the testing that goes on.” So we’re doing a lot of manual processes around that. So with test automation, what you’re doing is, you’re looking at it and going, “Okay, how can we automate a lot of these manual processes so that we can limit the amount of manual regression that we have to do?”
The next part is really people getting into DevOps, and getting into really using continuous delivery, continuous integration to power DevOps. What you need is test automation to actually get that to work. If you think about the infinite loop that everyone was kind of seeing around DevOps, you’re gonna plan, you’re gonna code, you’re gonna build, then you’re gonna test. Well, if testing becomes that bottleneck at the very end, you’re gonna need to have that continuous feedback to achieve more of that continuous delivery process, right. So that means if you have that continuous automated testing in place at that stage, then you can eliminate a lot of that bottleneck.
And then the other thing is too, is that when you’re doing…when you’re in an environment with DevOps, really what you’re trying to do is provide radiate, and radiate feedback as fast as possible. So if you’re manually testing something, that’s gonna take longer for you to give that feedback of what actually occurred after maybe a build is being done, right. So now with automation being included in that continuous integration stage in DevOps, you can get that continuous feedback into that move towards DevOps environment.
The next thing is, with test automation, what you’re doing is you’re finding bugs earlier, and then what that does is actually reduces the amount of cost, right. And this can be done in multiple different ways, right. So when we say find bugs earlier, that doesn’t necessarily mean that maybe the automated test would find the bug. What that could mean is that you’ve got all this test automation that you’re doing for the validation of that, so that you can take that time that you’ve really spent in manual testing and actually eliminate that and move on to more exploratory or session-based type testing where you can actually find bugs, right.
I was actually looking at a YouTube video the other day, and it was talking…somebody from a large consulting company, he was saying he’s been in test automation for…or QA rather, for about 20 years, and the most critical bugs that they’ve found was actually doing manual and exploratory testing, right. They found some in the regression automation, but the regression automation, what that allowed them to do was free up time to actually find more bugs in that stage, right.
The other thing that you’re doing when you’re finding bugs earlier is that…and we’ll talk about this later on in terms of what type of test automation strategies you can incorporate, but a lot of people are doing things like test room development and behavior driven development to actually find bugs earlier in the design space.
The next part is really getting into reducing the regression test cycle time. We talked about this a little bit earlier, but, again, there is this regression you have to run every time a new build happens, right. Or, even after multiple builds have happened when you get into almost a pre-product environment. So, again, if you are doing all this regression manually, right, that your test cycle time is taking way too much, it’s costing you a ton of effort to do that, especially if you add in things like data provisioning for data against your test cases, right, that’s really gonna combat all that cycle time that you have to do this. So you wanna reduce that cycle time with test automation.
The next part is making sure you’re doing parallel type testing, right. So if you’ve got regression kind of going on in the background, you can also…if that’s automated, you can also do other types of testing, whether it’s load testing, security testing, end user acceptance testing, right, as that’s also going on. So it eliminates the need to really just do one point of testing and then stop, and then move on to the next one. So you can do that parallel testing in place if you have a built out test automation suite kind of going for you.
And the last thing is just more time for intelligent testing. We alluded to this a little bit earlier but, again, getting into more exploratory testing, more risk-based type testing that you’re doing, that allows the testers in your organization to…even if they’re software test engineers that are more automated in that aspect, if they’re doing their test automation, they’re also gonna be doing more critical analysis type testing.
They’re gonna be doing some more end-user type testing, more production-like testing, and what you wanna be able to do is free up time for them to actually do that type of testing, right. But without that automation in place, you’re never gonna get to this because you’re always gonna be doing that manual testing that takes so much time, and it’s just not gonna get you to where you wanna have that…those test sessions that can really find those critical bugs before production. So that’s a quick look at kinda what was driving the move towards automation.
When we talk to our customers, they’re saying, ” We’re moving from Waterfall to Agile, to DevOps, right,” and what that means is increased automation. Then we talked about five kind of main drivers and benefits of doing test automation in this session. So we have another session coming up for you where we’re gonna be talking about the test automation pyramid and what that means on where you should focus your test automation coming up soon, so be on the lookout for that one. And thanks for joining Whiteboard Friday. We’ll see you soon.