The Six “Must-Haves” and Four “Must-Avoids” of Test Automation
Few topics aggravate seasoned QA leaders like Test Automation. While some share with pride their stories of successful implementations of automated test suites, more often the conversation quickly turns to a comparison of “automation horror stories” and the myriad of unfortunate and expensive ways in which new automation endeavors have failed for QA teams of every size, shape, and type.
We’ve all heard the stories (or, let’s be honest, experienced them first hand) about well-intentioned automation efforts that have yielded a project full of scripts that are unusable, unmaintainable, or fail to actually find defects that do exist in your code. We’ve seen our QA teams struggle to learn “easy to use” automation libraries and scripting languages, try to work double time as they continue to run the still-needed manual tests, become unmotivated at an increasingly thankless task, or just plain lose support and momentum. Who hasn’t bought licenses to a great new version of an automation tool that end up being unused on a server or, worse yet, still sitting in a box on a shelf?
Ultimately these project teams end up with frustrated testers, cynical developers, and project managers divorcing themselves from a solution that promised quicker results and higher quality but ended up just draining the budget.
Bill Gates said that “The first rule of any technology used in a business is that automation applied to an efficient operation will magnify the efficiency. The second is that automation applied to an inefficient operation will magnify the inefficiency.” This is absolutely true with respect to test automation and the magnified properties at risk in an automation project include not only inefficiency, but time, money, and customer respect and satisfaction.
To have a chance at implementing a solution that will be considered successful, a number of critical decisions need to be made in advance. In addition to the usual considerations of scope, time, and cost, examine these six factors you should have in place as part of an impactful method of planning a test automation project:
- Application stability and future development plans
- Current (manual) testing effort and complexity
- Viability of data-driven test scenarios
- Robustness and repeatability of existing tests
- Test data management strategies
- Plus, other traditional concerns like staff skills and availability as well as hardware and software costs
The results and implications of these various factors must take center stage in conceiving a test automation strategy before even beginning to devise an implementation plan. It is within considerations like these that you will unearth the properties of testing that will be magnified (and exposed to an extended audience)…for better or for worse.
Your goal is to avoid these four outcomes:
- If your existing test portfolio isn’t risk-based, you may invest in making a low priority test run faster and more often, but with little benefit to the quality of your application.
- If your test data management strategy is weak, you may find yourself with a suite of automation scripts, but insufficient data to use with them.
- If your product is unstable or scheduled for an overhaul, your automation team may be writing scripts based on code that will become obsolete before the tests can return any value (raise your hand if you’ve seen that happen).
- Or, if you don’t have sufficiently skilled automation engineers, you can easily end up with a repository full of test code but no one to maintain it (the rest of you can raise your hand now).
Fulfilling an innovative plan with superior execution is the key to successful test automation. As InfoSpace founder Naveen Jain said, “Success doesn’t necessarily come from breakthrough innovation but from flawless execution. A great strategy alone won’t win a game or a battle; the win comes from basic blocking and tackling.” Joining forces with an experienced partner enables the planning and development of a test automation solution that builds on many combined years of successful test automation strategy and delivery expertise. More importantly, professional test automation engineers working with your technical team can ensure a time- and cost-saving solution that is a relevant, maintainable, and highly efficient addition to your software quality assurance program.
With an execution partner like SDLC, you will benefit from our experience in test automation success stories as well as our combined lessons learned from others’ failures. Our US-based team of nearly 100 software testing and quality assurance professionals are skilled in every aspect of lifecycle testing:
- Functional testing
- Regression testing
- Test automation using all of the major commercial and open-source testing toolkits
- Performance, usability, accessibility, and other non-functional testing
- Mobile and web testing
- Mainframe and database testing
- Test data setup and management
- User acceptance test planning and execution
- Test process improvement
- Test team development and management