Core business-enabling applications are subjected to frequent changes by way of enhancements to functionality, migration to newer versions or patch introductions. These changes may impact existing functionalities hence it requires revalidation to assure that the stability of the application is not affected. Typically, this is done through re-running previous set of tests and checking whether previously-fixed faults have re-emerged. Doing this task manually is dauntingly time consuming and requiring enormous amount of technical resources.
Automation helps in many ways. It helps to drastically speed up testing, cut number of cycles, increase test coverage, allow re-use of test assets, program each feature of the application, perform tests at will and unattended, repeat tests any number of times and with accuracy, and at the same time, achieve higher levels of quality. Test automation is a costly investment. Hence, it is extremely important to get the automation strategy right if the investment has to productive and deliver sustainable value.
Despite clear benefits of automation, automation initiative can end in failure or be unproductive if the approach is not well-thought through. Some of the common pitfalls include automating an unstable application, not considering application criticality to business operations, scripting 100% of the test cases without a thought to maintenance or long-term value, time constraints to rollout the application, and not having an automation framework.