“Testing is an infinite process of comparing the invisible to the ambiguous in order to avoid the unthinkable happening to the anonymous” – James Bach
Aside from my project manager role within Cookies, I also have the added task of testing the many features for projects that are running in conjunction with each other. Many people believe it’s just a case of having a play around with the website/application and seeing if something breaks. But don’t be fooled, there’s much more to it than that.
After a morning coffee and a quick water of the office plants, I’ll start by reading through the current cards on our project management tool Pivotal Tracker, and prioritise them. This can be dependant on a number of things: how quickly clients are expecting features to be deployed, complexity of cards or whether I have the energy to test a certain functionality for the millionth time at 8:45 in the morning.
It’s important to be methodical and resist the urge to haphazardly start testing a random card with no idea of what or how you’re going to test. This will not only waste time but you’ll end up confused and frustrated – take it from someone who knows. It’s for this reason that I always focus 10-20 minutes at the start of the day to create a plan of action. This usually involves plenty of post-it notes, colourful pens and some terrible 90s cheese in the headphones. (Is it wrong that Craig David gets me in ‘the zone’ like no other?!)
In order to not become totally overwhelmed, I look for ways to break tests into smaller and simpler components. This way I gain flexibility in my testing and can achieve faster and more accurate coverage. Issues and bugs are found more quickly and it also helps the development team solve them even faster.
Then the real QA begins.
As Cookies adopts Agile techniques, I have to work at a much faster pace as the development cycle is so short. Instead of having months between deploys, I can usually expect to have days or even hours between releases to staging sites. It also involves working with 3+ projects at a time instead of just one. It can get pretty hectic and overwhelming and I’m never running out of things that need to be done (especially alongside my PM role!)
So a large portion of testing within this environment is about juggling tasks. There are many things that need to be done and only a certain (and usually short) amount of time to do them in. No matter how much you try, you will not be able to do everything, especially not at the same time, and never with the level of thoroughness and attention you intended at first. Once I came to understand this, I realised that it is better to have a good definition of what are important tasks that I want to focus on.
But what happens when something breaks?
Thanks to the awesome development team here at Cookies, there are rarely any bugs to be found. Obviously, a few will crawl through and this usually results in that relevant card being rejected with a CLEAR description (and I cannot stress the ‘clear’ enough) and relevant details on why. Screen shots with annotations, videos, creating a song and dance, anything to help the developers with fixing them will make not only their life better, but yours too. Otherwise this risks an annoying back-and-forth assigning of tickets which wastes time and is also morally draining.
It’s times like these you need to keep a cool head. I still have my moments, and so will any software tester. As much as you try to remain calm, on occasions you will reach breaking point where you would rather scream than do anything else. This scene from Office Space tends to convey my feelings for those times quite well. But no matter how frustrated I get, comments such as “STILL NOT FIXED”, really isn’t helpful. At the end of the day, it’s important to keep in mind that you and the developers are on the same team and are both trying to deliver a quality product to a client. When you’re elbow deep in ticketing, it’s hard to keep perspective, but the developers want to deliver a product they’re proud of just as much as you do.
Surely it’s not that bad?
Despite some difficulties, the role of software tester is also very rewarding. I have the opportunity to work with applications from start to finish, at a very deep level of detail. I get to know the project inside-out, which I have found also helps me become a better project manager.
It also offers me the opportunity to fully utilize some of that critical thinking my brain has stored, to discover or see things that others do not see. Of course, some days can get a bit like Groundhog Day, but others can be interesting and intellectually challenging. You have to think out of the box – think of things and situations that others have overlooked. If those elusive bugs were easy to find, they probably wouldn’t be there.
Testing applications is a vital part of the process and is what you make it: jump in head first and you’re bound to drown in an ever-growing sea of bugs and confusing requirements. If you remain calm and organised, you might just come to enjoy it.
Photo by Rob on Flickr