While going through some blogs over the internet, I came across a statement that caught my attention. It read "Life is too short for manual testing." and quite a few people had agreed to it and commented that automation will be taking over completely and manual testing will perish soon.
Now, I was left in a dilemma that was I reading it right? And I started to wonder is Wall-E is for real, and that I-Robot and Terminator are not just movies.
Personally this is what I think about such a question - Life is never too short for manual testing! There is no such thing as 100% automation and whatever can be automated, has to be "automated manually" at least once.
Of course there are a huge list of automation tools available in the world and many of them are really good, but to use them people need to write code manually(In a sense to program to test a program), then again would that code need to be tested? After all its written by a human being similarly as the code which it is suppose to test. Then again people will say there a so many tools with AI that will capture User Interactions with the browser or the screen and generate the script for you! Yes, that is true, but how reliable are those tools for the job? And is testing only the UI sufficient?
Lets talk a little about the reliability of the record/playback tools. I had a first hand experience with a couple of them, where I records a script for a registration page. It captured all the notification, input values, fields and all the actions I performed perfectly and when I hit the Stop button, There it was - My perfect script to test the registration form. I thought now I wont have to repeat all the different cases manually. All I will have to do is copy the script change the input values and monitor the result. But before doing that I thought why not try and run it without any changes, so I hit the Play button. The script started off well it opened the page in browser, navigated to the respective field and inserted the values, but as soon as it hit Submit the notifications did not show up and the script hung up. So the extremely intelligent tool could not even repeat what it captured, then how can I expect it to deal with changes?
That was just a one example, think about the case where the requirements are constantly changing, how will you deal with that? While the code is being written, in the same duration testers write the scripts for testing, so how will that scenario be handled? I mean if you keep changing the scripts according to the changes in the requirements, then when will you perform actual testing? And lets say the requirement doesn't change, but still the scripts are written in advance, and when the code is delivered for testing, the parameters you pass in your script do not match that of the code(For example, in an input form, the field name or id is not what you have declared in your script. If in the script Fname is passed as parameter for First Name text field and in the code it is written as F_Name, what happens then?), in such a case your script will fail to read the field and will generate a bug even though the functionality is working properly.
Even you people come up with a tool to overcome all this, how will they test that tool? Eventually that tool itself is a software and it will also need to be tested? will they develop another tool to test that? Then again how will they test that new tool? At some point they will always require a human being to test!
Yes, I agree that automation tools enhance the testing process and are a good aide, but they will never be absolute. A machine or a tool doesn't think on its own. It will always need instructions to perform actions and those instructions come from a human being.
With every consecutive cycle of testing, Automation testing scripts will check the same way time and again and that would not uncover other hidden defects unless and until someone updates/adds new scripts, which usually can be done easily with manual testing. every-time the tester will update their test cases and check for new bugs being introduced with every new testing cycle.
Therefore, in reality there is no such thing as pure automation and the manual testers will keep on living as long as the software exists.
I'm sure there's much more to this and I may be a tiny bit biased with manual testing as I personally prefer a human brain over a machine, but that is all I could get to so far with my limited knowledge. I'd like you to comment your thought and add more so that I can learn and grow as a Tester!