If you found this article, you’ve probably already been sold on the benefits of automated testing. Automated testing is something that can offer virtually every organization tremendous benefits.
However, it requires an upfront investment to implement it correctly. Like most other things in life that are worth doing, automated testing requires some setup to do it the right way. In particular, the creation of a high-quality automated testing program requires:
Acquisition of and training for automated testing tools
Time for engineers to develop automated tests
Infrastructure to support the automated testing tools and testing itself
Convincing management that this investment is worth it may seem like a difficult proposition. After all, management folks are usually leery of anything that adds to the budget, especially when the investment is in technical tools and services that they don’t fully understand because they themselves are not engineers.
Toward that end, this article explains strategies for convincing your boss to invest in automated testing by focusing on how it can have a positive impact on your organization’s bottom line.
When you create an automated test, it takes a little time to design the test case and code up the testing script. Once you have created a test, executing it against the code base requires very little (if any) human interaction. The investment in the initial test pays you back each time you run the test suite. The payment is in the form of time it would have taken to have a human tester walk through the same set of test steps.
Well-written automated tests can reliably exercise functionality within your application in a standardized manner. When you design and build additional tests, they become part of a suite which ensures the quality of an increasing percentage of your application.
Manual testers require a salary or wages, and if you want to test your application around the clock, you either need to employ quality assurance staff or pay your existing testers for overtime. Automatic test suites can be executed at all times of the day and night, immediately notifying key personnel when anomalies are detected.
Computers are good at repetition; people are good at being creative and critical thinkers. Employing a team of people whose sole purpose is testing your application by executing a series of prescribed tests against your application is wasting your organization's most valuable resource—the untapped potential and creativity within each of those people. Automate your test suite and let a computer run the test scenarios. Free your people to design additional test cases and more fully exercise the functionality of your application.
Regression testing, in particular, can be tedious for test engineers, and as such, is prone to user errors and mistakes. Establishing a regression test suite allows you to validate the stability of your application and continued support for established functionality. Each successful execution of the automated testing suite is validation that your new feature hasn’t broken your existing functionality.
An automated test suite can run through the happy-path test cases much faster than a human tester can, and it can also run similar tests all testing the same functionality, applying different what-if scenarios.
Exactly how much faster an automated test suite is will depend on the number of tests and the complexity of your application, but while the exact multiplier may vary, automated tests are still many times faster and more accurate than manual tests.
An additional benefit of being able to execute comprehensive tests quickly is that new code changes can be validated as soon as they are checked into the application’s code base. Doing this allows bugs to be surfaced far earlier in the development process and helps identify the cause far quicker (and soon enough after development) that the engineer who introduced the error might not even need to engage in context switching to rectify the problem.
Gathering the results of manually executed tests can require another tier of manual labor. Most automated test suites include report generation options, which detail the number of tests performed and the results. Those who wish to view the results can subscribe to automated emails generated by the test system, display the results on dashboards, or log into the test system to see an objective and comprehensive view of the application’s quality.
Whether you call it testing, quality assurance or quality engineering, the end goal of any test strategy is to ensure that the quality of your product is as high as possible. Automated testing allows you to expand both the coverage of your test suite and how often you can execute those steps. The final result is better quality software, which in turn results in happier customers, and more satisfied customers are more likely to continue to subscribe, tell their friends, and ultimately improve your bottom line.
This list is not a comprehensive accounting of all the advantages of automated testing, but it should provide your organization with enough information to realize the accessibility and affordability of automated testing. Moreover, how can you not afford to implement this vital step in your development process?
Mike Mackrory is a Global citizen who has settled down in the Pacific Northwest - for now. By day he works as a Senior Engineer on a Quality Engineering team and by night he writes, consults on several web based projects and runs a marginally successful eBay sticker business. When he’s not tapping on the keys, he can be found hiking, fishing and exploring both the urban and the rural landscape with his kids. Always happy to help out another developer, he has a definite preference for helping those who bring gifts of gourmet donuts, craft beer and/or Single-malt Scotch.