SlideShare una empresa de Scribd logo
1 de 43
Testing Antipatterns ,[object Object],[object Object]
Anti - What?
Antipattern ( Dark Pattern ): ,[object Object]
 
Who has an extensive test suite?
Who feels like they should test more?
Who dislikes, even dreads, writing tests?
Testing Can Be Fun Text Text Text Text http://xkcd.com/583/
For example:
Red   Green  TDD Addiction
Testing Framework Games (although these can be a distraction) (although these can be a distraction)
Not looking like an idiot - that’s fun right?
Why Automated Testing? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Overheard Reasons Not to Test ,[object Object],[object Object],[object Object],[object Object],[object Object]
Antipatterns that have bitten me the most
Not Running Tests Often Enough
If it’s Hard and Important Do it More Often
testing, deploying, releasing, exercising, meditating, writing, public speaking
How Often? ,[object Object],[object Object],[object Object],[object Object]
Not Fixing Broken Tests Before Committing New Code
The Slowpoke
How Slow Is Too Slow?
Unit Test Suite Took 8 Hours to Run - On One Project
Single Test Took 2 Minutes to Start
So slow that rewriting it in PHP would make it faster
How to Get Faster ,[object Object],[object Object],[object Object],[object Object]
The Mockery
Why mock when the real things will do?
Testing at the Wrong Level
unit, smoke, functional, integration, acceptance
Success Against All Odds (test never fails) (test never fails)
 
Testing Implementation Instead of Behavior
Testing Implementation
Testing Behavior
Order Dependent Failures
You’ve got too much global state
Excessive Setup
What are we testing again?
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Other Antipatterns
Summary
Avoid Antipatterns and Testing Can Be Fun
Links ,[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Reliable tests with selenium web driver
Reliable tests with selenium web driverReliable tests with selenium web driver
Reliable tests with selenium web driver
PawelPabich
 
STARWest: Make Your Team Awesome, Yes You Can!
STARWest: Make Your Team Awesome, Yes You Can!STARWest: Make Your Team Awesome, Yes You Can!
STARWest: Make Your Team Awesome, Yes You Can!
Maaret Pyhäjärvi
 

La actualidad más candente (20)

Maybe We Don’t Have to Test It
Maybe We Don’t Have to Test ItMaybe We Don’t Have to Test It
Maybe We Don’t Have to Test It
 
Collaborative testingultimateoverview
Collaborative testingultimateoverviewCollaborative testingultimateoverview
Collaborative testingultimateoverview
 
Level Up Your Automated Tests
Level Up Your Automated TestsLevel Up Your Automated Tests
Level Up Your Automated Tests
 
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating ImprovementATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
ATAGTR Keynote: I have a rock in my shoe - Navigating Improvement
 
PHP unit testing - good and bad practices
PHP unit testing - good and bad practicesPHP unit testing - good and bad practices
PHP unit testing - good and bad practices
 
Reliable tests with selenium web driver
Reliable tests with selenium web driverReliable tests with selenium web driver
Reliable tests with selenium web driver
 
TestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testingTestWorksConf: Experience exploratory testing
TestWorksConf: Experience exploratory testing
 
Worst practices in software testing by the Testing troll
Worst practices in software testing by the Testing trollWorst practices in software testing by the Testing troll
Worst practices in software testing by the Testing troll
 
Hands off Exploratory Testing - Managing Testing at Scale
Hands off Exploratory Testing - Managing Testing at ScaleHands off Exploratory Testing - Managing Testing at Scale
Hands off Exploratory Testing - Managing Testing at Scale
 
Break to build - the mindset of the modern day tester
Break to build - the mindset of the modern day testerBreak to build - the mindset of the modern day tester
Break to build - the mindset of the modern day tester
 
Test automation – the bitter truth
Test automation – the bitter truthTest automation – the bitter truth
Test automation – the bitter truth
 
AppiumLite Keynote: Many Hats to Make a Tester
AppiumLite Keynote: Many Hats to Make a TesterAppiumLite Keynote: Many Hats to Make a Tester
AppiumLite Keynote: Many Hats to Make a Tester
 
"Worst" practices of software testing
"Worst" practices of software testing"Worst" practices of software testing
"Worst" practices of software testing
 
Automation vs. intelligence - "follow me if you want to live"
Automation vs. intelligence - "follow me if you want to live"Automation vs. intelligence - "follow me if you want to live"
Automation vs. intelligence - "follow me if you want to live"
 
SLASSCOM: Breaking illusions with Testing
SLASSCOM: Breaking illusions with TestingSLASSCOM: Breaking illusions with Testing
SLASSCOM: Breaking illusions with Testing
 
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)03 -  chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
03 - chomu prohramisty ne testuiut - yurii chulovskyi - it event 2013 (5)
 
Code Review Matters and Manners
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and Manners
 
STARWest: Make Your Team Awesome, Yes You Can!
STARWest: Make Your Team Awesome, Yes You Can!STARWest: Make Your Team Awesome, Yes You Can!
STARWest: Make Your Team Awesome, Yes You Can!
 
Selenium Conference India: Intersection of Automation and Exploratory Testing
Selenium Conference India: Intersection of Automation and Exploratory TestingSelenium Conference India: Intersection of Automation and Exploratory Testing
Selenium Conference India: Intersection of Automation and Exploratory Testing
 
Selenium Users Anonymous
Selenium Users AnonymousSelenium Users Anonymous
Selenium Users Anonymous
 

Destacado (7)

Fighting Fear-Driven-Development With PHPUnit
Fighting Fear-Driven-Development With PHPUnitFighting Fear-Driven-Development With PHPUnit
Fighting Fear-Driven-Development With PHPUnit
 
Make Everyone a Tester: Natural Language Acceptance Testing
Make Everyone a Tester: Natural Language Acceptance TestingMake Everyone a Tester: Natural Language Acceptance Testing
Make Everyone a Tester: Natural Language Acceptance Testing
 
Coursera, Understanding the Brain
Coursera, Understanding the BrainCoursera, Understanding the Brain
Coursera, Understanding the Brain
 
Code smells in PHP
Code smells in PHPCode smells in PHP
Code smells in PHP
 
No Longer Slaves to Fear- 12 Powerful Truths to Help You Defeat Fear in 2016
No Longer Slaves to Fear- 12 Powerful Truths to Help You Defeat Fear in 2016No Longer Slaves to Fear- 12 Powerful Truths to Help You Defeat Fear in 2016
No Longer Slaves to Fear- 12 Powerful Truths to Help You Defeat Fear in 2016
 
Parallel testing overview
Parallel testing overviewParallel testing overview
Parallel testing overview
 
Reliable acceptance testing
Reliable acceptance testingReliable acceptance testing
Reliable acceptance testing
 

Similar a Open source bridge testing antipatterns presentation

An Introduction to unit testing
An Introduction to unit testingAn Introduction to unit testing
An Introduction to unit testing
Steven Casey
 
Testing and TDD - KoJUG
Testing and TDD - KoJUGTesting and TDD - KoJUG
Testing and TDD - KoJUG
lburdz
 

Similar a Open source bridge testing antipatterns presentation (20)

An Introduction to unit testing
An Introduction to unit testingAn Introduction to unit testing
An Introduction to unit testing
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
 
Tests antipatterns
Tests antipatternsTests antipatterns
Tests antipatterns
 
Test-Driven Development
 Test-Driven Development  Test-Driven Development
Test-Driven Development
 
Test Drive Development
Test Drive DevelopmentTest Drive Development
Test Drive Development
 
TDD Best Practices
TDD Best PracticesTDD Best Practices
TDD Best Practices
 
Win at life with unit testing
Win at life with unit testingWin at life with unit testing
Win at life with unit testing
 
TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019TDD and Simple Design Workshop - Session 1 - March 2019
TDD and Simple Design Workshop - Session 1 - March 2019
 
Testing smells
Testing smellsTesting smells
Testing smells
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
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
 
Fantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test DesignFantastic Tests - The Crimes of Bad Test Design
Fantastic Tests - The Crimes of Bad Test Design
 
Testing and TDD - KoJUG
Testing and TDD - KoJUGTesting and TDD - KoJUG
Testing and TDD - KoJUG
 
TDD Flow: The Mantra in Action
TDD Flow: The Mantra in ActionTDD Flow: The Mantra in Action
TDD Flow: The Mantra in Action
 
Completely Test-Driven
Completely Test-DrivenCompletely Test-Driven
Completely Test-Driven
 
Test Driven
Test DrivenTest Driven
Test Driven
 
Big Data Makes The Flake Go Away
Big Data Makes The Flake Go AwayBig Data Makes The Flake Go Away
Big Data Makes The Flake Go Away
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
Real Life Unit Testing
Real Life Unit TestingReal Life Unit Testing
Real Life Unit Testing
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Último (20)

Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
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
 
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
 
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...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
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...
 
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
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
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...
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 

Open source bridge testing antipatterns presentation

Notas del editor

  1. Ask questions whenever you want
  2. Talk about Design Patterns general reusable solution to a commonly occurring problem
  3. Realized while writing this talk that I was focusing on what pissed me off and made me not want to talk about it. Should be humor in testing.
  4. Red failing Green passing
  5. Not really an antipattern since it’s really only solving being lazy
  6. CI essentially glorified cron job
  7. The Joel Test #5: Fix bugs before writing new code Mention Lava Lamps
  8. Martin Fowler Mocks aren't Stubs. Never met a mockist whose tests I liked. Not mocking means mini integration tests. Possibly controversial. When to mock: code you don't control - file system, web server, external libraries like ssl
  9. Too much mocking might indicate this
  10. Everyone has their own terms
  11. Test Driven Development prevents this
  12. Behaviour Driven Development is a larger term with more meaning
  13. These are annoying but can’t be ignored. How to find these failures - binary search.
  14. Testing antipatterns can indicate antipatterns in your implementation code
  15. Data driven web apps tend to be even worse