January 31, 2005 - Blind Spots, Frequent Testing, and Software Agitation

Andrew Binstock's column Integration Watch in Software Development Times of January 15, 2005, reflects on the difficulty of writing developer tests for cases that the developer does not anticipate.

He coins the term ‘FUT’ (frequent unit testing) for the activity of creating unit tests along with the software code, regardless of whether the tests or the code are created first. And then he goes on to say that the risk with FUT is that ‘blindness’ may prevent the developer from writing tests for the edge cases he did not consider when coding the application.

Kent Mitchell came across this phenomenon when he used Agitator to verify example code from an article on TheServerSide about TDD. He discovered that the article's simple code contained a significant error. In his blog ‘TDD Reflections from the UnitSide’, Kent states: “If you didn't think of it when you wrote it, you probably won't think of it in testing” — Kent and Andrew Binstock are very close in their observations.

In our case Kent's message was far from the last word on the topic. Later that month we started what was to become the XPeriment to learn more about how the world of TDD and our world of agitation get along. And as Jeffrey described we learned that they get along just fine.

It is a year later now, and we have spoken to many hundreds of developers at our prospects and customers, and have learned that there are two camps with regards to developer testing — Kevin quotes Alberto in describing them as the “For All” thinkers and the “There Exists” thinkers. Kent Mitchell represents the “For All” view of the world, while Kevin comes from the “There Exists” side.

What is great is that they are both working on the same product, and adding value in both directions. As we are learning about the usage models (see TDD and Agitation), we are happy to see that we are indeed addressing many of the issues that Andrew Binstock raises.

Posted by Mark DeVisser at January 31, 2005 04:38 PM

Trackback Pings

TrackBack URL for this entry:


Post a comment

Remember Me?