SlideShare a Scribd company logo
@giltayar
Cultural Learnings of Testing for
Make Benefit Glorious Nation of
Startup
November 2015
@giltayar
There are 10 kinds of people
Those that understand
binary
And those that don’t
@giltayar
There are 10 kinds of people
Those that understand
binary
And those that don’t
@giltayar
There are 2 kinds of developers
Those that are confident
because they test
everything And those that aren’t
@giltayar
There are 2 kinds of product managers
Those that understand why
developers test
And those that don’t
@giltayar
There are 2 kinds of CEOs
Those that understand that
testing is a priority
And those that don’t
@giltayar
What is Software Testing?
Software testing is an investigation conducted to provide
stakeholders with information about the quality of the product
or service under test.[1] Software testing can also provide an
objective, independent view of the software to allow the business
to appreciate and understand the risks of software
implementation. Test techniques include the process of
executing a program or application with the intent of finding
software bugs (errors or other defects)
-- Wikipedia
@giltayar
What is Software Testing?
Testing is the art of ensuring that changes
in the code will not cause new bugs to
appear
@giltayar
@giltayar
What is Software Testing?
Testing is the art of ensuring that changes
in the code will not cause new bugs to
appear
Testing is confidence
@giltayar
Why Do We Need Confidence?
@giltayar
Because Developers are Shit
@giltayar
“All software is a harmony of bugs”
- Eli Singer
@giltayar
Understanding How
Developers Work
@giltayar
Code
Code App
@giltayar
“Coding is writing text files in foreign languages
containing instructions suitable for an absolute idiot to
follow”
-- Stephen Nichols
@giltayar
Coding
Adding Features
Fixing Bugs
Refactoring code to make it simpler
@giltayar
Adding Features
@giltayar
Adding Features: Perfect World
@giltayar
Adding Features: It’s Usually More Like This
@giltayar
Example
@giltayar
Code Reads From File
Code
Contacts
@giltayar
Feature: Enable Sorting By Name
Code
Contacts
@giltayar
Feature: Adding Comments to Each Contact
@giltayar
Feature: Adding Comments to Each Contact
Code
Contacts
@giltayar
So…
Adding a feature means testing the whole
app
@giltayar
Let me repeat that
@giltayar
Adding a feature means testing the whole
app
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
@giltayar
Fixing Bugs
@giltayar
Fixing Bugs: Perfect World
@giltayar
Fixing Bugs: It’s Usually More Like This
@giltayar
Example: Comments Database Structure
Gil Tayar
Eli Singer
Sergey Bolshchikov
Gil Tayar He’s really great
Gil Tayar This is boring
Sergey Bolshchikov Best mentor ever!
Sergey Bolshchikov Congratulations!
@giltayar
Fix
Gil Tayar 1
Eli
Singer
2
Sergey
Bolshchi
kov
3
1 He’s really great
1 This is boring
3 Best mentor ever!
3 Congratulations!
@giltayar
So…
Fixing a bug ⇒ testing the whole app
@giltayar
Let me repeat that
@giltayar
Fixing a bug ⇒ testing the whole app
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
@giltayar
Refactoring
@giltayar
What is refactoring?
Code refactoring is the process of restructuring existing computer code – changing the
factoring – without changing its external behavior. Refactoring improves
nonfunctional attributes of the software.
- Wikipedia
@giltayar
What is Refactoring?
It’s making complex code simple
@giltayar
One Task
One Concept
One Responsibility
One String
No Intertwining
Simple Code Means
@giltayar
Adding a Steve Jobs Quote to your talk makes the talk stylish!
@giltayar
Why is Simple So Important?
Simple Means Understandable
We can only hope to make reliable those things we
can understand
We can only consider a few things at a time
Intertwined things must be considered together
Complexity undermines understanding
- Rich Hickey
@giltayar
Why Is Simple So Important?
Simple Make Changing Things Easier
We can only hope to make local changes to things
that are not entwined
Changes in intertwined things are global
Simple things are not intertwined
Complexity undermines local changes
- Gil Tayar
@giltayar
So Just Build It Simple!
That means thinking a lot
And understanding the domain before we code
Understanding comes while coding, sometimes
after months
And change begets complexity…
@giltayar
Technical Debt
@giltayar
We need to constantly refactor
@giltayar
Refactoring ⇒ testing the whole app
Refacrtoring is a Global Process
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
⇒ testing the whole app
@giltayar
So What do We Do?
@giltayar
We Test
@giltayar
There are 2 kinds of Testing
QA Testing
Developer Testing
@giltayar
QA Testing
@giltayar
Or… “throwing things over the wall”
@giltayar
The developer codes...
@giltayar
And he codes...
@giltayar
And he tests it….
@giltayar
Until it works
@giltayar
And then he throws it over the wall to...
@giltayar
QA…
QA = Quality Assurance
@giltayar
QA? Ensures Quality!
@giltayar
And so on…
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
⇒ testing the whole app
QA-ing
@giltayar
Regression Testing
@giltayar
And What Happens When QA Get Bored?
They make mistakes
They miss bugs
Quality slips
@giltayar
So What’s the Solution
Get rid of QA
Replace it with...
@giltayar
Developer Testing
@giltayar
The Best Developers are Lazy
Given a repetitive task
They automate it
@giltayar
Testing Becomes Part of the
Development Process
@giltayar
So she codes...
@giltayar
And she writes the tests for the code
(sometimes even before writing the code…)
@giltayar
And, while coding, she runs the tests
@giltayar
Until it works
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
@giltayar
Just run the tests again...
@giltayar
I thought it was 80-20
So I checked…
code: 2922 lines
tests: 35623 lines
Wow. 90-10
How Much Test Code vs App Code?
@giltayar
What Does it Give Us?
Confidence
Confidence
Confidence
@giltayar
TDD - Test Driven Design
Tests are not just for confidence
Tests lead the design
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
Just run the tests again
@giltayar
Agility
@giltayar
What Is Agile?
Agile software development is a group of software development methods in which
requirements and solutions evolve through collaboration between self-organizing,[1]
cross-functional teams. It promotes adaptive planning, evolutionary development,
early delivery, continuous improvement, and encourages rapid and flexible response to
change.
- Wikipedia
@giltayar
What is Agile?
Agile is the ability to add a feature, or fix a bug, and immediately
send it to customers, so that they can feedback back and change
things quickly.
@giltayar
Remember?
Adding Features
Fixing Bugs
Refactoring code to make it simpler
Just run the tests again
@giltayar
The Agile Cycle
Add Feature
Fix Bug
Send to Customer
Get Feedback
Act on it
@giltayar
QA Testing
Developer Testing
Months
Hours
Different Lifecycles
@giltayar
So Why Doesn’t
Everybody Do Testing?
@giltayar
Why?
Testing is hard, and developers are lazy
Managers need to deliver, and testing takes time
@giltayar
Testing is hard, and
developers are lazy
@giltayar
Fear is the Mind Killer
-- Frank Herbert, Dune
@giltayar
Managers need to
deliver, and testing takes
time
@giltayar
So what to do?
@giltayar
Test! Test! Test!
There are now incredible tools and methodologies to help you do that!
Unit testing, system testing, TDD, Continuous integration tools, github, travis.
All of them on the cloud, mostly cheap, or even free!
Learn! Use!
Build a process!
Where you cannot release a feature or a bug fix without there being tests for it. Feel ashamed if it
happens, and fix it immediately.
And, yes, hire QA after a while, but let her try and break the system manually, like a
human, and not like a robot - she will find the tests that you have forgotten to
@giltayar
To the Manager
If you don’t
… your release cycle will be months
and you will not be agile
and your business will suffer
@giltayar
Test!
And You Will Never Be Afraid Again
To the Developer:
@giltayar
@giltayar
Thank You
@giltayar

More Related Content

What's hot

Cost of defects
Cost of defectsCost of defects
Cost of defects
Michael Garcia
 
Five Flute Overview
Five Flute OverviewFive Flute Overview
Five Flute Overview
William Burke
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
Eduardo Spinelli de Lima
 
CP-SAT - Certified Professional Selenium Automation Testing
CP-SAT - Certified Professional Selenium Automation TestingCP-SAT - Certified Professional Selenium Automation Testing
CP-SAT - Certified Professional Selenium Automation Testing
Agile Testing Alliance
 
TDD: Facts and Fallacies
TDD: Facts and FallaciesTDD: Facts and Fallacies
TDD: Facts and Fallacies
Stephen Rylander
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
Mauricio Ferreyra
 
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous QualityA Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
TechWell
 
How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?
Daniel Alencar
 
The Agile PMP - Pillar Technology
The Agile PMP - Pillar TechnologyThe Agile PMP - Pillar Technology
The Agile PMP - Pillar Technology
Mike Cottmeyer
 
Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)
Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)
Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)
Agile Testing Alliance
 
Agile Test Automation
Agile Test AutomationAgile Test Automation
Agile Test Automation
Werner Keil
 
QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...
QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...
QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...
QAFest
 
Agile Testing Analytics
Agile Testing AnalyticsAgile Testing Analytics
Agile Testing Analytics
QASymphony
 
Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2
Agile Testing Alliance
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
Paul Mateos
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Applitools
 
Agile engineering environment 50 minutes or less
Agile engineering environment   50 minutes or lessAgile engineering environment   50 minutes or less
Agile engineering environment 50 minutes or less
Vernon Stinebaker
 

What's hot (17)

Cost of defects
Cost of defectsCost of defects
Cost of defects
 
Five Flute Overview
Five Flute OverviewFive Flute Overview
Five Flute Overview
 
Test Driven Development (TDD)
Test Driven Development (TDD)Test Driven Development (TDD)
Test Driven Development (TDD)
 
CP-SAT - Certified Professional Selenium Automation Testing
CP-SAT - Certified Professional Selenium Automation TestingCP-SAT - Certified Professional Selenium Automation Testing
CP-SAT - Certified Professional Selenium Automation Testing
 
TDD: Facts and Fallacies
TDD: Facts and FallaciesTDD: Facts and Fallacies
TDD: Facts and Fallacies
 
Continuous Delivery Presentation
Continuous Delivery PresentationContinuous Delivery Presentation
Continuous Delivery Presentation
 
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous QualityA Journey from DevOps to DevTestOps: Infusing Continuous Quality
A Journey from DevOps to DevTestOps: Infusing Continuous Quality
 
How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?How much time it takes for my feature to arrive?
How much time it takes for my feature to arrive?
 
The Agile PMP - Pillar Technology
The Agile PMP - Pillar TechnologyThe Agile PMP - Pillar Technology
The Agile PMP - Pillar Technology
 
Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)
Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)
Why should I attend #ATAGTR2017 (Global Testing Retreat 2017)
 
Agile Test Automation
Agile Test AutomationAgile Test Automation
Agile Test Automation
 
QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...
QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...
QA Fest 2017. Ирина Жилинская. Тестирование основанное на рисках в реальности...
 
Agile Testing Analytics
Agile Testing AnalyticsAgile Testing Analytics
Agile Testing Analytics
 
Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2Agile testing alliance cp aat highlights 1.2
Agile testing alliance cp aat highlights 1.2
 
DevTestOps
DevTestOpsDevTestOps
DevTestOps
 
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
Collaborating with Developers: How-to Guide for Test Engineers - By Gil Tayar
 
Agile engineering environment 50 minutes or less
Agile engineering environment   50 minutes or lessAgile engineering environment   50 minutes or less
Agile engineering environment 50 minutes or less
 

Similar to Cultural learnings of testing for make benefit glorious nation of startup

Atlassian Summit 2015 Lean QA and Agile Testing
Atlassian Summit 2015 Lean QA and Agile TestingAtlassian Summit 2015 Lean QA and Agile Testing
Atlassian Summit 2015 Lean QA and Agile Testing
Maurizio Mancini
 
How to Build in Quality from Day 1 using Lean QA and Agile Testing
How to Build in Quality from Day 1 using Lean QA and Agile TestingHow to Build in Quality from Day 1 using Lean QA and Agile Testing
How to Build in Quality from Day 1 using Lean QA and Agile Testing
Atlassian
 
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarCypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Applitools
 
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil TayarVisual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Applitools
 
Testing is a team problem
Testing is a team problemTesting is a team problem
Testing is a team problem
Janet Gregory
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
Agile Montréal
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
TechWell
 
Holistic testing in DevOps
Holistic testing in DevOpsHolistic testing in DevOps
Holistic testing in DevOps
Janet Gregory
 
Big feature - small sprint
Big feature - small sprint Big feature - small sprint
Big feature - small sprint
Igor Goldshmidt
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
TEST Huddle
 
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
TEST Huddle
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
Jean-François Nguyen
 
Everything You Need To Know About Agile Testing Methodology.pptx
Everything You Need To Know About Agile Testing Methodology.pptxEverything You Need To Know About Agile Testing Methodology.pptx
Everything You Need To Know About Agile Testing Methodology.pptx
Concetto Labs
 
Agile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USA
Agile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USAAgile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USA
Agile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USA
Testrig Technologies
 
Using AI-Powered Visual Tests to empower your tests
Using AI-Powered Visual Tests to empower your testsUsing AI-Powered Visual Tests to empower your tests
Using AI-Powered Visual Tests to empower your tests
Eran Barlev, ISTQB-CTFL
 
Manual Testing real time questions .pdf
Manual Testing real time questions .pdfManual Testing real time questions .pdf
Manual Testing real time questions .pdf
TiktokIndia2
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
TechWell
 
Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1
Varun Sharma
 
Helping Programmers Write Better Tests
Helping Programmers Write Better TestsHelping Programmers Write Better Tests
Helping Programmers Write Better Tests
Geoffrey Dunn
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
Agile Partner S.A.
 

Similar to Cultural learnings of testing for make benefit glorious nation of startup (20)

Atlassian Summit 2015 Lean QA and Agile Testing
Atlassian Summit 2015 Lean QA and Agile TestingAtlassian Summit 2015 Lean QA and Agile Testing
Atlassian Summit 2015 Lean QA and Agile Testing
 
How to Build in Quality from Day 1 using Lean QA and Agile Testing
How to Build in Quality from Day 1 using Lean QA and Agile TestingHow to Build in Quality from Day 1 using Lean QA and Agile Testing
How to Build in Quality from Day 1 using Lean QA and Agile Testing
 
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil TayarCypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
Cypress vs Selenium WebDriver: Better, Or Just Different? -- by Gil Tayar
 
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil TayarVisual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
Visual Regression Testing at the Speed of Unit Testing -- by Gil Tayar
 
Testing is a team problem
Testing is a team problemTesting is a team problem
Testing is a team problem
 
Continuous delivery is more than dev ops
Continuous delivery is more than dev opsContinuous delivery is more than dev ops
Continuous delivery is more than dev ops
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
 
Holistic testing in DevOps
Holistic testing in DevOpsHolistic testing in DevOps
Holistic testing in DevOps
 
Big feature - small sprint
Big feature - small sprint Big feature - small sprint
Big feature - small sprint
 
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
Ben Walters - Creating Customer Value With Agile Testing - EuroSTAR 2011
 
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
James Whittaker - Pursuing Quality-You Won't Get There - EuroSTAR 2011
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
Everything You Need To Know About Agile Testing Methodology.pptx
Everything You Need To Know About Agile Testing Methodology.pptxEverything You Need To Know About Agile Testing Methodology.pptx
Everything You Need To Know About Agile Testing Methodology.pptx
 
Agile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USA
Agile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USAAgile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USA
Agile Methodology in Testing A Beginner’s Guide By QA Company in Dallas USA
 
Using AI-Powered Visual Tests to empower your tests
Using AI-Powered Visual Tests to empower your testsUsing AI-Powered Visual Tests to empower your tests
Using AI-Powered Visual Tests to empower your tests
 
Manual Testing real time questions .pdf
Manual Testing real time questions .pdfManual Testing real time questions .pdf
Manual Testing real time questions .pdf
 
Seven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing TransitionSeven Keys to Navigating Your Agile Testing Transition
Seven Keys to Navigating Your Agile Testing Transition
 
Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1Real%20 world%20software%20testing%20white%20backgoround1
Real%20 world%20software%20testing%20white%20backgoround1
 
Helping Programmers Write Better Tests
Helping Programmers Write Better TestsHelping Programmers Write Better Tests
Helping Programmers Write Better Tests
 
Agile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile TestingAgile Mëtteg #5: Agile Testing
Agile Mëtteg #5: Agile Testing
 

Recently uploaded

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
Roshan Dwivedi
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 

Recently uploaded (20)

Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
Launch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in MinutesLaunch Your Streaming Platforms in Minutes
Launch Your Streaming Platforms in Minutes
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 

Cultural learnings of testing for make benefit glorious nation of startup

Editor's Notes

  1. And let me explain...
  2. My co-founder, the great Eli Singer, who is a profoundly cynical person, used to say that all software is a “harmony of bugs”. I completely agree. So it’s not that there are no bugs, it’s just that the bugs work so well with one another, that the software as a whole works Of course, I’m exaggerating. I think… So what can you do?
  3. First, understand how the developer works:
  4. It is what we do to make an application, whether a web app, mobile app, or desktop app
  5. In a perfect world, adding a feature would affect just the new feature, but not the rest of the system So, after writing the code, I can manually test the feature and see that it works, and I’m done
  6. But it isn’t a perfect world Let’s give an example: Web app that enables adding a list and showing by addition date How would I implement it?
  7. This is how - the simplest thing that could possibly work - use a file
  8. Let’s say I want to add a feature: sort by name Ouch. I need a db, so I need to rewrite a lot of the code in the app I need to test the whole app again.
  9. To each name in the list I need to add comments.
  10. Ahh, but now deleting a name means adding code to delete their comments. Hmm….
  11. In a perfect world, adding some code locally would just fix the bug. So, after writing the code, I can manually test the fix and see that it works, and I’m done
  12. But it isn’t a perfect world Fixing a bug may introduce problems elsewhere
  13. Let’s say whenever I rename my name, I lose all the comments, because the name is the key to the comments.
  14. To fix that, I need to change all the code that reads and displays names and comments
  15. I need to test the whole app again.
  16. Doesn’t that give you shivery goosebumps? The word Quality hums like a finely tuned Porsche, doesn’t it?
  17. And what does quality assurance do? Why, they assure Quality! And once the Quality is assured…. out goes the product to our users. There was this idea once that developers must NEVER QA their own stuff, because they would be blind to their mistakes, but I’ll get to that. So who tested? Who assured Quality? Why, QA engineers!
  18. But remember, any addition, fixing bugs, or refactoring will cause unknown bugs in unknown places, so a reliable QA engineer needs to test everything on every release
  19. This is called a “regression test”. This is very very very boring.
  20. So what does a developer do today, when she does developer testing?
  21. There is even a methodology where she writes the tests before writing the code (it’s called Test-First)
  22. She runs all the tests Mostly, the new tests will fail, because code is never written correctly.
  23. So she fixes the bugs, and runs again, until the new tests succeed Sometimes, the old tests fail. And that is a “regression bug”. But it is found by the tests!
  24. And when she needs to do the above things...
  25. She just does them and runs the tests again...
  26. Is it worth it?
  27. It gives us something more
  28. Let’s go back to how wonderful it is for the developer
  29. But it gives us one more benefit.
  30. Well, good for you! You don’t need no stinking tests. And in the beginning, this is true The product is small, and testing it manually is very fast. So you’re king of your hill! Master of your domain. And you tell yourself - when the product gets complex, that’s when we introduce tests. And the product gets more complex, but there is no clear cut time when you say you can have tests. So your manual testing gets more and more complicated and takes more of your tie. So your manager decides to hire QA. And now you do less manual testing! You’re king of the hill again! But every bug fix you do, every additional feature, makes your code base more and complicated. And when you want to write the code the “right” way, you don’t because you prefer making local changes that have as little effect as possible. And you really want to make the code simpler, to refactor, but you can’t - you’re afraid. Fear is now guiding you. You are in hell, and no chance in the world that you would get out.
  31. Well, good for you! You don’t need no stinking tests. And in the beginning, this is true The product is small, and testing it manually is very fast. So you’re king of your hill! Master of your domain. And the product gets more complex, and you notice that your developer isn’t very productive. So you go to him, and ask him. And he says two things: He’s spending more and more time testing, because he has to test all the time everything He’s afraid to do big changes to simplify the code, because he could break something and not notice it during testing Oh, well, you say, it’s easy to fix. And you hire QA. And for a while it helps, but then things are slow again. It now takes weeks to test. And you ask the developer, and he tells you - “yes, the code is now so complex that adding anything takes a lot of time, and needs full QA”. You ask him why he can’t simplify, and he explains that he is afraid. And those week tests turn into months, and you’re now deep in hell