Even though I am ultra busy testing Testuff 1.0, that’s coming out very very soon, I decided to take some time out and to conclude this crazy series of posts.
We’ve seen why automated testing rocks. As I’ve stated before, it’s more accurate, work faster, harder, for a longer period of time, for less money, with no complaints and no quitting. We’ve also seen why human manual testing rocks. Humans are self maintaining, adaptive to the environment, creative, recognize objects better than machines, have built-in natural language processing, and also excellent learning abilities.
So what is the summary of it all? Fire all humans and replace them with automated testing machines? Throw all automation out the window and hire some testers for cheap from India? No!
The world doesn’t actually divide into black and white, but we quite often mistakenly think it does (a bug in our brains? The misguiding of Western society? Both? None? who knows). We don’t have to be crazy like that Israeli company who fired all testers in favor of automation, though who knows, maybe for their needs of completely repetitive well-known testing it was the right move. We also don’t have to reject any kind of automated testing at our company and stick to flesh and blood testers only. The answer is that we can enjoy both worlds, the shades of gray in between the black and the white.
Be a cyborg. Part man, part machine, it has all the advantages that humans do, but some off the hook technological enhancements that allow it to have beyond human capabilities. To take the analogy back, this means that we enjoy the best of both worlds – the automated testing world and the manual testing world and use them both to our advantage:
- Automate boring, repetitive, high accuracy tests. Humans don’t like to do them and don’t do them as well as the automation does. By automating these kind of tests your QA will be happier since you will lift the annoying load off of their shoulders and you will get better testing results via the automation.
- Give humans creative testing tasks. As a complimentary item to the previous one, challenge the human testers, use their natural learning skills, adaptivity and creativity to find bugs way outside the scripted tests. Don’t let them spend their time only on pre-scripted scenarios. Let them do some Exploratory Testing, new test designs, maybe even learn some programming so that they could write some useful utilities.
- Work the automation overtime, not the humans. Having people do overtime for too long under pressure increases work stress and basically drains all the motivational juice out of them. This is why high-pressure testing, such as sanity, might be better put on the automation. However, watch out not to pressure the humans who execute the automation!
- Use low maintenance automation. It’s a real pain in the ass when the automation requires too much maintenance in terms of time and effort. Don’t be afraid to go back to the drawing board and design your automated testing from scratch. Check why it takes such high maintenance and either solve those issues or move tests to manual execution if necessary.
- Humans test some things better than automation. Given the current technology, computers don’t know how to do many things as well as the humans. In the testing world this is especially true about GUI. Sure, there are solutions for web testing and functional testing for simple GUIs, but if your app is more complicated than the average software Joe you will quickly see that the automation doesn’t do. If these automated tasks suck for your testers, maybe even consider off-shoring them to some Indian testers who wouldn’t mind doing some repetitive tasks for good cash.
If you still don’t believe me that you should become a cyborg, watch the trailer for Robocop and see how cyborgs improve law enforcement in crime filled future Detroit. No man and no machine would do to clean Detroit of its thugs, but only a man machine combination that is Robocop: