Exercise 1: Look at the two stories below and list what you think is(are) the best Story Test pattern(s) to use for the Story Tests for that Story.

Exercise 2: Pick one of the below and create the Story Tests.

Story 56: Add Item to Cart

Assume we're working on a retail web site. The site has a "Frequent Savers Club"(FSC) that the user can join to obtain discounts on merchandise. The cost of membership is $10. When a non club member/user adds an item to the cart such that the potential member savings for all items in the cart are $20 or more, we want to invite the user to join the club. If they do join, the FSC item is added (by the system)to the cart. Then, if the original item added (such as a TV) has a Warranty that we can sell the user, we want to invite the user to purchase the warranty. If the user accepts, the warranty item is added to the cart(by the system). Assume we already have functionality that calculates the cart total correctly, so this story won't change that existing functionality.

Story 56: Possible Story Tests

Story 903: Set new email contact preferences

We join Team Y, who is having a Product Backlog Grooming session, a few days before the next sprint.

Product Owner: "This next story involves us changing the user's email contact preferences. We used to only allow two choices -- essentially opt-in or opt-out, but now we want to expand that to be multiple choices. The choices are 'Get emails about our specials once a month', 'Get emails about our specials once a week', 'Get daily email specials' and 'Please do not send me any money saving specials.' "
Programmer One: "So you just want us to change the options to be the new ones?"
Product Owner: "Yes."
Programmer One: "Ok, what do we do about the current settings? For ones that are already opted-in, do we just default them to the monthly special choice?"
Product Owner: "No, sorry I didn't mention this before. We would like folks to be prompted with a new choice when they log in and not be allowed to successfully log in without making a choice."
Programmer One: "Oh, that's different than what I was thinking."
Product Owner: "Yeah, we thought about doing it the way you suggested, but the laws and the internet press on these things are very sticky, so we want to get an explicit user choice."
Tester One: "Ok, so what will the default option be?"
Product Owner: "There we have some more flexibility -- let's set the default to the weekly email, unless they are currently opted out, and then default to the opt out option"
Programmer Two: "You mean the one that says 'Please do not send me any money saving specials' ?
Product Owner: "Yep"
Programmer Three(a comedian): "I love the way you worded the opt out option"
Product Owner: "Yep, we were pretty proud of that too!" (all laugh)
Programmer Two: "So we need to maintain the old settings too for anyone who hasn't yet changed their preferences, right?"
Product Owner: "Yes, but all you have to do is tell the email marketing software team where the new settings are in the database and they'll just read it from there. Their email system will automatically detect the settings and send the emails as appropriate."
Programmer One: " Wow, that's easy."
Product Owner: "You know me, always trying to make the stories simple, right?"<facetiously>
All: "Yeah, right!"<facetiously>

Story 903 - Possible Story Tests