SlideShare a Scribd company logo
Testing at Scale:
Learning from Experiences at
SFDC and Meta
Dmitry Vinnik
@DmitryVinnik dvinnik.com
What do I do?
@DmitryVinnik 2
@DmitryVinnik
3
@DmitryVinnik
4
Let’s get back to the talk
@DmitryVinnik dvinnik.com
Little Kids, Little Problems,
@DmitryVinnik dvinnik.com
Little Kids, Little Problems,
Big Kids, Big Problems
@DmitryVinnik dvinnik.com
Small Companies, Small Problems,
@DmitryVinnik dvinnik.com
Small Companies, Small Problems,
Big Companies, Big Problems
@DmitryVinnik dvinnik.com
In reality,
@DmitryVinnik dvinnik.com
It all comes down
to one issue
@DmitryVinnik dvinnik.com
Gap within Teams
@DmitryVinnik dvinnik.com
Gap within Teams
Engineers Testers
Stakeholders
@DmitryVinnik dvinnik.com
Our Goal Today?
@DmitryVinnik dvinnik.com
Bridge that Gap
@DmitryVinnik dvinnik.com
Gap within Teams
Engineers Testers
Stakeholders
@DmitryVinnik dvinnik.com
Engineers Testers
Stakeholders
Bridging the Gap
@DmitryVinnik dvinnik.com
Today’s Focus
Today’s Focus
Union of Engineering and Testing
Importance of Responsibility for Quality
Quality vs Quantity
Agenda
@DmitryVinnik dvinnik.com
Agenda
Quality vs
Quantity
Back to
Basics
Team
Dynamics
@DmitryVinnik dvinnik.com
Agenda
Quality vs
Quantity
Back to
Basics
Team
Dynamics
Back to
Basics
Team
Dynamics
@DmitryVinnik dvinnik.com
Where should we start?
@DmitryVinnik dvinnik.com
Let’s talk about Life
@DmitryVinnik dvinnik.com
Book Suggestion
@DmitryVinnik dvinnik.com
Is it really all about
Quantity?
@DmitryVinnik dvinnik.com
“We’ve added Years to Life,
not Life to Years”
by George Carlin
@DmitryVinnik dvinnik.com
Quality is what matters!
@DmitryVinnik dvinnik.com
In Life
@DmitryVinnik dvinnik.com
and
@DmitryVinnik dvinnik.com
In Testing
@DmitryVinnik dvinnik.com
What is a problem with
Quantity?
@DmitryVinnik dvinnik.com
Your Goal should be
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Conclusion:
@DmitryVinnik dvinnik.com
Once again
@DmitryVinnik dvinnik.com
Quality over Quantity
@DmitryVinnik dvinnik.com
Now
@DmitryVinnik dvinnik.com
We have our
priorities straight
@DmitryVinnik dvinnik.com
How do we improve?
@DmitryVinnik dvinnik.com
Back to the basics
@DmitryVinnik dvinnik.com
Agenda
Quality vs.
Quantity
Back to
Basics
Team
Dynamics
Back to
Basics
Team
Dynamics
Quality vs
Quantity
Back to
Basics
@DmitryVinnik dvinnik.com
What are
our Test Basics?
@DmitryVinnik dvinnik.com
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Simple, right?
@DmitryVinnik dvinnik.com
Easier said than done
@DmitryVinnik dvinnik.com
Real life
@DmitryVinnik dvinnik.com
Real life
is more Real
@DmitryVinnik dvinnik.com
Real “Test Pyramids”
Ice Cream
Cone
Hourglass
Cupcake
Hourglass
Cupcake
@DmitryVinnik dvinnik.com
By Tim Cochran
@DmitryVinnik dvinnik.com
What is a Problem?
@DmitryVinnik dvinnik.com
Ice Cream Problems
Manual
Testing
↑ UI Tests ↓ Unit Tests
↑ UI Tests ↓ Unit Tests
@DmitryVinnik dvinnik.com
Manual Testing is
Important
Book Suggestion
@DmitryVinnik dvinnik.com
But
@DmitryVinnik dvinnik.com
Manual Testing
@DmitryVinnik dvinnik.com
Manual Testing
Cannot be Core Testing
@DmitryVinnik dvinnik.com
Why?
@DmitryVinnik dvinnik.com
Continuous Delivery
Continuous Delivery
By Ham Vocke
@DmitryVinnik dvinnik.com
Bridging the Gap:
Engineers and Testers
@DmitryVinnik dvinnik.com
Continuous Delivery
By Ham Vocke
@DmitryVinnik dvinnik.com
Testing and
Continuous Delivery
Smoke
Tests
Regression
Funnel
@DmitryVinnik dvinnik.com
Ice Cream Problems
Manual
Testing
↑ UI Tests
↓ Unit
Tests
↑ UI Tests
↓ Unit
Tests
Manual
Testing
↑ UI Tests
@DmitryVinnik dvinnik.com
Lots of UI tests
@DmitryVinnik dvinnik.com
So what?
@DmitryVinnik dvinnik.com
Remember the Pyramid
@DmitryVinnik dvinnik.com
Remember the Pyramid:
UI Tests
↑ Fidelity ↓ Speed
↑ Cost
@DmitryVinnik dvinnik.com
Why so many UI tests?
Test
Duplication
Sunk Cost
Fallacy
Decomposition
Fallacy
“Cheap”
Investment
“Cheap”
Investment
Sunk Cost
Fallacy
Decomposition
Fallacy
@DmitryVinnik dvinnik.com
Why so many UI tests?
Test
Duplication
Sunk Cost
Fallacy
Decomposition
Fallacy
“Cheap”
Investment
“Cheap”
Investment
Sunk Cost
Fallacy
Decomposition
Fallacy
Test
Duplication
“Cheap”
Investment
Sunk Cost
Fallacy
Decomposition
Fallacy
@DmitryVinnik dvinnik.com
Ultimately,
Priority Fallacies
@DmitryVinnik dvinnik.com
Priority Fallacies
Ball
Throwing
Regression:
Future Problem
No Dev
Ownership
@DmitryVinnik dvinnik.com
Testing
@DmitryVinnik dvinnik.com
Testing is
Everyone’s Responsibility
@DmitryVinnik dvinnik.com
Priority Fallacies:
Solutions
Recognize
Problem
Test Code/
Prod Code
Handoff
Standards
@DmitryVinnik dvinnik.com
Testing as
Production Code
Review
Test Code
Test
Champions
1:1
Model
Find Risky
Areas
Book Suggestion
@DmitryVinnik dvinnik.com
Ice Cream Problems
Manual
Testing
↑ UI Tests ↓ Unit Tests
↑ UI Tests ↓ Unit Tests
Manual
Testing
↑ UI Tests
↑ UI Tests ↓ Unit Tests
What are Unit Tests?
@DmitryVinnik dvinnik.com
Why are they important?
@DmitryVinnik dvinnik.com
Unit Tests are
@DmitryVinnik dvinnik.com
Feedback for your Team
@DmitryVinnik dvinnik.com
Why does
feedback matter?
@DmitryVinnik dvinnik.com
By Jeff Atwood
@DmitryVinnik dvinnik.com
Bridging the Gap:
Engineers and Testers
@DmitryVinnik dvinnik.com
Not just Unit Tests
@DmitryVinnik dvinnik.com
More Feedback Tests!
@DmitryVinnik dvinnik.com
Testing for
Feedback Loop
Help to
Write
Help to
Understand
Help to
Change
Help to
Understand
Help to
Change
Unit Tests
Help to
Understand
Integration
Tests
Help to
Change
E2E
Tests
@DmitryVinnik dvinnik.com
By Tim Cochran
@DmitryVinnik dvinnik.com
Real “Test Pyramids”
Ice Cream
Cone
Hourglass
Cupcake
Hourglass
Cupcake
Ice Cream
Cone
Hourglass
@DmitryVinnik dvinnik.com
By Tim Cochran
@DmitryVinnik dvinnik.com
Problem?
@DmitryVinnik dvinnik.com
Communication
@DmitryVinnik dvinnik.com
Real “Test Pyramids”
Ice Cream
Cone
Hourglass
Cupcake
Hourglass
Cupcake
Ice Cream
Cone
Hourglass
Hourglass
Cupcake
@DmitryVinnik dvinnik.com
By Fabio Pereira
@DmitryVinnik dvinnik.com
Problem?
@DmitryVinnik dvinnik.com
Communication
@DmitryVinnik dvinnik.com
Noticing a pattern?
@DmitryVinnik dvinnik.com
Communication
is the Key!
@DmitryVinnik dvinnik.com
Agenda
Quality vs.
Quantity
Back to
Basics
Team
Dynamics
Back to
Basics
Team
Dynamics
Quality vs
Quantity
Back to
Basics
Back to
Basics
Team
Dynamics
@DmitryVinnik dvinnik.com
Communication
Goal
Alignment
↓ Direction
of Pyramid
Same
Language
Hybrid
Teams
@DmitryVinnik dvinnik.com
Team Understanding
Testing/
Production
Team
Ownership
United
Team
Customer
is Key
@DmitryVinnik dvinnik.com
Call to Action
Welcome
Change
Respect
Basics
Lead by
Example
Communicate!
@DmitryVinnik dvinnik.com
Q/A
@DmitryVinnik dvinnik.com
About Speaker
Twitter: @DmitryVinnik
Blog: dvinnik.dev
LinkedIn: in/dmitry-vinnik/
Email: dmitry@dvinnik.dev

More Related Content

Similar to Testing at Scale at Meta and Salesforce

From Robotium to Appium: Choose your Journey
From Robotium to Appium: Choose your Journey From Robotium to Appium: Choose your Journey
From Robotium to Appium: Choose your Journey
Dmitry Vinnik
 
Hands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to HeroHands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to Hero
All Things Open
 
Hands on React Native: From Zero to Hero
Hands on React  Native:  From Zero to HeroHands on React  Native:  From Zero to Hero
Hands on React Native: From Zero to Hero
Dmitry Vinnik
 
Do you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional InterfacesDo you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional Interfaces
Dmitry Vinnik
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
Dmitry Vinnik
 
Stress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid ItStress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid It
Dmitry Vinnik
 
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Dmitry Vinnik
 
Empowering businesses with serverless
Empowering businesses with serverlessEmpowering businesses with serverless
Empowering businesses with serverless
Yan Cui
 
Lessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - ReversimLessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - Reversim
Natan Silnitsky
 
Making the Web Fireproof: A Building Code for Websites
Making the Web Fireproof: A Building Code for WebsitesMaking the Web Fireproof: A Building Code for Websites
Making the Web Fireproof: A Building Code for Websites
Dylan Wilbanks
 
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven MicroservicesBuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
Natan Silnitsky
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
TechWell
 
DevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservicesDevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservices
Natan Silnitsky
 
Better Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with KotlinBetter Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with Kotlin
Dmitry Vinnik
 
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven MicroservicesWix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Natan Silnitsky
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre Applications
Dan Jenkins
 
Rewrite or Refactor That Is the Question - DecompileD 2021
Rewrite or Refactor That Is the Question - DecompileD 2021Rewrite or Refactor That Is the Question - DecompileD 2021
Rewrite or Refactor That Is the Question - DecompileD 2021
Vladimir Jovanovic
 
GeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservicesGeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservices
Natan Silnitsky
 
Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the Web
Robert Nyman
 
Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...
Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...
Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...
Dynatrace
 

Similar to Testing at Scale at Meta and Salesforce (20)

From Robotium to Appium: Choose your Journey
From Robotium to Appium: Choose your Journey From Robotium to Appium: Choose your Journey
From Robotium to Appium: Choose your Journey
 
Hands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to HeroHands-on React Native: From Zero to Hero
Hands-on React Native: From Zero to Hero
 
Hands on React Native: From Zero to Hero
Hands on React  Native:  From Zero to HeroHands on React  Native:  From Zero to Hero
Hands on React Native: From Zero to Hero
 
Do you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional InterfacesDo you even Function? Guiding Through Functional Interfaces
Do you even Function? Guiding Through Functional Interfaces
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
 
Stress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid ItStress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid It
 
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
Maximizing React Speed: Hands-On Guide to Debugging and Optimizing React Appl...
 
Empowering businesses with serverless
Empowering businesses with serverlessEmpowering businesses with serverless
Empowering businesses with serverless
 
Lessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - ReversimLessons Learned from 2000 Event Driven Microservices - Reversim
Lessons Learned from 2000 Event Driven Microservices - Reversim
 
Making the Web Fireproof: A Building Code for Websites
Making the Web Fireproof: A Building Code for WebsitesMaking the Web Fireproof: A Building Code for Websites
Making the Web Fireproof: A Building Code for Websites
 
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven MicroservicesBuildStuff - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
DevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservicesDevSum - Lessons Learned from 2000 microservices
DevSum - Lessons Learned from 2000 microservices
 
Better Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with KotlinBetter Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with Kotlin
 
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven MicroservicesWix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre Applications
 
Rewrite or Refactor That Is the Question - DecompileD 2021
Rewrite or Refactor That Is the Question - DecompileD 2021Rewrite or Refactor That Is the Question - DecompileD 2021
Rewrite or Refactor That Is the Question - DecompileD 2021
 
GeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservicesGeeCon - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservices
 
Predictability for the Web
Predictability for the WebPredictability for the Web
Predictability for the Web
 
Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...
Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...
Sitecore Digital Survivor Series - How Web and App Performance impacts Custom...
 

More from Dmitry Vinnik

Leadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies CareLeadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies Care
Dmitry Vinnik
 
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with YogaCross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Dmitry Vinnik
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with Docusaurus
Dmitry Vinnik
 
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and GapsFixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Dmitry Vinnik
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in Go
Dmitry Vinnik
 
The 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project HealthThe 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project Health
Dmitry Vinnik
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
Dmitry Vinnik
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to Freedom
Dmitry Vinnik
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What Matters
Dmitry Vinnik
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
Dmitry Vinnik
 

More from Dmitry Vinnik (10)

Leadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies CareLeadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies Care
 
Cross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with YogaCross-Platform CSS (Yes, it's Possible!) with Yoga
Cross-Platform CSS (Yes, it's Possible!) with Yoga
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with Docusaurus
 
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and GapsFixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in Go
 
The 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project HealthThe 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project Health
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to Freedom
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What Matters
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
 

Recently uploaded

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
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
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
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
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
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
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
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
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
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
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
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)
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Testing at Scale at Meta and Salesforce

Editor's Notes

  1. Will talk about life About Ice Cream
  2. With better foundation, easier to build the bridge
  3. With better foundation, easier to build the bridge
  4. With better foundation, easier to build the bridge
  5. https://www.amazon.com/Natural-Causes-Epidemic-Certainty-Ourselves/dp/1455535915
  6. Is it really about how many years we have?
  7. Longevity is meaningless without quality of life
  8. Can't see the forest for the trees Need to move from Too many incorrect tests Missed valid cases Overworked testers (remember staying late) Reference: https://www.pexels.com/photo/green-trees-113338/
  9. Goldilocks testing suites - just enough Towards Fewer tests but to the point Rest Valid issues are uncovered Reference: https://www.amazon.com/Goldilocks-Three-Bears-Parragon-Books/dp/1445477947
  10. Explain width is #tests
  11. Getting hungry with these examples Looking and fixing real problems
  12. Describe each step Reference: https://medium.com/@timothy.cochran/test-pyramid-the-key-to-good-automated-test-strategy-9f3d7e3c02d5
  13. Who doesn’t like ice cream?
  14. Manual testing is a problem especially because we have the most number of those tests Disbalance of the pyramid Problematic because of the aspects of every level: fidelity, cost and speed
  15. Who doesn’t like ice cream?
  16. Book Link: https://www.amazon.ca/Explore-Increase-Confidence-Exploratory-Testing/dp/1937785025
  17. One of the reasons
  18. Rate of changes is increasing Need to keep up development Need to keep up testing Reference: https://martinfowler.com/articles/practical-test-pyramid.html
  19. Want to empower Testers Improve self-esteem
  20. Highlight the importance of testing Reference: https://martinfowler.com/articles/practical-test-pyramid.html
  21. Place of Testing in CD Importance of Feedback loop Importance of Testing Nobody can say - “it is just tests” Smoke Test Bare minimum for CD (scale matters), usually no UI Regression Tests Funnel Separate, running longer tests Problem with UI tests
  22. Manual testing is a problem especially because we have the most number of those tests Disbalance of the pyramid Problematic because of the aspects of every level: fidelity, cost and speed
  23. Fidelity is good, but how many real customer use cases do you have? If slow, where does it fit on CD pipeline? Who would maintain it?
  24. Duplication Especially on between layers Cheap Investment fallacy “Testing a whole system is cheaper than testing its constituent parts” Same people who like to throw a word “synergy” around Sunk Cost Fallacy Cost that has already been incurred and cannot be recovered Keeping tests around cuz already spend time on them - simply delete them Decomposition fallacy “Testing whole system is not the same as testing its parts”
  25. Throwing a ball over the fence “It is a testers’ job now” It is a problem for future Remember, cost of switching context between tasks is huge Connected to the the last part - Team Dynamics
  26. Similar to AA - accept that there is a problem Establish handoff standards Developers Initial set of basic tests Create initial test plan Testers Approve Edge cases Testing as Production Code
  27. Make sure Code Reviews are created (mentioned this previously) Test Champions for code reviews 1 Story : 1 Test Suite Test areas which can be risky - not getters
  28. Reference: https://www.amazon.com/Pragmatic-Programmer-Journeyman-Master/
  29. What’s a problem to keep them a small number?
  30. Want to know if anything broke Want to know if new feature works etc.
  31. Reference: https://blog.codinghorror.com/when-understanding-means-rewriting/
  32. Reference: https://medium.com/@timothy.cochran/test-pyramid-the-key-to-good-automated-test-strategy-9f3d7e3c02d5
  33. Reasons: TDD with same old practices of lots of UI tests Reference: https://medium.com/@timothy.cochran/test-pyramid-the-key-to-good-automated-test-strategy-9f3d7e3c02d5
  34. Reasons: Everybody is involved but still duplication Reference: https://www.thoughtworks.com/insights/blog/introducing-software-testing-cupcake-anti-pattern
  35. Everyone understands what they are trying to build - best customer experience Not Hunger Games Everyone should keep moving to the lower layers Ubiquitous Language Naming production and test classes Cross-Functional Teams Encourage Training (LogiGear example)
  36. South Korea in 1980s and 1990s From book, Outliers, by Malcolm Gladwell Afraid to speak up Changed to English and got better Reaching Understanding Reference: https://www.pexels.com/photo/jet-cloud-landing-aircraft-46148/
  37. Test=Production code Everyone is responsible Everyone is equal Customer is the goal