Software Test automation can be defined as,
- Efforts and Activities that are inclined towards programmed engineering tasks and operations in a software test process.
Goals and Objectives of Software Test Automation
- To reduce Testing Cost and Time.
- To reduce Redundancy.
- To speed up the Testing Process.
- To help improve Quality.
- To improve Test coverage.
- To reduce Manual Intervention.
Note - The above objectives are with respect to a test cycle.
Some of the drawbacks of Automation Testing are,
- If the application / product do not have many release cycles, it is not worth the time and money automating for one/two cycles.
- The automation process is expensive.
- All areas of the application/product cannot be automated. There would be certain limitations in certain areas.
When should the application be automated?
- When the tests are needed to be executed for every build of the application.
- When the tests use multiple data values (Retesting / Data Driven Testing).
- When the tests involve Load or Stress Testing.
When should the application not be automated?
- If it is a One time testing.
- When the testing involved is limited to Ad-hoc testing / Exploratory Testing
- If the Customers requirement are frequently changing.
The Automation testing tools can be classified as below. Some of the tools are also provided.
a) Functional & Regression Test Tools:
Ex: HP - WinRunner, QTP (Quick Test Professional).
IBM - Rational Robot, RFT (Rational Functional Tester).
Micro Focus - SilkTest.
Open source - Selenium.
b) Performance/Load/Stress test tools
Ex: HP - LoadRunner.
IBM - RPT (Rational Performance Tester).
Microfocus - Silk Performer.
Open source - Jmeter, WebLOAD.
When planning an automated test, the prime focus should be on the risks associated with the application to be tested, just as it would be done for a manual test.
Kaner et al. [Kaner et al., 2002] estimate the cost of creating an automated test at ten times the cost of equivalent manual testing. It takes approximately half a day to automate a test procedure that can be done manually in 15-20 minutes.
An automated test is not equivalent to the most similar manual test.
If a manual test costs $A to run the first time, it will cost just about $A to run each time thereafter, whereas:
If an automated test costs $Y to create, it will cost almost nothing to run from then on.
$B is bigger than $A. I've heard estimates ranging from 3 to 30 times as big, with the most commonly cited number seeming to be 10. Suppose 10 is correct for your application and your automation tools. Then you should automate any test that will be run more than 10 times.
Stress or load tests may be impossible to implement manually. Would you have a tester execute and check a function 1000 times? Are you going to sit 100 people down at 100 terminals? Answer - Software Automation :-)
The goal of automated test execution is that we minimize the amount of manual work involved in test execution and gain higher coverage with a larger number of test cases.
Tests which are suitable for manual testing are not necessarily suitable for test automation.
Once you have the manual concepts mastered and once you have some idea of the processes and cases you want to automate, then you are ready to start thinking about automating the test.
Why use tools for software testing?
- Time consuming
- Low reliability
- Human resources