Today, Alexandru and I made our presentation at QCon. We split the talk in two parts: Alexandru covered a section we called “Three TestNG features that you will like” and I followed with a brand new presentation entitled “Designing for Testability”, which I made purposely non-TestNG specific.

As you probably guessed, a lot of the ideas discussed in this presentation are covered in greater lengths in our upcoming book.

Here are some of the topics I covered:

  • Designing for Testability can sometimes be at odds with well-established software engineering practices, such as certain design patterns and extreme encapsulation. You need to be ready to question your beliefs.
  • You should avoid using statics, and there are some very valuable frameworks that make this very easy (Guice and Spring, to name two).
  • Test-Driven Development does not necessarily lead to code that is better designed, and is best used to expose junior programmers to testing.

As for the conference, I’m enjoying it quite a bit: the location is absolutely terrific and it’s nice to be able to attend non-Java tracks, for a change. Hats off to Floyd, Alexandru and the rest of the crew for a top-notch conference!