A version of this Blog was first published on the Dataquest
When the entire IT world is pressing upon the need for Automation testing, an unprecedented rush is being seen across organizations for bringing automation testing in practice. Having said this however, due care needs to be taken while designing automation testing for obtaining its ROI.
Automation testing can provide benefits such as:
- Reduction in Execution Time: Regression testing once automated can be executed by machine in way that is time consuming as compared to manual testing.
- Faster Delivery Cycle: Due to expedited execution time, the overall delivery cycle gets reduced. Even for patch releases, the regression execution can become faster, thereby enabling faster delivery cycles.
- Better Quality of Deliveries: With faster execution cycle and possibility of multiple executions, defect leakage to production is reduced considerably.
- Cost Reduction: In Product Testing there are two main tasks, i.e. Test Designing and Test Execution & Reporting. With Automation Testing in place the Test execution & reporting part is done by the machine and can bring about great saving in time. Over a long term (usually more than one year) this will bring cost benefits to the program.
The benefits of automation testing outweigh initial costs associated with implementation of automation testing. Hence talking about a long term period, we must perform due diligence regarding when and where to implement automation testing in the application landscape.
To this end, following decision making tools are helpful in deciding, whether to go ahead with automation testing or not.
- Application/Product Roadmap: For adopting automation testing for any application / product, the first requirement is to create a roadmap for application / product for more than one year.
- Build Frequency: The ROI of automation testing will increase on each execution cycle, so if the build frequency is 8 or more in a year, it is only then that one should plan upon implementing automation testing.
- Application Stability: If the application under testing is not stable, then there is no use for automation testing, as more efforts would be invested on maintenance of automation scripts as compared to manual testing.
- Agile: With the implementation of Agile, it becomes pertinent to automate the regression within the same sprintin order to achieve true benefits of agile methodologies.
Historically, emphasis has been placed upon the implementation of automation testing on a UI level. This has its disadvantages, since any changes made in the UI level, makes the test script unusable and substantial effort is needed to modify the impacted script. If there is some change made in certain web element (location, name, id etc.) and several scripts are using it, then all these scripts become candidates for modification. Thereby, demanding a lot of efforts on the script maintenance front.
When talking about such scenarios, nothing much can be done as Application UI is bound to change in order to bring in a new feature or redesign etc.
The automation testing implementation will fail on the ROI front if we only think about it in terms of UI test case automation. To bring real value of automation testing, we must enhance scope of automation testing as mentioned below:
- Unit Testing: Code at unit level if tested, will help find bugs early in the cycle and thereby bringing “Shift Left” approach and help in reduction. The automation of unit testing is easier, as the code covered per test is small. The number of test cases to be created are very large, as the entire code base is to be tested with automation irrespective of end to end scenarios.
- Integration testing: Automation of integration scenario brings benefits of finding issues related with integration of various components / modules. Most of the teething issues can be found and fixed even before UI is developed and saves great time.
- UI Testing: Automation of UI testing is a must and works as a pre-UAT testing to ensure all the requirements are working as agreed with client. A point worth noting here will be to restrict UI automation to limited number of test cases ideally covering UAT scenarios, so that the maintenance cost of UI Automation can be brought under control.
Fig: Pictorial representation of Ideal Automation Testing spread across system under test
With the rapid passage of time, we have seen a burgeoning convergence of technology trends as well as developments that has resulted in – escalated amounts of data, speedier processing power and algorithms that are increasingly powerful. All this, have led to a massive increase in the sophistication and deployment of technologies. We are now at a tipping point where automation testing can provide real and tangible business benefits, hence, by applying them to your organization, the advantages can be felt across the software development cycle in its entirety and get you better ROI.