SlideShare a Scribd company logo
1 of 37
Download to read offline
 
 

BT8
Session 
6/6/2013 2:15 PM 
 
 
 
 
 
 
 

“How to Survive the Coming Test
Automation Zombie Apocalypse"
 
 
 

Presented by:
Dale Emery
DHE
 
 
 
 
 
 
 
 
 

Brought to you by: 
 

 
 
340 Corporate Way, Suite 300, Orange Park, FL 32073 
888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
Dale Emery
DHE

Since 1980, Dale Emery has worked in both IT organizations and software product
development companies as a developer, manager, process steward, trainer, and consultant. He
helps people apply the agile values of communication, feedback, simplicity, courage, and
respect to software development. Dale's combination of deep technical expertise and extensive
organizational development experience makes him particularly effective in working with software
teams. In 2007 Dale received the Ward Cunningham Gentle Voice of Reason Award, which the
Agile Alliance created to recognize Dale’s unique contribution to the agile community. Dale's
personal mission is to help people create joy, value, and meaning in their work. Learn more
about Dale at dhemery.com.
 
How to Survive the
Coming Test Automation
Zombie Apocalypse
Dale Emery
http://dhemery.com
@dhemery
Too
gruesome
to display
The Trouble With Zombies
Legion
Relentless
Infectious
Eat your brains
Usually not as pretty
as the one
on the previous slide
Test Automation Zombies
Legion
Relentless
Infectious
Eat your brains
Look just like ideas
Oddly attractive
The Trouble with Test
Automation Zombies
Sometimes the best you can do
They are easy
Lull you into doing them by habit
Focus on the short term
At the expense of the (not-so-)long term
Pound Foolish
Zombies
The Record and Playback
Zombie
Appeal
Lots of tests quickly, (almost) for free
Danger
Recorded tests are
unexpressive, brittle, unmaintainable
Can’t record tests
until the software is done
The Automation is Easy
Zombie
Appeal
Inexpensive automators
Danger
Tests written by unskilled programmers
are unexpressive, brittle, unmaintainable
Surviving Pound Foolish
Zombies
Remember:
Test automation is real software development
Test automation takes time
Big cost is maintenance
Writing maintainable code is hard
More Surviving Pound
Foolish Zombies
Stop record and playback
Refactor recorded tests to make them
expressive, resilient, maintainable
Use real programmers...
with the experience to value maintainability...
and the programming skill
to write maintainable test code
Displacement
Zombies
The Automate Last Zombie
Appeal
“Can’t automate tests before system is written”
Danger
Feedback is delayed
The system is harder to test
(not designed for testability)
Missed opportunity
to use tests as guidance
The Dedicated Test
Automator Zombie
Appeal
Keep developers focused on developing
Danger
Test automation lags development
Feedback is delayed
Typically uses less-skilled programmers
The Test Automation
Group Zombie
Appeal
Keep entire development team
focused on developing
Danger
Same as dedicated test automators
Organizational boundaries
make delays even worse
Surviving Displacement
Zombies
Create automatable examples
before development begins
Developers automate tests
Done includes test automation
Math
Zombies
The Test Case Count
Zombie
Appeal
Confidence that the system is tested
Danger
Focuses on ease of automating each test
Instead of on the value of the tests
The Code Coverage
Zombie
Appeal
Confidence that the system is tested
Danger
Confidence is unwarranted
(executed does not mean tested)
Surviving Math
Zombies
Focus on automating tests
that provide value
Use code coverage tools
only to identify what is not tested
Stealth
Zombies
The Dedicated First
Responder Zombie
Appeal
Relieves the development team from having
to run, maintain, respond to tests
Danger
Delays feedback
(through first responders)
The Hide the Broken
Feature Zombie
(Disable tests for known-broken features)

Appeal
Reduce distraction by known failures
Danger
Reduces urgency to fix the features
The Hide the Flaky Test
Zombie
(Disable or ignore flaky tests)

Appeal
Reduce wasted effort diagnosing tests
Danger
Discards potentially useful test results
Reduces urgency to make tests more robust
The Automatic Rerun
Zombie
Appeal
Reduce wasted effort diagnosing tests
Danger
Discards potentially useful test results
Reduces motivation to make tests more robust
Increases suite run time
Surviving Stealth Zombies
Fix flaky tests now
Fix broken features now
Bypass flaky technology
Analyze every failure
Include automated tests
in code promotion procedures
Reserve automatic reruns for exceptional cases
Hacker
Zombies
The Fixed Wait Zombie
Thread.sleep(8000);

Appeal
Easy way to deal with variable response times
Danger
Fixed waits always increase
Test suite execution time
becomes maximally pessimistic
Surviving The Fixed
Wait Zombie
Bypass slow, variable technologies
Poll for the relevant condition
Arrange to be notified
when the condition becomes satisfied
Create a utility for fixed waits
Instrument the utility
to gather information
The Dependency Chain
Zombie
Appeal
Speed up test suites
Danger
Prevents running tests independently
Skips subsequent tests
even if they would provide value
Harder to understand
what responsibility each test is testing
Surviving The Dependency
Chain Zombie
Make tests independent
Bypass slow technologies
for setup and verification
Let each test
establish its own preconditions
The Predefined Test
Database Zombie
Appeal
Speed up test suites
Often already exists for manual testing
Danger
Hides essential details from test code
Harder to understand what responsibility
each test is testing
Surviving The Predefined
Test Database Zombie
Express every essential detail
directly in the text of the test code
Let each test
create its own data
Use the builder pattern
to create non-trivial test data
The Chewy GUI Zombie
(Testing only through the GUI)

Appeal
Available and accessible to automators
Tests whole system
Danger
Makes tests dependent on most volatile interface
Increases test execution time
Harder to diagnose failures
Surviving
The Chewy GUI Zombie
Bypass the GUI whenever it is
not essential
for the test
Now You Know
How to Survive the
Coming Test Automation
Zombie Apocalypse
Dale Emery
http://dhemery.com
@dhemery

More Related Content

Viewers also liked

Viewers also liked (8)

Leveraging Core Values for Healthier, More Productive Teams
Leveraging Core Values for Healthier, More Productive TeamsLeveraging Core Values for Healthier, More Productive Teams
Leveraging Core Values for Healthier, More Productive Teams
 
Become a Big Data Quality Hero
Become a Big Data Quality HeroBecome a Big Data Quality Hero
Become a Big Data Quality Hero
 
Testing After You’ve Finished Testing
Testing After You’ve Finished TestingTesting After You’ve Finished Testing
Testing After You’ve Finished Testing
 
The Mindset Change for the Agile Tester
The Mindset Change for the Agile TesterThe Mindset Change for the Agile Tester
The Mindset Change for the Agile Tester
 
Measurement and Metrics for Test Managers
Measurement and Metrics for Test ManagersMeasurement and Metrics for Test Managers
Measurement and Metrics for Test Managers
 
An Introduction to SAFe: The Scaled Agile Framework
An Introduction to SAFe: The Scaled Agile FrameworkAn Introduction to SAFe: The Scaled Agile Framework
An Introduction to SAFe: The Scaled Agile Framework
 
Test Estimation for Managers
Test Estimation for Managers Test Estimation for Managers
Test Estimation for Managers
 
Keynote: Surviving or Thriving: Top Ten Lessons for the Professional Tester
Keynote: Surviving or Thriving: Top Ten Lessons for the Professional TesterKeynote: Surviving or Thriving: Top Ten Lessons for the Professional Tester
Keynote: Surviving or Thriving: Top Ten Lessons for the Professional Tester
 

Similar to How to Survive the Coming Test Automation Zombie Apocalypse

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
Peter Presnell
 
Basics of Software Testing
Basics of Software TestingBasics of Software Testing
Basics of Software Testing
Shakal Shukla
 
Acceptance testfurureinmind
Acceptance testfurureinmindAcceptance testfurureinmind
Acceptance testfurureinmind
LeanDog
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
Mary Clemons
 
Automated Unit Testing for Mere Mortals
Automated Unit Testing for Mere MortalsAutomated Unit Testing for Mere Mortals
Automated Unit Testing for Mere Mortals
Jess Chadwick
 
Testing and TDD - KoJUG
Testing and TDD - KoJUGTesting and TDD - KoJUG
Testing and TDD - KoJUG
lburdz
 

Similar to How to Survive the Coming Test Automation Zombie Apocalypse (20)

Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
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
 
Basics of Software Testing
Basics of Software TestingBasics of Software Testing
Basics of Software Testing
 
Fail to Rise - Automation & DevOps Stories
Fail to Rise - Automation & DevOps StoriesFail to Rise - Automation & DevOps Stories
Fail to Rise - Automation & DevOps Stories
 
Acceptance testfurureinmind
Acceptance testfurureinmindAcceptance testfurureinmind
Acceptance testfurureinmind
 
5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing5-Ways-to-Revolutionize-Your-Software-Testing
5-Ways-to-Revolutionize-Your-Software-Testing
 
Automatic for the People
Automatic for the PeopleAutomatic for the People
Automatic for the People
 
The Developer’s Guide to Test Automation
The Developer’s Guide to Test AutomationThe Developer’s Guide to Test Automation
The Developer’s Guide to Test Automation
 
Waste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia MeetupWaste Driven Development - Agile Coaching Serbia Meetup
Waste Driven Development - Agile Coaching Serbia Meetup
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
Lemi Orhan Ergin - Code Your Agility: Tips for Boosting Technical Agility in ...
 
Automated Unit Testing for Mere Mortals
Automated Unit Testing for Mere MortalsAutomated Unit Testing for Mere Mortals
Automated Unit Testing for Mere Mortals
 
Automated tests
Automated testsAutomated tests
Automated tests
 
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
 
Introduction To Pc Security
Introduction To Pc SecurityIntroduction To Pc Security
Introduction To Pc Security
 
Introduction To Pc Security
Introduction To Pc SecurityIntroduction To Pc Security
Introduction To Pc Security
 
Introduction To Pc Security
Introduction To Pc SecurityIntroduction To Pc Security
Introduction To Pc Security
 
Browser based testing
Browser based testingBrowser based testing
Browser based testing
 
Automated Battle Scars Se Conf 2011
Automated Battle Scars Se Conf 2011Automated Battle Scars Se Conf 2011
Automated Battle Scars Se Conf 2011
 
Testing and TDD - KoJUG
Testing and TDD - KoJUGTesting and TDD - KoJUG
Testing and TDD - KoJUG
 

More from TechWell

More from TechWell (20)

Failing and Recovering
Failing and RecoveringFailing and Recovering
Failing and Recovering
 
Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization Instill a DevOps Testing Culture in Your Team and Organization
Instill a DevOps Testing Culture in Your Team and Organization
 
Test Design for Fully Automated Build Architecture
Test Design for Fully Automated Build ArchitectureTest Design for Fully Automated Build Architecture
Test Design for Fully Automated Build Architecture
 
System-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good StartSystem-Level Test Automation: Ensuring a Good Start
System-Level Test Automation: Ensuring a Good Start
 
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
 
Testing Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for SuccessTesting Transformation: The Art and Science for Success
Testing Transformation: The Art and Science for Success
 
Implement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlowImplement BDD with Cucumber and SpecFlow
Implement BDD with Cucumber and SpecFlow
 
Develop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your SanityDevelop WebDriver Automated Tests—and Keep Your Sanity
Develop WebDriver Automated Tests—and Keep Your Sanity
 
Ma 15
Ma 15Ma 15
Ma 15
 
Eliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps StrategyEliminate Cloud Waste with a Holistic DevOps Strategy
Eliminate Cloud Waste with a Holistic DevOps Strategy
 
Transform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOpsTransform Test Organizations for the New World of DevOps
Transform Test Organizations for the New World of DevOps
 
The Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—LeadershipThe Fourth Constraint in Project Delivery—Leadership
The Fourth Constraint in Project Delivery—Leadership
 
Resolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile TeamsResolve the Contradiction of Specialists within Agile Teams
Resolve the Contradiction of Specialists within Agile Teams
 
Pin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile GamePin the Tail on the Metric: A Field-Tested Agile Game
Pin the Tail on the Metric: A Field-Tested Agile Game
 
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile TeamsAgile Performance Holarchy (APH)—A Model for Scaling Agile Teams
Agile Performance Holarchy (APH)—A Model for Scaling Agile Teams
 
A Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps ImplementationA Business-First Approach to DevOps Implementation
A Business-First Approach to DevOps Implementation
 
Databases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery ProcessDatabases in a Continuous Integration/Delivery Process
Databases in a Continuous Integration/Delivery Process
 
Mobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to AutomateMobile Testing: What—and What Not—to Automate
Mobile Testing: What—and What Not—to Automate
 
Cultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for SuccessCultural Intelligence: A Key Skill for Success
Cultural Intelligence: A Key Skill for Success
 
Turn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile TransformationTurn the Lights On: A Power Utility Company's Agile Transformation
Turn the Lights On: A Power Utility Company's Agile Transformation
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
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 slide
vu2urc
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 

Recently uploaded (20)

Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[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
 
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)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

How to Survive the Coming Test Automation Zombie Apocalypse

  • 1.     BT8 Session  6/6/2013 2:15 PM                “How to Survive the Coming Test Automation Zombie Apocalypse"       Presented by: Dale Emery DHE                   Brought to you by:        340 Corporate Way, Suite 300, Orange Park, FL 32073  888‐268‐8770 ∙ 904‐278‐0524 ∙ sqeinfo@sqe.com ∙ www.sqe.com
  • 2. Dale Emery DHE Since 1980, Dale Emery has worked in both IT organizations and software product development companies as a developer, manager, process steward, trainer, and consultant. He helps people apply the agile values of communication, feedback, simplicity, courage, and respect to software development. Dale's combination of deep technical expertise and extensive organizational development experience makes him particularly effective in working with software teams. In 2007 Dale received the Ward Cunningham Gentle Voice of Reason Award, which the Agile Alliance created to recognize Dale’s unique contribution to the agile community. Dale's personal mission is to help people create joy, value, and meaning in their work. Learn more about Dale at dhemery.com.  
  • 3. How to Survive the Coming Test Automation Zombie Apocalypse Dale Emery http://dhemery.com @dhemery
  • 5. The Trouble With Zombies Legion Relentless Infectious Eat your brains Usually not as pretty as the one on the previous slide
  • 6. Test Automation Zombies Legion Relentless Infectious Eat your brains Look just like ideas Oddly attractive
  • 7. The Trouble with Test Automation Zombies Sometimes the best you can do They are easy Lull you into doing them by habit Focus on the short term At the expense of the (not-so-)long term
  • 9. The Record and Playback Zombie Appeal Lots of tests quickly, (almost) for free Danger Recorded tests are unexpressive, brittle, unmaintainable Can’t record tests until the software is done
  • 10. The Automation is Easy Zombie Appeal Inexpensive automators Danger Tests written by unskilled programmers are unexpressive, brittle, unmaintainable
  • 11. Surviving Pound Foolish Zombies Remember: Test automation is real software development Test automation takes time Big cost is maintenance Writing maintainable code is hard
  • 12. More Surviving Pound Foolish Zombies Stop record and playback Refactor recorded tests to make them expressive, resilient, maintainable Use real programmers... with the experience to value maintainability... and the programming skill to write maintainable test code
  • 14. The Automate Last Zombie Appeal “Can’t automate tests before system is written” Danger Feedback is delayed The system is harder to test (not designed for testability) Missed opportunity to use tests as guidance
  • 15. The Dedicated Test Automator Zombie Appeal Keep developers focused on developing Danger Test automation lags development Feedback is delayed Typically uses less-skilled programmers
  • 16. The Test Automation Group Zombie Appeal Keep entire development team focused on developing Danger Same as dedicated test automators Organizational boundaries make delays even worse
  • 17. Surviving Displacement Zombies Create automatable examples before development begins Developers automate tests Done includes test automation
  • 19. The Test Case Count Zombie Appeal Confidence that the system is tested Danger Focuses on ease of automating each test Instead of on the value of the tests
  • 20. The Code Coverage Zombie Appeal Confidence that the system is tested Danger Confidence is unwarranted (executed does not mean tested)
  • 21. Surviving Math Zombies Focus on automating tests that provide value Use code coverage tools only to identify what is not tested
  • 23. The Dedicated First Responder Zombie Appeal Relieves the development team from having to run, maintain, respond to tests Danger Delays feedback (through first responders)
  • 24. The Hide the Broken Feature Zombie (Disable tests for known-broken features) Appeal Reduce distraction by known failures Danger Reduces urgency to fix the features
  • 25. The Hide the Flaky Test Zombie (Disable or ignore flaky tests) Appeal Reduce wasted effort diagnosing tests Danger Discards potentially useful test results Reduces urgency to make tests more robust
  • 26. The Automatic Rerun Zombie Appeal Reduce wasted effort diagnosing tests Danger Discards potentially useful test results Reduces motivation to make tests more robust Increases suite run time
  • 27. Surviving Stealth Zombies Fix flaky tests now Fix broken features now Bypass flaky technology Analyze every failure Include automated tests in code promotion procedures Reserve automatic reruns for exceptional cases
  • 29. The Fixed Wait Zombie Thread.sleep(8000); Appeal Easy way to deal with variable response times Danger Fixed waits always increase Test suite execution time becomes maximally pessimistic
  • 30. Surviving The Fixed Wait Zombie Bypass slow, variable technologies Poll for the relevant condition Arrange to be notified when the condition becomes satisfied Create a utility for fixed waits Instrument the utility to gather information
  • 31. The Dependency Chain Zombie Appeal Speed up test suites Danger Prevents running tests independently Skips subsequent tests even if they would provide value Harder to understand what responsibility each test is testing
  • 32. Surviving The Dependency Chain Zombie Make tests independent Bypass slow technologies for setup and verification Let each test establish its own preconditions
  • 33. The Predefined Test Database Zombie Appeal Speed up test suites Often already exists for manual testing Danger Hides essential details from test code Harder to understand what responsibility each test is testing
  • 34. Surviving The Predefined Test Database Zombie Express every essential detail directly in the text of the test code Let each test create its own data Use the builder pattern to create non-trivial test data
  • 35. The Chewy GUI Zombie (Testing only through the GUI) Appeal Available and accessible to automators Tests whole system Danger Makes tests dependent on most volatile interface Increases test execution time Harder to diagnose failures
  • 36. Surviving The Chewy GUI Zombie Bypass the GUI whenever it is not essential for the test
  • 37. Now You Know How to Survive the Coming Test Automation Zombie Apocalypse Dale Emery http://dhemery.com @dhemery