SlideShare a Scribd company logo
1 of 124
Download to read offline
Modern Web Testing:
Going Beyond Selenium
Dmitry Vinnik
@DmitryVinnik dvinnik.com1
What are our goals?
@DmitryVinnik dvinnik.com2
Goals
Choosing Right Test Context
Choosing Right Level of Testing
Choosing Right E2E Test Approach
@DmitryVinnik dvinnik.com3
Let’s go in more details
@DmitryVinnik dvinnik.com4
How do we usually test?
@DmitryVinnik dvinnik.com5
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com6
How do we usually test
Web?
@DmitryVinnik dvinnik.com7
How do we usually test
Web?
@DmitryVinnik dvinnik.com8
By Tim Cochran@DmitryVinnik dvinnik.com9
We need to change that!
@DmitryVinnik dvinnik.com10
Let’s test something!
@DmitryVinnik dvinnik.com11
What is this “something”?
@DmitryVinnik dvinnik.com12
Example App
@DmitryVinnik dvinnik.com13
Back to testing!
@DmitryVinnik dvinnik.com14
Special Case #1
15
@DmitryVinnik dvinnik.com
Backend:
Java
Testing:
Java
16
@DmitryVinnik dvinnik.com
Is there a problem?
@DmitryVinnik dvinnik.com17
Yes, there is
@DmitryVinnik dvinnik.com18
Moving away from
Backend Testing
@DmitryVinnik dvinnik.com19
Why not Backend Tests?
Hybrid
Model
DDD
User
Centric
DDD
User
Centric
@DmitryVinnik dvinnik.com20
Hybrid Model
Software
Engineers
Software
Principles
Testing
Expertise
@DmitryVinnik dvinnik.com21
Why not Backend Tests?
Hybrid
Model
DDD
User
Centric
DDD
User
Centric
@DmitryVinnik dvinnik.com
Hybrid
Model
DDD
22
Domain Driven Design
Context Matters
Ubiquitous
Language
@DmitryVinnik dvinnik.com23
Why not Backend Tests?
Hybrid
Model
DDD
User
Centric
DDD
User
Centric
@DmitryVinnik dvinnik.com
Hybrid
Model
DDDDDD
User
Centric
24
Still not convinced?
@DmitryVinnik dvinnik.com25
Modern Web Testing
@DmitryVinnik dvinnik.com26
Power of JavaScript
Assertion
Libraries
Process
Libraries
Enterprise
Libraries
Process
Libraries
Enterprise
Libraries
ChaiJasmine
Process
Libraries
BDD
Libraries
Cucumber
Enterprise
Libraries
Applitools
@DmitryVinnik dvinnik.com27
Speaking Language
of the Web
@DmitryVinnik dvinnik.com28
JavaScript
Node.js
@DmitryVinnik dvinnik.com29
Node.js
NPM
Manager
Flexible
Customizable
Isomorphic
@DmitryVinnik dvinnik.com30
Going back to the Pyramid
@DmitryVinnik dvinnik.com31
Web Test Pyramid
@DmitryVinnik dvinnik.com32
Web Test Pyramid
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com33
Unit Testing
In Web Context
@DmitryVinnik dvinnik.com34
Example: Jasmine
@DmitryVinnik dvinnik.com35
Web Test Pyramid
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com36
Integration Testing
In Web Context
@DmitryVinnik dvinnik.com37
Example: Jest
@DmitryVinnik dvinnik.com38
Example: Jest
@DmitryVinnik dvinnik.com39
Example: Jest
@DmitryVinnik dvinnik.com40
Example: Jest
@DmitryVinnik dvinnik.com41
Example: Jest
@DmitryVinnik dvinnik.com42
Example: Jest
@DmitryVinnik dvinnik.com43
Example: Jest
@DmitryVinnik dvinnik.com44
Let’s reflect on it
@DmitryVinnik dvinnik.com45
Web Test Pyramid
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com46
Every step has
only 1 focus
@DmitryVinnik dvinnik.com47
Developers
@DmitryVinnik dvinnik.com48
Good for some tests
@DmitryVinnik dvinnik.com49
But not for E2E tests
@DmitryVinnik dvinnik.com50
Web Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com51
Shifting focus
@DmitryVinnik dvinnik.com52
Developers Customers
@DmitryVinnik dvinnik.com53
Sounds great!
@DmitryVinnik dvinnik.com54
But how do we do it?
@DmitryVinnik dvinnik.com55
End-to-End Task Testing
@DmitryVinnik dvinnik.com56
User Centric Testing
Interactions Tasks
Page Object
Model
Screenplay
Pattern
@DmitryVinnik dvinnik.com57
Back to our app
@DmitryVinnik dvinnik.com58
End-to-End Testing
@DmitryVinnik dvinnik.com59
Common way to do E2E?
@DmitryVinnik dvinnik.com60
Selenium WebDriver
Defacto
E2E Tool
Testing
Standard
Generic ↑ Integrations
@DmitryVinnik dvinnik.com61
Selenium WebDriver
@DmitryVinnik dvinnik.com62
Selenium WebDriver
From “SeleniumHQ, Selenium RC”
@DmitryVinnik dvinnik.com63
WebdriverJs
@DmitryVinnik dvinnik.com64
Selenium WebdriverJs
Defacto
E2E Tool
Testing
Standard
Generic ↑ Integrations
@DmitryVinnik dvinnik.com65
Selenium WebdriverJs
From “SeleniumHQ, Selenium RC”
@DmitryVinnik dvinnik.com66
Example: WebdriverJs
@DmitryVinnik dvinnik.com67
Only good parts, right?
@DmitryVinnik dvinnik.com68
Not Really...
@DmitryVinnik dvinnik.com69
E2E Tests’ Complexity
Selectors
Locator
Strategy
Test Flows SPA Types
@DmitryVinnik dvinnik.com70
What about WebdriverJs?
@DmitryVinnik dvinnik.com71
Selectors
Locator
Strategy
Test Flows SPA Types
WebdriverJs
Locator
Strategy
Test Flows SPA Types
ID, CSS,
Xpath
Locator
Strategy
By Locators
Test Flows
Promise
Manager
SPA TypesSPA TypesSPA TypesGeneric
@DmitryVinnik dvinnik.com72
Looks limited
@DmitryVinnik dvinnik.com73
Is there anything better?
@DmitryVinnik dvinnik.com74
Special Case #2
@DmitryVinnik dvinnik.com75
Angular
Components
Models Controllers
@DmitryVinnik dvinnik.com76
Demo App: Closer Look
@DmitryVinnik dvinnik.com77
How would we test that?
@DmitryVinnik dvinnik.com78
Web Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com79
Do we have to use
WebdriverJs?
@DmitryVinnik dvinnik.com80
No!
@DmitryVinnik dvinnik.com81
Protractor
E2E Test Framework for Angular Apps
@DmitryVinnik dvinnik.com82
@DmitryVinnik dvinnik.com
Protractor
83
Protractor
From “Protractor.org”
@DmitryVinnik dvinnik.com84
E2E Tests’ Complexity
Selectors
Locator
Strategy
Test Flows SPA Types
@DmitryVinnik dvinnik.com85
Protractor
Selectors
Locator
Strategy
Test Flows SPA Types
Locator
Strategy
Test Flows SPA Types
Selectors
Element
Bindings
Locator
Strategy
By Repeaters
Test Flows
Application
State Aware
SPA Types
Angular
Oriented
@DmitryVinnik dvinnik.com86
Example: Protractor
@DmitryVinnik dvinnik.com87
Angular is great
@DmitryVinnik dvinnik.com88
But
@DmitryVinnik dvinnik.com89
Many UI Frameworks...
React Vue
Ember Backbone
@DmitryVinnik dvinnik.com90
Protractor + React
@DmitryVinnik dvinnik.com91
Protractor + React
@DmitryVinnik dvinnik.com92
Conclusion
@DmitryVinnik dvinnik.com93
Protractor + React
@DmitryVinnik dvinnik.com94
What’s Next?
@DmitryVinnik dvinnik.com95
Non-Selenium
UI Test Frameworks
TestCafe
Cypress.io
@DmitryVinnik dvinnik.com96
What have we
learned so far?
@DmitryVinnik dvinnik.com97
Patterns.
Patterns everywhere
@DmitryVinnik dvinnik.com98
Common Patterns
Handling
Waits
RTD
Parallel
Execution
Recorder
& IDE
@DmitryVinnik dvinnik.com99
Non-Selenium
UI Test Frameworks
TestCafe
Cypress.io
@DmitryVinnik dvinnik.com
Cypress.io
100
Common Patterns
@DmitryVinnik dvinnik.com101
TestCafe
Handling
Waits
RTD
Parallel
Execution
Recorder
& IDE
@DmitryVinnik dvinnik.com102
TestCafe: Example
@DmitryVinnik dvinnik.com103
TestCafe: Example
@DmitryVinnik dvinnik.com104
TestCafe:
Recorder & IDE
@DmitryVinnik dvinnik.com105
TestCafe: Recorder & IDE
@DmitryVinnik dvinnik.com106
Non-Selenium
UI Test Frameworks
TestCafe
Cypress.io
@DmitryVinnik dvinnik.com
Cypress.io
TestCafe
Cypress.io
107
Common Patterns
@DmitryVinnik dvinnik.com108
Cypress.io
Handling
Waits
RTD
Parallel
Execution
Recorder
& IDE
@DmitryVinnik dvinnik.com109
Cypress.io: Example
@DmitryVinnik dvinnik.com110
Cypress.io: Example
@DmitryVinnik dvinnik.com111
Cypress.io:
Recorder & IDE
@DmitryVinnik dvinnik.com112
Cypress.io: Reports & IDE
@DmitryVinnik dvinnik.com113
Right Tool
for the Right Problem
@DmitryVinnik dvinnik.com114
Many Test Frameworks...
WebdriverIO
WD
Nightwatch.js
Nemo
@DmitryVinnik dvinnik.com115
Avoid Tool Mixups
No DDD
No Common
Language
↑ Complexity
@DmitryVinnik dvinnik.com116
How to Choose?
Github
Stars
NPM
Downloads
External
Integrations
POC
@DmitryVinnik dvinnik.com117
But More Importantly
Flexibility
Use CaseUse Case
@DmitryVinnik dvinnik.com118
Flexibility
Cost of
Transition
ROI
Ability to
Replace
Ability to
Customize
@DmitryVinnik dvinnik.com119
But More Importantly
Flexibility
Use CaseUse Case
@DmitryVinnik dvinnik.com
Flexibility
Use Case
120
Use Case
Team
Expertise
Application
Framework
Test
Infrastructure
@DmitryVinnik dvinnik.com121
Call For Action
Evaluate Test
Architecture
Have Domain
Boundaries
Unify Test
Strategy
Experiment!
@DmitryVinnik dvinnik.com122
Q/A
@DmitryVinnik dvinnik.com123
About Speaker
Twitter: @DmitryVinnik
Blog: dvinnik.com
LinkedIn: in/dmitry-vinnik/
Email: dmitry@dvinnik.com

More Related Content

Similar to Modern Web Testing: Choosing the Right Approach for Your Project

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 HeroDmitry Vinnik
 
Back to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in ActionBack to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in ActionDmitry Vinnik
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingCamille Bell
 
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 InterfacesDmitry Vinnik
 
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEORendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEOOnely
 
kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )
kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )
kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )Kevin Indig
 
How to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery PipelineHow to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery PipelineDynatrace
 
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing colleenfry
 
TechSEO Boost 2018: Internal Link Optimization on Steroids
TechSEO Boost 2018: Internal Link Optimization on SteroidsTechSEO Boost 2018: Internal Link Optimization on Steroids
TechSEO Boost 2018: Internal Link Optimization on SteroidsCatalyst
 
5 Steps to Higher Google Rankings
5 Steps to Higher Google Rankings5 Steps to Higher Google Rankings
5 Steps to Higher Google RankingsDemandWave
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandChris Sterling
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver SelendroidDominik Dary
 
Continuous integration testing 2019 08
Continuous integration testing 2019 08Continuous integration testing 2019 08
Continuous integration testing 2019 08David Stanke
 
Google Ranking Game Changer! Disavow Links & What it Means for Your SEO
Google Ranking Game Changer!  Disavow Links & What it Means for Your SEOGoogle Ranking Game Changer!  Disavow Links & What it Means for Your SEO
Google Ranking Game Changer! Disavow Links & What it Means for Your SEODemandWave
 
anoverviewofseleniumwebdriver-160407055026 (pdf.io).pdf
anoverviewofseleniumwebdriver-160407055026 (pdf.io).pdfanoverviewofseleniumwebdriver-160407055026 (pdf.io).pdf
anoverviewofseleniumwebdriver-160407055026 (pdf.io).pdfSunilNagaraj10
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriverAnuraj S.L
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsTechWell
 
How to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOpsHow to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOpsDynatrace
 
Domain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re DoingDomain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re DoingDmitry Vinnik
 

Similar to Modern Web Testing: Choosing the Right Approach for Your Project (20)

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
 
Back to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in ActionBack to the CompletableFuture: Concurrency in Action
Back to the CompletableFuture: Concurrency in Action
 
What CS Class Didn't Teach About Testing
What CS Class Didn't Teach About TestingWhat CS Class Didn't Teach About Testing
What CS Class Didn't Teach About Testing
 
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
 
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEORendering SEO Manifesto - Why we need to go beyond JavaScript SEO
Rendering SEO Manifesto - Why we need to go beyond JavaScript SEO
 
kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )
kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )
kevin Indig - Internal Link Building on Steroids (Tech SEO Boost )
 
Improving Design through TDD
Improving Design through TDDImproving Design through TDD
Improving Design through TDD
 
How to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery PipelineHow to Build a Metrics-optimized Software Delivery Pipeline
How to Build a Metrics-optimized Software Delivery Pipeline
 
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
AtlasCamp 2013: Show Me Number! Automated Browser Performance Testing
 
TechSEO Boost 2018: Internal Link Optimization on Steroids
TechSEO Boost 2018: Internal Link Optimization on SteroidsTechSEO Boost 2018: Internal Link Optimization on Steroids
TechSEO Boost 2018: Internal Link Optimization on Steroids
 
5 Steps to Higher Google Rankings
5 Steps to Higher Google Rankings5 Steps to Higher Google Rankings
5 Steps to Higher Google Rankings
 
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG KirklandManaging Software Debt - Quality Debt Focus - QASIG Kirkland
Managing Software Debt - Quality Debt Focus - QASIG Kirkland
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver Selendroid
 
Continuous integration testing 2019 08
Continuous integration testing 2019 08Continuous integration testing 2019 08
Continuous integration testing 2019 08
 
Google Ranking Game Changer! Disavow Links & What it Means for Your SEO
Google Ranking Game Changer!  Disavow Links & What it Means for Your SEOGoogle Ranking Game Changer!  Disavow Links & What it Means for Your SEO
Google Ranking Game Changer! Disavow Links & What it Means for Your SEO
 
anoverviewofseleniumwebdriver-160407055026 (pdf.io).pdf
anoverviewofseleniumwebdriver-160407055026 (pdf.io).pdfanoverviewofseleniumwebdriver-160407055026 (pdf.io).pdf
anoverviewofseleniumwebdriver-160407055026 (pdf.io).pdf
 
An overview of selenium webdriver
An overview of selenium webdriverAn overview of selenium webdriver
An overview of selenium webdriver
 
DevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More DefectsDevOps: Find Solutions, Not More Defects
DevOps: Find Solutions, Not More Defects
 
How to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOpsHow to Better Manage Technical Debt While Innovating on DevOps
How to Better Manage Technical Debt While Innovating on DevOps
 
Domain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re DoingDomain Driven Testing: Know What You’re Doing
Domain Driven Testing: Know What You’re Doing
 

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 CareDmitry 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
 
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 YogaDmitry Vinnik
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDmitry 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 GapsDmitry Vinnik
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in GoDmitry 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 HealthDmitry Vinnik
 
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 KotlinDmitry Vinnik
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDmitry Vinnik
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to FreedomDmitry Vinnik
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersDmitry Vinnik
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedDmitry 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 ItDmitry Vinnik
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build WebsitesDmitry Vinnik
 

More from Dmitry Vinnik (14)

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
 
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...
 
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
 
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
 
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
 
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
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
 

Recently uploaded

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfCionsystems
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 

Recently uploaded (20)

Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Active Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdfActive Directory Penetration Testing, cionsystems.com.pdf
Active Directory Penetration Testing, cionsystems.com.pdf
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 

Modern Web Testing: Choosing the Right Approach for Your Project