SlideShare une entreprise Scribd logo
1  sur  17
The 2012 TiPBoF
Shout Outs!
Paul Hildebrandt & Disney
Heroku
Jesse Noller
Ewa Jodlowska
Peter Kropf
Thank YOU!
Let’s Start the Show
Top 10 Reasons No One Uses
     Your Testing Tool.
    The Python Testing Cabal
10. Your tool is for behavior driven
 development, which no one does.

“BDD is a second-generation, outside-in, pull-
  based, multiple-stakeholder, multiple-scale,
    high-automation, agile methodology. It
   describes a cycle of interactions with well-
  defined outputs, resulting in the delivery of
    working, tested software that matters.”

                           Wikipedia: Behavior Driven Development
9. Your test tool requires inheritance
  and use CamelCase, so everyone
   thinks it’s actually for Java code.



             Cheap shot, I know.
8. Your documentation sucks.



“See examples for information on use.”
7. Your testing tool is only usable by
programmers, and barely even them.

“So, just instantiate the Frobnitz class, stick it
    into your base metaclass hierarchy with
   dependency injection, and voila! Syntax-
             highlighted tracebacks!”
6. Your own tests don’t work



  Irony, thy name is open source.
5. Your tool runs tests so fast, they
      can’tactually be doing anything.
% bernhardtests
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
……………………………………………….
---------------------------------------------------
Ran 2500 test in 0.002s

OK
4. Nobody can figure out which of your
       assert functions to use.
From
  http://docs.python.org/library/unittest.html:

   “(If you are already familiar with the basic
  concepts of testing, you might want to skip to
            the list of assert methods.)”

        e.g. self.assertThisAssertIsFalse()
3. Your testing tool is only for
          Python3…


      …which no one uses.
2. It’s another fucking mock library.


              ‘nuff said.
1. Your tool is for Web testing, yet
      doesn’t support JavaScript.


“twill strives to be a complete implementation
   of a Web browser, omitting only JavaScript
                      support.”
Thanks to Terry!

And apologies to @voidspace…

Contenu connexe

En vedette

إنسان النهضة
إنسان النهضةإنسان النهضة
إنسان النهضة
Ahmad Darwish
 
2013 ucdavis-smbe-eukaryotes
2013 ucdavis-smbe-eukaryotes2013 ucdavis-smbe-eukaryotes
2013 ucdavis-smbe-eukaryotes
c.titus.brown
 
Understanding Facebook Places
Understanding Facebook PlacesUnderstanding Facebook Places
Understanding Facebook Places
Marco Pacifico
 
How to make online billing invoice?
How to make online billing invoice?How to make online billing invoice?
How to make online billing invoice?
jessecadelina
 
How to convert a file to Portable Document format (PDF)?
How to convert a file to Portable Document format (PDF)?How to convert a file to Portable Document format (PDF)?
How to convert a file to Portable Document format (PDF)?
jessecadelina
 
2013 stamps-intro-assembly
2013 stamps-intro-assembly2013 stamps-intro-assembly
2013 stamps-intro-assembly
c.titus.brown
 
2014 ismb-extra-slides
2014 ismb-extra-slides2014 ismb-extra-slides
2014 ismb-extra-slides
c.titus.brown
 

En vedette (20)

18 Di Concetta
18 Di Concetta18 Di Concetta
18 Di Concetta
 
إنسان النهضة
إنسان النهضةإنسان النهضة
إنسان النهضة
 
2013 ucdavis-smbe-eukaryotes
2013 ucdavis-smbe-eukaryotes2013 ucdavis-smbe-eukaryotes
2013 ucdavis-smbe-eukaryotes
 
ADR in practice: Pre-Claim Conciliation – 2 years on
ADR in practice: Pre-Claim Conciliation – 2 years onADR in practice: Pre-Claim Conciliation – 2 years on
ADR in practice: Pre-Claim Conciliation – 2 years on
 
2014 anu-canberra-streaming
2014 anu-canberra-streaming2014 anu-canberra-streaming
2014 anu-canberra-streaming
 
Unidad 5. Seleccion sobre Sistemas de Ecuaciones Lineales
Unidad 5.  Seleccion sobre Sistemas de Ecuaciones LinealesUnidad 5.  Seleccion sobre Sistemas de Ecuaciones Lineales
Unidad 5. Seleccion sobre Sistemas de Ecuaciones Lineales
 
2011 Ohio Hispanic Business Summit
2011 Ohio Hispanic Business Summit2011 Ohio Hispanic Business Summit
2011 Ohio Hispanic Business Summit
 
Understanding Facebook Places
Understanding Facebook PlacesUnderstanding Facebook Places
Understanding Facebook Places
 
Application of artificial_neural_network
Application of artificial_neural_networkApplication of artificial_neural_network
Application of artificial_neural_network
 
How to make online billing invoice?
How to make online billing invoice?How to make online billing invoice?
How to make online billing invoice?
 
Pagerank
PagerankPagerank
Pagerank
 
Experiments in Web 2.0: creative communications and digital footprints
Experiments in Web 2.0: creative communications and digital footprints Experiments in Web 2.0: creative communications and digital footprints
Experiments in Web 2.0: creative communications and digital footprints
 
XBRL in Oracle 11i and R12
XBRL in Oracle 11i and R12XBRL in Oracle 11i and R12
XBRL in Oracle 11i and R12
 
Intellisoft introductionrecruitment l120219
Intellisoft introductionrecruitment l120219Intellisoft introductionrecruitment l120219
Intellisoft introductionrecruitment l120219
 
A Picture Is Worth Thousand Words
A Picture Is Worth Thousand WordsA Picture Is Worth Thousand Words
A Picture Is Worth Thousand Words
 
How to convert a file to Portable Document format (PDF)?
How to convert a file to Portable Document format (PDF)?How to convert a file to Portable Document format (PDF)?
How to convert a file to Portable Document format (PDF)?
 
ciudatenii
ciudateniiciudatenii
ciudatenii
 
2013 stamps-intro-assembly
2013 stamps-intro-assembly2013 stamps-intro-assembly
2013 stamps-intro-assembly
 
2014 ismb-extra-slides
2014 ismb-extra-slides2014 ismb-extra-slides
2014 ismb-extra-slides
 
Project Work
Project WorkProject Work
Project Work
 

Similaire à pycon 2012 tip bof -- intro slides

Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012
Maxim Zaks
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
daniil3
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
guestebde
 
1z0 007 studyguidev2
1z0 007 studyguidev21z0 007 studyguidev2
1z0 007 studyguidev2
rajacute55
 
Роман Денисенко — Нагрузочное тестирование для самых маленьких.
Роман Денисенко — Нагрузочное тестирование для самых маленьких.Роман Денисенко — Нагрузочное тестирование для самых маленьких.
Роман Денисенко — Нагрузочное тестирование для самых маленьких.
DataArt
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
Aron Ahmadia
 

Similaire à pycon 2012 tip bof -- intro slides (20)

Cucumber - Maria Machlowska
Cucumber - Maria MachlowskaCucumber - Maria Machlowska
Cucumber - Maria Machlowska
 
Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012Test Essentials @mdevcon 2012
Test Essentials @mdevcon 2012
 
You shouldneverdo
You shouldneverdoYou shouldneverdo
You shouldneverdo
 
10 Ways To Improve Your Code( Neal Ford)
10  Ways To  Improve  Your  Code( Neal  Ford)10  Ways To  Improve  Your  Code( Neal  Ford)
10 Ways To Improve Your Code( Neal Ford)
 
DevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web DevelopmentDevDay.lk - Bare Knuckle Web Development
DevDay.lk - Bare Knuckle Web Development
 
Puppet Camp Dallas 2014: How Puppet Ops Rolls
Puppet Camp Dallas 2014: How Puppet Ops RollsPuppet Camp Dallas 2014: How Puppet Ops Rolls
Puppet Camp Dallas 2014: How Puppet Ops Rolls
 
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
A Backpack to go the Extra-Functional Mile (a hitched hike by the PROWESS pro...
 
1z0 007 studyguidev2
1z0 007 studyguidev21z0 007 studyguidev2
1z0 007 studyguidev2
 
Lessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented ArchitectureLessons Learned in a Continuously Developing Service-Oriented Architecture
Lessons Learned in a Continuously Developing Service-Oriented Architecture
 
Let's pwn a chinese web browser!
Let's pwn a chinese web browser!Let's pwn a chinese web browser!
Let's pwn a chinese web browser!
 
10 Ways To Improve Your Code
10 Ways To Improve Your Code10 Ways To Improve Your Code
10 Ways To Improve Your Code
 
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate) Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
Puppet Camp Paris 2015: Continuous Integration of Puppet Code (Intermediate)
 
Introduction to Protractor - Habilelabs
Introduction to Protractor - HabilelabsIntroduction to Protractor - Habilelabs
Introduction to Protractor - Habilelabs
 
Quarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniquesQuarkus tips, tricks, and techniques
Quarkus tips, tricks, and techniques
 
Роман Денисенко — Нагрузочное тестирование для самых маленьких.
Роман Денисенко — Нагрузочное тестирование для самых маленьких.Роман Денисенко — Нагрузочное тестирование для самых маленьких.
Роман Денисенко — Нагрузочное тестирование для самых маленьких.
 
Puppet for Sys Admins
Puppet for Sys AdminsPuppet for Sys Admins
Puppet for Sys Admins
 
Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013Software Carpentry and the Hydrological Sciences @ AGU 2013
Software Carpentry and the Hydrological Sciences @ AGU 2013
 
Testacular
TestacularTestacular
Testacular
 
Learning selenium sample
Learning selenium sampleLearning selenium sample
Learning selenium sample
 
Continuous integration of_puppet_code
Continuous integration of_puppet_codeContinuous integration of_puppet_code
Continuous integration of_puppet_code
 

Plus de c.titus.brown

Plus de c.titus.brown (20)

2016 bergen-sars
2016 bergen-sars2016 bergen-sars
2016 bergen-sars
 
2016 davis-plantbio
2016 davis-plantbio2016 davis-plantbio
2016 davis-plantbio
 
2016 davis-biotech
2016 davis-biotech2016 davis-biotech
2016 davis-biotech
 
2015 genome-center
2015 genome-center2015 genome-center
2015 genome-center
 
2015 beacon-metagenome-tutorial
2015 beacon-metagenome-tutorial2015 beacon-metagenome-tutorial
2015 beacon-metagenome-tutorial
 
2015 aem-grs-keynote
2015 aem-grs-keynote2015 aem-grs-keynote
2015 aem-grs-keynote
 
2015 msu-code-review
2015 msu-code-review2015 msu-code-review
2015 msu-code-review
 
2015 illinois-talk
2015 illinois-talk2015 illinois-talk
2015 illinois-talk
 
2015 mcgill-talk
2015 mcgill-talk2015 mcgill-talk
2015 mcgill-talk
 
2015 pycon-talk
2015 pycon-talk2015 pycon-talk
2015 pycon-talk
 
2015 opencon-webcast
2015 opencon-webcast2015 opencon-webcast
2015 opencon-webcast
 
2015 vancouver-vanbug
2015 vancouver-vanbug2015 vancouver-vanbug
2015 vancouver-vanbug
 
2015 osu-metagenome
2015 osu-metagenome2015 osu-metagenome
2015 osu-metagenome
 
2015 ohsu-metagenome
2015 ohsu-metagenome2015 ohsu-metagenome
2015 ohsu-metagenome
 
2015 balti-and-bioinformatics
2015 balti-and-bioinformatics2015 balti-and-bioinformatics
2015 balti-and-bioinformatics
 
2015 pag-chicken
2015 pag-chicken2015 pag-chicken
2015 pag-chicken
 
2015 pag-metagenome
2015 pag-metagenome2015 pag-metagenome
2015 pag-metagenome
 
2014 nyu-bio-talk
2014 nyu-bio-talk2014 nyu-bio-talk
2014 nyu-bio-talk
 
2014 bangkok-talk
2014 bangkok-talk2014 bangkok-talk
2014 bangkok-talk
 
2014 nicta-reproducibility
2014 nicta-reproducibility2014 nicta-reproducibility
2014 nicta-reproducibility
 

Dernier

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
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Dernier (20)

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
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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 Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
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
 
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
 
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
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 

pycon 2012 tip bof -- intro slides

  • 3. Paul Hildebrandt & Disney Heroku Jesse Noller Ewa Jodlowska Peter Kropf
  • 6. Top 10 Reasons No One Uses Your Testing Tool. The Python Testing Cabal
  • 7. 10. Your tool is for behavior driven development, which no one does. “BDD is a second-generation, outside-in, pull- based, multiple-stakeholder, multiple-scale, high-automation, agile methodology. It describes a cycle of interactions with well- defined outputs, resulting in the delivery of working, tested software that matters.” Wikipedia: Behavior Driven Development
  • 8. 9. Your test tool requires inheritance and use CamelCase, so everyone thinks it’s actually for Java code. Cheap shot, I know.
  • 9. 8. Your documentation sucks. “See examples for information on use.”
  • 10. 7. Your testing tool is only usable by programmers, and barely even them. “So, just instantiate the Frobnitz class, stick it into your base metaclass hierarchy with dependency injection, and voila! Syntax- highlighted tracebacks!”
  • 11. 6. Your own tests don’t work Irony, thy name is open source.
  • 12. 5. Your tool runs tests so fast, they can’tactually be doing anything. % bernhardtests ………………………………………………. ………………………………………………. ………………………………………………. ………………………………………………. ………………………………………………. ………………………………………………. ………………………………………………. --------------------------------------------------- Ran 2500 test in 0.002s OK
  • 13. 4. Nobody can figure out which of your assert functions to use. From http://docs.python.org/library/unittest.html: “(If you are already familiar with the basic concepts of testing, you might want to skip to the list of assert methods.)” e.g. self.assertThisAssertIsFalse()
  • 14. 3. Your testing tool is only for Python3… …which no one uses.
  • 15. 2. It’s another fucking mock library. ‘nuff said.
  • 16. 1. Your tool is for Web testing, yet doesn’t support JavaScript. “twill strives to be a complete implementation of a Web browser, omitting only JavaScript support.”
  • 17. Thanks to Terry! And apologies to @voidspace…