SlideShare una empresa de Scribd logo
1 de 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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

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
 

Destacado (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 a 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
 
Stephen Callister Virtual Resume
Stephen Callister Virtual ResumeStephen Callister Virtual Resume
Stephen Callister Virtual ResumeZane Callister
 
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
 
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
 

Similar a 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
 
Being Agile
Being AgileBeing Agile
Being Agile
 
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
 
Stephen Callister Virtual Resume
Stephen Callister Virtual ResumeStephen Callister Virtual Resume
Stephen Callister Virtual Resume
 
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 Slide Show
Final PPP Slide ShowFinal PPP Slide Show
Final PPP Slide Show
 
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
 

Más de 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 .
 

Más de 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
 

Último

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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
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
 

Último (20)

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
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
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
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
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
 

Finding the Middle Way of Testing

Notas del editor

  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.