swsnu / wecfall2014

0 stars 0 forks source link

question about user story specification #6

Open ghost opened 9 years ago

ghost commented 9 years ago

Our team is currently working on the Requirements and Specification document, and we're stuck on user stories; on the Requirements And Specification slides and the class site, user stories are suggested to have

However, the SaaS Architecture slides describe user stories by the "As a, So that, I want to" format. We're confused which format to follow for our document. The former format looks too specific for the current level of project.

Thanks in advance.

bgchun commented 9 years ago

Please follow the former.


Byung-Gon Chun

Sent from my phone

      1. 오후 2:54 parkjiyoung notifications@github.com 작성:

Our team is currently working on the Requirements and Specification document, and we're stuck on user stories; on the Requirements And Specification slides and the class site, user stories are suggested to have

Name Actors Triggers Preconditions Actions Postconditions Acceptance tests However, the SaaS Architecture slides describe user stories by the "As a, So that, I want to" format. We're confused which format to follow for our document. The former format looks too specific for the current level of project.

Thanks in advance.

— Reply to this email directly or view it on GitHub.

ghost commented 9 years ago

Thanks for the reply. But we're still confused about what contents "acceptance tests" should contain. For example, below is the cucumber code taken from the BDD slides;

Feature: User can manually add movie

Scenario: Add a movie
  Given I am on the RottenPotatoes home page
  When I follow "Add new movie"
  Then I should be on the Create New Movie page
  When I fill in "Title" with "Men In Black"
  And I select "PG-13" from "Rating"
  And I press "Save Changes"
  Then I should be on the RottenPotatoes home page
  And I should see "Men In Black"

Do we need to write acceptance tests like this(exact grammar for Cucumber) for every user story we include? Or can we just write our own pseudo code for acceptance tests, such as

if (on RottenPotatoes homepage)
  follow("Add new movie")
  assert(true, "on the create new movie page")
  (...)
bgchun commented 9 years ago

Ideally, you would like to use the user story format of cucumber and use cucumber to generate acceptance tests automatically.

If you don't use cucumber, describe specific scenarios you will use for acceptance testing.


Byung-Gon Chun

Sent from my phone

      1. 오후 3:49 parkjiyoung notifications@github.com 작성:

Thanks for the reply. But we're still confused about what contents "acceptance tests" should contain. For example, below is the cucumber code taken from the BDD slides;

Feature: User can manually add movie

Scenario: Add a movie Given I am on the RottenPotatoes home page When I follow "Add new movie" Then I should be on the Create New Movie page When I fill in "Title" with "Men In Black" And I select "PG-13" from "Rating" And I press "Save Changes" Then I should be on the RottenPotatoes home page And I should see "Men In Black" Do we need to write acceptance tests like this(exact grammar for Cucumber) for every user story we include? Or can we just write our own pseudo code for acceptance tests, such as

if (on RottenPotatoes homepage) follow("Add new movie") assert(true, "on the create new movie page") (...) — Reply to this email directly or view it on GitHub.

bgchun commented 9 years ago

Btw, I don't want to read long documents. Your document should be concise.

Note that you will have multiple milestones, each of which may cover new user stories or update user stories. The process is iterative. You don't want to have a full-blow spec that won't change for the entire semester as in the plan-and-document process...

On Fri, Oct 3, 2014 at 3:54 PM, Byung-Gon Chun bgchun@gmail.com wrote:

Ideally, you would like to use the user story format of cucumber and use cucumber to generate acceptance tests automatically.

If you don't use cucumber, describe specific scenarios you will use for acceptance testing.


Byung-Gon Chun

Sent from my phone

      1. 오후 3:49 parkjiyoung notifications@github.com 작성:

Thanks for the reply. But we're still confused about what contents "acceptance tests" should contain. For example, below is the cucumber code taken from the BDD slides;

Feature: User can manually add movie

Scenario: Add a movie Given I am on the RottenPotatoes home page When I follow "Add new movie" Then I should be on the Create New Movie page When I fill in "Title" with "Men In Black" And I select "PG-13" from "Rating" And I press "Save Changes" Then I should be on the RottenPotatoes home page And I should see "Men In Black"

Do we need to write acceptance tests like this(exact grammar for Cucumber) for every user story we include? Or can we just write our own pseudo code for acceptance tests, such as

if (on RottenPotatoes homepage) follow("Add new movie") assert(true, "on the create new movie page") (...)

— Reply to this email directly or view it on GitHub https://github.com/swsnu/discussionwecfall2014/issues/6#issuecomment-57761842 .

Byung-Gon Chun

bgchun commented 9 years ago

More clarification on this question.

If you want to use cucumber, stick to the cucumber user story syntax and style. You don't need to follow the "Name, Actors, Triggers, Preconditions, Actions, Postconditions, Acceptance Tests" pattern as indicated in the document.

But, if you do not use cucumber (let's say you don't like the style), you have to use an alternative style. If you're in this camp, please follow the "Name, Actors, Triggers, Preconditions, Actions, Postconditions, Acceptance Tests" pattern. Try to be declarative. Acceptance tests are the instances of the declarative user story.

I hope this clarifies.