It’s been a busy month. (I blame Xbox One for monopolizing my time), and I’m way overdue for what I meant to be a “day-after” follow up for my last post. If you didn’t read it (or if it’s been so long you’ve forgotten), here’s the summary and where we left off:
- “Automation” is an overloaded and abused word that often implies that test code only exists to automate human tasks – that’s stupid
- If you are a tester who codes, you write code. Period. Some of your code may automate tasks. Most will not (or shouldn’t)
Some have asked if I’m against all automation. My tautological answer is that I’m against bad automation. My better answer is, no – I’m not against automating tasks for some testing. Automation is overused and overvalued in software – while the coding of diagnostic and analysis tools is extremely undervalued. In many cases (quick check of basics, some unit tests, monkey testing, etc.), automating a set of user tasks is beneficial and provides a lot of bang for the buck, but focusing entirely on automation of user tasks is a waste of any programmers time.
I wrote a chapter in a test automation book a few years ago, but on principle, I didn’t write about automation. I wrote about a simulation framework that made it easier to write some targeted automation. To me, writing something like this is a great use of a tester’s time – often much better than to write a suite of automated scripts.
The point is, if your testing strategy is entirely to automate a suite of user tasks, you are doing way more to keep “automators” busy than you are actually providing valuable testing. We can debate the goal of the testing activity, but one thing it is not, is the activity of running through a bunch of user tasks over and over. In fact, one of the touted benefits of automation is repeatability – but no user executes the same tasks over and over the exact same way, so writing a bunch of automated tasks to do the the same is often silly.
I’m done writing about automation for now. I may continue to write about code or debugging or testing. My advice for testers is to worry less about “automation”. Ignore it if you can – but at the very least realize how overloaded…and overblown the word is is the software community and take a holistic approach to software testing.