SlideShare uma empresa Scribd logo
1 de 49
and the art of
Automated Acceptance Test Suite Maintenance
An Inquiry into Test Automation Quality
ZEN
John Ferguson Smart
Consultant
Trainer
Mentor
Author
Speaker
Coder
Automated Acceptance Testing is valuable
Faster release cycles
Improved visibility
Reduce risk and uncertainty
Automated Acceptance Testing is not easy
Fragile?
Expensive to maintain?
Slow to run?
Is it worth it?
“It is fun to have fun
But you have to know how”
Sure it is!
Three rules of writing
maintainable acceptance tests
A test should only need changing if the subject of
the test changes
Involve the testers early
Report on what requirements you verified,
not what tests you ran
Rule #1 - Stability
A test should only change
if the concept under test changes
What do ogres and good automated tests have in common?
(This test is not like an ogre)
The Record-Replay Scam
in theory
in practice
Remember...good automated acceptance tests have layers
Start off with the business objectives
Business-­‐level	
  requirements
Describe the business flow
High-­‐level	
  steps	
  
(business	
  flow)
Describe the page interactions
Page-­‐level	
  interac<ons
Page implementation details
HTML	
  details	
  go	
  here
Business	
  Rules
Business	
  Flow
Page/Component	
  
interac<ons
Page/Component	
  
details
Good automated acceptance tests have layers
Business	
  Rules
Business	
  Flow
Page/Component	
  
interac<ons
Page/Component	
  
details
Good automated acceptance tests have layers
Only	
  expose	
  what	
  the	
  
business	
  needs	
  to	
  know
Scenario: Register for online banking
Given that Joe wants to register for online banking
When he goes to the registration page
And he enters 'Joe' in the first name field
And he enters 'Bloggs' in the surname field
And he enters 'Joe@bloggs.com" in the email field
And he enters '01/01/1980' in the date of birth field
And he enters '1 George street' in the street field
And he enters 'Sydney' in the city field
And he enters '2000' in the post code field
And he clicks on submit
Then his application should be created in a pending state
And he should be sent a PDF contract to sign by email
Who cares!
Business	
  Rules
Business	
  Flow
Page/Component	
  
interac<ons
Page/Component	
  
details
Good automated acceptance tests have layers
Only	
  expose	
  what	
  the	
  
business	
  needs	
  to	
  know
Scenario: Register for online banking
Given that Joe wants to register for online banking
When he submits his application online
Then his application should be created in a pending state
And he should be sent a PDF contract to sign by email
Business	
  Rules
Business	
  Flow
Page/Component	
  
interac<ons
Page/Component	
  
details
Good automated acceptance tests have layers
Centralize	
  and	
  reuse	
  test	
  logic	
  
Centralize	
  and	
  reuse	
  test	
  
implementa<on	
  details
Business	
  Rules
Business	
  Flow
Page/Component	
  
interac<ons
Page/Component	
  
details
Good automated acceptance tests have layers
Use	
  UI	
  tests	
  for	
  tes<ng	
  user	
  
interac<ons	
  with	
  the	
  screens
Non-­‐UI	
  tests	
  are	
  OK	
  for	
  tes<ng	
  
business	
  logic	
  and	
  calcula<ons
How much should I test?
When	
  in	
  doubt,	
  go	
  broad	
  and	
  shallow
Deep	
  and	
  narrow	
  leads	
  to	
  waste
Rule #2 - Relevance
Report what requirements you verified,
not what tests you ran
Feature Coverage
How many requirements are
you really testing?
Requirements
Capabilities/Epics
Book	
  flights	
  
online
Manage	
  
Frequent	
  Flyer	
  
account
Features
Search	
  
available	
  flights
Book	
  flight	
  
with	
  points
Pay	
  with	
  
credit	
  card
View	
  account	
  
status
Real	
  <me	
  
no<fica<ons
Status	
  
upgrades
Acceptance Criteria
-­‐	
  no<fica<ons	
  for	
  delayed	
  flights
-­‐	
  no<fica<on	
  for	
  cancelled	
  flights
-­‐	
  no<fica<on	
  of	
  baggage	
  carousel-­‐	
  Should	
  see	
  current	
  points
-­‐	
  Should	
  see	
  special	
  offers
-­‐	
  should	
  see	
  current	
  status
Automated Tests
Given	
  Joe	
  is	
  booked	
  on	
  flight	
  QF108
And	
  Joe	
  is	
  registered	
  for	
  SMS	
  no<fica<ons
When	
  the	
  flight	
  is	
  delayed
then	
  Joe	
  should	
  be	
  sent	
  an	
  SMS	
  no<fica<on
Given	
  Joe	
  is	
  booked	
  on	
  flight	
  QF108
And	
  Joe	
  is	
  registered	
  for	
  email	
  no<fica<ons
When	
  the	
  flight	
  is	
  cancelled
then	
  Joe	
  should	
  be	
  sent	
  an	
  email	
  no<fica<on	
  
with	
  an	
  alterna<ve	
  flight
Given	
  Joe	
  is	
  booked	
  on	
  flight	
  QF108
And	
  Joe	
  is	
  registered	
  for	
  email	
  no<fica<ons
When	
  the	
  flight	
  is	
  delayed
then	
  Joe	
  should	
  be	
  sent	
  an	
  email	
  no<fica<on
? ?
? ?
Given	
  Joe	
  is	
  a	
  <status>	
  Frequent	
  Flyer	
  with	
  
<current-­‐points>	
  points
And	
  he	
  has	
  earned	
  <points>	
  points	
  this	
  month
Then	
  his	
  new	
  status	
  should	
  be	
  <new-­‐status>
status	
  	
  |	
  current-­‐points	
  |	
  points	
  |	
  new-­‐status
SLIVER	
  |	
  9800	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  100	
  	
  	
  	
  	
  |	
  SILVER
SLIVER	
  |	
  9900	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  100	
  	
  	
  	
  	
  |	
  GOLD
GOLD	
  	
  |	
  49900	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  |	
  100	
  	
  	
  	
  	
  |	
  PLATINUM
How	
  many	
  failed
Test	
  results	
  can	
  tell	
  us...
How	
  many	
  
tests	
  passed
How	
  many	
  weren’t	
  run
Test	
  results	
  can	
  tell	
  us...
What	
  tests	
  exist	
  for	
  
a	
  given	
  feature
How	
  stable	
  the	
  feature	
  is
Test	
  results	
  can	
  tell	
  us...
How	
  a	
  feature	
  was	
  tested
Test	
  results	
  can	
  tell	
  us...
What	
  a	
  feature	
  looks	
  like
Test	
  results	
  can’t	
  tell	
  us	
  what	
  features	
  were	
  not	
  tested
?
Requirements
Capabilities/Epics
Book	
  flights	
  
online
Manage	
  
Frequent	
  Flyer	
  
Features
Search	
  
available	
  
Book	
  flight	
  
with	
  points
Pay	
  with	
  
credit	
  card
View	
  
account	
  
Real	
  <me	
  
no<fica<on
Status	
  
upgrades
Acceptance Criteria
-­‐	
  no<fica<ons	
  for	
  delayed	
  flights
-­‐	
  no<fica<on	
  for	
  cancelled	
  flights
-­‐	
  no<fica<on	
  of	
  baggage	
  carousel-­‐	
  Should	
  see	
  current	
  points
-­‐	
  Should	
  see	
  special	
  offers
-­‐	
  should	
  see	
  current	
  status
Acceptance	
  criteria	
  
defined	
  and	
  tests	
  working
Acceptance	
  criteria	
  
defined,	
  but	
  no	
  tests
Acceptance	
  criteria	
  
defined,	
  tests	
  specified	
  but	
  
not	
  implemented
Failing	
  tests
No	
  acceptance	
  
criteria	
  defined
Test Results
Feature Coverage
Requirements
Capabilities/Epics
Book	
  flights	
  
online
Manage	
  
Frequent	
  Flyer	
  
Features
Search	
  
available	
  
Book	
  flight	
  
with	
  points
Pay	
  with	
  
credit	
  card
View	
  
account	
  
Real	
  <me	
  
no<fica<on
Status	
  
upgrades
Acceptance Criteria
-­‐	
  no<fica<ons	
  for	
  delayed	
  flights
-­‐	
  no<fica<on	
  for	
  cancelled	
  flights
-­‐	
  no<fica<on	
  of	
  baggage	
  carousel-­‐	
  Should	
  see	
  current	
  points
-­‐	
  Should	
  see	
  special	
  offers
-­‐	
  should	
  see	
  current	
  status
Done
Not	
  tested	
  at	
  all
Tests	
  not	
  
finished	
  yet
Broken
Nothing	
  done	
  yet
Test Results
Feature Coverage
Feature Coverage
High	
  level	
  capabili<es
Feature Coverage
What	
  features	
  are	
  
defined	
  for	
  this	
  capability?
Feature Coverage
What	
  stories	
  are	
  defined	
  
for	
  this	
  feature?
How	
  many	
  stories	
  have	
  automated	
  
acceptance	
  criteria?
Feature Coverage
What	
  stories	
  are	
  defined	
  
for	
  this	
  feature?
How	
  many	
  stories	
  have	
  automated	
  
acceptance	
  criteria?
What	
  acceptance	
  criteria	
  
have	
  been	
  automated?
Rule #3 - Involve the testers early
The most meaningful tests are written
before the application is built
Story
bug	
  reports
Working	
  
code boring	
  
manual	
  
tes<ng
WASTE
How do you build
a feature?
Working	
  code	
  
and	
  
Working	
  Automated	
  
Acceptance	
  Tests
Exploratory	
  tes<ng,	
  
usability	
  tes<ng...
Shared	
  
understanding
Story
Examples
Automated	
  
acceptance	
  
criteria
How do you build
a feature?
Good	
  automated	
  acceptance	
  tests	
  have	
  layers
Involve	
  the	
  testers	
  early
Feature	
  Coverage	
  tells	
  you	
  where	
  you	
  are	
  at
Takeaways
To learn more...
h[p://thucydides.info
Thank you
John	
  Ferguson	
  Smart

Mais conteúdo relacionado

Semelhante a Zen and the Art of Automated Acceptance Test Suite Maintenance

Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014jaredrrichardson
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghAgile ME
 
Acquirer Systems Company Introduction
Acquirer Systems Company IntroductionAcquirer Systems Company Introduction
Acquirer Systems Company IntroductionAcquirersystems
 
Acquirer Systems Company Introduction
Acquirer Systems Company IntroductionAcquirer Systems Company Introduction
Acquirer Systems Company IntroductionBayberry
 
Payment Processing Tips
Payment Processing TipsPayment Processing Tips
Payment Processing TipsDydacomp
 
Patrick McKenzie Opticon 2014: Advanced A/B Testing
Patrick McKenzie Opticon 2014: Advanced A/B TestingPatrick McKenzie Opticon 2014: Advanced A/B Testing
Patrick McKenzie Opticon 2014: Advanced A/B TestingPatrick McKenzie
 
Testable Requirements
Testable Requirements Testable Requirements
Testable Requirements Bharti Rupani
 
Scrum and BDD for Developers with Naveen Kumar
Scrum and BDD for Developers with Naveen Kumar Scrum and BDD for Developers with Naveen Kumar
Scrum and BDD for Developers with Naveen Kumar Agile ME
 
Freelancing presentation PowerPoint slides
Freelancing presentation PowerPoint slidesFreelancing presentation PowerPoint slides
Freelancing presentation PowerPoint slidesZainAli407
 
PMG TAG BPM_presentation
PMG TAG BPM_presentationPMG TAG BPM_presentation
PMG TAG BPM_presentationMelanie Brandt
 
Tips & Tricks for Building Advanced Workflow
Tips & Tricks for Building Advanced WorkflowTips & Tricks for Building Advanced Workflow
Tips & Tricks for Building Advanced Workflowdreamforce2006
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkNathen Harvey
 
Why software testing
Why software testingWhy software testing
Why software testingtransformtoit
 
Anton Muzhailo - Practical Test Process Improvement using ISTQB
Anton Muzhailo - Practical Test Process Improvement using ISTQBAnton Muzhailo - Practical Test Process Improvement using ISTQB
Anton Muzhailo - Practical Test Process Improvement using ISTQBIevgenii Katsan
 
Webinar: Common Mistakes in A/B Testing
Webinar: Common Mistakes in A/B TestingWebinar: Common Mistakes in A/B Testing
Webinar: Common Mistakes in A/B TestingOptimizely
 
Field Recruitment Skills Testing Brochure
Field Recruitment Skills Testing BrochureField Recruitment Skills Testing Brochure
Field Recruitment Skills Testing BrochureAndrew Wright CertRP
 
Patricia Davidson- Customer Experience Perspective
Patricia Davidson- Customer Experience PerspectivePatricia Davidson- Customer Experience Perspective
Patricia Davidson- Customer Experience PerspectivePatricia Davidson
 

Semelhante a Zen and the Art of Automated Acceptance Test Suite Maintenance (20)

Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014Acceptance Test Driven Development at StarWest 2014
Acceptance Test Driven Development at StarWest 2014
 
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar SinghWorkshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
Workshop: Behavior Driven Development - Deliver value by Naveen Kumar Singh
 
BDD
BDDBDD
BDD
 
Wielding Workflow
Wielding WorkflowWielding Workflow
Wielding Workflow
 
Acquirer Systems Company Introduction
Acquirer Systems Company IntroductionAcquirer Systems Company Introduction
Acquirer Systems Company Introduction
 
Acquirer Systems Company Introduction
Acquirer Systems Company IntroductionAcquirer Systems Company Introduction
Acquirer Systems Company Introduction
 
Payment Processing Tips
Payment Processing TipsPayment Processing Tips
Payment Processing Tips
 
Testable requirements
Testable requirementsTestable requirements
Testable requirements
 
Patrick McKenzie Opticon 2014: Advanced A/B Testing
Patrick McKenzie Opticon 2014: Advanced A/B TestingPatrick McKenzie Opticon 2014: Advanced A/B Testing
Patrick McKenzie Opticon 2014: Advanced A/B Testing
 
Testable Requirements
Testable Requirements Testable Requirements
Testable Requirements
 
Scrum and BDD for Developers with Naveen Kumar
Scrum and BDD for Developers with Naveen Kumar Scrum and BDD for Developers with Naveen Kumar
Scrum and BDD for Developers with Naveen Kumar
 
Freelancing presentation PowerPoint slides
Freelancing presentation PowerPoint slidesFreelancing presentation PowerPoint slides
Freelancing presentation PowerPoint slides
 
PMG TAG BPM_presentation
PMG TAG BPM_presentationPMG TAG BPM_presentation
PMG TAG BPM_presentation
 
Tips & Tricks for Building Advanced Workflow
Tips & Tricks for Building Advanced WorkflowTips & Tricks for Building Advanced Workflow
Tips & Tricks for Building Advanced Workflow
 
Using Error Budgets to Prioritize Work
Using Error Budgets to Prioritize WorkUsing Error Budgets to Prioritize Work
Using Error Budgets to Prioritize Work
 
Why software testing
Why software testingWhy software testing
Why software testing
 
Anton Muzhailo - Practical Test Process Improvement using ISTQB
Anton Muzhailo - Practical Test Process Improvement using ISTQBAnton Muzhailo - Practical Test Process Improvement using ISTQB
Anton Muzhailo - Practical Test Process Improvement using ISTQB
 
Webinar: Common Mistakes in A/B Testing
Webinar: Common Mistakes in A/B TestingWebinar: Common Mistakes in A/B Testing
Webinar: Common Mistakes in A/B Testing
 
Field Recruitment Skills Testing Brochure
Field Recruitment Skills Testing BrochureField Recruitment Skills Testing Brochure
Field Recruitment Skills Testing Brochure
 
Patricia Davidson- Customer Experience Perspective
Patricia Davidson- Customer Experience PerspectivePatricia Davidson- Customer Experience Perspective
Patricia Davidson- Customer Experience Perspective
 

Mais de John Ferguson Smart Limited

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosJohn Ferguson Smart Limited
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...John Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceJohn Ferguson Smart Limited
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplayJohn Ferguson Smart Limited
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceJohn Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...John Ferguson Smart Limited
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...John Ferguson Smart Limited
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingJohn Ferguson Smart Limited
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesJohn Ferguson Smart Limited
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersJohn Ferguson Smart Limited
 

Mais de John Ferguson Smart Limited (20)

My Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin ScenariosMy Reading Specs - Refactoring Patterns for Gherkin Scenarios
My Reading Specs - Refactoring Patterns for Gherkin Scenarios
 
Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...Artisti e Condotierri - How can your team become artists of the 21st century ...
Artisti e Condotierri - How can your team become artists of the 21st century ...
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANTBE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
BE A POD OF DOLPHINS, NOT A DANCING ELEPHANT
 
Sustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and ScreenplaySustainable Test Automation with Serenity BDD and Screenplay
Sustainable Test Automation with Serenity BDD and Screenplay
 
Feature Mapping Workshop
Feature Mapping WorkshopFeature Mapping Workshop
Feature Mapping Workshop
 
Engage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a differenceEngage! Bringing teams together to deliver software that makes a difference
Engage! Bringing teams together to deliver software that makes a difference
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
Beyond Given/When/Then - why diving into Cucumber is the wrong approach to ad...
 
Shift left-devoxx-pl
Shift left-devoxx-plShift left-devoxx-pl
Shift left-devoxx-pl
 
Screenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testingScreenplay - Next generation automated acceptance testing
Screenplay - Next generation automated acceptance testing
 
Cucumber and Spock Primer
Cucumber and Spock PrimerCucumber and Spock Primer
Cucumber and Spock Primer
 
All the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practicesAll the world's a stage – the next step in automated testing practices
All the world's a stage – the next step in automated testing practices
 
CukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning WorkshopCukeUp 2016 Agile Product Planning Workshop
CukeUp 2016 Agile Product Planning Workshop
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
Serenity and the Journey Pattern
Serenity and the Journey PatternSerenity and the Journey Pattern
Serenity and the Journey Pattern
 
BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!BDD - Collaborate like you mean it!
BDD - Collaborate like you mean it!
 
BDD-Driven Microservices
BDD-Driven MicroservicesBDD-Driven Microservices
BDD-Driven Microservices
 
BDD Anti-patterns
BDD Anti-patternsBDD Anti-patterns
BDD Anti-patterns
 
It's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for TestersIt's Testing, Jim, but not as we know it - BDD for Testers
It's Testing, Jim, but not as we know it - BDD for Testers
 

Último

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
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 WorkerThousandEyes
 
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 2024The Digital Insurer
 
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...Martijn de Jong
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
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 WorkerThousandEyes
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
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 Takeoffsammart93
 
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 2024The Digital Insurer
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
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 StrategiesBoston Institute of Analytics
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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 2024Rafal Los
 
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, Adobeapidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
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
 
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...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
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
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
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
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
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
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Zen and the Art of Automated Acceptance Test Suite Maintenance

  • 1. and the art of Automated Acceptance Test Suite Maintenance An Inquiry into Test Automation Quality ZEN
  • 6. Reduce risk and uncertainty
  • 11. Is it worth it?
  • 12. “It is fun to have fun But you have to know how” Sure it is!
  • 13. Three rules of writing maintainable acceptance tests A test should only need changing if the subject of the test changes Involve the testers early Report on what requirements you verified, not what tests you ran
  • 14. Rule #1 - Stability A test should only change if the concept under test changes
  • 15. What do ogres and good automated tests have in common?
  • 16. (This test is not like an ogre)
  • 17. The Record-Replay Scam in theory in practice
  • 19. Start off with the business objectives Business-­‐level  requirements
  • 20. Describe the business flow High-­‐level  steps   (business  flow)
  • 21. Describe the page interactions Page-­‐level  interac<ons
  • 22. Page implementation details HTML  details  go  here
  • 23. Business  Rules Business  Flow Page/Component   interac<ons Page/Component   details Good automated acceptance tests have layers
  • 24. Business  Rules Business  Flow Page/Component   interac<ons Page/Component   details Good automated acceptance tests have layers Only  expose  what  the   business  needs  to  know Scenario: Register for online banking Given that Joe wants to register for online banking When he goes to the registration page And he enters 'Joe' in the first name field And he enters 'Bloggs' in the surname field And he enters 'Joe@bloggs.com" in the email field And he enters '01/01/1980' in the date of birth field And he enters '1 George street' in the street field And he enters 'Sydney' in the city field And he enters '2000' in the post code field And he clicks on submit Then his application should be created in a pending state And he should be sent a PDF contract to sign by email Who cares!
  • 25. Business  Rules Business  Flow Page/Component   interac<ons Page/Component   details Good automated acceptance tests have layers Only  expose  what  the   business  needs  to  know Scenario: Register for online banking Given that Joe wants to register for online banking When he submits his application online Then his application should be created in a pending state And he should be sent a PDF contract to sign by email
  • 26. Business  Rules Business  Flow Page/Component   interac<ons Page/Component   details Good automated acceptance tests have layers Centralize  and  reuse  test  logic   Centralize  and  reuse  test   implementa<on  details
  • 27. Business  Rules Business  Flow Page/Component   interac<ons Page/Component   details Good automated acceptance tests have layers Use  UI  tests  for  tes<ng  user   interac<ons  with  the  screens Non-­‐UI  tests  are  OK  for  tes<ng   business  logic  and  calcula<ons
  • 28. How much should I test? When  in  doubt,  go  broad  and  shallow Deep  and  narrow  leads  to  waste
  • 29. Rule #2 - Relevance Report what requirements you verified, not what tests you ran
  • 30. Feature Coverage How many requirements are you really testing?
  • 31. Requirements Capabilities/Epics Book  flights   online Manage   Frequent  Flyer   account Features Search   available  flights Book  flight   with  points Pay  with   credit  card View  account   status Real  <me   no<fica<ons Status   upgrades Acceptance Criteria -­‐  no<fica<ons  for  delayed  flights -­‐  no<fica<on  for  cancelled  flights -­‐  no<fica<on  of  baggage  carousel-­‐  Should  see  current  points -­‐  Should  see  special  offers -­‐  should  see  current  status Automated Tests Given  Joe  is  booked  on  flight  QF108 And  Joe  is  registered  for  SMS  no<fica<ons When  the  flight  is  delayed then  Joe  should  be  sent  an  SMS  no<fica<on Given  Joe  is  booked  on  flight  QF108 And  Joe  is  registered  for  email  no<fica<ons When  the  flight  is  cancelled then  Joe  should  be  sent  an  email  no<fica<on   with  an  alterna<ve  flight Given  Joe  is  booked  on  flight  QF108 And  Joe  is  registered  for  email  no<fica<ons When  the  flight  is  delayed then  Joe  should  be  sent  an  email  no<fica<on ? ? ? ? Given  Joe  is  a  <status>  Frequent  Flyer  with   <current-­‐points>  points And  he  has  earned  <points>  points  this  month Then  his  new  status  should  be  <new-­‐status> status    |  current-­‐points  |  points  |  new-­‐status SLIVER  |  9800                                        |  100          |  SILVER SLIVER  |  9900                                        |  100          |  GOLD GOLD    |  49900                                      |  100          |  PLATINUM
  • 32. How  many  failed Test  results  can  tell  us... How  many   tests  passed How  many  weren’t  run
  • 33. Test  results  can  tell  us... What  tests  exist  for   a  given  feature How  stable  the  feature  is
  • 34. Test  results  can  tell  us... How  a  feature  was  tested
  • 35. Test  results  can  tell  us... What  a  feature  looks  like
  • 36. Test  results  can’t  tell  us  what  features  were  not  tested ?
  • 37. Requirements Capabilities/Epics Book  flights   online Manage   Frequent  Flyer   Features Search   available   Book  flight   with  points Pay  with   credit  card View   account   Real  <me   no<fica<on Status   upgrades Acceptance Criteria -­‐  no<fica<ons  for  delayed  flights -­‐  no<fica<on  for  cancelled  flights -­‐  no<fica<on  of  baggage  carousel-­‐  Should  see  current  points -­‐  Should  see  special  offers -­‐  should  see  current  status Acceptance  criteria   defined  and  tests  working Acceptance  criteria   defined,  but  no  tests Acceptance  criteria   defined,  tests  specified  but   not  implemented Failing  tests No  acceptance   criteria  defined Test Results Feature Coverage
  • 38. Requirements Capabilities/Epics Book  flights   online Manage   Frequent  Flyer   Features Search   available   Book  flight   with  points Pay  with   credit  card View   account   Real  <me   no<fica<on Status   upgrades Acceptance Criteria -­‐  no<fica<ons  for  delayed  flights -­‐  no<fica<on  for  cancelled  flights -­‐  no<fica<on  of  baggage  carousel-­‐  Should  see  current  points -­‐  Should  see  special  offers -­‐  should  see  current  status Done Not  tested  at  all Tests  not   finished  yet Broken Nothing  done  yet Test Results Feature Coverage
  • 40. Feature Coverage What  features  are   defined  for  this  capability?
  • 41. Feature Coverage What  stories  are  defined   for  this  feature? How  many  stories  have  automated   acceptance  criteria?
  • 42. Feature Coverage What  stories  are  defined   for  this  feature? How  many  stories  have  automated   acceptance  criteria? What  acceptance  criteria   have  been  automated?
  • 43. Rule #3 - Involve the testers early The most meaningful tests are written before the application is built
  • 44.
  • 45. Story bug  reports Working   code boring   manual   tes<ng WASTE How do you build a feature?
  • 46. Working  code   and   Working  Automated   Acceptance  Tests Exploratory  tes<ng,   usability  tes<ng... Shared   understanding Story Examples Automated   acceptance   criteria How do you build a feature?
  • 47. Good  automated  acceptance  tests  have  layers Involve  the  testers  early Feature  Coverage  tells  you  where  you  are  at Takeaways