SlideShare une entreprise Scribd logo
1  sur  16
COMPARING
AGILE QA APPROACHES
TO END-TO-ENDTESTING
Daria Mehra, Director of QE at Quid
Talk at Lean StartupWeek, 11/03/16
Why test at all?
■ Can’t we write bug-free software?
– Industry Average: "about 15 - 50 errors per 1000 lines of delivered code.”
(Steve McConnell, Code Complete)
■ Can’t we fix the bugs as the users report them?
– Are you Facebook?
■ Cost of fixing the bug goes up with time from inception
– Prevent it at no cost*, fix it pre-release for $, fix it post-release for $$$$.
■ “Hope is not a strategy.” (Google SRE)
Buggy math
■ Mercedes recently ran an ad saying that its new car has 100 million lines of code.That’s
impressive—until you realize that on average, any piece of software has a few bugs per
thousand lines of code, so the car probably has thousands of vulnerabilities.
– Chris Dixon of Andreessen Horowitz, replying to Obama’s 6 tech challenges
■ 100 mln loc * 15 bugs/kloc => 1.5 mln bugs!
■ Ford F-150 pickup, 150 mln loc => 2.25 mln bugs
■ Assume 0.001% probability of bug in a given month
■ Get 1 bug per working day…
How to move fast
■ Remember “Move fast and break things”?
■ Slogan v2: “Move fast and build things”!
■ Because you don’t move faster with a broken leg.
■ Quality vsVelocity is a false dichotomy
■ Quality improves as waste is removed,
leading to velocity
– Kaizen: “change for the better”
– What Agile was called in 1986
Bimodal IT: where do you land?
http://techbeacon.com/gartners-bimodal-it-mistake-devops-can-deliver-velocity-quality
Y u so slow?
Don’t do that “Fast” won’t last
Awesome. How?
Path to quality
Velocity: High.
Except for when it breaks.
Quality: ?????
Velocity: High.
Quality: High.
https://danashby.co.uk/2016/10/19/continuous-testing-in-devops/
Who needs end-to-end tests?
■ http://www.alwaysagileconsulting.com/articles/end-to-end-testing-considered-harmful/
■ https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html
■ End-to-end testing considered harmful. If that’s all you do. (Steve Smith)
■ Unit tests are great! At Quid: 5000+ unit tests, 108 e2e user-workflow tests.
2 unit tests, 0 integration tests
If this video won’t play in the slide deck, watch it here:
http://thisotplife.tumblr.com/post/137415092034/2-unit-tests-0-integration-tests
needs end-to-end tests!
■ What’s Quid?
– Quid is a platform that searches, analyzes and visualizes
the world’s collective intelligence to help
answer strategic questions
■ Huge data set + upload your own
– Data-dependent execution
■ Search -> NLP -> knowledge network -> viz
■ Rich UI with many workflows:
– Lots of ways to slice and dice the data
■ Import and export and browsers, oh my!
■ Must test important user workflows daily in CI
Two roads diverged
■ Manual-only testing is not a feasible path: slow, expensive, unreliable.
■ Two ways I’ve done it: full automation with Selenium, and RainforestQA.
Selenium approach
■ Automated end-to-end testcases in Python / Ruby / etc,
executed by driving browser actions via Selenium framework
■ Often with a layer of structured natural language on top (Gherkin or Cucumber)
■ Pros:
– Fast execution -> quick feedback loop
– Runs in CI on developer branches and master -> always releasable master
■ Cons:
– Tied to the front-end implementation, your CSS is now your API
– Finicky, tends to suffer from timing issues with page state
– Hard to debug failures, is this a product regression or a test issue?
“Element is not clickable at point (x, y). Other element would receive the click: …”
– Misses regressions that human would notice
– Takes engineering skill to add and maintain testcases
Release process w/Selenium
UnitTests + FunctionalTests + End-to-End SeleniumTests
RainforestQA approach
■ Automated end-to-end testcases in unstructured natural language (English),
executed by crowdsourced human testers via RainforestQA service
■ Pros:
– Easy to add and maintain testcases, non-engineers can do it
– Easy to debug test failures (screenshot + human comment)
– No dependence on front-end implementation, only user-visible workflow
– Human eye
– Parallel scalable execution
■ Cons:
– Slower test execution at human speed
– Annual contract expense
– Runs on staging and/or production, not on dev branches
Release process w/RainforestQA
UnitTests + FunctionalTests End-to-End RainforestQATests
Why we picked RainforestQA
■ Not either/or:
– Quid uses Selenium in production monitoring checks
■ Scaling out Rainforest testcases was SO MUCH EASIER
■ Solved regression testing for a complex product
■ Nightly testing is close enough to CI/CD for us
– Next up: early access testing with feature flags
■ Allows QE team to stay small
■ Promotes collaboration on quality between PM, CS, QE and Dev
■ Frees up Quality Engineer time for “artisanal” exploratory testing
■ … And that has made all the difference.
Ask me anything
■ Daria Mehra, Director of QE at Quid
■ Look us up: www.quid.com
■ Email me: dmehra@quid.com
■ Read my post on quality process: http://tinyurl.com/dmehra-ikea
■ Read about how I spend my days: http://tinyurl.com/dmehra-day
■ And we ARE hiring!

Contenu connexe

Tendances

Trunk based development
Trunk based developmentTrunk based development
Trunk based developmentgo_oh
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?Rob Brown
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciAtlassian
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOpsWilliam Yeh
 
Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)Sergio Navarro Pino
 
Trunk-Based Development and Toggling
Trunk-Based Development and TogglingTrunk-Based Development and Toggling
Trunk-Based Development and TogglingBryan Liu
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Sergio Navarro Pino
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?William Yeh
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsLuca Minudel
 
Getting your project_started
Getting your project_startedGetting your project_started
Getting your project_startedAdam Culp
 
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDays Riga
 
Distributed Release Management
Distributed Release ManagementDistributed Release Management
Distributed Release ManagementMike Brittain
 
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)Alvaro Sanchez-Mariscal
 
A brief history of automation in Software Engineering
A brief history of automation in Software EngineeringA brief history of automation in Software Engineering
A brief history of automation in Software EngineeringGeorg Buske
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsPerforce
 

Tendances (20)

Continuous integration at CartoDB March '16
Continuous integration at CartoDB March '16Continuous integration at CartoDB March '16
Continuous integration at CartoDB March '16
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?AgileDC15 I'm Using Chef So I'm DevOps Right?
AgileDC15 I'm Using Chef So I'm DevOps Right?
 
DevOps Unicorns
DevOps UnicornsDevOps Unicorns
DevOps Unicorns
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
從限制理論看 DevOps
從限制理論看 DevOps從限制理論看 DevOps
從限制理論看 DevOps
 
Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)Back to basic: continuous integration (Madrid DevOps)
Back to basic: continuous integration (Madrid DevOps)
 
Trunk-Based Development and Toggling
Trunk-Based Development and TogglingTrunk-Based Development and Toggling
Trunk-Based Development and Toggling
 
Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)Advanced deployment scenarios (netcoreconf)
Advanced deployment scenarios (netcoreconf)
 
有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?有了 Agile,為什麼還要有 DevOps?
有了 Agile,為什麼還要有 DevOps?
 
CI back to basis
CI back to basisCI back to basis
CI back to basis
 
Advanced deployment scenarios
Advanced deployment scenariosAdvanced deployment scenarios
Advanced deployment scenarios
 
From Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOpsFrom Continuous Integration to Continuous Delivery and DevOps
From Continuous Integration to Continuous Delivery and DevOps
 
Getting your project_started
Getting your project_startedGetting your project_started
Getting your project_started
 
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
DevOpsDaysRiga 2018: Neil Crawford - Trunk based development, continuous depl...
 
Automation CICD
Automation CICDAutomation CICD
Automation CICD
 
Distributed Release Management
Distributed Release ManagementDistributed Release Management
Distributed Release Management
 
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
DevQA: make your testers happier with Groovy, Spock and Geb (Greach 2014)
 
A brief history of automation in Software Engineering
A brief history of automation in Software EngineeringA brief history of automation in Software Engineering
A brief history of automation in Software Engineering
 
Trunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and EconomicsTrunk Based Development in the Enterprise - Its Relevance and Economics
Trunk Based Development in the Enterprise - Its Relevance and Economics
 

En vedette

ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureYury Tsarev
 
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: End to End Testing: Bug Squashing for DevelopersI Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: End to End Testing: Bug Squashing for DevelopersApigee | Google Cloud
 
Put on Your Asynchronous Hat and Node
Put on Your Asynchronous Hat and NodePut on Your Asynchronous Hat and Node
Put on Your Asynchronous Hat and NodeMarc Fasel
 
End to End Testing: Bug Squashing for API Developers
End to End Testing: Bug Squashing for API Developers End to End Testing: Bug Squashing for API Developers
End to End Testing: Bug Squashing for API Developers Apigee | Google Cloud
 
Behavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextBehavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextAlexander Kress
 
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...Christian Schneider
 

En vedette (8)

ContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven InfrastructureContainerCon - Test Driven Infrastructure
ContainerCon - Test Driven Infrastructure
 
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: End to End Testing: Bug Squashing for DevelopersI Love APIs 2015: End to End Testing: Bug Squashing for Developers
I Love APIs 2015: End to End Testing: Bug Squashing for Developers
 
Put on Your Asynchronous Hat and Node
Put on Your Asynchronous Hat and NodePut on Your Asynchronous Hat and Node
Put on Your Asynchronous Hat and Node
 
BDD
BDDBDD
BDD
 
End to End Testing: Bug Squashing for API Developers
End to End Testing: Bug Squashing for API Developers End to End Testing: Bug Squashing for API Developers
End to End Testing: Bug Squashing for API Developers
 
Behavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in contextBehavior-Driven Development (BDD) in context
Behavior-Driven Development (BDD) in context
 
Atagg2015 BDD in Test pyramid
Atagg2015  BDD in Test pyramidAtagg2015  BDD in Test pyramid
Atagg2015 BDD in Test pyramid
 
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
 

Similaire à COMPARING AGILE QA TO END-TO-END TESTING

What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?TechWell
 
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfEnhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfICS
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support developmentChema del Barco
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuousMichele Orselli
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...dcieslak
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQMIBM Rational
 
Phil Koopman's ISSRE 2016 Keynote
Phil Koopman's ISSRE 2016 KeynotePhil Koopman's ISSRE 2016 Keynote
Phil Koopman's ISSRE 2016 Keynoteedgecaseresearch
 
Boston MeetUp 10.10
Boston MeetUp 10.10Boston MeetUp 10.10
Boston MeetUp 10.10Solano Labs
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automationopkey
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory TestingJustin Ison
 
Justin Ison
Justin IsonJustin Ison
Justin IsonCodeFest
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliverySauce Labs
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016Pooja Shah
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]Dynatrace
 
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Applitools
 
How selenium can transform your qa career
How selenium can transform your qa careerHow selenium can transform your qa career
How selenium can transform your qa careerShama Ugale
 
Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaSAGAR BARBHAYA
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformationXebia India
 

Similaire à COMPARING AGILE QA TO END-TO-END TESTING (20)

What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
What to Do—Develop Your Own Automation or Use Crowdsourced Testing?
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdfEnhancing Quality and Test in Medical Device Design - Part 2.pdf
Enhancing Quality and Test in Medical Device Design - Part 2.pdf
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
Continuous, continuous, continuous
Continuous, continuous, continuousContinuous, continuous, continuous
Continuous, continuous, continuous
 
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
RandomTest - Random Software Integration Tests That Just Work for C/C++, Java...
 
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
4.4.2013 Software Quality - Regression Testing Automated and Manual - RFT/RQM
 
Phil Koopman's ISSRE 2016 Keynote
Phil Koopman's ISSRE 2016 KeynotePhil Koopman's ISSRE 2016 Keynote
Phil Koopman's ISSRE 2016 Keynote
 
Wso2con test-automation
Wso2con test-automationWso2con test-automation
Wso2con test-automation
 
Boston MeetUp 10.10
Boston MeetUp 10.10Boston MeetUp 10.10
Boston MeetUp 10.10
 
The Journey of Test Automation
The Journey of Test AutomationThe Journey of Test Automation
The Journey of Test Automation
 
Automated Exploratory Testing
Automated Exploratory TestingAutomated Exploratory Testing
Automated Exploratory Testing
 
Justin Ison
Justin IsonJustin Ison
Justin Ison
 
A lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous deliveryA lean automation blueprint for testing in continuous delivery
A lean automation blueprint for testing in continuous delivery
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016
 
From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]From 0 to DevOps in 80 Days [Webinar Replay]
From 0 to DevOps in 80 Days [Webinar Replay]
 
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...Building a Complete Pipeline: The Essential Components of Continuous Testing ...
Building a Complete Pipeline: The Essential Components of Continuous Testing ...
 
How selenium can transform your qa career
How selenium can transform your qa careerHow selenium can transform your qa career
How selenium can transform your qa career
 
Shift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhayaShift left-csun-sagar-barbhaya
Shift left-csun-sagar-barbhaya
 
Harman deepak v - agile on steriod - dev ops led transformation
Harman  deepak v - agile on steriod - dev ops led transformationHarman  deepak v - agile on steriod - dev ops led transformation
Harman deepak v - agile on steriod - dev ops led transformation
 

Dernier

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Dernier (20)

New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

COMPARING AGILE QA TO END-TO-END TESTING

  • 1. COMPARING AGILE QA APPROACHES TO END-TO-ENDTESTING Daria Mehra, Director of QE at Quid Talk at Lean StartupWeek, 11/03/16
  • 2. Why test at all? ■ Can’t we write bug-free software? – Industry Average: "about 15 - 50 errors per 1000 lines of delivered code.” (Steve McConnell, Code Complete) ■ Can’t we fix the bugs as the users report them? – Are you Facebook? ■ Cost of fixing the bug goes up with time from inception – Prevent it at no cost*, fix it pre-release for $, fix it post-release for $$$$. ■ “Hope is not a strategy.” (Google SRE)
  • 3. Buggy math ■ Mercedes recently ran an ad saying that its new car has 100 million lines of code.That’s impressive—until you realize that on average, any piece of software has a few bugs per thousand lines of code, so the car probably has thousands of vulnerabilities. – Chris Dixon of Andreessen Horowitz, replying to Obama’s 6 tech challenges ■ 100 mln loc * 15 bugs/kloc => 1.5 mln bugs! ■ Ford F-150 pickup, 150 mln loc => 2.25 mln bugs ■ Assume 0.001% probability of bug in a given month ■ Get 1 bug per working day…
  • 4. How to move fast ■ Remember “Move fast and break things”? ■ Slogan v2: “Move fast and build things”! ■ Because you don’t move faster with a broken leg. ■ Quality vsVelocity is a false dichotomy ■ Quality improves as waste is removed, leading to velocity – Kaizen: “change for the better” – What Agile was called in 1986
  • 5. Bimodal IT: where do you land? http://techbeacon.com/gartners-bimodal-it-mistake-devops-can-deliver-velocity-quality Y u so slow? Don’t do that “Fast” won’t last Awesome. How?
  • 6. Path to quality Velocity: High. Except for when it breaks. Quality: ????? Velocity: High. Quality: High. https://danashby.co.uk/2016/10/19/continuous-testing-in-devops/
  • 7. Who needs end-to-end tests? ■ http://www.alwaysagileconsulting.com/articles/end-to-end-testing-considered-harmful/ ■ https://testing.googleblog.com/2015/04/just-say-no-to-more-end-to-end-tests.html ■ End-to-end testing considered harmful. If that’s all you do. (Steve Smith) ■ Unit tests are great! At Quid: 5000+ unit tests, 108 e2e user-workflow tests.
  • 8. 2 unit tests, 0 integration tests If this video won’t play in the slide deck, watch it here: http://thisotplife.tumblr.com/post/137415092034/2-unit-tests-0-integration-tests
  • 9. needs end-to-end tests! ■ What’s Quid? – Quid is a platform that searches, analyzes and visualizes the world’s collective intelligence to help answer strategic questions ■ Huge data set + upload your own – Data-dependent execution ■ Search -> NLP -> knowledge network -> viz ■ Rich UI with many workflows: – Lots of ways to slice and dice the data ■ Import and export and browsers, oh my! ■ Must test important user workflows daily in CI
  • 10. Two roads diverged ■ Manual-only testing is not a feasible path: slow, expensive, unreliable. ■ Two ways I’ve done it: full automation with Selenium, and RainforestQA.
  • 11. Selenium approach ■ Automated end-to-end testcases in Python / Ruby / etc, executed by driving browser actions via Selenium framework ■ Often with a layer of structured natural language on top (Gherkin or Cucumber) ■ Pros: – Fast execution -> quick feedback loop – Runs in CI on developer branches and master -> always releasable master ■ Cons: – Tied to the front-end implementation, your CSS is now your API – Finicky, tends to suffer from timing issues with page state – Hard to debug failures, is this a product regression or a test issue? “Element is not clickable at point (x, y). Other element would receive the click: …” – Misses regressions that human would notice – Takes engineering skill to add and maintain testcases
  • 12. Release process w/Selenium UnitTests + FunctionalTests + End-to-End SeleniumTests
  • 13. RainforestQA approach ■ Automated end-to-end testcases in unstructured natural language (English), executed by crowdsourced human testers via RainforestQA service ■ Pros: – Easy to add and maintain testcases, non-engineers can do it – Easy to debug test failures (screenshot + human comment) – No dependence on front-end implementation, only user-visible workflow – Human eye – Parallel scalable execution ■ Cons: – Slower test execution at human speed – Annual contract expense – Runs on staging and/or production, not on dev branches
  • 14. Release process w/RainforestQA UnitTests + FunctionalTests End-to-End RainforestQATests
  • 15. Why we picked RainforestQA ■ Not either/or: – Quid uses Selenium in production monitoring checks ■ Scaling out Rainforest testcases was SO MUCH EASIER ■ Solved regression testing for a complex product ■ Nightly testing is close enough to CI/CD for us – Next up: early access testing with feature flags ■ Allows QE team to stay small ■ Promotes collaboration on quality between PM, CS, QE and Dev ■ Frees up Quality Engineer time for “artisanal” exploratory testing ■ … And that has made all the difference.
  • 16. Ask me anything ■ Daria Mehra, Director of QE at Quid ■ Look us up: www.quid.com ■ Email me: dmehra@quid.com ■ Read my post on quality process: http://tinyurl.com/dmehra-ikea ■ Read about how I spend my days: http://tinyurl.com/dmehra-day ■ And we ARE hiring!