[백엔드] TDD VS BDD - 테스트 주도 개발과 행동 주도 개발

개발log·2024년 6월 3일

백엔드 기초지식

목록 보기
8/8
post-thumbnail

테스트 주도 개발(TDD)

"테스트가 개발을 주도하는 방식"

  • Test-Driven Development
  • 빨강, 초록, 리팩터링 세 단계로 이루어진다.
  • 개발 초기부터 테스트 코드를 작성하기 때문에 웹 어플리케이션의 품질을 높이고 버그를 줄일 수 있다.

빨강(red)

  • 아직 구현되지 않은 기능에 대해 테스트를 작성하는 단계
  • 도로를 만들기 전에 도로 지도를 그리는 것과 같으므로 이 상태로 테스트를 돌리면 당연히 실패한다.

초록(green)

  • 빨강 단계에서 실패한 테스트를 통과시키기 위한 코드를 작성하는 단계
  • 도로 지도에 따라 실제 도로를 만드는 것과 같다.
  • 이 단계에서는 테스트를 통과하는 것이 목표이므로 코드가 완벽하지 않을 수 있다.

리팩터링(refactoring)

  • 테스트를 통과한 코드를 개선하는 단계
  • 이는 만들어진 도로를 보완하고 더 나은 도로로 개선하는 것과 같다.
  • 코드의 품질을 향상하는 것이 목표이다.

행동 주도 개발(BDD)

테스트 주도 개발을 기반으로 하지만, 사용자의 행동을 중심으로 테스트를 하는 개발 방법론

  • "실제 웹 애플리케이션을 사용할 때 흐름을 바탕으로 테스트 코드를 작성하므로 사용자 중심의 웹 애플리케이션을 개발할 수 있다.
  • 개발자를 비롯해 웹 애플리케이션 개발에 관련된 이해관계자들이 원활하게 소통하고 협업할 수 있다.

사용자 스토리

  • '사용자 스토리'라는 개념을 사용해 테스트를 작성한다.
  • 실제 사용자의 요구 사항을 반영한 테스트 케이스를 작성하는 것이다.

    예 : 사용자로서 나는 이런 기능을 원해. 그래서 어떤 기능이 메인 화면에 있었으면 좋겠어.

시나리오 작성

  • 사용자 스토리에 맞는 주요 요구사항을 특징으로 정의하고 특징을 충족하기 위한 시나리오를 작성한다.
  • 이때, 현재 주어진 환경(Given), 사용자의 행위(When), 그에 따른 결과(Then) 등을 작성한다.
profile
나의 개발 저장소

0개의 댓글