SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
Introducción a BDD
Carlos Blé
Postgrado de Métodos Agiles - La Salle
Problem Domain Vs Solution Domain
Problem
SolutionSolution
SolutionSolution
SolutionSolution
WHAT HOW
Solution Domain
GUIGUI DatabaseDatabase
MockupsMockups
PrototypesPrototypes
Data StructuresData Structures
APIAPI
ScreenshotsScreenshots
Other appsOther apps
ProcessesProcesses
Context & Goals
Practices = Principles(Context)
(Dan North)
Startup company:
Don’t even know its market!
The goal is to learn about customers
Tailored software tools:
The problem is well-known
Business doesn’t change often!
Problem discovery tools
Examples, examples, examples!
A deep understanding of the business is a must
● Specification workshops
● Impact mapping
● Mind maps
● User stories
● User story mapping
● Example mapping
● Event Storming
● Gherkin
Recommended authors: Gojko Adzic
Specification workshops
1.Conversation with examples (no Gherkin)
2.Acceptance criteria definition.
3.Write down some scenarios.
4.Refine the scenarios (sometimes Gherkin).
5.Remove redundant examples/scenarios.
The Three Amigos
Separate the “What” from the “How”
The way to go fast is to avoid waste
Everything seems to be solved with CRUD... but in the
end it’s pretty much never a CRUD!
Every line of code is a commitment
Defer implementation details as much as you can.
Reverse engineering is sometimes required to discover
the problem from the solution
Known or proposed solutions are welcome as long as...
Works for us
Short user stories we can develop in two days.
Vertical user stories.- non-explicit technical stuff
Business valuable examples. - no state
Separate acceptance criteria from scenarios.
Deliver new features every week or two weeks.
Direct access to each other to ask
questions face to face at any time.
Hexagonal Architecture (ports & adapters)
Combine Cucumber with other
tools (xUnit, RSpec flavored frameworks)
Mind maps: plan and prioritize
Works for us
Specification workshops
Don't worry about scenarios
automation
Observe the users interact with
our software
Meet the users after every release
Works for us
What happens with the GUI?
UI workshops:
3 Roles: UX, Developer, Analyst
User stories often contain
GUI “suggestions” or “guidelines”
GUI should not add unnecessary
constraints
Examples Vs Acceptance Criteria
Examples help
to understand
the business,
and remove
ambiguity
But acceptance criteria requires a higher level of
abstraction
See the forest for the trees
Acceptance criteria are a quick summary
to help us understand...
● what do we really want?
the desired behavior of the system
● how to demo?
when is the feature done
● documentation:
the implemented behavior
As garage organiser
I want to assign jobs to mechanics
To balance the workload in the garage
Acceptance Criteria:
- Jobs are assigned to a single mechanic on a particular
day without specifying the start time
- Jobs have different priorities
- Ongoing jobs can't be assigned from one
mechanic to another
- A finished job can't be assigned to
any other mechanic
Background:
“Paco” is a mechanic
Scenario: Assign job to mechanic
Given the job "Change pad brakes" is in the unassigned work queue
And “Paco”'s agenda for tomorrow is empty
When the organizer assigns the job to “Paco” for tomorrow
Then the first thing for him to work on tomorrow is that job
And the job is no longer in the unassigned work queue
Scenario: Prioritize jobs
Given “Paco”'s queue for tomorrow contains "Change oil" & “Inspection”
When the organizer prioritizes the job “Inspection” for “Paco”
Then  first thing for him to work on tomorrow is “Inspection”
Scenario: Ongoing jobs can't be reassigned
Given that “Paco”'s is working on "Inspection”
When the organizer tries to assign the job to another mechanic
Then  the organiser is told that “Paco” is already working on that job
And   it remains assigned to “Paco”
Scenario: Finished jobs can't be reassigned
Given that “Paco” is done with job “Change pad brakes”
When the organiser tries to assign it to another mechanic
Then  the organiser is told that job is finished and can't be reassigned
Notes:
- Mechanic agenda is stored in table T in the legacy system.
UX Suggestions:
- Drag & drop could be a good metaphor for the assignments
Do we need scenarios for this one?
As garage organiser
I need to know what jobs are in the queue
To assign jobs to mechanics
Acceptance Criteria:
- Jobs are in the queue when:
- they are not assigned to a particular mechanic
and the car is in the garage.
- the job doesn't require a pending steering part.
Recap
Acceptance criteria specify what should be done
Examples help understand the criteria
Additional information may be useful
When an acceptance criterion is a long line...
When an example doesn't reveal the criterion...
7
E
AC AC
AC
E E
Heuristic
Separate types of tests
Documentation tests
- Cucumber
- Nunit with specific tags (attributes):
        [Test]
        [Specification]
        public void …()
Triangulation tests
- Integration and unit tests
- Nunit, Webdriver...
Automation
Even if we don't automate the scenarios...
Cucumber scenarios don't have to be
integration tests.
Sometimes xUnit/RSpec frameworks are
enough.
Automation often require little changes in the
scenarios...
Avoid complex test setup
Green field Vs Legacy
Test-first let us aim for the best design.
Perfect for green field projects.
Test-first does not help much when a big chunk
of the system is already designed though
We love feedback!
Features are not real until they go live and
users embrace them. Don't plan too far away!
Conclusion: listen to your users!
Release Feedback
10

Mais conteúdo relacionado

Destaque

Adobe Connect Overview
Adobe Connect OverviewAdobe Connect Overview
Adobe Connect Overview
Tom Behan
 
Una semana para mostrar.
Una semana para mostrar.Una semana para mostrar.
Una semana para mostrar.
cabarcosgomez
 
Jardines Mozart Jeanne
Jardines Mozart JeanneJardines Mozart Jeanne
Jardines Mozart Jeanne
Nela Krangle
 
5 pobladores se movilizaron por obra de drenaje pluvial
5   pobladores se movilizaron por obra de drenaje pluvial5   pobladores se movilizaron por obra de drenaje pluvial
5 pobladores se movilizaron por obra de drenaje pluvial
Titikaka Consulting Group SAC
 

Destaque (16)

Adobe Connect Overview
Adobe Connect OverviewAdobe Connect Overview
Adobe Connect Overview
 
Una semana para mostrar.
Una semana para mostrar.Una semana para mostrar.
Una semana para mostrar.
 
Mostovi.Zivota
Mostovi.ZivotaMostovi.Zivota
Mostovi.Zivota
 
Jardines Mozart Jeanne
Jardines Mozart JeanneJardines Mozart Jeanne
Jardines Mozart Jeanne
 
5 pobladores se movilizaron por obra de drenaje pluvial
5   pobladores se movilizaron por obra de drenaje pluvial5   pobladores se movilizaron por obra de drenaje pluvial
5 pobladores se movilizaron por obra de drenaje pluvial
 
妙慧童女經卡播放
妙慧童女經卡播放妙慧童女經卡播放
妙慧童女經卡播放
 
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und GebBDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
BDD - Behavior Driven Development Webapps mit Groovy Spock und Geb
 
蔣夫人 宋美齡
蔣夫人  宋美齡蔣夫人  宋美齡
蔣夫人 宋美齡
 
German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...German Testing Day 2015 - How behavior-driven development fuses developers an...
German Testing Day 2015 - How behavior-driven development fuses developers an...
 
Inventario de recursos humanos
Inventario de recursos humanosInventario de recursos humanos
Inventario de recursos humanos
 
Making the Move to Behavior Driven Development
Making the Move to Behavior Driven DevelopmentMaking the Move to Behavior Driven Development
Making the Move to Behavior Driven Development
 
Scrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - ColomboScrum + Behavior Driven Development (BDD) - Colombo
Scrum + Behavior Driven Development (BDD) - Colombo
 
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in AgileAnand Bagmar - Behavior Driven Testing (BDT) in Agile
Anand Bagmar - Behavior Driven Testing (BDT) in Agile
 
Estrategias didácticas para el aprendizaje colaborativo.
Estrategias didácticas para el aprendizaje colaborativo.Estrategias didácticas para el aprendizaje colaborativo.
Estrategias didácticas para el aprendizaje colaborativo.
 
CE72.52 - Lecture 2 - Material Behavior
CE72.52 - Lecture 2 - Material BehaviorCE72.52 - Lecture 2 - Material Behavior
CE72.52 - Lecture 2 - Material Behavior
 
Behavior Driven Development Pros and Cons
Behavior Driven Development Pros and ConsBehavior Driven Development Pros and Cons
Behavior Driven Development Pros and Cons
 

Semelhante a Behavior Driven Development - Material de clase PMA

Atd advanced topicsworkshop
Atd advanced topicsworkshopAtd advanced topicsworkshop
Atd advanced topicsworkshop
lisacrispin
 
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceWhat is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
Geoffrey De Smet
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EU
Holden Karau
 

Semelhante a Behavior Driven Development - Material de clase PMA (20)

BDD - Test Academy Barcelona 2017
BDD - Test Academy Barcelona 2017BDD - Test Academy Barcelona 2017
BDD - Test Academy Barcelona 2017
 
How to Apply Machine Learning by Lyft Senior Product Manager
How to Apply Machine Learning by Lyft Senior Product ManagerHow to Apply Machine Learning by Lyft Senior Product Manager
How to Apply Machine Learning by Lyft Senior Product Manager
 
Agile Estimation for Fixed Price Model
Agile Estimation for Fixed Price ModelAgile Estimation for Fixed Price Model
Agile Estimation for Fixed Price Model
 
Big data101kagglepresentation
Big data101kagglepresentationBig data101kagglepresentation
Big data101kagglepresentation
 
BDD Tips at CukeUp 2015 London
BDD Tips at CukeUp 2015 LondonBDD Tips at CukeUp 2015 London
BDD Tips at CukeUp 2015 London
 
Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...Designing and coding for cloud-native applications using Python, Harjinder Mi...
Designing and coding for cloud-native applications using Python, Harjinder Mi...
 
Atd advanced topicsworkshop
Atd advanced topicsworkshopAtd advanced topicsworkshop
Atd advanced topicsworkshop
 
Machine Learning to moderate ads in real world classified's business
Machine Learning to moderate ads in real world classified's businessMachine Learning to moderate ads in real world classified's business
Machine Learning to moderate ads in real world classified's business
 
Limits of Machine Learning
Limits of Machine LearningLimits of Machine Learning
Limits of Machine Learning
 
The Art Of Performance Tuning - with presenter notes!
The Art Of Performance Tuning - with presenter notes!The Art Of Performance Tuning - with presenter notes!
The Art Of Performance Tuning - with presenter notes!
 
Better java with design
Better java with designBetter java with design
Better java with design
 
Tales from the trenches creating complex distributed systems
Tales from the trenches  creating complex distributed systemsTales from the trenches  creating complex distributed systems
Tales from the trenches creating complex distributed systems
 
Managing software projects & teams effectively
Managing software projects & teams effectivelyManaging software projects & teams effectively
Managing software projects & teams effectively
 
Modeling and Performance Analysis of Scrumban with Test-Driven Development us...
Modeling and Performance Analysis of Scrumban with Test-Driven Development us...Modeling and Performance Analysis of Scrumban with Test-Driven Development us...
Modeling and Performance Analysis of Scrumban with Test-Driven Development us...
 
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev ConferenceWhat is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
What is Drools, Guvnor and Planner? 2012 02-17 Brno Dev Conference
 
MOPs & ML Pipelines on GCP - Session 6, RGDC
MOPs & ML Pipelines on GCP - Session 6, RGDCMOPs & ML Pipelines on GCP - Session 6, RGDC
MOPs & ML Pipelines on GCP - Session 6, RGDC
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
SAP HCM authorisations: streamline processes and improve HR data security
SAP HCM authorisations: streamline processes and improve HR data securitySAP HCM authorisations: streamline processes and improve HR data security
SAP HCM authorisations: streamline processes and improve HR data security
 
Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)Applying UML and Patterns (CH1, 6, 9, 10)
Applying UML and Patterns (CH1, 6, 9, 10)
 
Validating big data jobs - Spark AI Summit EU
Validating big data jobs  - Spark AI Summit EUValidating big data jobs  - Spark AI Summit EU
Validating big data jobs - Spark AI Summit EU
 

Mais de Carlos Ble (8)

Gestión de proyectos
Gestión de proyectosGestión de proyectos
Gestión de proyectos
 
Maintainable software
Maintainable softwareMaintainable software
Maintainable software
 
Carbon offsetting
Carbon offsettingCarbon offsetting
Carbon offsetting
 
Distinguir entre Problema y Solución
Distinguir entre Problema y SoluciónDistinguir entre Problema y Solución
Distinguir entre Problema y Solución
 
ES6 Simplified
ES6 SimplifiedES6 Simplified
ES6 Simplified
 
Apuntes #XPweek
Apuntes #XPweekApuntes #XPweek
Apuntes #XPweek
 
TDD in the Web with Python and Django
TDD in the Web with Python and DjangoTDD in the Web with Python and Django
TDD in the Web with Python and Django
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010
 

Último

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
Health
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 

Último (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 

Behavior Driven Development - Material de clase PMA

  • 1. Introducción a BDD Carlos Blé Postgrado de Métodos Agiles - La Salle
  • 2. Problem Domain Vs Solution Domain Problem SolutionSolution SolutionSolution SolutionSolution WHAT HOW
  • 3. Solution Domain GUIGUI DatabaseDatabase MockupsMockups PrototypesPrototypes Data StructuresData Structures APIAPI ScreenshotsScreenshots Other appsOther apps ProcessesProcesses
  • 4. Context & Goals Practices = Principles(Context) (Dan North) Startup company: Don’t even know its market! The goal is to learn about customers Tailored software tools: The problem is well-known Business doesn’t change often!
  • 5. Problem discovery tools Examples, examples, examples! A deep understanding of the business is a must ● Specification workshops ● Impact mapping ● Mind maps ● User stories ● User story mapping ● Example mapping ● Event Storming ● Gherkin Recommended authors: Gojko Adzic
  • 6. Specification workshops 1.Conversation with examples (no Gherkin) 2.Acceptance criteria definition. 3.Write down some scenarios. 4.Refine the scenarios (sometimes Gherkin). 5.Remove redundant examples/scenarios. The Three Amigos
  • 7. Separate the “What” from the “How” The way to go fast is to avoid waste Everything seems to be solved with CRUD... but in the end it’s pretty much never a CRUD! Every line of code is a commitment Defer implementation details as much as you can. Reverse engineering is sometimes required to discover the problem from the solution Known or proposed solutions are welcome as long as...
  • 8. Works for us Short user stories we can develop in two days. Vertical user stories.- non-explicit technical stuff Business valuable examples. - no state Separate acceptance criteria from scenarios. Deliver new features every week or two weeks.
  • 9. Direct access to each other to ask questions face to face at any time. Hexagonal Architecture (ports & adapters) Combine Cucumber with other tools (xUnit, RSpec flavored frameworks) Mind maps: plan and prioritize Works for us
  • 10. Specification workshops Don't worry about scenarios automation Observe the users interact with our software Meet the users after every release Works for us
  • 11. What happens with the GUI? UI workshops: 3 Roles: UX, Developer, Analyst User stories often contain GUI “suggestions” or “guidelines” GUI should not add unnecessary constraints
  • 12. Examples Vs Acceptance Criteria Examples help to understand the business, and remove ambiguity But acceptance criteria requires a higher level of abstraction
  • 13. See the forest for the trees Acceptance criteria are a quick summary to help us understand... ● what do we really want? the desired behavior of the system ● how to demo? when is the feature done ● documentation: the implemented behavior
  • 14. As garage organiser I want to assign jobs to mechanics To balance the workload in the garage Acceptance Criteria: - Jobs are assigned to a single mechanic on a particular day without specifying the start time - Jobs have different priorities - Ongoing jobs can't be assigned from one mechanic to another - A finished job can't be assigned to any other mechanic
  • 15. Background: “Paco” is a mechanic Scenario: Assign job to mechanic Given the job "Change pad brakes" is in the unassigned work queue And “Paco”'s agenda for tomorrow is empty When the organizer assigns the job to “Paco” for tomorrow Then the first thing for him to work on tomorrow is that job And the job is no longer in the unassigned work queue Scenario: Prioritize jobs Given “Paco”'s queue for tomorrow contains "Change oil" & “Inspection” When the organizer prioritizes the job “Inspection” for “Paco” Then  first thing for him to work on tomorrow is “Inspection”
  • 16. Scenario: Ongoing jobs can't be reassigned Given that “Paco”'s is working on "Inspection” When the organizer tries to assign the job to another mechanic Then  the organiser is told that “Paco” is already working on that job And   it remains assigned to “Paco” Scenario: Finished jobs can't be reassigned Given that “Paco” is done with job “Change pad brakes” When the organiser tries to assign it to another mechanic Then  the organiser is told that job is finished and can't be reassigned Notes: - Mechanic agenda is stored in table T in the legacy system. UX Suggestions: - Drag & drop could be a good metaphor for the assignments
  • 17. Do we need scenarios for this one? As garage organiser I need to know what jobs are in the queue To assign jobs to mechanics Acceptance Criteria: - Jobs are in the queue when: - they are not assigned to a particular mechanic and the car is in the garage. - the job doesn't require a pending steering part.
  • 18. Recap Acceptance criteria specify what should be done Examples help understand the criteria Additional information may be useful When an acceptance criterion is a long line... When an example doesn't reveal the criterion... 7 E AC AC AC E E Heuristic
  • 19. Separate types of tests Documentation tests - Cucumber - Nunit with specific tags (attributes):         [Test]         [Specification]         public void …() Triangulation tests - Integration and unit tests - Nunit, Webdriver...
  • 20. Automation Even if we don't automate the scenarios... Cucumber scenarios don't have to be integration tests. Sometimes xUnit/RSpec frameworks are enough. Automation often require little changes in the scenarios... Avoid complex test setup
  • 21. Green field Vs Legacy Test-first let us aim for the best design. Perfect for green field projects. Test-first does not help much when a big chunk of the system is already designed though
  • 22. We love feedback! Features are not real until they go live and users embrace them. Don't plan too far away! Conclusion: listen to your users! Release Feedback 10