Exploration Through ExampleExample-driven development, Agile testing, context-driven testing, Agile programming, Ruby, and other things of interest to Brian Marick
|
Mon, 29 Mar 2004Open source test tools are hot these days. The two best sources I know are Bret Pettichord and Danny Faught.
## Posted at 17:00 in category /testing
[permalink]
[top]
Jonathan Kohl has a couple of important posts on pairing with programmers: here and here. What Jonathan writes reinforces my feeling that managing the human dynamics of the tester/programmer interaction is a key issue. As I wrote after the Agile Fusion workshop: I've done limited pair programming with "pure programmers". When I have, I've noticed there's a real tension between the desire to maintain the pacing and objectives of the programming and the desire to make sure lots of test ideas get taken into account. I find myself oscillating between being in "programmer mode" and pulling the pair back to take stock of the big picture. With experience, we should gain a better idea of how to manage that process, and of what kinds of "testing thinking" are appropriate during coding. My sense is that I'm a fire hydrant of ideas for examples: "Ah, the program will have to be able to handle cases like this... and like this... and like this..." My urge is to spill them out as I think of them. But, as my soaring instructor once told me when I was porpoising on tow, "Don't just do something, sit there." My job is to dole my ideas out at a rate, and in an order, that contributes to forward momentum (without forgetting the ones I hold back). In his second post, Jonathan quotes James Bach: "... testers are critical thinkers -- and critical thinkers are disruptive." I don't think that need always be true. One can be a critical thinker but not a critical speaker. One can post-process the thoughts and use them to guide progress in a non-disruptive way. That's not traditionally been the role of testers: it's been their job to have critical thoughts, to evaluate the product against them, to report the results clearly and dispassionately, and to let someone else decide what to do about it. In an agile project, it seems to me that the tester's responsibility has to go a bit further. I'm drawn to the analogy of writers' workshops as they are used in the patterns community. Considerable care is taken to prepare the author to be receptive to critical comments. At its worst, that leads to nicey-nice self-censorship of criticism. But at its best, it allows the author to really hear and reflect on critical ideas, freed of the need to be defensive, in a format where teaching what should change doesn't overwhelm teaching what works and should stay the same. I suspect testing in agile projects will also have to develop rituals. Agile projects are a specialized context. The rituals will aim to optimize how testing skills fit in. See also Christian Sepulveda's idea that I think of as "oscillating testers". |
|