2012-03-10 2 views
1

문맥에 넣으십시오. 나는 TDD가 좋다. 먼저 테스트를 작성하고 assertEquals 및 assertTrue 등을 사용하여 코드를 작성해야한다.프로그래머로서 행동 주도 개발에 대해 알아야 할 것은 무엇입니까?

하지만 모두 BDD 프로그램을 사용하고있는 것 같습니다. 나는 rSpec과 Cucumber와 Lettuce에 관해 많은 이야기를 보았습니다. 내가 이것을 보았을 때, 그들은 지나치게 장황하게 보 였는데, 코볼은 마치 길고 "가짜 영어"를 쓰는 것이 일반인들에게 형식적인 명세를 알 수 있다고하는 순진한 가정에서와 거의 같습니다.

BDD에 대한 저술 중 일부는 실제로 TDD를 실행하기가 너무 어려운 사람에게 적합하다고 말합니다. 나는이 문제가 있다고 느끼지 않는다. 적어도 데이터베이스 또는 대화 형 환경에 대해 TDD를 수행하는 데 문제가 있었기 때문에 테스트를 공식화하거나 우선 순위를 지정할 수 없었습니다.

제 질문은 이것입니다. BDD는 프로그래머로서 나에게 어떤 가치가 있습니까? a) 프로젝트의 맥락에서 나는 나 자신 (또는 다른 프로그래머와 함께)을 위해 글을 쓰고있다. b) 비 기술적 인 고객과 작업하는 맥락에서.

많은 프로젝트에서 BDD를 사용한 사람들에게 TDD 이상으로 무엇을 사셨습니까? BDD에서 충분히 엄격한 테스트 사례를 작성할 수 있지만 일반 테스트로 작성할 수없는 고객, 제품 또는 프로젝트 관리자를 찾으십니까?

답변

0

아주 간단한 내부 프로젝트에서 BDD를 테스트 한 다음 복잡한 프로젝트에서 내 보낸 것입니다.

가장 큰 차이점은 BDD에서 실행하는 테스트 종류입니다. BDD 외부 테스트는 클래스 또는 내부 코드를 다루지 않지만 시스템 전체를 테스트하는 테스트를 기반으로합니다. BDD 내부 테스트는 TDD에서 수행하는 것과 똑같은 단위 테스트입니다.

이렇게하면 두 가지 레벨에서 동일한 빨강 - 녹색 - 리팩터링 방식을 사용할 수 있습니다.

복잡한 프로젝트에서 매우 유용한 외부 테스트를 발견했습니다.

0

질문 (a)에 대답하려면 비 기술적 인 이해 관계자가없는 경우 오이가 적절하지 않을 수도 있지만 충분한 통합 테스트를 수행하고 있다고 확신하십니까? 단위 테스트는 대개 충분하지 않습니다.

0

내가 TDD와 BDD의 차이에이 비디오의 토론 같은 : http://channel9.msdn.com/Series/mvcConf/mvcConf-2-Brandom-Satrom-BDD-in-ASPNET-MVC-using-SpecFlow-WatiN-and-WatiN-Test-Helpers (의 .NET 툴, 내가 사용하지 반드시 .NET 도구를하지만, 개념이 맞다)

일반적으로, 당신은 그것을 말할 수있다 소프트웨어가 사용자가 원하는대로 (BDD를 사용하여) 사용자의 관점에서 요구 사항을 충족하는지 확인하기 위해 TDD로 예상 한대로 소프트웨어가 구현되었다고 생각하는지 확인하기 위해 변경하여 피드백 루프를 향상시킵니다.

관련 문제