TDD and Acceptance Testing

In 2003, Dan North, my mentor at Thoughtworks, realised that a lot of the difficulties he encountered when teaching TDD were due to the word “test”. He founded the Behaviour Driven Development movement in response.

TDD is primarily a design activity, and writing user-centric scenarios before coding can be seen as a learning and conversation opportunity. I teach the skills you would commonly associate with these practices through Behaviour Driven Development instead. My experience has been that trainees pick up the necessary disciplines in BDD far more easily than when using the TDD vocabulary.

BDD is not an “advanced form of TDD”. If anything, trainees find it simpler, as it alleviates some of the confusion caused by TDD’s vocabulary. This focus on simple language and communication also makes it easier for developers to communicate with each other and with the business.