SlideShare a Scribd company logo
How to Deliver
the Right
Software
Asier Barrenetxea
What is the single
greatest cause of
software failure?
Requirements!
Requirements
 are wrong.
 are badly written.
 are incomplete.
 The programmers and the specifiers understand the
requirements differently.
Classical approach:
testing at the end
Requirements Development Testing
Hand over of requirements
Each source telling a
different story
 Tests ≃ Requirements
 How system really works ≃ Requirements
 Documentation get stale
Late feedback
 Business misunderstands get arisen late on the process
 When developer implementing requirements.
 When qa testing it.
 When software gets into production.
 Big WASTE
Spec by example
to the rescue
Bring testing to the front
Requirements
+
Testing
Development
Verification
(automated)
Use examples
 Easy to understand
 Plain English
 Unambiguous
Write examples
collaboratively
 Business people, developers and testers in the same
room.
 Transfer the knowledge.
 Learn about the domain.
 Ubiquitous language.
 Early feedback of misunderstandings.
 In 30 min meeting can find out things that it would take a
whole iteration or even more.
 everybody understands the same thing.
Write examples
collaboratively
 Inconsistencies and gaps are easy to spot when you
write down the rules.
 Find out incorrect assumptions.
 Find out real business value.
 Everybody gets this feeling of ownership.
 Different approaches:
 Three amigos
 One developer with a stakeholder/domain expert
 Whole team with stakeholders
 Specification workshop
Specification workshop
 For harder to specificy stories.
 Meeting with 10+ people. POs, BAs, devs, QAs..
 Bring people from other teams if necessary.
 Create 3 teams and write examples in one board each.
 Compare. Look for inconsistencies. Why do we have
them?
Automate examples
 Map examples to executable tests.
 Use tools as Specflow, Cucumber, Fitness..
 Do not modify examples when automating.
Automate examles
 Brittle UI tests?
 Do not couple your examples to the UI.
 Page Objects https://code.google.com/p/selenium/wiki/PageObjects
 Tests don’t have to go always through the UI!
 Test pyramid. http://martinfowler.com/bliki/TestPyramid.html
Implement examples
 Developers will have to code just what was specified.
 Make the tests green -> Done.
Single source of truth
 Examples = Requirements.
 Examples = Automated tests.
 Examples = What the system does.
Living documentation
 Run examples with every change to the system.
 Documentation never gets out-dated.
 All tests green -> system is doing what examples say.
User stories
 Relate examples with user story.
 Gives context.
 Focus on business goal.
As a <role>
I want <software feature>
In order to <goal/desire>
I order to <goal/desire>
as a <role>
so that <software feature>
Gherkin syntax
 Given -> arrange
 When -> action
 Then -> assert
What makes a good example
 Focused on a single thing.
 Self explanatory.
 Uses the domain language.
 SMART
 Specific
 Measurable
 Achievable
 Relevant
 Time-bound.
Do not automate EVERYTHING
 There would always be some manual testing.
 Usability testing.
 Exploratory testing.
 Be aware.
Examples of examples
Conversation brings new
scenarios to the table
Communication > Automation
 The important thing is to communicate
 Automation and tools are nice, but don’t get your main
focus on them
 “Individuals and interactions over processes and tools”
- Agile Manifesto
 “I want to bridge the gap between business people and
technical people”
- Kent Beck about XP
More Info + resources
Book. Specification by Example: How Successful
Teams Deliver the Right Software , Gojko Adzic
http://www.amazon.co.uk/Specification-
Example-Successful-Deliver-
Software/dp/1617290084
Blog post. A.T. FAIL!, Robert C. Martin
http://blog.8thlight.com/uncle-
bob/2013/09/26/AT-FAIL.html
Specification by Example and Agile Acceptance
Testing, Gojko Adzic
http://www.slideshare.net/gojkoadzic/specific
ation-by-example-and-agile-acceptance-testing
My blog post.
http://asierba.net/2014/04/03/spec-by-
example/
Questions?

More Related Content

What's hot

Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
Anand Bagmar
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
vodQA
 
Code review
Code reviewCode review
Code review
Aleksey Solntsev
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
Hien Nguyen
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
Aleksey Solntsev
 
A journey to a Full Stack Tester
A journey to a Full Stack Tester A journey to a Full Stack Tester
A journey to a Full Stack Tester
KMS Technology
 
XP Injection
XP InjectionXP Injection
XP Injection
Aleksey Solntsev
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
Aman King
 
Test Driven Development: Part 2
Test Driven Development: Part 2Test Driven Development: Part 2
Test Driven Development: Part 2
CodeAndroid
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
michael.labriola
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
QA or the Highway
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
QA or the Highway
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
Corina Pip
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConf
Chris Lema
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
TechWell
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
TEST Huddle
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
TEST Huddle
 
I dream of ISPWeb
I dream of ISPWebI dream of ISPWeb
I dream of ISPWeb
Gil Zilberfeld
 
测试向前一步
测试向前一步测试向前一步
测试向前一步drewz lin
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
QA or the Highway
 

What's hot (20)

Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)Build the "right" regression suite using Behavior Driven Testing (BDT)
Build the "right" regression suite using Behavior Driven Testing (BDT)
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
Code review
Code reviewCode review
Code review
 
Automation testing in Agile project
Automation testing in Agile projectAutomation testing in Agile project
Automation testing in Agile project
 
How to be proud when you are done
How to be proud when you are doneHow to be proud when you are done
How to be proud when you are done
 
A journey to a Full Stack Tester
A journey to a Full Stack Tester A journey to a Full Stack Tester
A journey to a Full Stack Tester
 
XP Injection
XP InjectionXP Injection
XP Injection
 
Agile Testing Dilemmas
Agile Testing DilemmasAgile Testing Dilemmas
Agile Testing Dilemmas
 
Test Driven Development: Part 2
Test Driven Development: Part 2Test Driven Development: Part 2
Test Driven Development: Part 2
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
The limits of unit testing by Craig Stuntz
The limits of unit testing by Craig StuntzThe limits of unit testing by Craig Stuntz
The limits of unit testing by Craig Stuntz
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
How testers add value to the organization appium conf
How testers add value to the organization  appium confHow testers add value to the organization  appium conf
How testers add value to the organization appium conf
 
Impact Analysis - LoopConf
Impact Analysis - LoopConfImpact Analysis - LoopConf
Impact Analysis - LoopConf
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
ATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…DebateATDD And BDD The Great Beat Down…or…Debate
ATDD And BDD The Great Beat Down…or…Debate
 
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
David Hayman - Say What? Testing a Voice Avtivated System - EuroSTAR 2010
 
I dream of ISPWeb
I dream of ISPWebI dream of ISPWeb
I dream of ISPWeb
 
测试向前一步
测试向前一步测试向前一步
测试向前一步
 
30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster30 of the best free software test tools in 60 minutes by Jess Lancaster
30 of the best free software test tools in 60 minutes by Jess Lancaster
 

Viewers also liked

A Crash Course In Developing An Online Marketing Strategy For SEO
A Crash Course In Developing An Online Marketing Strategy For SEOA Crash Course In Developing An Online Marketing Strategy For SEO
A Crash Course In Developing An Online Marketing Strategy For SEO
MnSearch, The Minnesota Search Engine Marketing Association
 
Developing knowledge and content in an online course
Developing knowledge and content in an online courseDeveloping knowledge and content in an online course
Developing knowledge and content in an online course
Helen Strong
 
docs+lists - software specification tool
docs+lists - software specification tooldocs+lists - software specification tool
docs+lists - software specification tool
AndreasKleffel
 
Developing an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite WisconsinDeveloping an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite WisconsinD2L Barry
 
Marketing your Personal Training Business Online
Marketing your Personal Training Business OnlineMarketing your Personal Training Business Online
Marketing your Personal Training Business Online
Demandmart
 
Important Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online CourseImportant Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online Coursemjrobertson
 
Developing an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 ConceptsDeveloping an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 Concepts
Steve Yuen
 
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Hello Group
 
Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...
Justin Tamsett
 
Pineapple presentation 4 10 12
Pineapple presentation   4 10 12Pineapple presentation   4 10 12
Pineapple presentation 4 10 12
ameetmehta
 
7 Habits of Highly Effective Personal Trainers
7 Habits of Highly Effective Personal Trainers7 Habits of Highly Effective Personal Trainers
7 Habits of Highly Effective Personal Trainers
ECHO Interactive Consulting
 
How to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through PackagingHow to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through Packaging
BLOCKbETA Marketing
 
6 Steps to Dynamic Public Speaking
6 Steps to Dynamic Public Speaking6 Steps to Dynamic Public Speaking
6 Steps to Dynamic Public Speaking
Boom San Agustin, CSP, CC, CL
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
Aman Adhikari
 
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HubSpot
 
5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets
Akash Karia
 
3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing
Jeff Bullas
 
training & development ppt
training & development ppttraining & development ppt
training & development ppt
Monishaangel
 
Online Marketing PPT
Online Marketing PPTOnline Marketing PPT
Online Marketing PPT
Priyanka Shinde
 

Viewers also liked (20)

A Crash Course In Developing An Online Marketing Strategy For SEO
A Crash Course In Developing An Online Marketing Strategy For SEOA Crash Course In Developing An Online Marketing Strategy For SEO
A Crash Course In Developing An Online Marketing Strategy For SEO
 
Developing knowledge and content in an online course
Developing knowledge and content in an online courseDeveloping knowledge and content in an online course
Developing knowledge and content in an online course
 
docs+lists - software specification tool
docs+lists - software specification tooldocs+lists - software specification tool
docs+lists - software specification tool
 
Developing an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite WisconsinDeveloping an Online Course 101 - 2014 Brightspace Ignite Wisconsin
Developing an Online Course 101 - 2014 Brightspace Ignite Wisconsin
 
Building a SaaS Style Application
Building a SaaS Style ApplicationBuilding a SaaS Style Application
Building a SaaS Style Application
 
Marketing your Personal Training Business Online
Marketing your Personal Training Business OnlineMarketing your Personal Training Business Online
Marketing your Personal Training Business Online
 
Important Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online CourseImportant Tips for Developing a Quality Online Course
Important Tips for Developing a Quality Online Course
 
Developing an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 ConceptsDeveloping an Online Course Based on E-Learning 2.0 Concepts
Developing an Online Course Based on E-Learning 2.0 Concepts
 
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...Software Requirement Specification In The Real World - Tobias Andersen - 2009...
Software Requirement Specification In The Real World - Tobias Andersen - 2009...
 
Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...Managing a Successful Fitness & Personal Training Business Presented at #File...
Managing a Successful Fitness & Personal Training Business Presented at #File...
 
Pineapple presentation 4 10 12
Pineapple presentation   4 10 12Pineapple presentation   4 10 12
Pineapple presentation 4 10 12
 
7 Habits of Highly Effective Personal Trainers
7 Habits of Highly Effective Personal Trainers7 Habits of Highly Effective Personal Trainers
7 Habits of Highly Effective Personal Trainers
 
How to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through PackagingHow to Market Business Consulting Services through Packaging
How to Market Business Consulting Services through Packaging
 
6 Steps to Dynamic Public Speaking
6 Steps to Dynamic Public Speaking6 Steps to Dynamic Public Speaking
6 Steps to Dynamic Public Speaking
 
Software requirement and specification
Software requirement and specificationSoftware requirement and specification
Software requirement and specification
 
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
HOW TO MAP CONTENT TO THE BUYER'S JOURNEY & THE MARKETER'S FUNNEL [INBOUND 2014]
 
5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets5 Public Speaking & Presentation Skills Secrets
5 Public Speaking & Presentation Skills Secrets
 
3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing3 Steps to Success with Digital Marketing
3 Steps to Success with Digital Marketing
 
training & development ppt
training & development ppttraining & development ppt
training & development ppt
 
Online Marketing PPT
Online Marketing PPTOnline Marketing PPT
Online Marketing PPT
 

Similar to How to Deliver the Right Software (Specification by example)

Automated tests
Automated testsAutomated tests
Automated tests
Damian Sromek
 
Specification by example
Specification by exampleSpecification by example
Specification by example
Asier Barrenetxea
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
Guillagui San
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingPeter Presnell
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovSvetlin Nakov
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts pptRathna Priya
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
Seb Rose
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Grig Gheorghiu
 
Tdd
TddTdd
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
Utkarsh Khare
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Elad Elrom
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
guest5639fa9
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
priya_trivedi
 
Why unit testingl
Why unit testinglWhy unit testingl
Why unit testingl
Priya Sharma
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
priya_trivedi
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2Rosie Sherry
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
Anuj Arora
 
Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)
Kevin Schultz
 

Similar to How to Deliver the Right Software (Specification by example) (20)

Automated tests
Automated testsAutomated tests
Automated tests
 
Specification by example
Specification by exampleSpecification by example
Specification by example
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
Agile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin NakovAgile Methodologies And Extreme Programming - Svetlin Nakov
Agile Methodologies And Extreme Programming - Svetlin Nakov
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Testing concepts ppt
Testing concepts pptTesting concepts ppt
Testing concepts ppt
 
Unit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking SkeletonUnit Testing, TDD and the Walking Skeleton
Unit Testing, TDD and the Walking Skeleton
 
Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009Agile Testing Pasadena JUG Aug2009
Agile Testing Pasadena JUG Aug2009
 
Tdd
TddTdd
Tdd
 
Agile Methodologies And Extreme Programming
Agile Methodologies And Extreme ProgrammingAgile Methodologies And Extreme Programming
Agile Methodologies And Extreme Programming
 
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose presoTest Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
Test Driven Development (TDD) with FlexUnit 4 - 360|Flex San Jose preso
 
Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010Test Driven Development (TDD) Preso 360|Flex 2010
Test Driven Development (TDD) Preso 360|Flex 2010
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
Why unit testingl
Why unit testinglWhy unit testingl
Why unit testingl
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
The Testing Planet Issue 2
The Testing Planet Issue 2The Testing Planet Issue 2
The Testing Planet Issue 2
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Agile testing
Agile testingAgile testing
Agile testing
 
Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)Building Maintainable Android Apps (DroidCon NYC 2014)
Building Maintainable Android Apps (DroidCon NYC 2014)
 

Recently uploaded

TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
IES VE
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
Cyanic lab
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 

Recently uploaded (20)

TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Cyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdfCyaniclab : Software Development Agency Portfolio.pdf
Cyaniclab : Software Development Agency Portfolio.pdf
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 

How to Deliver the Right Software (Specification by example)

  • 1. How to Deliver the Right Software Asier Barrenetxea
  • 2. What is the single greatest cause of software failure? Requirements!
  • 3. Requirements  are wrong.  are badly written.  are incomplete.  The programmers and the specifiers understand the requirements differently.
  • 4. Classical approach: testing at the end Requirements Development Testing
  • 5. Hand over of requirements
  • 6. Each source telling a different story  Tests ≃ Requirements  How system really works ≃ Requirements  Documentation get stale
  • 7. Late feedback  Business misunderstands get arisen late on the process  When developer implementing requirements.  When qa testing it.  When software gets into production.  Big WASTE
  • 8. Spec by example to the rescue
  • 9. Bring testing to the front Requirements + Testing Development Verification (automated)
  • 10. Use examples  Easy to understand  Plain English  Unambiguous
  • 11. Write examples collaboratively  Business people, developers and testers in the same room.  Transfer the knowledge.  Learn about the domain.  Ubiquitous language.  Early feedback of misunderstandings.  In 30 min meeting can find out things that it would take a whole iteration or even more.  everybody understands the same thing.
  • 12. Write examples collaboratively  Inconsistencies and gaps are easy to spot when you write down the rules.  Find out incorrect assumptions.  Find out real business value.  Everybody gets this feeling of ownership.  Different approaches:  Three amigos  One developer with a stakeholder/domain expert  Whole team with stakeholders  Specification workshop
  • 13. Specification workshop  For harder to specificy stories.  Meeting with 10+ people. POs, BAs, devs, QAs..  Bring people from other teams if necessary.  Create 3 teams and write examples in one board each.  Compare. Look for inconsistencies. Why do we have them?
  • 14. Automate examples  Map examples to executable tests.  Use tools as Specflow, Cucumber, Fitness..  Do not modify examples when automating.
  • 15. Automate examles  Brittle UI tests?  Do not couple your examples to the UI.  Page Objects https://code.google.com/p/selenium/wiki/PageObjects  Tests don’t have to go always through the UI!  Test pyramid. http://martinfowler.com/bliki/TestPyramid.html
  • 16. Implement examples  Developers will have to code just what was specified.  Make the tests green -> Done.
  • 17. Single source of truth  Examples = Requirements.  Examples = Automated tests.  Examples = What the system does.
  • 18. Living documentation  Run examples with every change to the system.  Documentation never gets out-dated.  All tests green -> system is doing what examples say.
  • 19. User stories  Relate examples with user story.  Gives context.  Focus on business goal. As a <role> I want <software feature> In order to <goal/desire> I order to <goal/desire> as a <role> so that <software feature>
  • 20. Gherkin syntax  Given -> arrange  When -> action  Then -> assert
  • 21. What makes a good example  Focused on a single thing.  Self explanatory.  Uses the domain language.  SMART  Specific  Measurable  Achievable  Relevant  Time-bound.
  • 22. Do not automate EVERYTHING  There would always be some manual testing.  Usability testing.  Exploratory testing.  Be aware.
  • 24.
  • 26. Communication > Automation  The important thing is to communicate  Automation and tools are nice, but don’t get your main focus on them  “Individuals and interactions over processes and tools” - Agile Manifesto  “I want to bridge the gap between business people and technical people” - Kent Beck about XP
  • 27. More Info + resources Book. Specification by Example: How Successful Teams Deliver the Right Software , Gojko Adzic http://www.amazon.co.uk/Specification- Example-Successful-Deliver- Software/dp/1617290084 Blog post. A.T. FAIL!, Robert C. Martin http://blog.8thlight.com/uncle- bob/2013/09/26/AT-FAIL.html Specification by Example and Agile Acceptance Testing, Gojko Adzic http://www.slideshare.net/gojkoadzic/specific ation-by-example-and-agile-acceptance-testing My blog post. http://asierba.net/2014/04/03/spec-by- example/