Saturday, January 06, 2007

Test Automation - Pros & Cons

WISHING YOU ALL A VERY HAPPY NEW YEAR 2007

Test Automation is the process to use the software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test controls and test reporting functions. In general, test automation involves automating a manual process already in place that uses a formalized testing process.
Test automation is expensive and it is an addition, not a replacement, to manual testing. Test automation raises the hopes of higher management but often frustrates and disappoints the testing team. Although automation promises to deliver a high quality product, implementing automated tests can create as many problems as it solves. Automation needs some bandwidth in initial stage. This should be a full time activity. In one of my previous company, people were allowed to work on test automation on their spare time. And also there were lack of clear goals and experience in the team. And after four months, whatever they have worked on automation, the testing team used that only once. This was because that tool was not worth to test the particular module for that product for a long time. The tool was not robust and dynamic.
Before going for Automation, testing team should be clear on what they have to AUTOMATE. Besides this, testing team should keep these points in mind -

1. What is the significance of re-running the test again and again.
2. Its not mandatory to automate each and every test case.
3. First we want to finalize the test cases to be automated.
4. The cost of going for automation. The cost of automating a test is best measured by the number of manual tests it prevents you from running and bugs it will there fore cause you to miss. 5. The life time of our automated test case and how many additional bugs will it be able to find.
6. GUI capture/relay tool like winrunner may be relatively cheaper option.

I have observed some advantages of Automation testing.

1. Automated testing is very useful for load,stress or performance testing.
2. It is useful for testing applications in which the GUI is complex and is prone to human error.
3. It is useful for stable areas of the application than volatile areas.
4. It is useful for regression testing.
5. A good tool can fully document and replicate the defect for the convenience of developer.
6. It is a more consistent approach.
7. When we want to execute the test for repetitive time, these tests can be automated.
8. We can reach effective production.
9. Automation testing speeds up regression testing.
10. Automation also eliminates risks associated with human errors.

Since advantages are there, so there must be disadvantages also.

1. Automated testing is found to be more time consuming than manual testing
2. Record/playback method is supposed to be the least cost effective method of automated (eg. if unexpectedly a popup window or a message appears then the whole process fails
3. The lifecycle of the test is not long enough.The test needs to be updated everytime there is a new release.
4. There needs to be modification everytime there is a bug fix.
5. Automated testing cannot detect color related issues (eg.mandatory fields)
6. We want to have sufficient time to automate the application I.e. Time consuming.
7. Automation testing is more expensive.
8. Functionality can never be automated.

-- Sanat Sharma

1 comment:

Anonymous said...

Hi Sanat,
Article here mentioned by you was really helpful for enhancing my knowledge regarding Automation testing.Now moving forward, i would be expecting some
more article which would incorporate technical process in order to how to automate process.