Sunday, 30 August 2009

Testing in Agile

Interesting article on the place of dedicated testers in Agile. So far I haven't seen much demonstration of the benefits or problems of dedicated testers in Agile teams with the use of metrics etc, but at least this puts some discussion points together around the issue.

Too often I have heard developers say they test the code 'very well' and unless they are TDD guns, it's likely I could write another umpteen tests that assess more critical parts of the system/function/blancmange on top of their tests. This is mainly due to developers not being taught testing skills, just as few testers are taught development skills. With that in mind, and considering that the developer's strength is in their ability to write code, and to continue with the theme, a tester's strength is in their ability to skeptically analyse a specification and consider the most critical parts to test with well constructed and organised scenarios that expose predicted weaknesses.

Therefore a dedicated tester, or at least a part resource that can evaluate the story/requirement with such criticality that additional test cases (and hence defects discovered) are designed that otherwise would have been missed.

Perhaps this isn't even restricted to Agile but should encompass all IT projects; there seems to be a concept that testing is a tiresome necessity but we have forgotten why. The main reason it is there, is to provide a deep and skeptical appraisal of the system, on the behalf of the customer or end use. Who is the best person to do this? Do you read other independent reviews of a car that you are interested in buying? Do you buy a car without having a test drive first? Do you expect that the manufacturer does some internal testing? I started off on foody type analogies with cooks, chefs and waiters, but they all amount to the same thing; you expect a product to have a variety of levels of quality assessment (notice I didn't use quality assurance) before you even get close to it. I mean, would you buy an Operating System or some such thing that required the customers to perform their own defect detection activities?

No comments:

Post a Comment