SlideShare a Scribd company logo
1 of 35
Testing
Finding the Middle Path




                          source: http://flic.kr/p/6v82qN
The
Flickr
Way




         source: http://flic.kr/p/6MQYyj
The QA Way




             source: http://flic.kr/p/tvUHq
Test Everything Way




                      source: http://flic.kr/p/7kKDuo
TATFT




        source: http://flic.kr/p/7kKDuo
Test All The Fucking Time




                       source: http://flic.kr/p/7kKDuo
Overloaded With Tests




                    source: http://flic.kr/p/GNhm3
Balance




          source: http://flic.kr/p/3enph8
Finding The Way




                  source: http://flic.kr/p/5tZaUe
On Rails




           source: http://flic.kr/p/4WR1F9
Test All At Once




                   source: http://flic.kr/p/7ZSbRQ
Don’t Test To Narrowly




                     source: http://flic.kr/p/6Zeo1V
Don’t Test To Broadly




                        source: http://flic.kr/p/7azreS
Testing What
Is Already Tested




                    source: http://flic.kr/p/3c89jn
The Database
Cucumber




           source: http://flic.kr/p/5aZYkP
What You Should Do




                     source: http://flic.kr/p/7qQZni
Integration




              source: http://flic.kr/p/kZtKo
Test The Bugs




                source: http://flic.kr/p/JAE3v
Refactoring




              source: http://flic.kr/p/88X9DY
Test Then Change




                   source: http://flic.kr/p/aCDk7
Mocky Stubbly Things




                       source: http://flic.kr/p/6Q6en
Make Tests Fast




                  source: http://flic.kr/p/5tZaUe
Make Tests Fast

          TESTING




    TESTING!




                    source: http://flic.kr/p/5tZaUe
Fixtures


light fixture?




                source: http://flic.kr/p/5tZaUe
Data For Tests




                 source: http://flic.kr/p/5tZaUe
true is not false




                    source: http://flic.kr/p/5tZaUe
Tests Aren’t DRY




                   source: http://flic.kr/p/5tZaUe
They’re Damp




               source: http://flic.kr/p/5tZaUe
Atomic




         source: http://flic.kr/p/5tZaUe
Atomic Failure




                 source: http://flic.kr/p/5tZaUe
Outside In




             source: http://flic.kr/p/4KgEv
Self Contained




                 source: http://flic.kr/p/5ZFbHE
Red Green




            source: http://flic.kr/p/5tZaUe
That’s My Middle Path
@rabble - cuboxsa.com




                        source: http://flic.kr/p/6v82qN

More Related Content

What's hot

Composting Wormshop
Composting WormshopComposting Wormshop
Composting Wormshopwormlady
 
Painless and Free Vocabulary Education
Painless and Free Vocabulary EducationPainless and Free Vocabulary Education
Painless and Free Vocabulary EducationJohn Allan
 
Senior Seminar
Senior SeminarSenior Seminar
Senior Seminarcortesm287
 
Radar Lowe N.1
Radar Lowe N.1Radar Lowe N.1
Radar Lowe N.1LoweLisboa
 
An introduction to FACTC-Faculty Association of Community & Technical Colleges
An introduction to FACTC-Faculty Association of Community & Technical CollegesAn introduction to FACTC-Faculty Association of Community & Technical Colleges
An introduction to FACTC-Faculty Association of Community & Technical CollegesPhil Venditti
 
Pecha kucha ux (TechMeetup Glasgow)
Pecha kucha ux (TechMeetup Glasgow)Pecha kucha ux (TechMeetup Glasgow)
Pecha kucha ux (TechMeetup Glasgow)Craig Nicol
 
Dixon james ppp-slide
Dixon james ppp-slideDixon james ppp-slide
Dixon james ppp-slidedxn_jms
 
When the Best is Free: Images
When the Best is Free: ImagesWhen the Best is Free: Images
When the Best is Free: ImagesKatie Christo
 
Scoring zarafa with sos open source
Scoring zarafa with sos open sourceScoring zarafa with sos open source
Scoring zarafa with sos open sourceRoberto Galoppini
 

What's hot (13)

Composting Wormshop
Composting WormshopComposting Wormshop
Composting Wormshop
 
Jay
JayJay
Jay
 
Painless and Free Vocabulary Education
Painless and Free Vocabulary EducationPainless and Free Vocabulary Education
Painless and Free Vocabulary Education
 
Senior Seminar
Senior SeminarSenior Seminar
Senior Seminar
 
SS PP
SS PPSS PP
SS PP
 
1 01-13
1 01-131 01-13
1 01-13
 
Radar Lowe N.1
Radar Lowe N.1Radar Lowe N.1
Radar Lowe N.1
 
An introduction to FACTC-Faculty Association of Community & Technical Colleges
An introduction to FACTC-Faculty Association of Community & Technical CollegesAn introduction to FACTC-Faculty Association of Community & Technical Colleges
An introduction to FACTC-Faculty Association of Community & Technical Colleges
 
Pecha kucha ux (TechMeetup Glasgow)
Pecha kucha ux (TechMeetup Glasgow)Pecha kucha ux (TechMeetup Glasgow)
Pecha kucha ux (TechMeetup Glasgow)
 
Torrents site
Torrents siteTorrents site
Torrents site
 
Dixon james ppp-slide
Dixon james ppp-slideDixon james ppp-slide
Dixon james ppp-slide
 
When the Best is Free: Images
When the Best is Free: ImagesWhen the Best is Free: Images
When the Best is Free: Images
 
Scoring zarafa with sos open source
Scoring zarafa with sos open sourceScoring zarafa with sos open source
Scoring zarafa with sos open source
 

Viewers also liked

CoDesign CMS.362/CMS.862 MIT Evolution of Product Design
CoDesign CMS.362/CMS.862 MIT Evolution of Product DesignCoDesign CMS.362/CMS.862 MIT Evolution of Product Design
CoDesign CMS.362/CMS.862 MIT Evolution of Product DesignRabble .
 
PR in a Social CRM World (for PRSA)
PR in a Social CRM World (for PRSA)PR in a Social CRM World (for PRSA)
PR in a Social CRM World (for PRSA)Jacob Morgan
 
Chill out dude, it’s only Social CRM
Chill out dude, it’s only Social CRMChill out dude, it’s only Social CRM
Chill out dude, it’s only Social CRMNicolas Moerman
 
How Social CRM Can Help Address Changing Consumer Demands
How Social CRM Can Help Address Changing Consumer DemandsHow Social CRM Can Help Address Changing Consumer Demands
How Social CRM Can Help Address Changing Consumer DemandsFabio Cipriani
 
C-Store Loyalty Pilot Program
C-Store Loyalty Pilot ProgramC-Store Loyalty Pilot Program
C-Store Loyalty Pilot ProgramAnup Deshmukh
 
Top tips for earning air miles
Top tips for earning air miles Top tips for earning air miles
Top tips for earning air miles Aaron Wong
 
Social Crm 2012 - "Social CRM is a monkey hat" @mailchimp
Social Crm 2012 - "Social CRM is a monkey hat" @mailchimpSocial Crm 2012 - "Social CRM is a monkey hat" @mailchimp
Social Crm 2012 - "Social CRM is a monkey hat" @mailchimpGummy Industries
 
The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...
The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...
The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...Digital Alchemy Limited
 
Nescafe brand activation
Nescafe brand activationNescafe brand activation
Nescafe brand activationLena Addy
 
A Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG Heuer
A Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG HeuerA Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG Heuer
A Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG HeuerDr. Asokendu Samanta
 
Omega Brand Presentation
Omega Brand PresentationOmega Brand Presentation
Omega Brand PresentationTingting Zhang
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerLuminary Labs
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkVolker Hirsch
 

Viewers also liked (16)

CoDesign CMS.362/CMS.862 MIT Evolution of Product Design
CoDesign CMS.362/CMS.862 MIT Evolution of Product DesignCoDesign CMS.362/CMS.862 MIT Evolution of Product Design
CoDesign CMS.362/CMS.862 MIT Evolution of Product Design
 
USFIA ENGLISH
USFIA ENGLISHUSFIA ENGLISH
USFIA ENGLISH
 
PR in a Social CRM World (for PRSA)
PR in a Social CRM World (for PRSA)PR in a Social CRM World (for PRSA)
PR in a Social CRM World (for PRSA)
 
Chill out dude, it’s only Social CRM
Chill out dude, it’s only Social CRMChill out dude, it’s only Social CRM
Chill out dude, it’s only Social CRM
 
How Social CRM Can Help Address Changing Consumer Demands
How Social CRM Can Help Address Changing Consumer DemandsHow Social CRM Can Help Address Changing Consumer Demands
How Social CRM Can Help Address Changing Consumer Demands
 
C-Store Loyalty Pilot Program
C-Store Loyalty Pilot ProgramC-Store Loyalty Pilot Program
C-Store Loyalty Pilot Program
 
Top tips for earning air miles
Top tips for earning air miles Top tips for earning air miles
Top tips for earning air miles
 
loyalty card
loyalty cardloyalty card
loyalty card
 
Social Crm 2012 - "Social CRM is a monkey hat" @mailchimp
Social Crm 2012 - "Social CRM is a monkey hat" @mailchimpSocial Crm 2012 - "Social CRM is a monkey hat" @mailchimp
Social Crm 2012 - "Social CRM is a monkey hat" @mailchimp
 
The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...
The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...
The (Ugly) Truth of the Loyalty Point Program: What Marketers Say VS What Cus...
 
Nescafe brand activation
Nescafe brand activationNescafe brand activation
Nescafe brand activation
 
A Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG Heuer
A Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG HeuerA Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG Heuer
A Marketing Analysis of Four Brands of Watches: HMT, Titan, Swatch, TAG Heuer
 
Omega Brand Presentation
Omega Brand PresentationOmega Brand Presentation
Omega Brand Presentation
 
Rolex Marketing Plan
Rolex Marketing PlanRolex Marketing Plan
Rolex Marketing Plan
 
Hype vs. Reality: The AI Explainer
Hype vs. Reality: The AI ExplainerHype vs. Reality: The AI Explainer
Hype vs. Reality: The AI Explainer
 
TEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of WorkTEDx Manchester: AI & The Future of Work
TEDx Manchester: AI & The Future of Work
 

Similar to Finding the Middle Way of Testing

Aguero Rae PPP Final Slideshow
Aguero Rae PPP Final SlideshowAguero Rae PPP Final Slideshow
Aguero Rae PPP Final SlideshowRae Aguero
 
Professional Through Experience- By John R. Hansen
Professional Through Experience- By John R. HansenProfessional Through Experience- By John R. Hansen
Professional Through Experience- By John R. HansenJohn Hansen
 
Floyd nathan 4.4_ppp_final_slide_show
Floyd nathan 4.4_ppp_final_slide_showFloyd nathan 4.4_ppp_final_slide_show
Floyd nathan 4.4_ppp_final_slide_shownathanhfloyd
 
Wesley Luttrell PPP Final Slideshow 4.4
Wesley Luttrell PPP Final Slideshow 4.4 Wesley Luttrell PPP Final Slideshow 4.4
Wesley Luttrell PPP Final Slideshow 4.4 Wes Luttrell
 
Ridgway Final PPP Assignment 4.4
Ridgway Final PPP Assignment 4.4Ridgway Final PPP Assignment 4.4
Ridgway Final PPP Assignment 4.4logray4650
 
Donovan Fickett PPP Presentation
Donovan Fickett PPP PresentationDonovan Fickett PPP Presentation
Donovan Fickett PPP PresentationDonovan Fickett
 
Thawing the "Frozen Middle" - SGFLA
Thawing the "Frozen Middle" - SGFLAThawing the "Frozen Middle" - SGFLA
Thawing the "Frozen Middle" - SGFLAEm Campbell-Pretty
 
Final PPP Timothy Faulkenberry
Final PPP Timothy FaulkenberryFinal PPP Timothy Faulkenberry
Final PPP Timothy Faulkenberrytcberry15
 
Taylor Chapman 4.4 PPP
Taylor Chapman 4.4 PPPTaylor Chapman 4.4 PPP
Taylor Chapman 4.4 PPPTaylor Chapman
 
Taylor Chapman PPP
Taylor Chapman PPPTaylor Chapman PPP
Taylor Chapman PPPTrey Chapman
 
Terry long 4.4 ppp final slideshow
Terry long 4.4 ppp final slideshowTerry long 4.4 ppp final slideshow
Terry long 4.4 ppp final slideshowJaylong05
 
Dane Sickmeier PPP
Dane Sickmeier PPPDane Sickmeier PPP
Dane Sickmeier PPPDaneTaylorS
 
From employee to freelance developer in 10 steps - DevTeach - 2017-07-04
From employee to freelance developer in 10 steps - DevTeach - 2017-07-04From employee to freelance developer in 10 steps - DevTeach - 2017-07-04
From employee to freelance developer in 10 steps - DevTeach - 2017-07-04Frédéric Harper
 
A Make it or Break it Navigation
A Make it or Break it NavigationA Make it or Break it Navigation
A Make it or Break it NavigationAaron Quinn
 
Final PPP Presentation
Final PPP PresentationFinal PPP Presentation
Final PPP PresentationVanris99
 
Thawing the Frozen Middle: The role of Managers in organisations using Scrum
Thawing the Frozen Middle: The role of Managers in organisations using ScrumThawing the Frozen Middle: The role of Managers in organisations using Scrum
Thawing the Frozen Middle: The role of Managers in organisations using ScrumEm Campbell-Pretty
 
PPP Visual Final - Jade Baird
PPP Visual Final - Jade BairdPPP Visual Final - Jade Baird
PPP Visual Final - Jade BairdJade Baird
 
Spaulding glen ppp_final
Spaulding glen ppp_finalSpaulding glen ppp_final
Spaulding glen ppp_finalGlen Spaulding
 

Similar to Finding the Middle Way of Testing (20)

Aguero Rae PPP Final Slideshow
Aguero Rae PPP Final SlideshowAguero Rae PPP Final Slideshow
Aguero Rae PPP Final Slideshow
 
Professional Through Experience- By John R. Hansen
Professional Through Experience- By John R. HansenProfessional Through Experience- By John R. Hansen
Professional Through Experience- By John R. Hansen
 
Floyd nathan 4.4_ppp_final_slide_show
Floyd nathan 4.4_ppp_final_slide_showFloyd nathan 4.4_ppp_final_slide_show
Floyd nathan 4.4_ppp_final_slide_show
 
Wesley Luttrell PPP Final Slideshow 4.4
Wesley Luttrell PPP Final Slideshow 4.4 Wesley Luttrell PPP Final Slideshow 4.4
Wesley Luttrell PPP Final Slideshow 4.4
 
Rankin Stephanie 4.4
Rankin Stephanie 4.4Rankin Stephanie 4.4
Rankin Stephanie 4.4
 
Ridgway Final PPP Assignment 4.4
Ridgway Final PPP Assignment 4.4Ridgway Final PPP Assignment 4.4
Ridgway Final PPP Assignment 4.4
 
Donovan Fickett PPP Presentation
Donovan Fickett PPP PresentationDonovan Fickett PPP Presentation
Donovan Fickett PPP Presentation
 
Thawing the "Frozen Middle" - SGFLA
Thawing the "Frozen Middle" - SGFLAThawing the "Frozen Middle" - SGFLA
Thawing the "Frozen Middle" - SGFLA
 
Final PPP Timothy Faulkenberry
Final PPP Timothy FaulkenberryFinal PPP Timothy Faulkenberry
Final PPP Timothy Faulkenberry
 
Taylor Chapman 4.4 PPP
Taylor Chapman 4.4 PPPTaylor Chapman 4.4 PPP
Taylor Chapman 4.4 PPP
 
Taylor Chapman PPP
Taylor Chapman PPPTaylor Chapman PPP
Taylor Chapman PPP
 
Terry long 4.4 ppp final slideshow
Terry long 4.4 ppp final slideshowTerry long 4.4 ppp final slideshow
Terry long 4.4 ppp final slideshow
 
Dane Sickmeier PPP
Dane Sickmeier PPPDane Sickmeier PPP
Dane Sickmeier PPP
 
From employee to freelance developer in 10 steps - DevTeach - 2017-07-04
From employee to freelance developer in 10 steps - DevTeach - 2017-07-04From employee to freelance developer in 10 steps - DevTeach - 2017-07-04
From employee to freelance developer in 10 steps - DevTeach - 2017-07-04
 
A Make it or Break it Navigation
A Make it or Break it NavigationA Make it or Break it Navigation
A Make it or Break it Navigation
 
Final PPP Presentation
Final PPP PresentationFinal PPP Presentation
Final PPP Presentation
 
Thawing the Frozen Middle: The role of Managers in organisations using Scrum
Thawing the Frozen Middle: The role of Managers in organisations using ScrumThawing the Frozen Middle: The role of Managers in organisations using Scrum
Thawing the Frozen Middle: The role of Managers in organisations using Scrum
 
PPP Visual Final - Jade Baird
PPP Visual Final - Jade BairdPPP Visual Final - Jade Baird
PPP Visual Final - Jade Baird
 
Final ppp
Final pppFinal ppp
Final ppp
 
Spaulding glen ppp_final
Spaulding glen ppp_finalSpaulding glen ppp_final
Spaulding glen ppp_final
 

More from Rabble .

La Historia Secreta de Twitter & El Modelo de los Lean Startups
La Historia Secreta de Twitter & El Modelo de los  Lean StartupsLa Historia Secreta de Twitter & El Modelo de los  Lean Startups
La Historia Secreta de Twitter & El Modelo de los Lean StartupsRabble .
 
Ruby Culture
Ruby CultureRuby Culture
Ruby CultureRabble .
 
Desde Software Libre Hacia Datos Abiertos
Desde Software Libre Hacia Datos AbiertosDesde Software Libre Hacia Datos Abiertos
Desde Software Libre Hacia Datos AbiertosRabble .
 
Sobre Hombros de Gigantes: Desarrollo de tecnología y la historia secreto de...
Sobre Hombros de Gigantes: Desarrollo de tecnología y  la historia secreto de...Sobre Hombros de Gigantes: Desarrollo de tecnología y  la historia secreto de...
Sobre Hombros de Gigantes: Desarrollo de tecnología y la historia secreto de...Rabble .
 
Beyond Testing: Specs and Behavior Driven Development
Beyond Testing: Specs and Behavior  Driven DevelopmentBeyond Testing: Specs and Behavior  Driven Development
Beyond Testing: Specs and Behavior Driven DevelopmentRabble .
 
Beyond REST? Building Data Services with XMPP PubSub
Beyond REST? Building Data Services with XMPP PubSubBeyond REST? Building Data Services with XMPP PubSub
Beyond REST? Building Data Services with XMPP PubSubRabble .
 
Liberating Location - Fire Eagle - Ecomm 2008
Liberating Location - Fire Eagle - Ecomm 2008Liberating Location - Fire Eagle - Ecomm 2008
Liberating Location - Fire Eagle - Ecomm 2008Rabble .
 
Testing Legacy Rails Apps
Testing Legacy Rails AppsTesting Legacy Rails Apps
Testing Legacy Rails AppsRabble .
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Rabble .
 
Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Rabble .
 
Phone Communities and Activism Showcase
Phone Communities and Activism ShowcasePhone Communities and Activism Showcase
Phone Communities and Activism ShowcaseRabble .
 

More from Rabble . (11)

La Historia Secreta de Twitter & El Modelo de los Lean Startups
La Historia Secreta de Twitter & El Modelo de los  Lean StartupsLa Historia Secreta de Twitter & El Modelo de los  Lean Startups
La Historia Secreta de Twitter & El Modelo de los Lean Startups
 
Ruby Culture
Ruby CultureRuby Culture
Ruby Culture
 
Desde Software Libre Hacia Datos Abiertos
Desde Software Libre Hacia Datos AbiertosDesde Software Libre Hacia Datos Abiertos
Desde Software Libre Hacia Datos Abiertos
 
Sobre Hombros de Gigantes: Desarrollo de tecnología y la historia secreto de...
Sobre Hombros de Gigantes: Desarrollo de tecnología y  la historia secreto de...Sobre Hombros de Gigantes: Desarrollo de tecnología y  la historia secreto de...
Sobre Hombros de Gigantes: Desarrollo de tecnología y la historia secreto de...
 
Beyond Testing: Specs and Behavior Driven Development
Beyond Testing: Specs and Behavior  Driven DevelopmentBeyond Testing: Specs and Behavior  Driven Development
Beyond Testing: Specs and Behavior Driven Development
 
Beyond REST? Building Data Services with XMPP PubSub
Beyond REST? Building Data Services with XMPP PubSubBeyond REST? Building Data Services with XMPP PubSub
Beyond REST? Building Data Services with XMPP PubSub
 
Liberating Location - Fire Eagle - Ecomm 2008
Liberating Location - Fire Eagle - Ecomm 2008Liberating Location - Fire Eagle - Ecomm 2008
Liberating Location - Fire Eagle - Ecomm 2008
 
Testing Legacy Rails Apps
Testing Legacy Rails AppsTesting Legacy Rails Apps
Testing Legacy Rails Apps
 
Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007Introduction to Active Record at MySQL Conference 2007
Introduction to Active Record at MySQL Conference 2007
 
Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007Introduction to Active Record - Silicon Valley Ruby Conference 2007
Introduction to Active Record - Silicon Valley Ruby Conference 2007
 
Phone Communities and Activism Showcase
Phone Communities and Activism ShowcasePhone Communities and Activism Showcase
Phone Communities and Activism Showcase
 

Recently uploaded

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Hiroshi SHIBATA
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxfnnc6jmgwh
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesManik S Magar
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 

Recently uploaded (20)

Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024Long journey of Ruby standard library at RubyConf AU 2024
Long journey of Ruby standard library at RubyConf AU 2024
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptxGenerative AI - Gitex v1Generative AI - Gitex v1.pptx
Generative AI - Gitex v1Generative AI - Gitex v1.pptx
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotesMuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
MuleSoft Online Meetup Group - B2B Crash Course: Release SparkNotes
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 

Finding the Middle Way of Testing

Editor's Notes

  1. I’ve wanted to do this talk for a while. I’ve given a bunch of talks on the mechanics of testing. But i feel like there is something missing. We need to talk more about what to test and what not to test. There is a kind of macho, who can test the We need a balance
  2. One way of thinking of testing is to not do them, but to release often, quickly, write code with feature flags. I like to call this the flickr way, it works. It’s very similar to how facebook works really. Lots of small iterations. No tests, in code, you’ve got users for that! If the space between releases is really short, this model works.
  3. http://flic.kr/p/tvUHq
  4. The other direction is testing everything. You want it to be like this. Rushing along, everything is a blur as you race through development. This is called the TATFT method of software development. http://flic.kr/p/7kKDuo
  5. This is the ‘test all the fucking time’ method of software development. It’s appealing because it’s hard core. Alpha male, Test First, Test Always style.
  6. This is the ‘test all the fucking time’ method of software development. It’s appealing because it’s hard core. Alpha male, Test First, Test Always style.
  7. But if done to extreme, without regard to utility, you get this. Burdened down by your tests. http://flic.kr/p/GNhm3
  8. Sometimes we need to find balance between these ways. Testing is a technique we use to make better software.
  9. So the question is then what’s the middle way. What rules should we use to decide what should and shouldn’t be tested. I’m going to go through a bunch of best and worst practices. My rules of thumb for the way of testing.
  10. n ways to find the middle way in testing. What to test, what not to test, and when to know the difference. http://flic.kr/p/8kAmwf
  11. I do rails development, the examples come from rails. But the point is try and extract ideas which are useful in many technology stacks.
  12. The worse of the bad testing techniques is to go from no tests to spending weeks just writing tests. To catch up! http://flic.kr/p/7ZSbRQ
  13. It’s important not to test to little, to be to focused on the details. You end up testing the implementation. Tests fail, but not because the software as a whole is broken. The simple, Assert 2, 1+1. It’s not interesting. http://flic.kr/p/6Zeo1V
  14. Just as testing the details of an implementation, is bad, testing to broadly also can fail for two reasons. First is time. Testing is a tool for debugging. Debugging is what we are really doing most of the time when we say we’re programming. http://flic.kr/p/7azreS
  15. One classic problem is when people start writing tests is that they are testing their use of somebody else’s library. Presumably that library should have tests itself, or if it doesn’t has at least a stable API. Treat it as a black box. http://flic.kr/p/3c89jn
  16. One example in Rails is to do tests that confirm Active Record is working correctly. That a has_many association can be created and deleted.
  17. I know there was just a talk about Gherkin, the extension of cucumber to make it work in multiple human languages. But i think you should just say no to Cucumber. Clients don’t want to write them. More to the point they can’t do them well. It’s a fascinating exercise, but cucumber stories do not translate in to good code. It’s bulky, nobody reads the stories, code when it fails is easier to understand. http://flic.kr/p/5aZYkP
  18. http://flic.kr/p/7qQZni
  19. Even though natural language tests like cucumber are, in my humble opinion a disaster, integration tests are a great idea. They’re code, they are ways of dealing with our web apps in a way similar to real use, but simulated. We’re mocking the real browser, and replacing it with something more useful for testing. http://flic.kr/p/kZtKo
  20. This is what you should do. Test the bugs. Write tests when things break. What you should do is manually try and reproduce a bug. Then once you can ‘see’ it, then you write the test. Then with the test, you can fix it. This is the way to do it. Don’t do that sprint thing. http://flic.kr/p/JAE3v
  21. When you go in an refactor, then is vital. Really this is the only time it makes sense to spend any time writing just tests. http://flic.kr/p/88X9DY
  22. So when you’re refactoring, as opposed to updating, then you need tests. Because by definition, refactoring, is to change the implementation without changing the functionality. So you need a test to confirm the functionality is the same. http://flic.kr/p/aCDk7
  23. The mocky stubbly things. Taking functionality out and replacing it with fakes. There be dragons here. On the one hand, if you have the full system, it’s slow to test. Things like networks, payment processing gateways, they aren’t things you want to hit when http://flic.kr/p/6Q6en
  24. Show XKCD comic of compiling.... Testing is the new compiling. Perhaps we needed the cognitive space. A break in our work, and so in interpreted languages we started writing tests, to fill the gap which used to be created by compiling.
  25. Show XKCD comic of compiling.... Testing is the new compiling. Perhaps we needed the cognitive space. A break in our work, and so in interpreted languages we started writing tests, to fill the gap which used to be created by compiling.
  26. http://flic.kr/p/4heE23
  27. http://flic.kr/p/55d56F
  28. One lesson from the BDD experience is that you assertions must make sense. Think of writing the tests so when they fail, the test name makes sense, and the failure is directed. http://flic.kr/p/4Jrqs1
  29. Tests are different from application code. It’s ok to repeat yourself. Some. http://flic.kr/p/gLUeh
  30. The tests should be damp. As in, repeat yourself some. Because each test is of a variation of functionality, it requires some repetition. Not DRY, but damp as it were. http://flic.kr/p/4qBKRw
  31. Your tests should be atomic. Each test has the same environment. This means your fixtures need to work well. If one test has an effect on another, then you’re in for a world for hurt. You know what happens when you start smashing volatile atoms together, right? http://flic.kr/p/7Gssw1
  32. If you fail to keep your tests separate from each other, things fall apart http://en.wikipedia.org/wiki/Nuclear_explosion
  33. I strongly agree with what Trotter said in the previous talk. Outside In. Finding the sweet spot, outside of your application, outside of the implementation, which you can test.
  34. Similar to the atomic thing. You want your tests to be self contained. A single activity or thing. The tricky part here is to keep each test self contained, a bit of functionality, a unit as it were, but not so focused as to be a sub-unit. http://flic.kr/p/5ZFbHE
  35. Easily be able to see what works and what doesn’t, clear red green results. If you’ve got one of those grahpical IDE things, then use that. The idea is you have to easily, automatically, know what works. So, it’s code, look to see if worked, code, see if it worked, code, see if it worked. That is the old school model of software development. http://flic.kr/p/7vVAJW
  36. That’s my middle path, there is no one path. But i think we need to start calling out what we want, what we do, what we shouldn’t do in testing. While there may be more than one way to do it, all the ways aren’t the same, some work, some don’t.