Test Automation Traps - A tool with a fool is still a tool!

Ayesha asks: “I am new to testing. I have been working as a tester for past 3 months. I want to take my career a few steps forward. So I am planning to move into test automation. Which tools would you suggest me to learn so that I could move into test automation?”

Pranab asks: “I have been working in BPO for past 2 and half years. I am very much interested in software testing. So I have taken up a 3 months course in software testing. I have learned QTP and LoadRunner. Will this help me in getting a job as a tester?”

Yogesh asks: “I am a BE (Computer Science) fresher (2007 passout). I have a cousin who is a tester. So I am interested to start a career as a software tester. Which automation tools would you recommend me to learn for this purpose?”

John asks: “I have been in software testing field for more than 3 years now. I have been doing mostly manual testing during these period of time. I think I have made a mistake as far as my career is concerned. Most of my tester friends are into test automation already. I feel like being left out. So I also want to move into test automation soon. Can u guide me in choosing which automation tool to start with?”

[Note: All the names mentioned above have been changed for obvious reasons.]

These are few testing FAQs that I come across from time to time. The thing that is common in all the above questions is “test automation”. Sometimes I wonder how easily people (leave alone testers; managers, executives and clients are also equally susceptible) fall into the test automation trap!

Test Automation Trap!
I have seen many Testers falling into the trap by believing that knowing a couple of tools can help their testing career and can fetch them a better testing job. Ironically most of them don’t learn test automation tools to build their testing skills. Rather they learn it because the other tester sitting in the next cubicle is also learning it. They learn it so that they can add one more feather (!) to their resume. They learn it because they can use it as a plus point (!) in their next appraisal meeting. I don’t blame the testers here. They often fall prey to the increasing demand from the recruiters, number of training institutes who claim to give high class training on automation tools, and sometimes the expectations from their managers and clients!

Some Managers who fall into the automation trap, think that using test automation tool would give them confidence while the product is being delivered. They tend to get carried away by the claims by the tool venders boasting the effectiveness of their tools. They are made to believe that by adopting test automation they can have test executions faster and more accurately as computers are after all faster than human brain! Can’t think of a worst scenario? I have seen Test Managers using tools to impress their clients! They take pride in showing their team of Automation Engineers and the License of automation tools that they have to the client! But I don’t blame the managers and executives for this. They are often misguided by the tool vendors and are shown a wrong picture about the power and capability of testing tools.

Clients falling into the trap, see automation tools as something that can improve the quality and reliability of their product in a big way. Because automation tools are after all software products and software is always better than manual work [that is the reason why he (the client) has come to get his product developed – to avoid mundane manual work]!

If you are not careful, it’s quite easy to fall into these traps. These traps often lead to some myths and misconceptions about test automation, which James Bach calls as "reckless assumptions" in his excellent article titled
Test Automation Snake Oil or TASO for short! The assumptions are:

1. Testing is a "sequence of actions."
2. Testing means repeating the same actions over and over.
3. We can automate testing actions.
4. An automated test is faster, because it needs no human intervention.
5. Automation reduces human error.
6. We can quantify the costs and benefits of manual vs. automated testing.
7. Automation will lead to "significant labor cost savings."
8. Automation will not harm the test project.

James Bach had published Test Automation Snake Oil way back in 1999 (actually had published in 1996 and revised in 1999). It’s so amazing to see the way it still holds good in current scenarios of test automation!

Having said that, I am NOT against test automation. Test automation, if followed in the right way can yield awesome results! As James Bach says “Just as there can be quality software, there can be quality test automation.” But I really get worried when I see people considering test automation as a sure-shot magic bullet for a successful test project and as a substitute for manual testing. Test automation tools are just tools. They can never take the place of manual testing, which requires a tester to go through a highly interactive cognitive process. I consider skilled manual testing to be a highly intellectual process, which can never be accomplished by a robot! I had somewhere read James Bach comparing test automation tools with Mars Land Rovers. They may aid to a mission, but without human intervention they are almost worthless. Same can be said about testing tools. They may help a tester in taking important decisions about the product. But however it’s the tester who has to design the automated scripts and analyze the test report generated by the tool.

However, I agree that there are areas, where using testing tools becomes a necessity. We have to use it, not out of choice but out of compulsion! Some of the possible cases may be:

1. Load and Performance testing a Website/Application.
2. “Smoke Testing” (testing a set of basic functionalities), which must be done whenever we have a new build to test.
3. “Regression Testing” some particular set of critical functionalities over and over again in all subsequent test builds. [Consider a case when you have to download and test daily builds]
4. Performing “Penetration Testing”, which requires attacking an application with techniques like
dictionary attack or brute force attack. Here the computing power of a computer can be exploited to reduce the testing time.

For situations like above, where test automation becomes a necessity, I would suggest the 3 rules that James Bach describes in his excellent post
Manual Tests Cannot Be Automated.

Test Automation Rule #1: A good manual test cannot be automated.

Test Automation Rule #1B: If you can truly automate a manual test, it couldn’t have been a good manual test.

Test Automation Rule #1C: If you have a great automated test, it’s not the same as the manual test that you believe you were automating.

But, it can be dangerous when people straight away start using automation tools without understanding testing. And when, people start to believe that test automation can replace manual testing. It should be understood that computer programs can never think and interact like a human brain. And tools are meant to help the craft of testing; not to replace it!

Sometime back I had posted a blog entry titled “A fool with a tool is still a fool!” Isn’t it amazing that even if we reverse the order of the words (A tool with a fool is still a tool!), the meaning of the message still remains almost the same? Hence if a tool is left to be used by a fool, we should not expect much out of it! Knowing a few GUI or Performance Automation tools is the easier part. To apply the tool successfully to automate the testing effort needs skills. And I believe that learning and becoming skilled in manual (be it scripted or exploratory) testing should be a starting point before going for test automation. Or else we would find ourselves jumbled up between "tools" and "fools" jeopardy!

Happy Testing…
Share on Google Plus

About Debasis Pradhan

Debasis has over a decade worth of exclusive experience in the field of Software Quality Assurance, Software Development and Testing. He writes here to share some of his interesting experiences with fellow testers.

8 Comments:

  1. The tools I use most often are the mouse, keyboard, and monitor. Without them, I cannot interact with the software to test it. Any time we do anything with a computer, there is some level of automation involved.

    The danger is when we think that the tool is useful on its own: without the fool.

    Is a tool without a fool still a tool? :)

    ReplyDelete
  2. I'd been reading your articles for quite some time.

    Specially your last few months articles like Best certification is self certified, Test idea for Pen/Water bottle, Years of experience Vs Hours of test experience and many more to add to it.

    This one has been an eye catching article for newbie and also many experienced people who wish to get into automated tool.

    Great work sir.

    Wish to read more from your side.

    Regards,
    Prabhath Murthy
    prab_murthy@yahoo.co.in
    (Pune, India)

    ReplyDelete
  3. @ Ben Simo,

    Thanks for visiting my blog and sharing your wonderful ideas. But I am still wondering about "Is a tool without a fool still a tool? ". Any clues? :)

    @ Prabhath,

    Thanks for reading my blog entries and thanks for those kind words! But please don't call me as Sir! I don't like to be called that way. Just "Debasis" should be fine. Keep visiting in future and I can assure you of more posts that might interest you!

    @ Ram Arvind Kotaru,

    Thanks.

    Regards,
    Debasis.

    ReplyDelete
  4. Great Blog...

    But i have a question..
    When will we go to give interview, 90% of company is asking for tools and also in basic criteria they have mentioned for the tools.
    So, its necessary to take general knowledge of tool,am i right ?
    I am doing Manual testing since last 2 yrs...yet not an idea about any tools...

    Amit Trivedi

    ReplyDelete
  5. @ Amit,

    Taking general knowledge of tools to clear interviews and learning tools so that one can apply them successfully to a testing project are, IMHO, two entirely different things! As I have said earlier, one might learn few basics of a tool with ease, but when it comes to utilize the knowledge of tools to apply (skillfully) to a testing challenge, very few actually accomplish it successfully!

    I am doing Manual testing since last 2 yrs...yet not an idea about any tools...

    I think if you are able to find more bugs (using manual testing) quicker than your colleague who uses tool while testing, then it's fine. Anyway, I think it should not be a big challenge for you to learn test automation tools when situation demands you to do so (considering the fact that you have been doing testing for 2 years now and must be quite well in this by this time)!

    Thanks for reading and leaving behind your comment.

    Happy Testing...
    Regards,
    Debasis.

    ReplyDelete
  6. @ Debasis,
    I am new in testing. Doing manual testing from past one month. In our organization ppl having knowledge of tools are praised alot. They expect each tester to have knowledge of it.

    ReplyDelete
  7. sir im thinking to learn testing tools.. can u suggest me how it isefull for my carrier to get a job..and mention SAP BW details also.. kindly..
    kranthisri01@gmail.com

    ReplyDelete

NOTE: Comments posted on Software Testing Tricks are moderated and will be approved only if they are on-topic. Please avoid comments with spammy URLs. Having trouble leaving comments? Contact Me!