Session

Test-driven Development Meets Design-by-Contract

Jim Weirich, Consultant, Compuware

Track: Ruby
Date: Wednesday, July 26
Time: 10:45am - 11:30am
Location: E145

Test-driven Development, although not ubiquitous, certainly has made a strong impact on the software industry. However, there has been some criticism of TDD. Advocates of Behavior-driven Design suggest that the testing-oriented vocabulary of TDD causes developers to focus on the wrong aspects of development. Rather than thinking about testing, developers should be focusing on specifying behavior. But although the BDD frameworks use different terminology, they are still structurely similar to the xUnit frameworks that came before them.

In this presentation, we will look at a Ruby-based domain specific language designed to explicitly express and capture program semantics, not through the use of tests but through the use of contracts and explicit specifications. We will compare this technique to the traditional xUnit framework and discuss the strengths and weaknesses of each approach.