2016-08-29 10 views
1

JBehave는 Java 기반 응용 프로그램에 적합한 Java 기반 &입니다. JBehave는 또한 좋은 HTML보고를 지원합니다. 그러나 JBehave의 문제점은 기능 수준이 아닌 스토리 수준 만 지원한다는 것입니다.오이를 사용하여 기능 수준에서 수락 테스트를 작성하는 방법?

오이가 기능 수준을 지원하는 방법을 이해할 수있는 작은 설명이나 문서로 도움을 줄 수 있습니까?

+0

JBehave와 Cucumber는 실제로 다르지 않습니다. 그들은 시나리오 모음을 나타 내기 위해 다른 단어를 사용합니다. JBehave의 용어는 나에게는 정확하지 않지만 Cucumber처럼 사용하면됩니다. 아마도이 대답은 오해의 원천입니다. http://stackoverflow.com/a/8304995/634576 나는 거기에 대해서도 주석을 달았습니다. –

답변

1

기능은 기능의 구현입니다 (기능은 둘 이상의 기능을 필요로 할 수 있음). 꽤 좋은 때문에 "이야기"의 Mike Cohn's description에서

살펴 보자는 :

사용자의 이야기는 짧고 기능의 간단한 설명은 일반적으로, 새로운 기능을하고자하는 사람의 관점에서 이야기 시스템의 사용자 또는 고객 . 그들은 일반적으로 간단한 템플릿 따르

As a <type of user>, I want <some goal> so that <some reason>. 

좋은 사용자 스토리가 INVEST principles 다음을, 그리고 이것은 우리가 시나리오에 들어가기 시작 어디 : 그것은에 전달 될 수 있다는 뜻,

  • 독립 자신의

이야기는 기능이 t을 진행하는 하나 이상의 컨텍스트를있을 수 있습니다 o 일. 컨텍스트는 다른 컨텍스트와 관계없이 독립적입니다.

  • 협상, 그래서 당신은 당신이 이야기를 통해 작업 할 때

, 다른 컨텍스트 또는 고려 될 필요가 결과를 찾을 수 다시 작성할 수 있습니다. 이 기능의 핵심 기능은 대개 "언제"와 관련이 있습니다. 예를 들어, 내가 보고서를 생성 할 수 있기를 원 경우 "때" "나는 보고서를 생성 할 때 ...", 귀중한

  • , 그래서 그것은 이해 관계자에게 가치를 제공 할

결과가 다른 여러 이해 관계자가있을 수 있습니다. 예를 들어 택시가 예약되었음을 알리는 이메일을 보내는 것은 중요하지만 운전자에게 예약 확인을 보내는 것도 중요합니다. 다양한 이해 관계자를 고려하여 고려해야 할 시나리오에 대한 결과를 제시합니다.

  • 추정 할, 그래서 당신이 크기를 추정 할 수없는 경우 당신은 크기를

을 추정 할 수있다, 단지 작업 한 시나리오를 받고보십시오. 이것은 Kent Beck의 "스파이크"와 기능적으로 동일합니다. 우연히 추정 할 필요가있는 유일한 이유는 일반적으로 수행 할 수있는 다른 작업을 감안할 때 가치가 있는지 여부를 판단하는 것이므로 적절하게 처리해야합니다.

  • 작음 (이 편지를 놓친 것을 알게 된 것처럼 빠르게 편집 됨)은 어느 정도 수준의 확신이 있어야 함을 의미합니다.

는 사실은 사람들이 그것에 대해 불확실성 일정 수준을 알고, 최대한 빨리 피드백을 얻을 보이는 선호합니다. 만약 당신이 정말로 그것에 대해 확실하다면 (예 : 로그인), 피드백이 덜 필요하기 때문에 더 커야합니다. "일하는"것이 어떻게 생겼는지 알 수 있습니다. 종래 설명은 그것을

예를 테스트하기에 충분히 포함해야 시험 가능한 수단

  • 이 분석 좋은 부산물로서 시험된다.

    왜 우리는 처음에 이야기를합니까? 왜 모든 기능을 제공하지 않는가?

    출하 된 일부 기능을 얻는 데 필요한 작업이 상당히 많아졌습니다. 특히 많은 이해 관계자가 참여한 경우 특히 그렇습니다. 이전에 가치를 얻을 수 있도록 조각을 조각 내고 싶습니다. , 또는 우리는 피드백을 얻을 수 있도록 슬라이스하고자합니다.

    그래서 스토리는 실제로 배송 될 수있는 기능을 통해 슬라이스가 될 수도 있고 피드백을 얻기 위해 고안된 것일 수도 있습니다.

    시나리오는 환상적인 방법입니다. 이 기능은 가장 중요한 컨텍스트 또는 결과를 고려해야하는 여러 이해 관계자로 좁힐 수 있습니다. 거래 요구 사항을 가진 이해 관계자 (ATM에서 사용자가 돈을 받고, 은행에서 계좌를 인출하는 경우) 또는 규제 요구 사항을 제거하지 않도록주의하십시오 (은행이 막대한 투자를하고, 규제 기관이 자본 보유의 변경을 확인합니다).

    시나리오에 대한 설명이 인 경우에만 기능에 대한 피드백을받는 방법이 아닙니다. 새로운 UI? 어떤 행동도하지 않고 코드를 하드 코딩하여 사람들에게 보여줍니다. 새로운 보고서? 모의 사본을 만드십시오. 아무도 처리하지 못한 새로운 피드? 스파이크를 만들면 가능한 한 정보를 얻을 수 있는지 알아보십시오.

    그렇지 않은 경우 다른 결과를 고려해야하는 컨텍스트와 이해 관계자를 고려하고 컨텍스트와 결과가 다른 기능을 고려하십시오. 기능은 다양한 요구 사항을 구현하며, 사용자의 행동은 사용자가 파생 한 시나리오로 설명됩니다.

    • 이해 관계자
    • 목표
    • 기능
    • 기능
    • 이야기 : 이것은 전형적인 계층 구조, 이야기 이후

      이 기능을 통해 한 조각이며, 기능은 기능을 구현
    • 시나리오

    시나리오를 스토리 및 기능과 연관시키는 방법을 찾으려면이 방법이 좋지 않습니다. Gojko Adzic's "Impact Mapping" 또는 Matt Wynne's "Example Mapping"을 보면 친숙 할 것입니다. (우리 모두가 Chris Matts를 듣는 것으로 생각합니다).

    현실적으로 이것은 약간 퍼지기 때문에주의하십시오. 당신은 배달을 시작할 때 발견을 할 것이므로, 모든 것을 사전에 망가 뜨리지 마십시오. 필자는 능력이 훌륭한 계획 단계 인공물을 만들고, 종종 "Epics"와 아주 쉽게 연관되어 있음을 알았습니다.그들은 또한 자신 만의 고차원 테스트를 실시합니다. "사용자는 우리가 고려해야 할 상황에 대해, 그리고 결과가 필요한 이해 관계자에게 필요한 것을 할 수 있습니까?" 등 필요한 년대 다음 일,

    을 실제로 배달됩니다 ... 그리고 나머지의 일부가 될 것입니다 때까지

    이야기와 트릭은 단지 이 가치를 제공 할 수을 필요로 무엇을 고려하는 것입니다 더 많은 아이디어를 얻으려면 capability-based planning and lightweight analysis에 대한 블로그와 splitting up stories에 대한 블로그가 있습니다.

    오이에게는 기능별로 구성한 다음 상황에 따라 구성하고 체크 인에 스토리 번호를 붙입니다 (대부분의 CI 도구, 전자 보드 및 버전 제어 시스템이이를 지원합니다). 기능이나 스토리가 더 많은 시나리오를 만드는 것은 괜찮습니다.

+1

리즈 감사합니다, 지금까지 그런 아름다운 블로그를 찾지 못했고 제 질문에 답변 해 주셔서 감사드립니다. 꽤 명확하고 사려 깊은 설명. –