Testing automation best practices drive higher adoption and lower friction
Various principles and practices contribute to software quality. For larger teams and complex products, test automation becomes a central focus. Automated testing holds the promise of expediting software validation and increasing testing coverage. The effort is not without its challenges with teams struggling with complexity, ill-defined requirements, a dynamic code repository, and the leap from manual to automatic tests.
Test automation includes suites of verification, functional, regression, and performance tests that run with little or no manual input from the development staff. Automated testing can be done in each development context (i.e., unit, integration, system, delivery.) As software becomes expansive and complex, test automation becomes one of the most effective practices to increase the functional and structural quality of the application.
As with many aspects of programming and configuration, it can be exasperating to implement and maintain the suite of automated tests properly. Many teams experience difficulties justifying the additional effort for test automation. Frustrations arise, with energy diverted away from programming and manual testing onto automation, which requires extra effort and produces limited results. Motivation wains, with teams feeling as though they’re wasting time on work that only seems to hurt, not help the velocity of the product/service pipeline.
Some software managers suffer from the misconception that automated testing always equals better testing, and they mandate that all testing must be automated. Such mandates have harmed many projects.
— Bret Pettichord, Lessons Learned in Software Testing
If you’ve had some of these negative experiences, it may be difficult to believe that there is hope. Some teams have actually done it well. The backbone of the initial successes involves careful thought, a defined plan, and a progressive approach to implementation. Such teams take additional steps to build upon the early wins. Today, they enjoy building better quality software in less time than before.
What's their secret? Everything hinges on the choices made in the approach to test automation. While not easy, it is quite feasible for most teams to automate software tests successfully. The answer lies in a shift in mindset and approach, adopting the guidelines followed by teams who have had significant success in automating their software tests.
Rather than attempting to dispense test automation tips blindly, this paper presents guidelines for successful automation. We'll provide an overview of common setbacks paired with a test-first approach to software development and a series of intermediate steps to try a test implementation. The methods covered provide a roadmap for teams to progressively transition to a test-first approach and move forward with confidence.