THE CONCEPTS BEHIND TDD

The history of TDD starts in 1999 with a group of developers who championed a set of concepts known as Extreme Programing (XP). XP is an agile based methodology that is based on recognizing what practices in software development are beneficial and dedicating the bulk of the developers time and effort to those practices under the philosophy “if some is good, more is better.” A key component of XP is test-first programming. TDD grew out of XP as some developers found they were not ready to embrace some of the more, at the time, radical concepts, yet found the promise of improved quality that was delivered by the practice of TDD compelling.

As mentioned, agile methodologies do not incorporate a big upfront design. Business requirements are distilled into features for the system. The detailed design for each feature is done when the feature is scheduled. Features, and their resulting libraries and code, are kept short and simple.

TDD as a Design Methodology

When used as an application design methodology, TDD works best when the business user is engaged in the process to help the developer define the logic that is being created, sometimes going so far as to define a set of input and its expected output. This is necessary to ensure that the developers understand the business requirements behind the feature they are developing. TDD ensures that the final product is in line with the needs of the business. It also helps ensure that the scope of the feature is adhered ...

Get Professional Test-Driven Development with C#: Developing Real World Applications with TDD now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.