Automate Yourself out of a Job
Nobody wants to manually test software. “That’s not true! I do!” you say, missing my point. If you think you want to manually test software, then you need to dig deeper into what that entails: To do your job well, every time any developer changes anything to any part of the system you need to re-test everything. Anything less and you’re not doing your job. If you’ve heard different then they’re lying to you. *That* is what Quality Assurance is – the assurance of quality. The only way you can be sure that some developer didn’t break something is to test the whole system again no matter how minuscule the change. On a simple mobile app, that’s not so bad; on an enterprise system, you may end up throwing yourself down a flight of stairs just for a change of pace.
To be a good QA – and not want to physically harm yourself – you have to write automated tests. You have to code to test code. If you hate coding, and therefore hate writing automated tests, then you’re going to hate your life as you endlessly click the same button, seeing it do the same thing, and checking off the same list for the umpteenth time that it still goes, “Confirmed!” every time you click it. When you were a kid and someone asked you what you wanted to be when your grew up, testing confirmation pop-ups was your dream? Hell no. That’s not the job you want. Automate that crap so a machine clicks that button for you. That way, the only button you click is the one that says, “Run Automated Tests”.
Engineers look down on QA. OMG, yes, I said it. If you haven’t figured that out by now, then you haven’t been paying attention. I assure you, the elitism is far worse than you could imagine. I’ve heard engineers say things about QA that would make you want to punch a baby. The way to turn the tide is simple: Write code that tests their code. You will make their life a living hell. Engineers make mistakes – lots of mistakes. They’re allowed to get away with it because their mistakes can be so subtle it can sneak past a manual QA tester who can’t possibly test everything. When you have your automated tests, however, nothing can get past them – and if they do you can simply improve the tests such that next time they can’t. At that point, your full time job is pwning elitist engineers, and while it may not compare to being a rock star or movie god I will tell you, it does feel good.