2

シナリオを書くとき、次のスタイルのいずれかを選択することについて強い議論を持っている人はいますか?

Feature: Search Product

As a customer
I want to search for a product
So that I can easily locate what I want to purchase

Scenario: Multiple Products Found (First Person Style)
Given the following products exist:
|Product      |
|Normal Orange|
|Large Orange |
When I search for "orange" <---
Then the system should display the following products:
|Product      |
|Normal Orange|
|Large Orange |

または...

Scenario: Multiple Products Found (Generic Third Person Style)
Given the following products exist:
|Product      |
|Normal Orange|
|Large Orange |
When the customer searches for "orange" <---
Then the system should display the following products:
|Product      |
|Normal Orange|
|Large Orange |

または...

Scenario: Multiple Products Found (Specific Person Style)
Given the following products exist:
|Product      |
|Normal Orange|
|Large Orange |
When "John" searches for "orange" <---
Then the system should display the following products:
|Product      |
|Normal Orange|
|Large Orange |

それらはすべてうまく機能しているように見えます-明らかな落とし穴を見落としているのではないかと思います.非常に多くの例がアクターに特定の値を使用しているように見えるためです(入力/結果の特定の値だけではありません)。

使用に対する私の唯一の議論:

When the customer searches for "orange"

他のアクターも同じ機能を使用できる場合は、別個の同等の手順を定義する必要があります。

個人的には、"I" はよく読めると思います (ただし、別のことを知っているように感じます)。考え?

4

3 に答える 3

3

どちらでもいいのですが、微妙な違いがあります。

結果の利益がユーザーのためである場合は一人称で言い、ユーザー以外の誰かのためである場合は三人称で言いたいことがあります。

たとえば、次のようなストーリーがあるとします。

In order to prevent bots from spamming the site
As a moderator
I want users to prove that they are human.

関連するシナリオは次のいずれかになります。

Given a user is not registered
When they try to register
Then they should be presented with a CAPTCHA
When they fill in the CAPTCHA
Then they should be successfully registered

または:

Given I am not registered
When I try to register
Then I should be presented... what, wait, no, I shouldn't!

この例では、「CAPTCHA を提示する必要がある」という考えに認識上の断絶があることは明らかです。なぜなら、CAPTCHA は煩わしく、誰も望んでいないからです。このシナリオを第三者に当てはめると、そのメリットがその人には当てはまらない可能性があることが明らかになります。

私はときどきユーザーの名前を作ります。たとえば、Ursula Usual は通常のユーザー、Andy Admin は管理者です。このように三人称を使用すると、さまざまなペルソナや役割を呼び出すのにも役立ちます。

役割は同じですが、2 人の異なる人が演じているシナリオは他にもあります。

Given Doctor Donald has filled out Priscilla Patient's prescriptions
When Doctor Diana looks for her file // <-- different doctor!
Then she should be able to find those prescriptions.

他のアクターが同じ機能を使用できる場合、その役割または権限のコンテキストによって動作が変化するため、名前に暗黙的に含まれている場合でも、そのコンテキストをシナリオに含める必要があります。

于 2012-10-10T20:26:19.543 に答える
1

基本的にシナリオ次第だと思います。

顧客のみが関与するシナリオの場合は、おそらく「顧客」が最も適切です。

シナリオに顧客以外のクラスのユーザーが含まれる可能性がある場合は、"John" (または必要に応じて "Jane") を使用する方がより一般的であり、ユーザーの 1 つのクラスだけに焦点が当てられなくなります。

一般に、システムは他の誰かが使用するために構築されているため、一人称 (「私」) スタイルが読みやすいことに同意しますが、それを使用しない心理的な理由はおそらく十分にあります。

もちろん、私は完全に混乱する可能性があります。私は BDD の初心者です。

于 2012-10-10T15:57:40.660 に答える