2010-07-13 3 views
7

저는 BDD로 시작 했으므로 작은 응용 프로그램을 만들려고합니다. 그래서 실제 환경에서 작동하는 것을 볼 수 있지만, 기능을 결정하는 데는 문제가 있습니다. 나는 작은 가게를 짓고있다.BDD, 기능이란 무엇입니까?

"제품 비교"는 기능이고 "게스트로 사용자 체크 아웃 가능"은 하나이지만, 우선 제품을 나열해야한다고 결정했습니다.

제 질문은 "제품 목록이 있어야합니다"라는 기능이 있어야합니까?

감사합니다.

답변

4

아마도 기능 일 것이지만 사용자의 관점에서 말하십시오. 이 제품 목록은 무엇을 제공합니까?

  • 사용자는
  • 사용자가 주문하고 이름, 가격, 가용성에 제품을 재 배열 할 수 있어야한다 제공되는 제품의 개요를 얻을 수 있어야합니다.
2

BDD를 시작하는 것은 꽤 어렵습니다. 능력과 전체적인 접근 방식에 자신감을 갖도록 도와주는 유일한 방법은 테스트 시나리오와 테스트 시나리오를 실행하는 코드를 작성하는 것입니다. 이미 복잡하고 복잡한 상황을 더 어렵게 만들지 말 것을 제안합니다. 구현할 필요가있는 작업을 선택하고 빈 텍스트 파일을 연 다음 간단한 문장을 사용하여 설명을 시도하십시오. 모든 문장은 (), (), ()의 세 단어 중 하나로 시작해야합니다. 자주 사용하는 BDD 프레임 워크를 사용하면 이러한 문장을 구문 분석하고 시작 상태 (주어진)에 들어가고, 일부 명령을 실행하고 (전환 될 때) 전환 된 상태를 어설 션하도록 응용 프로그램을 자극하는 코드를 작성합니다. 응용 프로그램 코드는 단순한 모의 객체 (mock)로 시작될 수 있습니다. 점진적으로 작성된 코드로 점차적으로 해당 모의 객체를 대체하고 더 높은 신뢰도와 품질 수준으로 애플리케이션을 확장하십시오.

1

사용자 스토리는 기능입니다. 형식으로 표현 될 수 뭔가 :

  • 역할 으로는
  • 나는 뭔가를
  • 그래서 목표

일예를하고 싶으면 사용자로서

  • 내가 가장 좋은 방법

    게스트로
  • 나는 내 요구를 만족하는 제품을 선택할 수
  • 그래서 제품을 비교할 수 있도록하고 싶습니다

  • 내 장바구니를 확인하고 싶습니다
  • 구매를 완료 할 수 있도록

각 기능은 일련의 Given-When-Then 시나리오에 의해 확인되어야합니다.

1

기본적으로 기능을 묻습니다. 그것에 대해 생각해보십시오, 당신은 이야기를 가지고 있습니다, 이야기는 당신 (또는 다른 사람들이 참여한)이 당신의 앱을 위해 원하는 특징을 설명합니다. 일반적으로 다음과 같은 형식을 취합니다. 사용자로서 제품 목록을보고 싶습니다. 이 이야기에 메모를 추가하여 더 명확하게 할 수 있습니다. 그러나 그 다음에 구체적인 행동이옵니다 (결국 당신은 반대 할 것입니다) -이 이야기에 부합하는 행동의 무한한 수가 있습니다 (제품의 관점과 그것들을 표현할 수있는 여러 가지 방법에 대해 생각하십시오). BDD에서 BDD는 앱이 필요로하는 행동을 찾는 데 집중합니다 (앱이 아닌 사용자가 사용하기 때문에 사용자를 결정해야하기 때문에). 가능한 한 많은 사람들과 이야기하고, 끝났어.

위에서와 같이 항상 행동에 집중하려고 노력하는 것처럼 더 구체적입니다. 그것에 대해 생각한다면, 동작 (테스트 세트를 의미 함)이 주어지면 무한한 수의 구현이 있음을 의미합니다. 그래서 BDD의 초점은 실험과 말하기로 행동을 진정으로 이해하는 것입니다. 항상 자유가 있습니다.

1

더 중요한 것은 사용자가 제품 목록으로 무엇을하고 싶은지 파악하는 것입니다. 이 기능은 사용자에게 가치있는 것을 제공 할 것입니다. 그래서 귀하의 경우는

  • 기타
0

가 확인하려면 제품 목록에서 비교 선택 제품

  • 목록에서 X 제품을 볼 수있는 제품을 선택이 될 것입니다, 요구 사항이 명시적인 기능/사용자 스토리 인 경우 작업 기반 설계/문서화 지침 (예 : http://www.sprez.com/articles/task-documentation-design.html)을 사용할 수 있습니다. 이러한 개념은 시스템 사용자가 특정 결과를 얻고 싶어한다는 것을 인정합니다. 일반적으로, 어떤 제품을 사용할 수 있는지와 같은 것을 아는 것은 구매/판매/건축/기타 과정의 한 단계에 불과합니다. BDD의 좋은 출발점은 사용자에게 챕터로 사용할 주제를 쓰는 것입니다 조작. 이러한 주제는 일반적으로 소프트웨어 솔루션에서 제공 할 기능입니다. 예제에 의한 이러한 접근 방식을 지원하는 훌륭한 프레임 워크는 Concordion (http://concordion.org)입니다. "일반 영어로 수락 테스트"(http://gojko.net/2009/09/01/acceptance-testing-in-plain-english-with-concordion-net/)에 대한 설명을 살펴보십시오.

  • 1

    필자는 기능을 일관된 (비즈니스) 가치를 제공하는 최소한의 유용한 스토리 세트로 분류 할 것입니다.

    (BDD 프레임 워크 참조) http://kernowcode.wordpress.com