Implementation Driven Test에서는 주로 애플리케이션이 어떻게 작동하는지에 대해서 초점을 두어 테스트를 작성합니다.
<h2 class="title">제목</h2>
예를 들어, 위와 같은 UI를 테스트한다고 했을 때, <h2>라는 태그가 쓰였고, title 이라는 클래스가 사용되었는지 여부를 테스트합니다.
반면에, Behavior Driven Test에서는 사용자가 애플리케이션을 이용하는 관점에서 사용자의 실제 경험 위주로 테스트를 작성합니다. 사용자가 위 UI를 사용하면서 과연 <h2> 태그를 사용하고, title 이라는 클래스가 사용되었는지 관심이나 있을까요? 사용자 입장에서는 단지 브라우저 화면에 제목 이라는 텍스트가 보일 뿐입니다. 따라서, 사용자에게 어떤 컨텐츠가 현재 보이고, 사용자가 어떤 이벤트를 발생시켰을 때, 그에 따라 화면에 변화가 일어나는지를 테스트합니다.
자 여기서, 만약에 추후 어떤 이유로 인해서 <h2> 태그가 <h3> 태그로 바뀌었을 때는 어떤 일이 날까요? Implementation Driven Test 방법론으로 작성된 테스트는 깨지지만, Behavior Driven Test 방밥론으로 작성된 테스트는 깨지지 않을 것입니다. 애플리케이션 입장에서 봤을 때는 구현의 디테일이 바뀐 것이지만, 사용자 입장에서는 제목 이라는 텍스트가 화면있다는 사살은 변함이 없기 때문입니다.