February 11, 2011

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

Test Management
I recently presented the "Manager’s Guide to Defining Testing in an Agile Age" webinar. In my initial post on the topic, I provided an overall description of the webinar, and drilled down a little into the first area of discussion—get your testers involved early. Now I’d like to drill down into the second area. Make your testers first class participants in the project. This is a tough one to embrace and implement because it means changing almost everything testers know about the testing process. Traditionally, testers have been proud of their independence. Once product requirements have been defined, testers take them and spend weeks analyzing the requirements, writing test plans, and developing test cases prior to doing any testing. That can’t be allowed to happen in an Agile methodology. First, it’s impractical. After the initial planning sessions, development begins right away and the first features may be available within two or three weeks. That’s simply not enough time to plan and develop test cases using traditional approaches. Second, it may not be relevant. The subset of test cases testers have developed by the time the first features appear may not even be for those features. Testers need to know what features are being developed first, and focus their efforts in that area. This means they have to be a part of the selection process for the features and when they are implemented. So what are testers supposed to do? While testing remains an important objective measure of application quality, testers can no longer go off on their own and test in their own way. Testing must be a participatory activity among all members of the Agile team. But testers know testing, so that gives them a leadership role in determining what needs to be tested and how.  Hint: Testers won’t be doing all of the testing themselves. Testers have to sit with developers to look at the code, and understand the tactical implementation decisions they make on a daily basis. This testers you insight into where and how to test features. Your test cases become much more fluid and adaptable once testers have knowledge of the underlying details of the application. Testers also need to get into the world of the user community through the Product Owner and through interactions with actual users when possible. Testers must appreciate what is important to users, and be ready to test in those areas. Testers can't run comprehensive tests in all of the iterations because there won’t be time. However, because testers will be working intimately with both developers and users, they’ll understand where they need to focus their testing at any given time. Testers will iterate on quality, making sure they test the areas that have an immediate impact on the product first. Next week I’ll look at the third area of discussion surrounding Agile testing and testers—automating testing processes and activities. Stay tuned!