February 14, 2011

What Managers Should Know About Testing in Agile Projects – Part 3

Test Management
On January 19, I presented the ‘Manager’s Guide to Defining Testing in an Agile Age' webinar. This is the last post in a three-part series I've been doing to highlight the key takeaways from the webinar;  get your testers involved early, make your testers first-class participants, and today I'd like to drill down into the third and last area. Automate testing processes and activities. In one sense, Agile methodologies were a reaction to the over-tooling of traditional methodologies. Many Agile proponents believe that too much time was being spent operating and collecting data for tools instead of focusing on the actual work to be done. But automation is essential in many aspects of Agile testing. Automation enables the easy collection and analysis of data that enable testers and other project team members to make decisions about the quality and completeness of work. And testers need to make use of automated defect tracking to make sure a feature is retested when a defect is found, even if the defect is fixed right away. Automated functional and regression testing even have roles in Agile. Even if you don’t think you’re going to run a test more than once, it’s important to record it and place it in the automation suite. You never know when you’re going to need to execute it again, possibly in response to other changes or in the regression suite. But, perhaps, the most important role for automation in Agile is recording and tracking user stories. Forget about the three-by-five cards; it's tedious both to keep them up to date and to share them across the team. User stories have to be online. Even though they aren’t as formal and complete as requirements, user stories change, and they need to be shared. The key to reconciling automation and Agile is to choose your spots—that is, automate the activities that offer significant advantages over a manual approach. You also have to use automation tools that integrate well into your work approach, and don’t require more training and maintenance than they deliver in benefits. It’s natural to be skeptical about the use of automation. Automation isn’t a goal in itself, especially in Agile methodologies. Rather, you examine your testing processes and activities, and automate the tasks and tests that can benefit from speed, data collection and analysis, and sharing.