Implementing Automated Software Testing: How to Save Time and Lower Costs While Raising Quality
Testing accounts for an increasingly large percentage of the time and cost of new software development. Using automated software testing (AST), developers and software testers can optimize the software testing lifecycle and thus reduce cost. As technologies and development grow increasingly complex, AST becomes even more indispensable. This book builds on some of the proven practices and the automated testing lifecycle methodology (ATLM) described in Automated Software Testing and provides a renewed practical, start-to-finish guide to implementing AST successfully.
In Implementing Automated Software Testing, three leading experts explain AST in detail, systematically reviewing its components, capabilities, and limitations. Drawing on their experience deploying AST in both defense and commercial industry, they walk you through the entire implementation process—identifying best practices, crucial success factors, and key pitfalls along with solutions for avoiding them. You will learn how to:
- Make a realistic business case for AST, and use it to drive your initiative
- Clarify your testing requirements and develop an automation strategy that reflects them
- Build efficient test environments and choose the right automation tools and techniques for your environment
- Use proven metrics to continuously track your progress and adjust accordingly
Whether you're a test professional, QA specialist, project manager, or developer, this book can help you bring unprecedented efficiency to testing—and then use AST to improve your entire development lifecycle.
Review By: David Fern
09/21/2009
Implementing Automated Software Testing is an excellent resource for testers and test managers interested in software test automation. The main idea of the book is that creating an automated software testing (AST) project is a full development effort. Although the book does not show how to actually code automation tests, it demonstrates that automation can play an integral role in all phases of the software development lifecycle from requirements traceability, functional testing, configuration management, to test data generators.
The authors favor open source software tools and testing frameworks; many are mentioned and I was happy to learn about them through the links included throughout the text as well as the notes at the end of each chapter.
The first section of the book answers the question “Why automate?” This section gets you thinking about how you can use automation in more ways than you can imagine. The authors address the pitfalls of automation, demonstrate how to calculate ROI, and create a business case for AST based on what you want to accomplish: time savings, cost savings, or simply to automate mundane tasks.
The second section of the book details the six key points for how to successfully
implement an AST project including:
- Know your requirements
- Develop the automated test strategy
- Test the ASTF
- Continuously track progress—and adjust accordingly
- Implement AST processes
- Put the right people on the project—know the skill sets required
I really liked the section on calculating AST metrics, such as: automation index, automation progress, defect density, defect trend analysis, and defect removal efficiency. I have been able to directly use these metrics in my current projects.
Finally, the appendices are a great resource that includes a project manager Checklist, AST applied to various testing types, a look at great tools, and a case study on an AST framework.
Nothing is perfect and in my opinion there were two things that I would do differently if I was the author. First, the use of acronyms such as AST, ASTF, ATLM, and ATG were a distraction to me. I had to refer to the index to jog my mind quite frequently to stay focused. Second, the book would have been just as strong if it didn't include the few pages sprinkled throughout on topics such as security testing, soak testing, and even the manual testing suggestions. While those are important, the focus of this book is automated testing and a few pages on security testing adds little value.
I recommend this book to all those interested in automated software testing. If you are creating your own AST project, this book is the blueprint for you as the ideas and concepts are timeless. But keep in mind that the links and open source tool references may quickly become outdated and may make the book quickly lose some of its strengths.