2009-08-26 2 views
2

많은 개발자들이 새로운 프로젝트를 시작하는 동안 사용할 테스트 스타일에 동의하지 않습니다. 왜 내가이 특정한 스타일을 다른 스타일보다 더 선택했는지 알고 싶습니다.BDD 또는 TDD? 어느 쪽을 선호합니까? 그리고 왜?

+0

"주관적 및 논쟁의 여지가"로 끝나는 투표. 적어도 CW이어야합니다 (겸손한 의견으로는) –

답변

3

TDD v BDD는 실제로 마음의 상태입니다. 내가 보는 방식은 TDD에서이 가치가 무엇인지에 중점을두고 있습니다.이 시점에서 BDD를 볼 수 있습니다. BDD는 과정의 가치와 과정을 테스트합니다. 이 상태에 있는데,이 응용 프로그램의 일부분은 무엇을해야합니까?

4

나는 보통 외부에서 원칙을 사용합니다. TDD 또는 BDD라고 부르는 것이 중요하지 않습니다.

이것이 의미하는 바는 구현하고자하는 기능 중 가장 중요한 부분 인 부터 시작하여 거기에서 작업한다는 것입니다. 이것은 종종 사용자 인터페이스이지만 반드시 그럴 필요는 없습니다. 때로는 가장 중요한 영역은 서비스 운영 또는 백그라운드 프로세스이며, 그 다음부터 시작합니다.

나는 Test Doubles를 사용하여 내가 정의한 클래스가 환경과 상호 작용하는 방식을 정의한 다음이 기능을 구현할 때이 테스트 복식에서 정의 된 추상화를 점점 더 많이 구현합니다.

그래서 BDD 사고 방식으로 시작한 다음 호출 스택 아래로 내려가는 과정에서 점점 더 TDD쪽으로 이동한다고 말할 수 있습니다.

5

BDD와 TDD는 서로 제외되지 않습니다. 제 생각에 BDD는 요구 사항 분석부터 시작하여 소프트웨어 개발을 전체적으로 처리합니다. TDD는 순전히 구현과 관련이 있으며 실제로 개발자의 개인 작업 기술입니다.

+0

맞습니다. BDD는 비즈니스 요구 사항을 철저히 준수 할 수 있도록 개발 과정에서 도메인 전문가 (기술적으로 전혀 신경 쓰지 않아도 됨)를 포함합니다. TDD는 매우 기술적이며 소프트웨어 개발자들에게만 관련이 있습니다. – Matthias

2

BDD 스타일로 TDD를 배웠습니다. 그것 모두는 정말로 당신이 당신의 생각을 어떻게하는지의 문제입니다.
많은 사람들이 실수로 TDD가 테스트 중이라고 생각했습니다. 따라서 BDD는 테스트를 통한 행동을 강조함으로써 혼동을 최소화하기 위해 만들어졌습니다.

관련 문제