Tuesday, July 13, 2010

When to automate? is equally important

Dhanasekar S's  recent blog which differentiates between importance of manual testing and automation testing triggered this blog. With all my automation experience I can say that there is one thing important in automation according to me.
That is 'When to Automate?'
As James Bach says "Test automation is any use of tools to aid testing". That is very much true, but to identify what are those tools and when to automate  is usually difficult job for me .So I came up with the following parameters to find out when to automate .  
  1. When I am doing any manual task repetitively , e.g.
    1.  Creating data set for my application.
    2.  Running same configuration every time after preparing the setup.
    3.  Even doing ssh(remote login) to same IP  frequently.
  2.  Smoke Testcases which need to be run  with every new build:- This case is also kind of a repetitive task where you need to run scripted testcases every time a new build comes. It is good to automate these as they give you more time to explore new areas in your application.

    I  would like to cite an example related to case 1 .
    Recently , I started writing testcases  for new features using mindmaps. Mind maps gives better overview of my testcases and their coverage.It also helps me getting quick review from development team .

    But the issue is when I need to write all my testcases again to my test management tool ie Testopia. Let me tell you about Testopia ,Testopia is awesome test management tool from mozilla which provide api's over XML::RPC  to update /modify  testcase database. 
    Anyways my above task was repetitive and obviously  boring which provoked me to  write a perl script to  parse test cases from mind map's file and directly update in Testopia. "Same script can be used in future" was also an another trigger point to automate the task. Scripts to achieve the above task got ready in just 45 minutes  and I updated 100+ testcases with the script to Testopia. In the above scenario I was not told to automate.When I felt bored with coping testcases , I decided to automate the Testopia update task and  that was my call .Many of my tester friends told me that they don't have any exposure to automation because management never told them to do any. According to me ,when to automate and what to automate  should come from tester and not from management. I usually see test managers  giving importance to the automation tools in a tester's skill set but according to me knowing when to automate is equally important as knowing the tools.


    1. A nice post,Tester should know and inform management when and what to automate
      --Dhanasekar S