Automated Software Testing
Automated Software Testing refers to testing the pre-defined test scripts through software tools (automation tools).
Need of Automation
- To save time & money: Software testing often requires repetitive testing the test cases like, in regression testing. Manually repeating the test cases may proves to be costly & time-taken. Automated testing is faster than manual testing and reduces the duration of time required in execution. In any business process, cost of the project is directly proportional to the time taken for its completion. Hence, saving in time will results into saving of money also.
- Wider coverage of testing scenarios: Large number of test scenarios and cases helps in improving the quality of the software. Manually, it is not possible to test each & every case and therefore, most of the test cases are left untouched. Automated testing widens the scope of testing. Through automated testing large number of complex test cases, once created, can be executed repeatedly on different computers.
- To improve accuracy: Humans are prone to commit mistakes. Manual testing, even by the focussed & dedicated tester does not guarantees accuracy. Automated tools are less or no prone to commit mistakes. They can precisely execute each test case, repeatedly.
Complications with Automation
- Initial cost is high: Automation initial set up demands high cost. The cost associated with automation are:
- Purchase of automation tools.
- Training cost.
- Maintenance cost of tools & test scripts.
- Demands Skilled Testers: Automation craves for a good team of skilled testers. Testers involved in automation process should have knowledge & understanding of programming. They must be capable of adapting any new technologies, irrespective of their educational & professional background. Organizations are advised to put their efforts in automation, only if they are looking for long-run in automation.
- Time constraint: Finishing the project within deadline, makes the task of writing automation test scripts, executing them & thereafter reviewing them for further necessary improvement, difficult.
- Automation may add complexities to testing strategy.
- Test scripts for automation are less supple and hence, require more supervision & control.
As stated above, the needs for automation are its merits. Lets have quick view on its advantages:
- Cost & Time Saving.
- Increases testing scenarios coverage.
- Effective in repetitive execution of test cases with accuracy.
- Automation process provides adequate time to prepare & write more test cases.
- Although, initial investment in automation is large, but the returns gained in terms of time & cost, are much larger than its investment.
- Reusability i.e. existing test scripts can also be executed on different versions of the software.
- Consistent result which may not be possible with manual testing.
- Provides opportunity to developers to try hands on testing their modules/codes.
In view of the above, it may be stated that automation may proves to be better than manual if :
- Purpose of automation is clear & defined;
- Some specified areas of the software need to be repetitively tested.
- It is known that what & when needs to be automated.