나는 행동 주도 개발 방법론 (일명 BDD)의 보컬 지지자입니다. 저는 2 년 동안 BDD를 적용 해 왔으며 DotNet 애플리케이션을 개발할 때 StoryQ 를 선택한 프레임 워크로 채택 했습니다 . 몇 년 동안 단위 테스트를 해왔고 이전에 테스트 우선 접근 방식으로 전환했지만, 테스트에서 요구 사항의 의도를 상대적으로 파악하기 때문에 BDD 프레임 워크를 사용하면 훨씬 더 많은 가치를 얻을 수 있습니다. 내 코드 내에서 명확한 영어를 사용하고 내 테스트에서 테스트를 중간에 끝내지 않고 여러 개의 어설 션을 실행할 수 있기 때문에 디버깅하지 않고도 특정 어설 션이 한 번에 통과 / 실패하는 것을 확인할 수 있습니다.
테스트와 구현 코드를보다 목표 된 방식으로 디버깅 할 수 있으며 결과적으로 생산성이 크게 향상되었으며 더 많은 것을 할 수 있음을 알았으므로 이것은 빙산의 일각이었습니다. 빌드 로그로 들어가는 출력으로 인해 통합 빌드에 문제가 발생하는 경우 장애가 발생하는 위치를 쉽게 판별 할 수 있습니다. 또한 StoryQ API는 배우기 쉽고 유창한 구문을 사용하여 특별한 방법으로 적용 할 수 있으며 외부 의존성이 없어도 사용할 수 있습니다.
따라서 이러한 모든 이점을 통해 나머지 팀에 개념을 쉽게 도입 할 수 있다고 생각할 것입니다. 불행하게도, 다른 팀원들은 StoryQ를보고 그것을 제대로 평가하기를 꺼려하고 (BDD를 적용한다는 아이디어는 물론) 서로의 핵심 테스트 프레임 워크에서 많은 StoryQ 요소를 제거하려고 시도했습니다. 원래 StoryQ 사용을 지원했지만 제거하려는 코드가 테스트 시스템의 다른 부분에는 영향을 미치지 않더라도 말입니다. 그렇게하면 실제 업무 경험을 통해 특정 작업 환경에서 테스트 우선 방식으로 작업하는 것이 더 좋은 방법이며 더 큰 결과를 가져올 수 있다는 사실을 확신 할 수 있기 때문에 전반적인 작업량이 전체적으로 크게 증가하고 실제로 결정에 반대하게됩니다. 다음과 같은 경우 소프트웨어 품질 개선 ve는 BDD를 사용하여 테스트를 먼저 수행하는 것이 더 쉽다는 것을 알았습니다. 더 명확하게 설명하자면, 우리가 수행 한 단위 테스트의 대부분은 상당히 취약하고 유지하기 어려운 경향이 있으며, 테스트 중심 프로세스를 고수하지 않는 몇 년 동안의 잘못 적용 된 테스트에서 개발자가 오래된 습관에 빠지는 것을 보았습니다. 프로젝트가 끝날 때 모든 테스트를 수행하십시오 (이러한 사람들은 민첩하다고 주장합니다!).
따라서 질문은 실제로 다음과 같습니다.
- 이 팀이 StoryQ를 사용하는 것이 좋거나 최소한 BDD 방법론을 채택하는 것이 더 나을 것이라는 점을 실제로 추진하기 위해 어떤 주장을 사용할 수 있습니까?
- BDD를 표준 선택 방법으로 채택하겠다는 주장을지지하는 데 사용할 수있는 일화적인 증거를 말씀해 주시겠습니까?
- 팀이 BDD를 채택하도록 장려하려는 나의 소망이 잘못되었을 수 있다고 생각할 수있는 반론은 무엇입니까? 그렇습니다. 나는 그 주장이 건전한 것이 아니라면 잘못 입증되어 기쁘다.
참고 : 테스트를 완전히 다시 작성하는 것이 아니라 향후 모든 테스트 작업을 위해 다른 방식으로 작업을 시작하는 것이 바람직하며 고객과의 관계를 유지하는 것이 좋습니다.
BDD에 대해 더 배우고 자하는 사람들에게는 다음 링크가 유용 할 수 있습니다.
- http://dannorth.net/introducing-bdd/
- http://en.wikipedia.org/wiki/Behaviour_driven_development
- http://behaviour-driven.org/Introduction
자세한 내용에 관심이있는 사람들을 위해 우리는 약 5 개의 큰 프로젝트를 수행하는 4 명의 소규모 팀입니다. BDD에 대한 "파일럿 시험"은 초기에 약 2 개월 동안 실행되었으며, 또 다른 약 4 개월이 뒤따 랐습니다. 팀은 내가 계속 이런 식으로 일해야하고 그들 자신의 시련을해야한다는 것을 받아 들였다. 나는 재판이 끝난 후 약 2 년 동안 BDD를 해왔으며, 다른 사람들은이 문제를 다루는 데 능숙 해졌습니다. 이 문제에 대해 "대결"을 강요하기보다는 팀을 부드럽게 설득하여 집단적인 배후에서 벗어나 시간을내는 방법을 찾고 있습니다.