BDD와 TDD


테스트 코드 작성 방법에 대해서 Testing library에 대해 찾아보다가 BDD와 TDD가 나와서 무슨 차이인가 궁금해서 알아보게 되었다.


테스트 주도 개발(Test Driven Develop)

  • 테스트를 먼저 짜고, 테스트 케이스를 통과하기 위해 코드를 작성
    • 예측가능한 사이드 이펙트들을 미리 테스트 코드에 넣음으로써 사이드 이펙트를 최소화
  • 여러 테스트 케이스를 통과해 완성도 있는 개발을 하기 위한 방법론 중 하나.
  • 개발 코드의 완성 -> 테스트 코드가 개발에 영향을 준다고 생각함.

행위 주도 개발(Behavior Driven Develop)

  • 사용자가 애플리케이션을 이용하는 관점에서, 실제 경험 위주로 테스트를 작성
    • 사용자는 <h2>태그가 <h3>태그로 바뀐것에 대해서 관심이 없다.
    • 노출이 되냐 안되냐가 중요할 뿐
  • 앞으로 작성하려는 프로그램에 기대되는 “행동”이나 “제약조건”, 즉 “요구스펙”에 가까운 형태로 자연어를 병기하며 테스트 코드를 작성한다.
    • “Story”를 남김으로써 “이 코드가 어떠한 기능 구현을 위해 짜였는지 이해하기 쉽도록 작성”
  • 개발 결과의 검증을 위해 하는 것으로 개발하는데 영향을 덜 미친다 생각함.

결론

  • 테스트는 필요함. 덤으로 “테스트 스토리”도 있다면 좋겠다.
    • 개발자라면 맡은 프로젝트의 비즈니스 로직에 대한 이해가 되어야 한다 생각함.
    • 위에도 썻지만, “h2”태그와 “h3”태그의 차이를 사용자가 알 필요가 없다. 동작이 되냐 안되냐, 노출이 되냐 안되냐가 중요하지..
  • “TDD는 개발자가 만족하기 위해서, BDD는 모두가 만족하기 위해서”
  • TDD든 BDD든 일단 테스트는 중요하다.

참고자료






© 2017. by isme2n

Powered by aiden