TDD is for developers, and BDD is for customers. Those results are based on developer testing and customer testing
What are developer testing and customer testing?
Developer testing is that developer makes way of test for only developer.
Customer testing is that developer makes way of test for customer’s position.
Those testing are tested different ways. Developer testing runs program by bottom up to test step by step. On the other hand, customer testing runs program by top down to understand how entire program goes for customers.
As you see, ATDD (Acceptance Test-Driven development) is placed in Customer, and BDD is between TDD and ATDD on the picture. The reason why ATDD is placed in Customer is that ATDD is a one of cycle of testing and repeat testing to implement an application. If testing is passed, it will be the same meaning of implementation of the application. It is easy to make sure that complementation of the application and its progress by client’s Position. The reason why it is easy to make sure them is that BDD is using ubiquitous language. TDD is not using ubiquitous language because it is for developer. In case of BDD, a test and progress are described by ubiquitous language. So, BDD is more understandable than TDD to clients. So, this is the benefit to use ATDD on BDD for client. Therefore, BDD is for customers. I think that that is one of difference between TDD and BDD. I want to share this idea to understand difference between them. However, I could misunderstand about that. If so, Please let me know what I got wrong.