1.3 Benefits of Automated Testing
An investment in automation can reap many rewards to the test team and overall project. There are primary and secondary benefits to using automated tools.
Primary Benefits
The primary benefits to using automation for testing can be summarized as follows:
- Faster test execution
- More reliable/repeatable test execution
- Increased quality from greater test coverage due to additional tests
- Facilitates testing of more complex scenarios
- Less error-prone than manual testing
- More consistent than manual testing
- Provides for unattended 24/7 test execution
- Ability to create additional test conditions from single script
- Reusability of tests within and across test events
- Ability to test more in the same or shorter time schedule
- Testing across a variety of software/hardware platforms
- Allows for the possibility of testing that which could not be tested manually
- Allows for increased frequency of testing
- Allows more effective use of testing resources (i.e. more test design, less manual execution)
Secondary Benefits
Secondary benefits for using automated test tools consist of support activities for testing, rather than the testing itself. These include:
- User account creation in advance of testing
- Database seeding with required test data
- Creation/management of test datasets
- Test environment configuration setup
- Pre-test initialization activities
- Post-test clean-up activities
- Automated data analysis of concluded test events
Project and Program Benefits
The use of automation brings benefits beyond testing to the project and program. These include:
- Improved software quality
- Earlier defect detection
- Fewer defects sent to next testing phase
- Greater efficiency in accomplishing testing
- Greater relevance of timely test results
- Reduced risk of deployment
- Improved test reporting
- Facilitated identification of defect root causes
- Reduced test execution cost
- Shortened test execution period
- Improved consistency of test executions
- Better adapted to iterative development where more frequent testing is required
- Improved feedback related to application quality
- Improved system reliability through repeatability and consistency of tests