문제

나는 최근 BDD에 대해 들었고 TDD와 매우 유사하다는 것을 알았습니다.

이 두 가지 중 어느 것을 사용합니까 (있는 경우)?

그리고 각각의 장단점은 무엇입니까?

도움이 되었습니까?

해결책

저는 BDD = TDD가 제대로 캠프를했습니다. Beck에서 원래 설명하고 많은 사람들이 실천하는대로 TDD를하고 있다면 본질적으로 차이가 없습니다.

BDD가 테이블에 가져 오는 것은 프로세스를 설명하는 데 사용되는 언어의 흥미로운 변형입니다. 프로세스 설명과 도구 BDD 민속에 대한 대체 용어를 사용함으로써 더 나은 관행을 장려하기를 희망합니다.

나는 오랫동안 TDD를 해왔으며, 이것이 실제로 도움이되는지 판단하기가 어렵습니다. 나는 (희망 :-) 나는 이미 BDD 도구/언어가 격려하는 많은 교훈을 이미 배웠으므로 그들이 나에게 많은 가치를 부여하지 않는 것 같다. 물론 YMMV- 그리고 BDD 도구를 사용하여 전체 "실제 세계"프로젝트를 수행하지 않았으므로 개인 실험을 수행하고 너무 멀리 외삽 할 수 있습니다.

ID 추측 BDD 도구/언어는 이러한 개발에 접근하는 방식으로 소개되는 사람들에게 더 유용 할 수 있습니다.보다 전통적인 의미에서 사용되는 "시험"과의 혼란을 피하기 때문입니다. 나는 아직이 작업을 수행하지 않았으며 여기에있는 사람들이 그러한 경험이 있다면 관심이있을 것입니다.

다른 팁

BDD는 TDD와 유사하지만 사고 방식이 다릅니다. BDD에서는 테스트 대신 실행 가능한 사양을 만들려고합니다. 이것은 대부분 다른 어휘를 사용하지만 TDD와 유사한 역학을 사용하여 달성됩니다.

BDD는 사람들이 TDD를하고 있다고 주장했지만 단위 테스트 대신 통합 테스트를 작성하고있는 많은 경우에 대한 반응 인 것 같습니다. BDD 사람들은 테스트에 대해 이야기하는 것이 오해의 소지가 있다고 생각했기 때문에 테스트는 사양이되었습니다. 이것은 약간 형이상학적인 것처럼 보이지만 그 뒤에는 좋은 아이디어가 있습니다.

BDD는 시나리오 실행에 관한 것입니다. TDD와 마찬가지로 각 시나리오를 스토리로 테스트합니다.

이 이야기는 고객이 설명합니다. 스토리 라인을 바탕으로 시나리오가 작성 될 것입니다. 오이와 같은 도구를 사용하면 시나리오를 쉽게 작성할 수있었습니다.

TDD와 BDD는 거의 동일합니다. 차이점은 우리가 그것을 설명하는 방법이며, 따라서 성공적인 팀이 어떻게 그들에게 효과가있게 만드는가입니다.

BDD는 최고의 TDD 소송을 제기 한 TDD를 기반으로합니다. TDD는 우수한 소프트웨어를 작성하기위한 개발자 도구 또는 가이드이며 BDD는 유비쿼터스 언어를 사용하여 개발되면서 Bussiness의 더 많은 참여로 개발에 도움이되는 좋은 도구입니다.

내 경험은 BDD가 협업에 도움이되며, 팀의 모든 사람이 시스템이해야 할 일을 설명하는 서면 문서에 관여 할 때 비즈니스 읽기 가능하고 실행 가능한 사양을 사용하는 데 도움이된다는 것입니다. 이것은 팀 전체가 도메인의 언어를 함께 배우는 데 도움이됩니다.

BDD는 TDD를 성공시키기 위해 필요한 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top