specification by example
Post on 18-Sep-2014
1.035 views
DESCRIPTION
These are the slides for my Specification by example presentation. This particular version was given as part of my "I'm telling you for the last time"-series (see http://www.marcusoft.net/2013/11/ImTellingYou.html).TRANSCRIPT
![Page 2: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/2.jpg)
![Page 3: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/3.jpg)
![Page 4: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/4.jpg)
![Page 5: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/5.jpg)
![Page 6: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/6.jpg)
![Page 7: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/7.jpg)
![Page 8: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/8.jpg)
![Page 9: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/9.jpg)
![Page 10: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/10.jpg)
![Page 11: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/11.jpg)
![Page 12: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/12.jpg)
![Page 13: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/13.jpg)
![Page 14: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/14.jpg)
![Page 15: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/15.jpg)
http://www.youtube.com/aptitudsthlm
![Page 16: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/16.jpg)
Bandung
![Page 17: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/17.jpg)
![Page 18: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/18.jpg)
![Page 19: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/19.jpg)
Theory of Constraints
![Page 20: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/20.jpg)
Where is our bottleneck?
![Page 21: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/21.jpg)
![Page 22: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/22.jpg)
http://images.nationalgeographic.com/wpf/media-live/photos/000/212/cache/sinkholes-holes-ground-2007-guatemala-sinkhole_21282_600x450.jpg
![Page 23: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/23.jpg)
![Page 24: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/24.jpg)
Deliberate Discovery
![Page 25: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/25.jpg)
![Page 26: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/26.jpg)
Gojko Adzic
![Page 27: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/27.jpg)
![Page 28: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/28.jpg)
... it’s no silver bullet, but it seems
like a good start
Dan North
![Page 29: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/29.jpg)
http://manning.com/adzic/From Specification by Example
Used with permission
![Page 30: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/30.jpg)
http://www.wallpaperpimper.com/wallpaper/Military/F_16_Fighting_Falcon/F-16-Fighting-Falcon-20-9XTZMAN20G-1280x1024.jpg
![Page 31: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/31.jpg)
http://www.wallpaperpimper.com/wallpaper/Military/F_16_Fighting_Falcon/F-16-Fighting-Falcon-20-9XTZMAN20G-1280x1024.jpg
![Page 32: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/32.jpg)
Who sets scope?
http://2.bp.blogspot.com/-mJ8gPBlBRjY/TcYv9xOuWlI/AAAAAAAAKvY/0JniIDxlBjY/s1600/how-to-get-your-boss-off-your-back.jpg
![Page 33: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/33.jpg)
How do they know what they want?
![Page 34: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/34.jpg)
How do they know what they want?
![Page 35: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/35.jpg)
Don’t let the customer
limit themselves
http://www.realestateradiousa.com/blog/wp-content/uploads/2008/09/straitjacket.jpg
![Page 36: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/36.jpg)
Derive scope from business goals
http://cojent7.files.wordpress.com/2010/04/business-goals1.jpg
![Page 37: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/37.jpg)
Build the right thing!
![Page 38: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/38.jpg)
![Page 39: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/39.jpg)
![Page 40: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/40.jpg)
![Page 41: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/41.jpg)
![Page 42: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/42.jpg)
![Page 43: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/43.jpg)
![Page 45: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/45.jpg)
![Page 46: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/46.jpg)
![Page 47: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/47.jpg)
1. Start with wide end of it on your right and extending a foot below the narrow end 2. Cross wide end over narrow and turn back underneath 3. Bring up and turn down to loop 4. Pass wide end around frong from left to right 5. Then, up through loop ... 6. And down through knot in front. Tigthen carefully and draw up to collar.
![Page 48: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/48.jpg)
![Page 49: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/49.jpg)
Go concrete with exampleshttp://www.flickr.com/photos/bensutherland/3961418687/
![Page 50: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/50.jpg)
Scenario 1: Account is in credit!Given the account is in credit!And the card is valid!And the dispenser contains cash!When the customer requests €50!Then ! ensure the account is debited €50!And ensure €40 is dispensed!And ensure the card is returned
![Page 51: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/51.jpg)
Key examples
![Page 52: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/52.jpg)
Key examples
http://www.bigideastobigresults.com/wp-content/uploads/2009/09/good_enough.jpg
![Page 53: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/53.jpg)
Let’s try that, shall we?
![Page 54: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/54.jpg)
Customers who buys three books gets free shipping
![Page 55: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/55.jpg)
Customers who buys three books gets free shipping
Number of books Free shipping?
![Page 56: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/56.jpg)
Customers who buys three books gets free shipping
Number of books Free shipping?1 -
![Page 57: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/57.jpg)
Customers who buys three books gets free shipping
Number of books Free shipping?
21
--
![Page 58: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/58.jpg)
Customers who buys three books gets free shipping
Number of books Free shipping?
23
1-X
-
![Page 59: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/59.jpg)
Customers who buys three books gets free shipping
Number of books Free shipping?
234
1-XX
-
![Page 60: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/60.jpg)
To get a loan you need to be older than 18
![Page 61: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/61.jpg)
To get a loan you need to be older than 18
Age of applicant Can take loan?
![Page 62: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/62.jpg)
To get a loan you need to be older than 18
Age of applicant Can take loan?17 -
![Page 63: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/63.jpg)
To get a loan you need to be older than 18
Age of applicant Can take loan?
1817
X-
![Page 64: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/64.jpg)
To get a loan you need to be older than 18
Age of applicant Can take loan?
1819
17XX
-
![Page 65: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/65.jpg)
To get a loan you need to be older than 18
Age of applicant Can take loan?
1819null?
17XXeeeeh?
-
![Page 66: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/66.jpg)
![Page 67: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/67.jpg)
![Page 68: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/68.jpg)
http://www.flickr.com/photos/toastytreat/4555895229
Text
Who writes this stuff anyway?
![Page 69: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/69.jpg)
Refactor the specification
![Page 70: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/70.jpg)
![Page 71: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/71.jpg)
Examples should be precise and testable
![Page 72: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/72.jpg)
Examples should be precise and testable
Scripts are not specifications
![Page 73: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/73.jpg)
Examples should be precise and testable
Scripts are not specifications
Specifications should be about business functionality, not software design
![Page 74: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/74.jpg)
Examples should be precise and testable
Scripts are not specifications
Specifications should be about business functionality, not software design
Specifications should be self-explanatory
![Page 75: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/75.jpg)
Examples should be precise and testable
Scripts are not specifications
Specifications should be about business functionality, not software design
Specifications should be self-explanatory
Specifications should be in domain language
![Page 76: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/76.jpg)
![Page 77: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/77.jpg)
Sharedunderstanding
![Page 78: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/78.jpg)
Sharedunderstanding
Testing
![Page 79: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/79.jpg)
Sharedunderstanding
Testing
Documentation
![Page 80: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/80.jpg)
![Page 81: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/81.jpg)
![Page 82: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/82.jpg)
![Page 83: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/83.jpg)
![Page 84: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/84.jpg)
![Page 85: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/85.jpg)
![Page 86: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/86.jpg)
![Page 87: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/87.jpg)
Automation
http://jbehave.org/reference/stable/images/jbehave-logo.png
http://lh5.ggpht.com/_X3kaawac_g4/S0nxyUKaIYI/AAAAAAAAAu0/CtKaMavsxoM/cucumber.jpg?imgmax=800
http://lh6.ggpht.com/_X3kaawac_g4/SuoT1Yd67pI/AAAAAAAAArU/dhE-WLR0VKE/Unbenannt.png?imgmax=800
![Page 88: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/88.jpg)
A Cucumber ScenarioScenario 1: Account is in credit!Given the account is in credit!And the card is valid!And the dispenser contains cash!When the customer requests €50!Then ! ensure the account is debited €50!And ensure €50 is dispensed!And ensure the card is returned
![Page 89: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/89.jpg)
![Page 90: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/90.jpg)
![Page 91: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/91.jpg)
![Page 92: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/92.jpg)
![Page 93: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/93.jpg)
![Page 94: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/94.jpg)
http://1.bp.blogspot.com/-3yjyeeTpRFI/Tea15VHttaI/AAAAAAAAC3w/YXoTDAv9tx8/s1600/hard_work.png
![Page 95: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/95.jpg)
![Page 96: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/96.jpg)
![Page 97: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/97.jpg)
![Page 98: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/98.jpg)
One document to rule them all ...
![Page 99: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/99.jpg)
http://www.questpartnership.co.uk/blog/uploaded_images/restructuring-775119.jpg
![Page 100: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/100.jpg)
![Page 101: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/101.jpg)
“... features are an executable map of the current functionality of the system.”
Andrew Premdas (BDD Google Group)
![Page 102: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/102.jpg)
![Page 103: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/103.jpg)
ToC and Specification by example
![Page 104: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/104.jpg)
ToC and Specification by example
• Better communication
![Page 105: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/105.jpg)
ToC and Specification by example
• Better communication
• Concrete examples
![Page 106: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/106.jpg)
ToC and Specification by example
• Better communication
• Concrete examples
• Frequent validation
![Page 107: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/107.jpg)
ToC and Specification by example
• Better communication
• Concrete examples
• Frequent validation
• Living documentation
![Page 108: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/108.jpg)
Learn more
![Page 109: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/109.jpg)
Learn more
![Page 110: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/110.jpg)
Learn more
![Page 111: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/111.jpg)
Learn more
![Page 112: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/112.jpg)
Learn more
![Page 113: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/113.jpg)
Learn more
![Page 114: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/114.jpg)
![Page 118: Specification by Example](https://reader034.vdocument.in/reader034/viewer/2022051406/541ad2117bef0a0c2d8b72bd/html5/thumbnails/118.jpg)