The machines have made their move in the previous episode. To sum it up, they are more accurate, work faster, harder, for a longer period of time, for less money, with no complaints and no quitting. Sounds just about perfect doesn’t it?
But wait! It is time for the humans to fight back, to show why in certain aspects their manual testing is way better than any testing automation can be. Let’s see what they got going for them that the silicon based life forms cannot beat.
Human Testing Pros
- Self maintenance. Humans are (usually) capable of taking care of themselves. If there is some sort of system malfunction like an illness, hunger, sadness, or whatever, humans can at least attempt to solve it by themselves. The automation cannot do so. It needs someone to maintain it. If some sort of malfunction happens, human intervention must take place. Be it a network cable gone loose, a fallen web service, an air-con malfunction, the machine cannot go about taking care of itself.
- Adaptivity. Testing automation lacks any kind of intelligence. If, for example, a connection failed to open, it won’t go about investigating what happened. A whole series of tests could fail because a network cable went loose, thus rendering hours of testing automation useless. A human on the other hand can use her wits to investigate what happened, find that loose cable, and go on with the proper testing. Also, if some change in the AUT was made the automation will probably fail. The human on the other hand will easily determine if the change is acceptable and act accordingly.
- Creativity. Whereas the computer follows the scripted scenario religiously, people look in between the scripted lines and outside of the test altogether. They will find bugs even in things they weren’t supposed to test and be able to come up with new tests for the future. Of course, let’s remember it was the humans who programmed the testing automation to begin with, it isn’t able to design tests on its own.
- Object recognition. Even a five year old could easily beat any computer running any algorithm when it comes to recognizing objects. Thus, and despite so many efforts made, testing automation has problems testing GUIs. A human on the other hand doesn’t really care how a UI was implemented. She can easily recognize buttons, windows, scrollbars, or anything else and get testing with it. She can see if the colors are OK, if images are displayed properly, videos are streamed in good quality, etc., things that the testing automation has big trouble doing.
- Natural language skills. Humans may give and receive abstract instructions in natural language and act. A human tester receiving an instruction such as “test the site also works with IE7” can easily go about doing so. The testing automation must be programmed with exact instructions in a programming language. It takes much more time to give instructions to machines and involves testing and debugging, once again by humans, to make sure the automation “understands” the instructions properly. Not to mention that automation cannot test something like a help file, that it contains good help with correct grammar. It just doesn’t understand the human talk, not out loud, and not even if we hand it in a text file.
- Learning. Humans can learn new features, new technologies, different ways of doing things, and append new knowledge to their hard disks. Testing automation cannot do so. It needs the programmer to step in and give it exact instructions what to do. Otherwise it will never expand its knowledge base and just keep doing the same things that it knows forever, not doing anything new at all.
Once again, feel free to respond if there is something missing in the human onslaught against the testing automation. Do join me once again for a summary of the fight between human and automated QA!