8000 TDD/BDD/ATDD · Issue #34 · rimo030/nestjs-e-commerce-frame · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

TDD/BDD/ATDD #34

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
rimo030 opened this issue Nov 9, 2023 · 2 comments
Open

TDD/BDD/ATDD #34

rimo030 opened this issue Nov 9, 2023 · 2 comments
Assignees
Labels

Comments

@rimo030
Copy link
Owner
rimo030 commented Nov 9, 2023

테스트 주도 개발(test-driven development, TDD)

테스트 주도 개발은 테스트가 주도하는 개발 방법론을 의미.
자동화된 테스트로 개발을 이끌어나가는 방식이다.

  1. 먼저 테스트코드를 작성한다. 처음에는 컴파일 조차 안될 수 있다.
  2. 테스트코드를 성공하기위한 코드를 작성한다. 좋은 코드인지 고민하지 않고, 테스트코드가 통과하기만 하면 된다.
  3. 중복 코드 제거, 일반화 등의 리팩토링을 수행

행동 주도 개발(Behavior Driven Development, BDD)

  • BDD는 비 기술적 언어를 사용하여 더 많은 사람들이 쉽게 이해하도록 한다.
  • 아직 존재하지 않은 코드에 대해 테스트를 작성하기 보다는, 행위에 대한 명세를 작성한다는 것.
  • 고객과 개발자의 관점에서 시스템이 어떻게 작동해야 하는지 기술한다.

인수 테스트 주도 개발 (Acceptance Test Driven Develpoment, ATDD)

  • 인수테스트가 주도하는 개발 방법론을 의미
  • BDD가 개발자 관점에서 기능의 동작에 더 중점을 두는 반면,
    ATDD는 사용자 시나리오 관점에서 정확한 요구 사항을 캡처하는 데 중점

저 3개는 서로 상호 보완적인 관계로 필요한 부분에 같이 사용될 수 있다.

@rimo030 rimo030 changed the title TDD/BDD/ATDD란? TDD/BDD/ATDD Nov 9, 2023
@rimo030 rimo030 self-assigned this Nov 9, 2023
@kakasoo
Copy link
Collaborator
kakasoo commented Nov 10, 2023

TDD는 테스트 주도 개발입니다. 테스트를 선 진행 후, 그 테스트가 통과할 때까지 개발한다는 점에서 개발자만 있어도 진행 가능합니다. BDD는 테스트를 작성할 때 개발자가 아니어도 이해하는 데에 문제없는 수준으로 작성합니다. 예를 들어 장바구니에 물건을 담을 때 product_id, user_id 를 검증하는 건 TDD스러운 일이고, 유저가 정말로 장바구니에 물건을 담았다는 행위로써 검증한다면 그건 BDD스러운 일입니다. ATDD는 여기서 한 술 더 떠서 그러한 요구사항들을 모아 시나리오처럼 테스트하는 걸 말합니다.

사실 테스트라는 게 어느 정도 레벨까지 이루어져야 하는지에 대해서는 개발자마다 다 다를 거기 때문에 개념에 집착하지 않았으면 해요. 한다는 게 중요하죠.

@kakasoo
Copy link
Collaborator
kakasoo commented May 27, 2024

#112 TDD 방식이 되려면 e2e를 먼저 작성하면서, 파라미터 타입과 응답 타입만 작성하고 함수들을 작성하는 게 좋습니다!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants
0