Given/When/Then-ready sprint planning (expo:QA'16)
-
Upload
gaspar-nagy -
Category
Software
-
view
635 -
download
2
Transcript of Given/When/Then-ready sprint planning (expo:QA'16)
Given/When/Then-ready
sprint planning
Gáspár Nagy
coach • trainer • bdd addict • creator of specflow
@gasparnagy • [email protected]
What is BDD?
behavior driven development
desarrollo impulsado por el
comportamiento
development driven by behavior
[HttpPost]public ActionResult Add(int bookId){
BookShopEntities db = new BookShopEntities();var shoppingCart = GetShoppingCart();
var existingLine = shoppingCart.Lines.SingleOrDefault(l => l.Book.Id == bookId);
if (existingLine != null){
existingLine.Quantity++;}else{
var book = db.Books.First(b => b.Id == bookId);
OrderLine newOrderLine = new OrderLine();newOrderLine.Book = book;newOrderLine.Quantity = 1;shoppingCart.AddLineItem(newOrderLine);
}
ViewData.Model = shoppingCart;return RedirectToAction("Index");
}
An Oversimplified BDD Process
implement
feedback
An Oversimplified BDD Process
Scenario: Books can be added to the shopping basket
Given the following books
| Author | Title |
| Martin Fowler | Analysis Patterns |
| Gojko Adzic | Bridging the Communication Gap |
And my shopping basket is empty
When I add the book “Analysis Patterns” to my shopping basket
Then my shopping basket should contain 1 copy of “Analysis Patterns”
The Feature File
Scenario: Books can be added to the shopping basket
Given the following books
| Author | Title |
| Martin Fowler | Analysis Patterns |
| Gojko Adzic | Bridging the Communication Gap |
And my shopping basket is empty
When I add the book “Analysis Patterns” to my shopping basket
Then my shopping basket should contain 1 copy of “Analysis Patterns”
The Feature File
Escenario: Los libros se pueden añadir a la cesta de la compra
Dadas los siguientes libros
| Author | Title |
| Martin Fowler | Analysis Patterns |
| Gojko Adzic | Bridging the Communication Gap |
Y mi cesta está vacía
Cuando agrego el libro "Analysis Patterns" a mi cesta
Entonces mi cesta debe contener 1 copia de “Analysis Patterns”
Who writes the scenarios?
How do you set the title of the
scenario?
Can I have multiple when/then steps?
If you have these questions you are probably on
the wrong track…
THE SPRINT PLANNING
Demo: Planning the Pizza
Selection Story
Explain the story as a PO!
Let’s write a Gherkin from the result
Scenario: ...
Given ...
When ...
Then ...
De-briefing
• PO was unprepared
• We discussed the topics in a foreign language
• The domain was known, but not very exact
• Quality of notes?
• How easy it to write the first scenario?
• Quality of scenario?
An efficient meeting…
Demo: Planning the Pizza
Selection Story
Participate in the facilitated
discussion as PO!
Review
• What was different from the first time?
• Did we cover more or less functionality than the last time?
• What do you think the different coloured cards / stickies are supposed to represent?
• How did capturing each of those help to keep the discussions on track?
• Do you think the story is ready to implement now? Why?
Should be able to add a pizza to
the basket
Scenario: Should be able to add a pizza to the basket
Given the following pizza menu
| name | ingredients |
| Aslak Hellesøy | Cucumber, Gherkin, Pickles |
| Uncle Bob | Chicken, Low cal cheese |
| Chris Matts | Garlic, Wasabi, Tomato |
And the shopping basket is empty
When I choose a “Chris Matts” pizza
Then my basket contains 1 “Chris Matts” pizza
Should be able to add extras to the
chosen pizza
Scenario: Should be able to add extras to the chosen pizza
Given the following pizzas in the basket
| pizza | extras |
| Aslak Hellesøy | - |
| Chris Matts | - |
And the “Aslak Hellesøy” pizza is selected from the basket
When I add extra cheese
And I add extra cucumber
Then the basket should contain
| pizza | extras |
| Aslak Hellesøy | +cheese +cucumber |
| Chris Matts | - |
HOW IT'S MADE
Collaborate on requirements!
Well guided planning meeting can improve
the “BDD-efficiency” quite much
#0 – Choose a facilitator
• Someone needs to facilitate the discussion –not the PO
• The facilitation can be rotated so that everyone gets practice
• The facilitator can guide the discussion with
– Asking questions
– Moderating (stopping?) discussions
• Everyone can ask of course…
#1 – Pick a guide line
• Choose a theme that you can use to order
the questions
• The “sequence of actions” is usually good
– ie. “What you do first?”
• If you use story mapping for planning the
stories, this comes quite naturally
#2 – Keep collecting rules
(acceptance criteria) and examples
• Once you hear an important rule/behavior/check, note it down as a rule and an illustrating example
• Don’t forget that an example is not necessarily text, but formulas, wireframes or anything that describes the required behavior
• Examples can help
– understanding the topic
– discover misunderstandings
– keep the requirements real
#3 – Make notes visible to
everyone• Write them on index cards or stickies
• Using (and sharing on projector) a notepad, OneNote or SpecLog is also very good– Pro: stored already in a searchable form, usually
better visible (zoom), easy to go back to earlier notes
– Con: harder to get a full overview
• Stop the discussion while the rule/example is captured
• The team should have an agreement on the captured result– Was this really what we were discussing about?
#4 – Collect questions
• If something cannot be answered or needs further research/investigation – capture it as a questions
• Captured questions can help
– to avoid re-discussing the same topic again and again
– to have a clear list of topics we need to investigate
#5 – Split the story if necessary
• The map can help you to feel if the topics
we have discussed are too much
+1 – Formulate the scenarios in
Gherkin• Not necessarily in the planning meeting
• Just before you start implementing the story works usually
• Don’t do it alone
• Try to find broader agreement especially for the first scenarios in a certain topic
• At this point, you are not discussing the behavior, but finalizing the ubiquitous language
One page summary
#0 – Choose a facilitator
#1 – Pick a guide line
#2 – Keep collecting rules (acceptance criteria) and examples
#3 – Make notes visible to everyone
#4 – Collect questions
#5 – Split story if necessary
http://bit.ly/examplemapping(Matt Wynne)
What about my answers?
Scenario: Books can be added to the shopping basket
Given the following books
| Author | Title |
| Martin Fowler | Analysis Patterns |
| Gojko Adzic | Bridging the Communication Gap |
And my shopping basket is empty
When I add the book “Analysis Patterns” to my shopping basket
Then my shopping basket should contain 1 copy of “Analysis Patterns”
Who writes the scenarios? How do you set
the title of the scenario?
Can I have multiple when/then steps?
The answers
• Who writes the scenarios?– It does not matter, because we are all on the same page
regarding the behavior. But it makes sense if a developer is typing it in with a tester or PO sitting next to him/her.
• How do you set the title of the scenario?– You never set it, you start from the acceptance criterion
that will be the title.
• Can I have multiple when/then steps?– The scenario is the formalization of an AC – a simple
check. For that you usually need only one when step and only one or two then steps.
Try it at home!
Thank you!
Gáspár Nagy@gasparnagy
http://specsolutions.eu
More information on BDD at
http://bddaddict.com