Columbus, OH – May 31, 2012 — This spring, we held our first Test Driven Development (TDD) workshop at Grange Insurance in Columbus, Ohio.

The event was designed to introduce and teach our clients a new way of software development.

What is TDD?

Test Driven Development (TDD) is a powerful software development practice for combining software design, unit testing and coding in a continuous process to increase quality, maintainability and productivity. Using TDD, developers build software in short development cycles following a workflow pattern called Red – Green – Refactor:

  • (RED) The developer writes a failing automated test case that defines a new function or improvement
  • (GREEN) Writes minimal code to pass that test
  • (REFACTOR) Refactors the new code or existing code to acceptable standards
  • The developer repeats this process many times until the unit is complete and fully tested

What happened at the Event?

During the workshop, attendees use code “katas” and pairing to practice the techniques. Participants worked on one or two code labs specifically crafted to encourage object-oriented thinking and design through test-first and merciless refactoring. Developers can use any integrated development environment (IDE) and language that is available as long as the micro-testing framework (e.g., JUnit, NUnit, rSpec) is also available.

Attendees explored the TDD discipline at their own pace, in a low-stress environment, with frequent opportunity to get personalized assistance from Shawn and others.

Who was this event for?

The event was ideal for developers who are interested in introducing TDD into their team’s toolbox of powerful software engineering practices. Perhaps they have tried to encourage the TDD discipline already, but want more first-person experience in order to address concerns back home.

Workshop Objectives

  • Learn how to use one of the xUnit family of testing frameworks (for this workshop, both JUnit and NUnit were available).
  • Learn test-first as a thinking process.
  • Learn the advantages of automating micro-tests.
  • Learn how TDD has been known to reduce defect rates by 80 percent.
  • Learn merciless refactoring as a code design tool.
  • Learn how TDD enables Emergent Design and can improve architectural-change cycle times.

For more information about TDD, reach out to Shawn Wallace.