Manual Testing is Dead!!!

If someone wants to get your attention. If someone wants to annoy you. If someone wants you to sit up straight – this is what they’re going to say.

Manual testing is dead.

But what does that ACTUALLY mean? What is someone really talking about when they say ‘manual testing is dead’? 

Software engineering as a discipline has a terminology problem. When I talk about ‘Integration Testing’, the picture in my head of what that looks like is probably NOTHING like the picture in your head. When I talk about our ‘UI Test Suite’, what I may mean is my team’s automated functional UI tests using a mock API layer and visual diff. Or I may mean our javascript unit test suite. And what YOU may be thinking of may be an end-to-end full app regression suite.

Those things are all very different, and yet they all have the same name!

Let’s revisit ‘manual testing is dead’. I posit that when people say ‘manual testing is dead’, what they’re talking about is manual functional regression testing as a way of validating a code change.

BugsOfIntention.png

And, you know, yeah. That’s a contracting market. Test automation is eating that lunch. Machines are way better than humans at rote, repetitive, highly understood and scripted tasks. Test automation is great at finding Bugs of Implementation. What’s a bug of implementation? Well, the requirement said the function should take in a 5 and return a 10. The code as written returns an 11. That’s a bug of implementation – the function doesn’t do what it’s supposed to do.

But there’s a whole other class of bugs – Bugs of Intention. What’s a bug of intention? Well, let’s say the developer had a requirement that a given screen should be ‘green’. The product owner may have meant hunter green, and the developer interpreted it to mean aqua green. Those are very different colors, but both are technically meeting the requirements as written. Or maybe it’s a requirement that ‘my app should support SSL’. Well, the developer can write SAML, but what if the users actually mostly want OAuth?

No amount of automated testing – certainly not in the next 5-10 years – is going to be able to replace this level of manual testing. This is testing that represents the user and how they will interact with your application. This is exploratory testing. This is user acceptance testing. This is scenario validation. 

This is ensuring that the product we delivered isn’t just technically correct, but is the RIGHT THING FOR OUR USERS.

So the next time someone scarequotes at you that ‘manual testing is dead’, you can shoot back that the sun will NEVER set on advocating for our users!

Previous
Previous

Fuzz Testing for Online Services

Next
Next

Who needs code coverage?