The best part of TDD..

[tweetmeme source=”snarayan” only_single=false]

Test Driven Development (TDD) in its lamest form is understood as “Write your tests first”. This is how most developers understand it. Some follow it too.. But is that all?

TDD as its popularly known, is not only about writing tests first. It is about Design, releases and a software philosophy.  Some of the prime features of TDD are

1. Simple & Evolutionary Design

Design to your current set of requirements. Do not bloat your design with unneccessary patterns and frameworks, unless you see a real advantage of using them.

2. Acceptance Criteria

Have boundaries of development, clearly defined by acceptance criteria. This helps you define what you’re trying to achieve.  So that translates to your tests. Tests are your acceptance criteria for each line of code that you write.  This helps you understand the requirement much better, hence result in getting closer to the solution and an overall efficient development process.

These are the major aspects of TDD that we practice.  Testing is one aspect of it, not the whole.

3 thoughts on “The best part of TDD..

  1. As you said many people understand it to be test first. Many people in their college days write code and immediately verify their programs. I have some people who achieved very cool graphics and functionality taking one step at a time. But after a while they suffered because of the lack of a test harness. If possible we should concentrate more on verification part than the emphasis on tests.

  2. I agree with you it’s a general misunderstanding, at least in java you need a code to write a testcase. But what generally i do is to create a skeleton code and create a testcase that can fail and cover all possible outcomes from the logic and then fill it to pass all the testcase.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s