Feb 26, 2016
Executable Requirements Let You Play More Foosball!
Eric LandesAgile CoachPress Ganey
DPR301
Agenda
What bad looks likeHow it happensBetter waysExample
Bad Requirements Examples
LengthyUnfocusedAmbiguousVerified Manually
Bad requirement might look like:As a consumer of the Comments webService, I can retrieve the sentiment percentage of comments by serviceAcceptance Criteria:Include percent negative, percent positive, percent neutral and percent mixed by service - this will be consistent with our database reports (see database comments page under Attachments section). Include percentages from the x time period - this will be in the configuration file. For October, it will be from the past 30 days. Neutral category includes comments categorized as neutral and mixed The percentage of positive/negative/neutral should add up to 100% by service Because some clients have a category of Open, which we are not using, there is a chance that the percentages will not add up to 100%. If there is more than 1 site (e.g. CSS ID) or client per service (e.g. CSS ID), aggregate the positive/negative/neutral/mixed percentages. Include the total number of surveys (e.g. sample size) across all services and sites the user has permission to. This should be consistent with how we count 'total surveys processed' for the database reports (see database comments page under Attachments section). The percentages and n updated daily based on surveys received. Exclude Employee (EP, SE, EX), Physician (ME, SS), Community Image (CI) and Safety Culture (SC) in all scenarios from the Improvement Opportunities; use application's configuration file to allow easy changes to this list. FYI: if the account has not contracted for comments (indicated in the profile), the widget should not appear or will be replaced by an advertisement). FYI: if the account has contracted for comments but has no comments, then the widget should appear with a message like "no data available" - message tbd.Reference pg 2 under the Links of this story for a wireframe - this wireframe will be updated to incorporate mixed. Comments widget story can be referenced under the Links section of this story
demo
A Common Scenario
As a non frequent traveller member visitor to our web site, I want to be able to browse the hotel properties In order to capture sales from non members.
So, What Happened?
How did the issues come about?
Working in isolationSpeaking different languagesTrying to cover too many…
Types of usersActions of a specific userExceptions to the ‘happy path’
Limiting to one type of artifactDocumentation that becomes stale
A Better Strategy
Our strategy for executable requirements means knowing when the requirements are met. This is achieved by:Collaborating CloselyCreating a Common LanguageRemoving AmbiguityLayer Your Test Types
Tips for Close Collaboration
Collaboration on acceptance criteria between customer and teamGet the different parties together
Same room Video conference/Skype Collaboration tools like DabbleboardPhone call
Confirm agreement with lite documentation
Speak the Same Language
Capture the Common Objective“Elevator Statement”/Theme
Create a Shared workspacePhysicalWiki
Keep the Team Consistent
Remove Ambiguity
Provide Additional Context Have the ConversationCreate an OverviewSupplement with Picture(s) or DiagramsIdentify the Actor or PersonaMock the UI with Wireframes
Executable Requirements
Layer Your Tests
Traditionally, your test layers might look a lot like this:
UAT
Manually Executed Test Scripts
Layer Your Tests - More
Traditionally, your test layers might look a lot like this:
UAT
Manually Executed Test ScriptsUnit Test
Layer Your Tests - More
Traditionally, your test layers might look a lot like this:
UAT
Manually Executed Test ScriptsUnit Test
UAT
Stor
y
Manually Executed Test Scripts
Better Yet…
Unit Test
Automated Functional Tests
Manual Tests
Primarily Exploratory Tests
Type of Executable Requirements
Automated Functional TestsFunctional tests can be written, regardless of the use of Unit TestsAutomated and integrated into the build activityAre not necessarily UI tests
Unit Tests cover small pieces of the code, are created by the developers, and are outside the scope of this session. See “Test Driven Development by Example” by Kent Beck, or “Clean Code” by Robert Martin
So what?
Executable Requirements are a time saverHelps IT and Business work more closely togetherGet the feature right the first timeLowers the cost of iteratingReduced maintenance and “end of project” tails to regress
Frees team up to improve software without the big cost of manual regression testing
Introduce new featuresFixing defectsRefactor code
Good Executable Requirements
Understandable to developerUnderstandable to businessUnambiguousAutomatedRun frequently
demo
Defining Executable Requirements FitnesseScenario:
Existing ApplicationEric – Product Owner/CustomerEric – Technology Team Member
.
demo
Defining Executable Requirements SpecflowScenario:
Existing ApplicationEric – Product Owner/CustomerEric – Technology Team Member
.
Speaker Contact Information
Eric Landes (Press Ganey)[email protected]://www.linkedin.com/in/ericlandeshttp://twitter.com/ericlandes
This slide deck was developed in association with Dan [email protected]://www.linkedin.com/in/MeetDanNeumannhttp://twitter.com/Dan_SB
Related Content
Breakout Sessions DEV 204Manual Testing with Microsoft Test Manager.Dev 309 Test Automation with Microsoft Visual Studio 2010…
Find Me Later At… Visual Studio ALM
DPR Track Resources
http://www.microsoft.com/visualstudio http://www.microsoft.com/visualstudio/en-us/lightswitch http://www.microsoft.com/expression/http://blogs.msdn.com/b/somasegar/http://blogs.msdn.com/b/bharry/http://www.microsoft.com/sqlserver/en/us/default.aspxhttp://www.facebook.com/visualstudio
Resources
www.microsoft.com/teched
Sessions On-Demand & Community Microsoft Certification & Training Resources
Resources for IT Professionals Resources for Developers
www.microsoft.com/learning
http://microsoft.com/technet http://microsoft.com/msdn
Learning
http://northamerica.msteched.com
Connect. Share. Discuss.
Complete an evaluation on CommNet and enter to win!
Scan the Tag to evaluate this session now on myTech•Ed Mobile