Saturday, 27 July 2013

Why and When Automation Testing?


"Take care with test automation When done well, it can bring many benefits.When not, it can be a very expensive exercise, resulting in frustration   

                                                                                    -Howard Fear


Automated software testing is the best way to increase the effectiveness, efficiency and coverage of your software testing.
An automated testing tool is able to playback pre- recorded and predefined actions, compare the results to the expected behavior and report the success or failure of these manual tests to a test engineer


Automation is the only long-term solution for reduced costs in software testing and better quality
products. But these aims are achieved only when certain best practices are followed before and
while developing the automation suite.


Automation When?

1. Stability of the product/application is ensured:
In terms of functionality
If it is to incorporate new features, the new features should not disturb the existing functionality. There is no sense in automation the testing of a product that is supposed to change functionality-wise
If the testing is GUI-based, then it needs to be ascertained that the future
releases of the product would not be undergoing GUI changes which might prove critical for the
Thus Automate your testing work when your GUI is almost frozen but you have lot of frequently functional changes.


2. Lot of Regression work
You have change requests in working module. 
So how will you ensure that the new bug fixes have not introduced any new bug in previous working functionality? You need to test the previous functionality also.
ie 
a. when ever the scope of repeatability is more
b. whenever high amount of regression testing is possible
c. when we are expecting the change request often

3.  Web application /if used by large nos of users
 You are testing a web application where there might be thousands of users interacting with your application simultaneously. How will you test such a web application? How will you create those many users manually and simultaneously?
This Automate your load testing work for creating virtual users to check load capacity of your application.

4. Interface to be tested has been identified:
Three different interfaces a product might have are
command line interfaces (CLIs), application-programming interfaces (APIs), and graphical user
interfaces (GUIs)
By their nature, APIs and command line interfaces are easier to automate than GUIs.

5. Scope of automation is decided
The scope may encompass functionality testing, regression testing or simply acceptance testing

6. Testcases have been fine-tuned:
The testcases need to be fine-tuned for automation. The
expectation level from the testcases for automating is widely different from the expectation from
manual testing point-of-view.
Manual testers can usually figure out what is going on. A common mistake is to
use the same approach with automated tests. But because of this approach, a failure in
one test will topple successive tests.

                                                             
7.Selecting the right tool  

Goal of Automation is to reduce number of test cases to be run manually and not eliminate manual testing all together


Automation suite should be looked upon as a baseline test suite to be used in conjunction with manual testing, rather than as a replacement for it. It should aim at reducing the manual testing effort gradually, but not doing away with manual testing altogether. It needs to be understood that automation can aid manual testing effort but cannot replace manual testing. What machines are good at and humans are slow
at should be chosen for automation.

 Setting realistic goals in early stages of test automation important for achieving long-term success


No comments:

Post a Comment