SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Software Entomology
      or, Where Do Bugs Come From?




    Noah Sussman and Michelle D’Netto
                 etsy
There will always be bugs in production
Most Bugs Are Non-Obvious
Debugging is hard
I can remember the exact
instant when I realized that a
large part of my life... was
going to be spent in finding
mistakes in my own programs

             ~Maurice Wilkes, 1949
Admiral Grace Hopper liked
to tell a story in which a
technician solved a glitch
in the Harvard Mark II
mainframe by pulling an
actual insect out from
between the contacts of
one of its relays
                  ~ The Jargon File
Complete testing is impossible.
Even the simplest Web
site has more edge cases
than you could test, even
if you ran one test per
second until the heat
death of the universe.
assure that the probability of failure
due to hibernating bugs
is sufficiently low
to be acceptable




~ Boris Beizer, 1983
What constitutes a “sufficiently low”
number of problems?
Declaring a
program
“bug free,”
is an
entirely
subjective
excercise
Engineers suck at finding
bugs in their own code
Engineers + designers are



too close to the software
Computer programs cannot detect
bugs in other computer programs
Debugging is twice as
hard as writing the code
in the first place.
             ~ Brian Kernighan
Getting frustrated by software is




not the same as reporting a bug
Non-source-aware users
tend to report only surface
symptoms; they take their
environment for granted...
           ~ ESR, “How Many Eyeballs Tame Complexity”, 1997
Users never read manuals
Users would save time in the long
term by learning more about the
system. But that's not how people
behave in the real world
                         ~Jakob Nielsen
On two occasions
I have been asked...
if you put into the
machine wrong
figures, will the right
answers come Babbage, 1864
             ~Charles
                      out?
When you report a bug




you have done a hard thing
A bug report is a story about a problem and
a good story has a beginning, middle and end
Description of problem
Steps to reproduce
Expected resolution
Provide context, and lots of it
Be Quantitative


   Engineers respond well to hard evidence
Graphmonitorit didn’t happen
At Etsy we
           or over 100,000 real-time metrics
A good editor is
meticulously attentive to detail,
a stickler for technical correctness,
aware of the work as a whole and
sensitive to the expectations of the audience
You are doing science
Keep a journal
Take screenshots (use Skitch)
Log IRC, Skype and other chats
Make multiple redundant backups (use DropBox)
Save everything— you won’t know you need it until you need it
How many times has this happened?
How many users were affected?
How much time has been lost?
What was the overall cost?
Users
The Support
Team spend
the most time
engaging and
empathizing
with users
You are a participant observer
When you talk to your users, and
you write down what you learn,
and you share what you wrote
with others, you’re doing science
digital computer: less than 70 years old,
personal computer: less than 40,
the Web: less than 20,
mobile Web: less than 15
The Web is going to keep on growing and changing
80% of us aren’t
even on the Web yet
Most users of a Web site are doing something that is entirely new to them




                 And you are teaching them how to do it
Software Entomology or Where Do Bugs Come From?

Contenu connexe

Tendances

CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2
John Rooksby
 

Tendances (11)

The Revolution in an Industry That Will Change The World (Test & Measurement)
The Revolution in an Industry That Will Change The World (Test & Measurement)The Revolution in an Industry That Will Change The World (Test & Measurement)
The Revolution in an Industry That Will Change The World (Test & Measurement)
 
Itil for failers
Itil for failersItil for failers
Itil for failers
 
Making sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designersMaking sense of messy problems - Systems thinking for interaction designers
Making sense of messy problems - Systems thinking for interaction designers
 
CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2CS5032 Lecture 6: Human Error 2
CS5032 Lecture 6: Human Error 2
 
Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?
Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?
Testing Hyper-Complex Systems: What Can We Know? What Can We Claim?
 
8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca
8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca
8 PEOPLE, 4 SERVICES, 40 COUNTRIES - Wojciech Gaca
 
Patterns for the People
Patterns for the PeoplePatterns for the People
Patterns for the People
 
AI Fables, Facts and Futures: Threat, Promise or Saviour
AI Fables, Facts and Futures: Threat, Promise or SaviourAI Fables, Facts and Futures: Threat, Promise or Saviour
AI Fables, Facts and Futures: Threat, Promise or Saviour
 
React Next Conference slides: ReactJS Worst practices
React Next Conference slides: ReactJS Worst practicesReact Next Conference slides: ReactJS Worst practices
React Next Conference slides: ReactJS Worst practices
 
Fearless Mobile Research
Fearless Mobile ResearchFearless Mobile Research
Fearless Mobile Research
 
Teaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr SutterTeaching Elephants to Dance, Burr Sutter
Teaching Elephants to Dance, Burr Sutter
 

En vedette

CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CanSecWest
 

En vedette (14)

The Invisible Art Of Software Testing
The Invisible Art Of Software TestingThe Invisible Art Of Software Testing
The Invisible Art Of Software Testing
 
Bullseye or The Testing Wheel
Bullseye or The Testing WheelBullseye or The Testing Wheel
Bullseye or The Testing Wheel
 
Continuous Improvement (GroupOn, Palo Alto 2013)
Continuous Improvement (GroupOn, Palo Alto 2013)Continuous Improvement (GroupOn, Palo Alto 2013)
Continuous Improvement (GroupOn, Palo Alto 2013)
 
Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)Easy Continuous Deployment You Can Trust (Webinar)
Easy Continuous Deployment You Can Trust (Webinar)
 
Interview with the Vampire
Interview with the VampireInterview with the Vampire
Interview with the Vampire
 
Transitioning from Traditional to Modern QA
Transitioning from Traditional to Modern QATransitioning from Traditional to Modern QA
Transitioning from Traditional to Modern QA
 
Design Patterns for Scalable Test Automation With Selenium & WebdriverIO
Design Patterns for Scalable Test Automation With Selenium & WebdriverIODesign Patterns for Scalable Test Automation With Selenium & WebdriverIO
Design Patterns for Scalable Test Automation With Selenium & WebdriverIO
 
Selenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce LabsSelenium and Appium Training from Sauce Labs
Selenium and Appium Training from Sauce Labs
 
Fringe Accessibility: London Web Standards
Fringe Accessibility: London Web StandardsFringe Accessibility: London Web Standards
Fringe Accessibility: London Web Standards
 
Automation Best Practices
Automation Best PracticesAutomation Best Practices
Automation Best Practices
 
Practical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test AutomationPractical Tips & Tricks for Selenium Test Automation
Practical Tips & Tricks for Selenium Test Automation
 
Selfish Accessibility: Government Digital Service
Selfish Accessibility: Government Digital ServiceSelfish Accessibility: Government Digital Service
Selfish Accessibility: Government Digital Service
 
[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique
[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique
[SEN#7] Le Top 100 des entreprises qui recrutent dans le numérique
 
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_markCSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
CSW2017 Peng qiu+shefang-zhong win32k -dark_composition_finnal_finnal_rm_mark
 

Similaire à Software Entomology or Where Do Bugs Come From?

Notes on Simulation and GHDL
Notes on Simulation and GHDLNotes on Simulation and GHDL
Notes on Simulation and GHDL
DIlawar Singh
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
Hans Kemp
 
Arti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca SimeoneArti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca Simeone
meetingsalongtheedge
 

Similaire à Software Entomology or Where Do Bugs Come From? (20)

Software development
Software developmentSoftware development
Software development
 
Chaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just ChaosChaos Engineering Without Observability ... Is Just Chaos
Chaos Engineering Without Observability ... Is Just Chaos
 
WORKSHOP: Making the World Easier with Interaction Design
WORKSHOP: Making the World Easier with Interaction DesignWORKSHOP: Making the World Easier with Interaction Design
WORKSHOP: Making the World Easier with Interaction Design
 
Notes on Simulation and GHDL
Notes on Simulation and GHDLNotes on Simulation and GHDL
Notes on Simulation and GHDL
 
Usability Testing
Usability TestingUsability Testing
Usability Testing
 
Chatbots in 2017 -- Ithaca Talk Dec 6
Chatbots in 2017 -- Ithaca Talk Dec 6Chatbots in 2017 -- Ithaca Talk Dec 6
Chatbots in 2017 -- Ithaca Talk Dec 6
 
The Epistemology of Software Engineering
The Epistemology of Software EngineeringThe Epistemology of Software Engineering
The Epistemology of Software Engineering
 
CCFW.software
CCFW.softwareCCFW.software
CCFW.software
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
Multimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi PlatformMultimodal, Crossmedia, Multi Platform
Multimodal, Crossmedia, Multi Platform
 
#TFT12: Amber Case
#TFT12: Amber Case#TFT12: Amber Case
#TFT12: Amber Case
 
Week 13
Week 13Week 13
Week 13
 
The digital workplace
The digital workplaceThe digital workplace
The digital workplace
 
Introduction to computers
Introduction to computersIntroduction to computers
Introduction to computers
 
Arti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca SimeoneArti e Culture Digitali Lezione 1, Luca Simeone
Arti e Culture Digitali Lezione 1, Luca Simeone
 
Dawn of the Devices: A guide to surviving the device apocalypse
Dawn of the Devices: A guide to surviving the device apocalypseDawn of the Devices: A guide to surviving the device apocalypse
Dawn of the Devices: A guide to surviving the device apocalypse
 
Good programming
Good programmingGood programming
Good programming
 
Is Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic GascIs Python still production ready ? Ludovic Gasc
Is Python still production ready ? Ludovic Gasc
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
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
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

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
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 

Software Entomology or Where Do Bugs Come From?