It takes about two seconds to determine whether or not someone used TDD to derive a set of unit tests. While it's possible for someone to write as high-quality unit tests using TAD (test-after development), it just doesn't happen. Invariably I see many of the same problems, most significant of which is that the TAD tests don't cover nearly enough of the cases.
Most of the time, developers doing TAD simply refuse to follow the single-responsibility principle (SRP) at the class or method level. (Despite bizarre and often idiotic claims by Jeff Atwood and Joel Spolsky, asking people to push in the direction of Uncle Bob's five principles of class design is a reasonable and sensible thing to do.) They build large classes and large methods--not small, cohesive, potentially reusable units--and then complain about the difficulty of testing them.
My simple answer for now is, "How can you expect to write unit tests when you don't have any units?"
February 2004 March 2004 May 2004 September 2004 October 2004 January 2005 February 2005 September 2005 October 2005 November 2005 December 2005 January 2006 February 2006 March 2006 June 2006 August 2006 January 2007 February 2007 March 2007 April 2007 September 2007 October 2007 November 2007 December 2007 January 2008 February 2008 March 2008 April 2008 May 2008 June 2008 July 2008 August 2008 September 2008 October 2008 November 2008 December 2008 January 2009 February 2009 March 2009