A review of 52 practitioner and 26 academic sources found that five main factors to consider in test automation decision are: system under test (SUT), scope of testing, test toolset, human and organizational topics, cross-cutting factors. The factors most frequently identified were: need for regression testing, economic factors, and maturity of SUT. While the reusability of automated tests is valued by software development companies, this property can also be viewed as a disadvantage as it leads to a
plateau effect, where repeatedly executing the same tests stops detecting errors. Testing tools can help automate tasks such as product installation, test data creation, GUI interaction, problem detection (consider parsing or polling agents equipped with
test oracles), defect logging, etc., without necessarily automating tests in an end-to-end fashion. Considerations when developing automated tests include: •
Platform and
operating system independence •
Data-driven testing • Reporting (
database,
Crystal Reports) • Ease of
debugging •
Logging •
Version control • Extension and customization (e.g.,
APIs for integrating with other tools) • Integration with developer tools (e.g., using
Ant or
Maven for
Java development) • Unattended test runs for integration with build processes and batch runs • Email notifications (i.e.,
bounce messages) • Distributed test execution ==Roles==