SlideShare uma empresa Scribd logo
1 de 52
Specification by Example and Agile Acceptance Testing  Bridging the communication gap in software projects Gojko Adzic [email_address] @gojkoadzic http://gojko.net
Why should you care (PM/BA)? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Why should you care (dev)? ,[object Object],[object Object],[object Object],[object Object]
Why should you care (QA)‏ ,[object Object],[object Object],[object Object],[object Object]
http://www.flickr.com/photos/lambdachialpha/157986473/
http://www.flickr.com/photos/mulesafpilot/3513588967
http://www.defenseimagery.mil/assetDetails.action?guid=68cf92e35ce13e6c7c9c066f0b48b6daaa9bf8d8
An experiment with four active battalions in US Army  ,[object Object],L.G.Shattuck, 2000 http://www.au.af.mil/au/awc/awcgate/milreview/shattuck.pdf
The process is very much like a telephone game http://www.flickr.com/photos/mataniere/3107073262
How many points are there?
How many points are there?
[object Object],[object Object],[object Object]
B2 bomber crashed and $2bn went up in flames  "the aircraft actually performed as it was designed. In other words, all the systems were functioning normally." Maj. Gen. Floyd L. Carpenter http://www.foxnews.com/wires/2008Jun05/0,4670,B2Crash,00.html
You can't help a lot when the party is already over...  http://www.flickr.com/photos/biolog/3457774800
F-16 design team was asked to do the impossible -  a cheap 2.5 Mach airplane!  “ When asked […] why they need Mach 2 - 2.5, the answer was to be able to escape from combat. Their solution was […] providing acceleration and maneuverability, not maximum speed.” http://97-things.near-time.net/wiki/Seek%20the%20value%20in%20requested%20capabilities
Refuse requirements that are a solution to an unknown problem! http://www.flickr.com/photos/sylvancatharsis/3783608640/
One of the most effective ways of testing requirements is with test cases  very much like those for testing the completed system Donald Gause and Gerald Weinberg Exploring Requirements -  1989 !
 
As formality increases,  tests and requirements  become indistinguishable. Robert C. Martin and Grigori Melnik Tests and Requirements, Requirements and Tests: a Mobius Strip  IEEE Software January/February Issue 2008
Key practices ,[object Object],[object Object],[object Object],[object Object],[object Object]
Better names ,[object Object],[object Object],[object Object],[object Object]
Jim Shore:  “Describe-Demonstrate-Develop” A very useful way to think about acceptance tests in practice http://www.jamesshore.com/Blog/How-I-Use-Fit.html
Iteration flow (just a suggestion)‏
Step 1: Building a shared understanding of the domain
Specification workshops ,[object Object],[object Object],[object Object]
Inconsistencies and gaps are easy to spot when you write the rules down!
Real-world examples help flush out incorrect  assumed  rules find  real  business rules!
People have think at a more detailed level and can't brush questions off…
People approach the same problem from different perspectives, so this avoids groupthink!
Step 2: Select a formal set of acceptance tests and automate them
The Toyota Way ,[object Object],[object Object],[object Object]
Save time on manually (acceptance/smoke) testing Verify business rules with the click of a button
Automate tests, but still keep them human-readable And you can add pictures as well….
This is a specification:
It is also a test
This as well
And this
And this Given  a stock of prices 0.5,1.0 When  the stock is traded at 2.0 Then  the alert status should be OFF When  the stock is traded at 5.0 Then  the alert status should be OFF When  the stock is traded at 11.0 Then  the alert status should be OFF
A good acceptance test is ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
 
Step 3: Providing focus for development No just-in-case code
Developers will have to code exactly what was specified …  not just the rules they see
Automated test reports show where we are… When all the tests are green, the job is done
Step 4:  Keeping in touch with changes
Live documentation As relevant and reliable as executable code, but much easier to read!
Previous examples help you ensure to discuss all important edge cases.
Automated tests show straight away when something is obsolete or broken
[object Object],[object Object],Rick Mugridge,  Doubling the Value of Automated Tests, Google Tech Talks 09/2006
Recap (PM/BA)‏ ,[object Object],[object Object],[object Object],[object Object],[object Object]
Recap (dev)‏ ,[object Object],[object Object],[object Object]
Recap (QA)‏ ,[object Object],[object Object],[object Object],[object Object]
Where next? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Mais conteúdo relacionado

Mais procurados

Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEHenrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Agileee
 
Continuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesContinuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two Approaches
Ross Snyder
 

Mais procurados (20)

Lean Inception: how to align people and build the right product
Lean Inception: how to align people and build the right productLean Inception: how to align people and build the right product
Lean Inception: how to align people and build the right product
 
Cost of delay and prioritization techniques
Cost of delay and prioritization techniquesCost of delay and prioritization techniques
Cost of delay and prioritization techniques
 
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEEHenrik Kniberg: Lean from the Trenches keynote @ AgileEE
Henrik Kniberg: Lean from the Trenches keynote @ AgileEE
 
Specification-By-Example with Gherkin
Specification-By-Example with GherkinSpecification-By-Example with Gherkin
Specification-By-Example with Gherkin
 
Kanban
KanbanKanban
Kanban
 
Desenvolvendo produtos enxutos com Lean Inception
Desenvolvendo produtos enxutos com Lean InceptionDesenvolvendo produtos enxutos com Lean Inception
Desenvolvendo produtos enxutos com Lean Inception
 
Statik, Kanban's hidden gem
Statik, Kanban's hidden gemStatik, Kanban's hidden gem
Statik, Kanban's hidden gem
 
Pull Request & TDD 入門
Pull Request & TDD 入門Pull Request & TDD 入門
Pull Request & TDD 入門
 
Indicadores Ágeis
Indicadores ÁgeisIndicadores Ágeis
Indicadores Ágeis
 
事件風暴-領域建模
事件風暴-領域建模事件風暴-領域建模
事件風暴-領域建模
 
Spa2010 uSwitch
Spa2010 uSwitchSpa2010 uSwitch
Spa2010 uSwitch
 
Interpreting Cumulative Flow Diagrams (CFDs)_Mark Grove.pdf
Interpreting Cumulative Flow Diagrams (CFDs)_Mark Grove.pdfInterpreting Cumulative Flow Diagrams (CFDs)_Mark Grove.pdf
Interpreting Cumulative Flow Diagrams (CFDs)_Mark Grove.pdf
 
Continuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two ApproachesContinuous Deployment at Etsy: A Tale of Two Approaches
Continuous Deployment at Etsy: A Tale of Two Approaches
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
DevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágilDevCamp - O papel de um testador em uma equipe ágil
DevCamp - O papel de um testador em uma equipe ágil
 
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | EdurekaScrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
Scrum vs Kanban | What are the differences between Scrum and Kanban | Edureka
 
The Test Pyramid
The Test PyramidThe Test Pyramid
The Test Pyramid
 
[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building
[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building
[Product Starter] Fábio Aguiar - Lean Inception e Product Backlog Building
 
Cucumber BDD
Cucumber BDDCucumber BDD
Cucumber BDD
 
Testing Your MVP
Testing Your MVPTesting Your MVP
Testing Your MVP
 

Destaque

How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014
gojkoadzic
 
Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013
gojkoadzic
 

Destaque (13)

Death to the testing phase
Death to the testing phaseDeath to the testing phase
Death to the testing phase
 
Effective specifications for agile teams
Effective specifications for agile teamsEffective specifications for agile teams
Effective specifications for agile teams
 
5 key challenges
5 key challenges5 key challenges
5 key challenges
 
Serverless Code Camp Barcelona
Serverless Code Camp BarcelonaServerless Code Camp Barcelona
Serverless Code Camp Barcelona
 
Serverless JavaScript
Serverless JavaScriptServerless JavaScript
Serverless JavaScript
 
Test Automation Without the Headache: Agile Tour Vienna 2015
Test Automation Without the Headache: Agile Tour Vienna 2015 Test Automation Without the Headache: Agile Tour Vienna 2015
Test Automation Without the Headache: Agile Tour Vienna 2015
 
How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014How I learned to stop worrying and love flexible scope - at JFokus 2014
How I learned to stop worrying and love flexible scope - at JFokus 2014
 
Challenging Requirements/Oredev
Challenging Requirements/OredevChallenging Requirements/Oredev
Challenging Requirements/Oredev
 
Agile Testers: Becoming a key asset for your team
Agile Testers: Becoming a key asset for your teamAgile Testers: Becoming a key asset for your team
Agile Testers: Becoming a key asset for your team
 
Time to Bet on the Cloud?
Time to Bet on the Cloud?Time to Bet on the Cloud?
Time to Bet on the Cloud?
 
Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013Reinventing Software Quality, Agile Days Moscow 2013
Reinventing Software Quality, Agile Days Moscow 2013
 
From Grid to Cloud
From Grid to CloudFrom Grid to Cloud
From Grid to Cloud
 
Sabotage product
Sabotage productSabotage product
Sabotage product
 

Semelhante a Specification by example and agile acceptance testing

Marlabs test digest Sep 2014
Marlabs test digest Sep 2014Marlabs test digest Sep 2014
Marlabs test digest Sep 2014
Marlabs
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
Grig Gheorghiu
 

Semelhante a Specification by example and agile acceptance testing (20)

Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014Problem Solving Methodology 2011 - 2014
Problem Solving Methodology 2011 - 2014
 
Testing overview
Testing overviewTesting overview
Testing overview
 
To Automate or Not to Automate
To Automate or Not to Automate To Automate or Not to Automate
To Automate or Not to Automate
 
WEBINAR: To Automate or Not to Automate
WEBINAR: To Automate or Not to AutomateWEBINAR: To Automate or Not to Automate
WEBINAR: To Automate or Not to Automate
 
Marlabs test digest Sep 2014
Marlabs test digest Sep 2014Marlabs test digest Sep 2014
Marlabs test digest Sep 2014
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
 
Creating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran KinsbrunerCreating a successful continuous testing environment by Eran Kinsbruner
Creating a successful continuous testing environment by Eran Kinsbruner
 
Best practices for test automation
Best practices for test automationBest practices for test automation
Best practices for test automation
 
Future of QA
Future of QAFuture of QA
Future of QA
 
Futureofqa
FutureofqaFutureofqa
Futureofqa
 
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
Not Your Grandfather's Requirements-Based Testing Webinar – Robin Goldsmith, ...
 
Quality Assurance & Testing in a glimpse
Quality Assurance & Testing in a glimpseQuality Assurance & Testing in a glimpse
Quality Assurance & Testing in a glimpse
 
Test Automation Strategies For Agile
Test Automation Strategies For AgileTest Automation Strategies For Agile
Test Automation Strategies For Agile
 
'BIG Testing' with Hans Buwalda
'BIG Testing' with Hans Buwalda 'BIG Testing' with Hans Buwalda
'BIG Testing' with Hans Buwalda
 
Beginner guide-to-software-testing
Beginner guide-to-software-testingBeginner guide-to-software-testing
Beginner guide-to-software-testing
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
 
AI Makes Software Testing Smarter.pdf
AI Makes Software Testing Smarter.pdfAI Makes Software Testing Smarter.pdf
AI Makes Software Testing Smarter.pdf
 
Test automation Anecdotes
Test automation AnecdotesTest automation Anecdotes
Test automation Anecdotes
 
3 Approaches for Integrated ALM - A Case for ALM Platform - Whitepaper
3 Approaches for Integrated ALM - A Case for ALM Platform - Whitepaper3 Approaches for Integrated ALM - A Case for ALM Platform - Whitepaper
3 Approaches for Integrated ALM - A Case for ALM Platform - Whitepaper
 
The productivity of testing in software development life cycle
The productivity of testing in software development life cycleThe productivity of testing in software development life cycle
The productivity of testing in software development life cycle
 

Mais de gojkoadzic

Going the extra mile
Going the extra mileGoing the extra mile
Going the extra mile
gojkoadzic
 

Mais de gojkoadzic (14)

Descaling Agile (Agile Tour Vienna 2019)
Descaling Agile (Agile Tour Vienna 2019)Descaling Agile (Agile Tour Vienna 2019)
Descaling Agile (Agile Tour Vienna 2019)
 
Maximum Impact, Minimum Effort
Maximum Impact, Minimum EffortMaximum Impact, Minimum Effort
Maximum Impact, Minimum Effort
 
Painless visual testing
Painless visual testingPainless visual testing
Painless visual testing
 
From dedicated to cloud infrastructure
From dedicated to cloud infrastructureFrom dedicated to cloud infrastructure
From dedicated to cloud infrastructure
 
Specification Workshops - The Missing Link
Specification Workshops - The Missing LinkSpecification Workshops - The Missing Link
Specification Workshops - The Missing Link
 
Space Based Programming
Space Based ProgrammingSpace Based Programming
Space Based Programming
 
Getting business people and developers to listen to testers
Getting business people and developers to listen to testersGetting business people and developers to listen to testers
Getting business people and developers to listen to testers
 
Is the cloud a gamble
Is the cloud a gambleIs the cloud a gamble
Is the cloud a gamble
 
Casino In The Clouds
Casino In The CloudsCasino In The Clouds
Casino In The Clouds
 
Going the extra mile
Going the extra mileGoing the extra mile
Going the extra mile
 
As fast as a grid, as safe as a database
As fast as a grid, as safe as a databaseAs fast as a grid, as safe as a database
As fast as a grid, as safe as a database
 
Betting On Data Grids
Betting On Data GridsBetting On Data Grids
Betting On Data Grids
 
Achieving Scale With Messaging And The Cloud
Achieving Scale With Messaging And The CloudAchieving Scale With Messaging And The Cloud
Achieving Scale With Messaging And The Cloud
 
How an Enterprise Data Fabric (EDF) can improve resiliency and performance
How an Enterprise Data Fabric (EDF) can improve resiliency and performanceHow an Enterprise Data Fabric (EDF) can improve resiliency and performance
How an Enterprise Data Fabric (EDF) can improve resiliency and performance
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Specification by example and agile acceptance testing