당신이 올바른지. BDD는 언어 모호성 문제를 제거하지 않습니다. 다른 사람들이 지적했듯이 번역 된 스 니펫은 올바르게 정의하여 일치시켜야하지만 근본적인 모호성 문제를 해결하지는 못합니다.
이제이 문제를 해결하지 않아도 BDD가 실제로 가치가있는 이유는 무엇입니까? 몇 가지 이유가 있으며이 목록은 확실하지 않습니다.
모호성이 해결되지 않았습니다
이것이 BDD를 선호하거나 반대하는 이유는 아닙니다. 그러나 사용자 사례 또는 요구 사항과 같은 다른 접근 방식과 대조 할 때 모든 SW 개발 접근 방식은 모두 자연어 구성으로 시작하여 언어 모호성으로 인해 어려움을 겪습니다.
기술적으로 언어 모호성의 문제는 lojban 과 같은 인공 언어로 해결 되었지만 고객과 개발자는 해당 언어를 모를 것입니다.
유비쿼터스 언어
BDD는 유비쿼터스 언어라는 개념과 밀접한 관련이 있습니다. 모든 고객, 테스터 및 개발자와 함께 시나리오를 지정할 수 있기 때문에 BDD는 다른 접근 방식보다 우위에 있습니다.
기존 요구 사항 엔지니어가 모든 요구 사항을 적어 두십시오. 테스터 나 고객이 검토해야 할 요구 사항으로 가득 찬 300 페이지의 문서를 받으면 여기에 사용 된 용어보다 훨씬 더 시급한 문제가 있습니다.
사용자 스토리는 창작에 모든 이해 관계자가 포함되기 때문에 그 측면에서 조금 나아집니다. 유비쿼터스 언어의 관점에서 볼 때, BDD 또는 사용자 스토리가 더 낫다고 말하지는 않지만 다음 시점에서는 크게 다릅니다.
테스트 가능성
BDD의 주요 측면은 사양이 실제로는 (오이 등을 통해) 실행 가능하다는 것입니다. 요구 사항이나 사용자 스토리는이 기능을 제공하지 않습니다. 개인적으로 BDD의 주요 판매 지점입니다.
기존 요구 사항과 달리, 요구 사항 엔지니어에게 요구 사항을 테스트 할 수 있어야한다고 말하고 있습니다. 그러나 모든 프로젝트는 라인 테스터가 특정 요구 사항을 테스트하는 방법을 모른다는 것을 알고있는 경우를 봅니다.
사용자 스토리가 올바르게 수행되면 초기 제작 단계에 테스터를 포함시켜이를 확인할 수 있습니다. 불행히도, 이것은 실제 세계와 이론이 충돌하는 경우이며, 이전에는 테스터가 보지 못한 수많은 이야기를 보았습니다.
반면에 BDD는 자동으로 실행 가능한 테스트 시나리오를 제공합니다. 자동화 계층을 완전히 무시하고 멋진시를위한 시나리오를 작성하지 않는 한 변명이나 그에 대한 방법은 없습니다.
보다 일반적으로 Test First는 모든 소프트웨어 개발 단계에서 매우 보람있는 원칙이며 BDD는 개발의 최 외층에 적용됩니다 (단위 레벨의 f.ex. TDD와 비교).
요약
요약하자면, BDD는 자연어 모호성 문제에서 벗어나지 않습니다. 그러나 두 가지 중요한 점을 통해 문제를 해결하는 데 도움이됩니다. 모호성을 줄이기 위해 유비쿼터스 언어에 중점을 두어 (완전히 제거하지는 않지만 톤을 도와줍니다!) 실행 파일을 작성하도록합니다. 명세서. 후자의 요점은 모호성 문제를 해결하는 데 도움이되고 있는데, 그 이유는 모호성이 다른 문제로 나타나기 시작하기 때문입니다.