While the value placed on exploratory testing and test automation is often weighted differently depending on the person you ask, it remains clear that they are both necessary in today’s age of software testing.

Automation, the new-comer, should not be something we as testers fear, however. What is it exactly? A program that runs hundreds of boring tests against your software to see if anything is broken? Well, in one way, yes. But it didn’t just come into being through a flash of light and smoke, like a demi-god babe ready to become your newly adopted younger brother – you know, the one that your family is always so proud of? The one that gets straight A’s and becomes a world class Olympian? No, test automation is not here to steal your thunder, my free thinkers. Those hundreds of tests that everyone ‘oooos’ and ‘ahhhhs’ about are built by humans. Say what now? Of course you knew that. But did you know that you have the tools at your disposal to build them yourself? Of course you did. You’ve seen dozens of free websites advertising the ability to learn code at your own pace. And I know what you are thinking:

Listen lady, I work an 8-5 job and have 3 kids, all of which have different sport and band practices occurring throughout the evening. I then have to go home, make supper, and at the end of the day, I’ve got two hours of free time for myself. Do you really expect me to spend the only free time I get learning something I’ve not yet been required to know?

Truthfully, no I don’t expect you to do any of that. I’m currently unmarried with no kids, and it took energy out of me just to write the paragraph above. No, I do not expect you to do that. I’m not really expecting anyone to do much of what I’m saying right now. I can only give my perspective and maybe encourage people to think differently or at least get a cheap laugh out of my own misguidance I offer up to working mothers and fathers.

But here it is, the advice of a 25 year old female Software Test Engineer in Birmingham, Alabama: Find a job that will invest in you as much as you invest in it. I did not graduate college with a degree in Computer Science. No, I graduated with a weird interdisciplinary degree between 5 different areas of study. It’s the kind of degree that when people hear your answer for what it is, they nod politely and quietly regret having ever initiated the conversation. People have no idea what I’m talking about by the end of it, and I have no idea what I’m talking about by the end of it. The truth is that even though I took some Computer Science classes, nothing has helped me get to where I am now more than on-the-job learning. After graduating, I immediately got a job in customer service for a software company. If you have ever worked a customer service job in some capacity, I want to let you know that you are a warrior now. Seriously, it takes a thick-skinned, level-headed person to do that job. I know this because I was neither thick-skinned nor level headed towards the end of my experience there. But you know what I learned from it? I learned software. And not just in the sense that ‘grandma and grandpa messed up the tv again, come fix it.’ No, I learned that there are ways of investigating issues that don’t usually come to the mind of an average user. I learned how to manipulate URLs to include certain identifiers. I learned how one setting can affect twenty different areas of a system – all poorly by the way. I learned how to inspect the page for outdated URLs, and IDs of categories available for selection in drop-down menus. And when I moved on to my second job at the same company as a Production Support Engineer, I learned SQL.

That’s right, I became a Production Support Engineer having known very little SQL previously. The job primarily required that I had the brain to be able to figure out SQL and solve problems. My interview had me create a few SQL queries which I learned how to do on one of those dozens of free websites I mentioned earlier. Once I was hired, I learned more SQL on the job as I used it literally for hours every single day.

Now I’ve been hired as a Software Test Engineer in the same company. I’m 25. That means in three years, I’ve jumped from being a Customer Service Advocate, to a Software Test Engineer with no Computer Science degree. Somewhere up in Central Virginia, my mother is telling her coworkers about how proud she of me. Meanwhile, I’m wondering what combination of luck, divine grace, and undeserved fate brought me to where I am today. In reality though, I know exactly what brought me to this position today – co-workers who saw my potential and gave me a chance to prove it on-the-job. Guess what I’m learning on the job right now? Test Automation. While I have a bit more time than the average person to do my learning outside of work hours, being able to apply your skills to your job has been exceptionally rewarding for me.

It’s just as the old biblical saying goes, “Give a man a fish, you feed him for a day. Teach a man to fish and you feed him for a lifetime.”

Find a place that will teach you to fish, hunt, gather, whatever! That is my advice. And since there is 0 to 1% chance that anyone will actually have the ability to up and leave their job for a new one at this exact moment, let me give you my next tip. Find 10 minutes in your day to learn something. Listen to a podcast on the way to work. Read an article or two before bed. It may take more time for you to learn, but the payoff will be worth it. Test automation is here to stay. See it as an opportunity to expand your skillset. Think of it like Peter Parker getting bit by that spider. Did he ask to be bit by the spider? No. Did he acquire superhuman powers unequivocal to anything he’s ever seen before? Yes. Will you be able to swing from rooftop to rooftop by shooting sticky webbing out of your wrists? Absolutely! Okay, maybe this is an imperfect analogy. Maybe it’s not even a remotely good analogy. But the point is that you should be using Automation to your advantage!

The software I work with is membership based and is used to manage the daily operations of athletic centers. You can sign up and pay for programs like Basketball, private lessons like Tennis, and more. I can tell you that no one here wants to check to see if you can add John Smith who lives on 123 Boring Road to the system without causing any bad data. But you know who will? Automation will! Automation will add Dr. Boring as a user, and sign Dr. Boring up for the program: ‘Boring Others – for Beginners.’ And then it will pay for Dr. Boring’s class using the most boring form of payment, the check. Automation will do all the easy tests that require tedious work. And that frees you up to do the creative work. The work that requires innovation and curiosity above all – manual testing.

That’s right, ladies and gentleman. Test automation is great! But it cannot replace manual testing. You as a tester ought to know how your customers interact with the system. You know the Jims and the Carols and the likelihood of them clicking a button 60 times in a row. You gotta understand the humanity behind not wanting to update Internet Explorer on the 600th time it asks you because it’s scary and you like your browser the way it is because you know how to use it. You gotta look through the lens of many different people who use the system, and you gotta do it creatively.

You know that Suzy usually has 15 tabs up on her computer at any given moment and there’s a strong possibility she filled out two forms for the same user twice and submitted them through two different tabs. You know that John likes Firefox, but Bill prefers Chrome, and Nancy works exclusively from her iPad.

Yes, it’s important to understand the user so you can imitate their actions in testing. But it’s also important to think about security testing. Try SQL injections in text fields or manipulating the data in a forum to be something absurd. Try things you think others would try to infiltrate your system. Copy and paste the URL and see if you can access it without logging in. Try anything and everything you can think of. And then cool it. We all know we can’t test everything. But we can find some really risky bugs in the system simply by using the creativity we already have.

Test automation is great. It gives you a chance to learn about writing specs and expand your skill set. It also allows you more time to think freely about manual testing. You don’t need to perform a bunch of boring tests, because the automation scripts will find them if something goes wrong. Always remember, you are now Spiderman.

Manual testing is great. We all know the importance of the human brain. Why stop applying that natural curiosity and intuition and let a system of checks take over entirely? Manual testing will remain a highly valued skill and will continue to be used on a daily basis. Always remember, your brain made you a super hero to begin with.

_________________________________________

Next up…Spice up your testing data. If you aren’t signing Gandalf the Grey up for a Private Lesson on Cliff-hanging, what are you even doing with your life/work?

Make testing fun by telling a story. Gotta cancel that private lesson for sword fighting because Aragorn just can’t be in the same class as Sauron? No problem.