Behaviour-Driven Development is an approach to developing software that is a little broader than Test-Driven Development. It includes ideas like double-loop TDD, executable specifications and living documentation.