행동 기반 개발-소개
행동 주도 개발 (BDD)은 원래 TDD (Test Driven Development)에서 나온 소프트웨어 개발 프로세스입니다.
BDD의 발전을 책임지고있는 Dan North에 따르면,“BDD는 중요한 소프트웨어를 제공하기 위해 공유 된 이해와 표면 불확실성을 생성하기 위해 여러 수준에서 예제를 사용하고 있습니다.”
BDD는 개발에 관련된 모든 사람이 읽고 이해할 수있는 언어로 작성된 시스템의 동작을 설명하기 위해 예제를 사용합니다. 이러한 예는 다음과 같습니다.
실행 가능한 사양으로 변환됩니다.
수락 테스트로 사용됩니다.
BDD – 주요 기능
행동 중심 개발은 다음에 초점을 맞추고 있습니다.
비즈니스 가치가있는 제품을 제공 할 목적으로 소프트웨어 개발자, 비즈니스 분석가 및 이해 관계자와의 커뮤니케이션을 촉진하는 공유 프로세스 및 공유 도구를 제공하여 소프트웨어 개발에 협력합니다.
시스템이 수행해야하는 작업 및 구현 방법이 아닙니다.
더 나은 가독성과 가시성을 제공합니다.
소프트웨어의 작동뿐만 아니라 고객의 기대에 부합하는지 확인합니다.
BDD의 기원
결함이 적시에 감지되지 않고 감지되는 즉시 수정되면 결함을 수정하는 비용이 여러 배로 증가합니다. 다음 예를 고려하십시오.
이는 요구 사항을 올바르게 획득하지 않으면 이후 단계에서 요구 사항을 오해하여 발생하는 결함을 수정하는 데 비용이 많이 든다는 것을 보여줍니다. 또한 최종 제품이 고객의 기대를 충족하지 못할 수 있습니다.
시간의 필요성은 다음과 같은 개발 접근 방식입니다.
요구 사항을 기반으로합니다.
개발 전반에 걸친 요구 사항에 중점을 둡니다.
요구 사항이 충족되었는지 확인합니다.
위에서 언급 한 요구 사항을 처리 할 수있는 개발 방식은 BDD입니다. 따라서 행동 기반 개발-
시스템의 다양한 예상 동작의 예를 도출합니다.
고객을 포함하여 개발에 관련된 모든 사람이 쉽게 이해할 수 있도록 비즈니스 도메인 용어를 사용하여 언어로 예제를 작성할 수 있습니다.
대화를 통해 때때로 고객과 함께 승인 된 예를 가져옵니다.
개발 전반에 걸쳐 고객 요구 사항 (예제)에 중점을 둡니다.
수락 테스트로 예제를 사용합니다.
BDD 관행
BDD의 두 가지 주요 관행은 다음과 같습니다.
예제 별 사양 (SbE)
테스트 주도 개발 (TDD)
예별 사양
SbE (Specification by Example)는 대화에서 예제를 사용하여 구축 할 소프트웨어의 비즈니스 규칙과 동작을 설명합니다.
사례 별 사양을 통해 제품 소유자, 비즈니스 분석가, 테스터 및 개발자는 비즈니스 요구 사항에 대한 일반적인 오해를 제거 할 수 있습니다.
테스트 주도 개발
BDD의 맥락에서 Test Driven Development는 예제를 사람이 읽을 수 있고 실행 가능한 사양으로 변환합니다.
개발자는 이러한 사양을 지침으로 사용하여 새로운 기능을 구현합니다. 그 결과 소프트웨어 수명 내내 유지 관리 비용을 낮게 유지하는 린 코드베이스와 자동화 된 회귀 테스트 제품군이 생성됩니다.
애자일 BDD
Agile 소프트웨어 개발에서 BDD 방법은 보류중인 사양에 대한 공통된 이해를 얻기 위해 사용됩니다.
다음 단계는 Agile BDD에서 실행됩니다-
개발자와 제품 소유자는 일반 텍스트 편집기에서 보류중인 사양을 공동으로 작성합니다.
제품 소유자는 시스템에서 기대하는 동작을 지정합니다.
개발자
이러한 동작 세부 사항으로 사양을 채우십시오.
시스템에 대한 이해를 바탕으로 질문하십시오.
현재 시스템 동작은 새 기능이 기존 기능을 중단하는지 확인하기 위해 고려됩니다.
Agile Manifesto 및 BDD
Agile Manifesto는 다음과 같이 말합니다.
우리는 소프트웨어를 개발하고 다른 사람들이 그렇게하도록 도와줌으로써 더 나은 소프트웨어 개발 방법을 찾고 있습니다. 이 작업을 통해 우리는 가치를 얻었습니다.
Individuals and interactions − 프로세스 및 도구
Working software − 포괄적 인 문서
Customer collaboration − 계약 협상
Responding to change − 계획 따르기
즉, 오른쪽 항목에는 가치가있는 반면 왼쪽 항목에는 더 가치가 있습니다.
BDD는 다음과 같이 Agile 선언문에 맞춰집니다.
애자일 선언 | BDD 정렬 |
---|---|
프로세스 및 도구에 대한 개인 및 상호 작용. | BDD는 대화를 나누는 것입니다. |
포괄적 인 문서에 대한 작업 소프트웨어. | BDD는 비즈니스 가치가있는 소프트웨어를 쉽게 만드는 데 중점을 둡니다. |
계약 협상을 통한 고객 협력. | BDD는 개발이 진행됨에 따라 고객과 지속적인 커뮤니케이션을 통해 아이디어를 기반으로 한 시나리오에 중점을 둡니다. 그것은 어떤 약속에도 근거하지 않습니다. |
계획에 따라 변경에 대응. | BDD는 변화의 흡수를 촉진하는 지속적인 커뮤니케이션과 협업에 중점을 둡니다. |