SlideShare a Scribd company logo
1 of 127
Modern Web Testing:
Going Beyond Selenium
Dmitry Vinnik
@DmitryVinnik dvinnik.com
What are our goals?
@DmitryVinnik dvinnik.com
Goals
End-to-End Testing:
What, Why, How and When
Looking Beyond Selenium WD
Find Right E2E Tool For Your
Team
@DmitryVinnik dvinnik.com
Let’s go in more details
@DmitryVinnik dvinnik.com
How do we usually test?
@DmitryVinnik dvinnik.com
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Let’s test something!
@DmitryVinnik dvinnik.com
What is this “something”?
@DmitryVinnik dvinnik.com
Example App
@DmitryVinnik dvinnik.com
Back to testing!
@DmitryVinnik dvinnik.com
End-to-End Testing
Today’s Focus
@DmitryVinnik dvinnik.com
Common way to do E2E?
@DmitryVinnik dvinnik.com
Selenium WebDriver
Defacto
E2E Tool
Testing
Standard
Generic ↑ Integrations
@DmitryVinnik dvinnik.com
Selenium WebDriver
@DmitryVinnik dvinnik.com
Selenium WebDriver
From “SeleniumHQ, Selenium RC”
@DmitryVinnik dvinnik.com
Case #1
Backend:
Java
Testing:
Java
Is there a problem?
@DmitryVinnik dvinnik.com
Yes, there is
@DmitryVinnik dvinnik.com
Why not Backend Tests?
Hybrid
Model
DDD
User
Centric
DDD
User
Centric
@DmitryVinnik dvinnik.com
Hybrid Model
Software
Engineers
Software
Principles
Testing
Expertise
@DmitryVinnik dvinnik.com
Why not Backend Tests?
Hybrid
Model
DDD
User
Centric
DDD
User
Centric
@DmitryVinnik dvinnik.com
Hybrid
Model
DDD
Domain Driven Design
Context Matters
Ubiquitous
Language
@DmitryVinnik dvinnik.com
Why not Backend Tests?
Hybrid
Model
DDD
User
Centric
DDD
User
Centric
@DmitryVinnik dvinnik.com
Hybrid
Model
DDDDDD
User
Centric
Still not convinced?
@DmitryVinnik dvinnik.com
Modern Web Testing
@DmitryVinnik dvinnik.com
Power of JavaScript
Assertion
Libraries
Process
Libraries
Enterprise
Libraries
Process
Libraries
Enterprise
Libraries
ChaiJasmine
Process
Libraries
BDD
Libraries
Cucumber
Enterprise
Libraries
Applitools
@DmitryVinnik dvinnik.com
Speaking Language
of the Web
@DmitryVinnik dvinnik.com
JavaScript
Node.js
@DmitryVinnik dvinnik.com
Node.js
NPM
Manager
Flexible
Customizable
Isomorphic
@DmitryVinnik dvinnik.com
Established Medium
@DmitryVinnik dvinnik.com
Going back to the Pyramid
@DmitryVinnik dvinnik.com
Test Pyramid
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Unit Testing
In Web Context
@DmitryVinnik dvinnik.com
Example: Jasmine
@DmitryVinnik dvinnik.com
Test Pyramid
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Integration Testing
In Web Context
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Example: Jest
@DmitryVinnik dvinnik.com
Let’s reflect on it
@DmitryVinnik dvinnik.com
Test Pyramid
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Every step has
only 1 focus
@DmitryVinnik dvinnik.com
Developers
@DmitryVinnik dvinnik.com
Good for some tests
@DmitryVinnik dvinnik.com
But not for E2E tests
@DmitryVinnik dvinnik.com
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Shifting focus
@DmitryVinnik dvinnik.com
Developers Customers
@DmitryVinnik dvinnik.com
Sounds great!
@DmitryVinnik dvinnik.com
But how do we do it?
@DmitryVinnik dvinnik.com
End-to-End Task Testing
@DmitryVinnik dvinnik.com
User Centric Testing
Interactions Tasks
Page Object
Model
Screenplay
Pattern
@DmitryVinnik dvinnik.com
Back to our app
@DmitryVinnik dvinnik.com
Should we use
Java for tests?
@DmitryVinnik dvinnik.com
No!
@DmitryVinnik dvinnik.com
What should we do?
@DmitryVinnik dvinnik.com
Move to Client Side
@DmitryVinnik dvinnik.com
Continuing with Selenium
@DmitryVinnik dvinnik.com
WebdriverJs
@DmitryVinnik dvinnik.com
Selenium WebDriver
Defacto
E2E Tool
Testing
Standard
Generic ↑ Integrations
@DmitryVinnik dvinnik.com
Defacto
E2E Tool
Testing
Standard
Generic ↑ Integrations
WebdriverJs
@DmitryVinnik dvinnik.com
Selenium WebdriverJs
@DmitryVinnik dvinnik.com
Selenium WebdriverJs
From “SeleniumHQ, Selenium RC”
@DmitryVinnik dvinnik.com
Example: WebdriverJs
@DmitryVinnik dvinnik.com
Only good parts, right?
@DmitryVinnik dvinnik.com
Not Really...
@DmitryVinnik dvinnik.com
E2E Tests’ Complexity
Selectors
Locator
Strategy
Test Flows SPA Types
@DmitryVinnik dvinnik.com
What about WebdriverJs?
@DmitryVinnik dvinnik.com
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.com
Looks limited
@DmitryVinnik dvinnik.com
Is there anything better?
@DmitryVinnik dvinnik.com
Remember our test app?
@DmitryVinnik dvinnik.com
Case #2
@DmitryVinnik dvinnik.com
Angular
Components
Models Controllers
@DmitryVinnik dvinnik.com
Demo App: Closer Look
@DmitryVinnik dvinnik.com
How would we test that?
@DmitryVinnik dvinnik.com
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
@DmitryVinnik dvinnik.com
Do we have to use
WebdriverJs?
@DmitryVinnik dvinnik.com
No!
@DmitryVinnik dvinnik.com
Protractor
E2E Test Framework for Angular Apps
@DmitryVinnik dvinnik.com
@DmitryVinnik dvinnik.com
Protractor
Protractor
From “Protractor.org”
@DmitryVinnik dvinnik.com
E2E Tests’ Complexity
Selectors
Locator
Strategy
Test Flows SPA Types
@DmitryVinnik dvinnik.com
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.com
Example: Protractor
@DmitryVinnik dvinnik.com
Angular is great
@DmitryVinnik dvinnik.com
But
@DmitryVinnik dvinnik.com
Many UI Frameworks...
React Vue
Ember Backbone
@DmitryVinnik dvinnik.com
Protractor + React
@DmitryVinnik dvinnik.com
Protractor + React
@DmitryVinnik dvinnik.com
Conclusion
@DmitryVinnik dvinnik.com
Protractor + React
@DmitryVinnik dvinnik.com
What’s Next?
@DmitryVinnik dvinnik.com
Non-Selenium
UI Test Frameworks
TestCafe
Cypress.io
@DmitryVinnik dvinnik.com
What have we
learned so far?
@DmitryVinnik dvinnik.com
Patterns.
Patterns everywhere
@DmitryVinnik dvinnik.com
Common Patterns
Handling
Waits
RTD
Parallel
Execution
Recorder
& IDE
@DmitryVinnik dvinnik.com
Non-Selenium
UI Test Frameworks
TestCafe
Cypress.io
@DmitryVinnik dvinnik.com
Cypress.io
Common Patterns
@DmitryVinnik dvinnik.com
TestCafe
Handling
Waits
RTD
Parallel
Execution
Recorder
& IDE
@DmitryVinnik dvinnik.com
TestCafe: Example
@DmitryVinnik dvinnik.com
TestCafe: Example
@DmitryVinnik dvinnik.com
TestCafe:
Recorder & IDE
@DmitryVinnik dvinnik.com
TestCafe: Recorder & IDE
@DmitryVinnik dvinnik.com
Non-Selenium
UI Test Frameworks
TestCafe
Cypress.io
@DmitryVinnik dvinnik.com
Cypress.io
TestCafe
Cypress.io
Common Patterns
@DmitryVinnik dvinnik.com
Cypress.io
Handling
Waits
RTD
Parallel
Execution
Recorder
& IDE
@DmitryVinnik dvinnik.com
Cypress.io: Example
@DmitryVinnik dvinnik.com
Cypress.io: Example
@DmitryVinnik dvinnik.com
Cypress.io:
Recorder & IDE
@DmitryVinnik dvinnik.com
Cypress.io: Reports & IDE
@DmitryVinnik dvinnik.com
Right Tool
for the Right Problem
@DmitryVinnik dvinnik.com
Many Test Frameworks...
WebdriverIO
WD
Nightwatch.js
Nemo
@DmitryVinnik dvinnik.com
Avoid Tool Mixups
No DDD
No Common
Language
↑ Complexity
@DmitryVinnik dvinnik.com
How to Choose?
Github
Stars
NPM
Downloads
External
Integrations
POC
@DmitryVinnik dvinnik.com
But More Importantly
Flexibility
Use CaseUse Case
@DmitryVinnik dvinnik.com
Flexibility
Cost of
Transition
ROI
Ability to
Replace
Ability to
Customize
@DmitryVinnik dvinnik.com
But More Importantly
Flexibility
Use CaseUse Case
@DmitryVinnik dvinnik.com
Flexibility
Use Case
Use Case
Team
Expertise
Application
Framework
Test
Infrastructure
@DmitryVinnik dvinnik.com
Call For Action
Evaluate Test
Architecture
Have Domain
Boundaries
Unify Test
Strategy
Experiment!
@DmitryVinnik dvinnik.com
Q/A
@DmitryVinnik dvinnik.com
About Speaker
Twitter: @DmitryVinnik
Blog: dvinnik.com
LinkedIn: in/dmitry-vinnik/
Email: dmitry@dvinnik.com

More Related Content

What's hot

DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019Sonatype
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityChristian Trabold
 
Advanced topics in Agile: Implementing Scrum in a project-based company
Advanced topics in Agile: Implementing Scrum in a project-based companyAdvanced topics in Agile: Implementing Scrum in a project-based company
Advanced topics in Agile: Implementing Scrum in a project-based companyEthan Ram
 
33degree Krzysztof Debski - Let's build a solid base for a scale
33degree Krzysztof Debski - Let's build a solid base for a scale33degree Krzysztof Debski - Let's build a solid base for a scale
33degree Krzysztof Debski - Let's build a solid base for a scaleKrzysztof Debski
 
Jenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on MobileJenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on MobileLuca Milanesio
 
DevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsDevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsEmmanuel Gomes Brandão
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference SpeakerSven Peters
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciAtlassian
 
OpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationOpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationDigicomp Academy AG
 
Continous Delivery and Continous Integration at IKERLAN
Continous Delivery and Continous Integration at IKERLANContinous Delivery and Continous Integration at IKERLAN
Continous Delivery and Continous Integration at IKERLANAngel Conde Manjon
 
From Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-Napoca
From Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-NapocaFrom Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-Napoca
From Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-Napocajerryhargrove
 
Professional iOS development
Professional iOS developmentProfessional iOS development
Professional iOS developmentAline Borges
 
Application Security Epistemology in a Continuous Delivery World
Application Security Epistemology in a Continuous Delivery WorldApplication Security Epistemology in a Continuous Delivery World
Application Security Epistemology in a Continuous Delivery WorldJames Wickett
 
My 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyMy 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyBurr Sutter
 
Concurrent version management(tortoise CVS)
Concurrent version management(tortoise CVS)Concurrent version management(tortoise CVS)
Concurrent version management(tortoise CVS)Mirza_Mohtashim
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)Hui (Henry) Chen
 
What I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginnersWhat I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginnersEtiene Dalcol
 
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Puppet
 

What's hot (20)

DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019DevOps Days Columbus - Derek Weeks - 2019
DevOps Days Columbus - Derek Weeks - 2019
 
DevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh CityDevOps Training - Ho Chi Minh City
DevOps Training - Ho Chi Minh City
 
TechTalk: What's New with Perfecto?
TechTalk: What's New with Perfecto?TechTalk: What's New with Perfecto?
TechTalk: What's New with Perfecto?
 
Advanced topics in Agile: Implementing Scrum in a project-based company
Advanced topics in Agile: Implementing Scrum in a project-based companyAdvanced topics in Agile: Implementing Scrum in a project-based company
Advanced topics in Agile: Implementing Scrum in a project-based company
 
33degree Krzysztof Debski - Let's build a solid base for a scale
33degree Krzysztof Debski - Let's build a solid base for a scale33degree Krzysztof Debski - Let's build a solid base for a scale
33degree Krzysztof Debski - Let's build a solid base for a scale
 
Jenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on MobileJenkins User Conference - Continuous Delivery on Mobile
Jenkins User Conference - Continuous Delivery on Mobile
 
DevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOpsDevOps para Open Source com Azure DevOps
DevOps para Open Source com Azure DevOps
 
Scaling pipelines
Scaling pipelinesScaling pipelines
Scaling pipelines
 
How to Become a Conference Speaker
How to Become a Conference SpeakerHow to Become a Conference Speaker
How to Become a Conference Speaker
 
Becoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola PaolucciBecoming a Git Master - Nicola Paolucci
Becoming a Git Master - Nicola Paolucci
 
OpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous IntegrationOpenTuesday: Agile Testautomatisierung und Continuous Integration
OpenTuesday: Agile Testautomatisierung und Continuous Integration
 
Continous Delivery and Continous Integration at IKERLAN
Continous Delivery and Continous Integration at IKERLANContinous Delivery and Continous Integration at IKERLAN
Continous Delivery and Continous Integration at IKERLAN
 
From Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-Napoca
From Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-NapocaFrom Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-Napoca
From Zero to DevSecOps in 60 Minutes - DevTalks Romania - Cluj-Napoca
 
Professional iOS development
Professional iOS developmentProfessional iOS development
Professional iOS development
 
Application Security Epistemology in a Continuous Delivery World
Application Security Epistemology in a Continuous Delivery WorldApplication Security Epistemology in a Continuous Delivery World
Application Security Epistemology in a Continuous Delivery World
 
My 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary JourneyMy 'Phoenix Project'—One Developer's Evolutionary Journey
My 'Phoenix Project'—One Developer's Evolutionary Journey
 
Concurrent version management(tortoise CVS)
Concurrent version management(tortoise CVS)Concurrent version management(tortoise CVS)
Concurrent version management(tortoise CVS)
 
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
NYIT DSC/ Spring 2021 - Introduction to DevOps (CI/CD)
 
What I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginnersWhat I learned teaching programming to 150 beginners
What I learned teaching programming to 150 beginners
 
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
Keynote: The Phoenix Project: Lessons Learned - PuppetConf 2014
 

Similar to Modern Web Testing: Going Beyond Selenium

Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumModern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumDmitry Vinnik
 
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
 
Uphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual RegressionUphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual RegressionDmitry Vinnik
 
Testing at Scale at Meta and Salesforce
Testing at Scale at Meta and SalesforceTesting at Scale at Meta and Salesforce
Testing at Scale at Meta and SalesforceDmitry 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 InterfacesDmitry Vinnik
 
Engineer in Test: Bridging the Gap
Engineer in Test: Bridging the GapEngineer in Test: Bridging the Gap
Engineer in Test: Bridging the GapDmitry Vinnik
 
Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!Dmitry Vinnik
 
Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!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 HeroAll Things Open
 
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
 
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
 
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
 
Selenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | EdurekaSelenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | EdurekaEdureka!
 
Selenium Certification
Selenium CertificationSelenium Certification
Selenium CertificationVskills
 
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...Edureka!
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver SelendroidDominik Dary
 
Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Inflectra
 
Selenium and Open Source Advanced Testing
Selenium and Open Source Advanced TestingSelenium and Open Source Advanced Testing
Selenium and Open Source Advanced TestingAustin Marie Gay
 
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
 

Similar to Modern Web Testing: Going Beyond Selenium (20)

Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumModern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
 
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
 
Uphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual RegressionUphill Battle of Mobile Visual Regression
Uphill Battle of Mobile Visual Regression
 
Testing at Scale at Meta and Salesforce
Testing at Scale at Meta and SalesforceTesting at Scale at Meta and Salesforce
Testing at Scale at Meta and Salesforce
 
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
 
Engineer in Test: Bridging the Gap
Engineer in Test: Bridging the GapEngineer in Test: Bridging the Gap
Engineer in Test: Bridging the Gap
 
Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!Testing Svelte with Jest: Validate Your Components Quickly!
Testing Svelte with Jest: Validate Your Components Quickly!
 
Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!Testing React with Jest: Validate Your Components Quickly!
Testing React with Jest: Validate Your Components Quickly!
 
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
 
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
 
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
 
Selenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | EdurekaSelenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | Edureka
 
Selenium Certification
Selenium CertificationSelenium Certification
Selenium Certification
 
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
Selenium Tutorial For Beginners | What Is Selenium? | Selenium Automation Tes...
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver Selendroid
 
Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise Start Your Automation Journey With Rapise
Start Your Automation Journey With Rapise
 
Selenium and Open Source Advanced Testing
Selenium and Open Source Advanced TestingSelenium and Open Source Advanced Testing
Selenium and Open Source Advanced Testing
 
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
 

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

More from Dmitry Vinnik (15)

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

Recently uploaded

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作qr0udbr0
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsChristian Birchler
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...Technogeeks
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commercemanigoyal112
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptrcbcrtm
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Developmentvyaparkranti
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 

Recently uploaded (20)

英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作英国UN学位证,北安普顿大学毕业证书1:1制作
英国UN学位证,北安普顿大学毕业证书1:1制作
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Odoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting ServiceOdoo Development Company in India | Devintelle Consulting Service
Odoo Development Company in India | Devintelle Consulting Service
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving CarsSensoDat: Simulation-based Sensor Dataset of Self-driving Cars
SensoDat: Simulation-based Sensor Dataset of Self-driving Cars
 
What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...What is Advanced Excel and what are some best practices for designing and cre...
What is Advanced Excel and what are some best practices for designing and cre...
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Cyber security and its impact on E commerce
Cyber security and its impact on E commerceCyber security and its impact on E commerce
Cyber security and its impact on E commerce
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
cpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.pptcpct NetworkING BASICS AND NETWORK TOOL.ppt
cpct NetworkING BASICS AND NETWORK TOOL.ppt
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
VK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web DevelopmentVK Business Profile - provides IT solutions and Web Development
VK Business Profile - provides IT solutions and Web Development
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 

Modern Web Testing: Going Beyond Selenium

Editor's Notes

  1. Not how to, but why (not step-by-step instructions, there are 100s of those)
  2. Explain width is #tests
  3. Show the app: http://todomvc.com/examples/angularjs/#/
  4. Show the app
  5. Reference: https://www.seleniumhq.org/docs/05_selenium_rc.jsp
  6. Reference: https://www.seleniumhq.org/docs/05_selenium_rc.jsp
  7. Indeed open source
  8. Karma
  9. Jest, Jasmine - components
  10. Explain width is #tests
  11. Reinforce the idea that Tests are about feedback, about communication
  12. Reinforce the idea that Tests are about feedback, about communication
  13. Explain width is #tests
  14. Possibly talk about screenplay vs interation, explain why task SOLID pattern
  15. Possibly talk about screenplay vs interation, explain why task SOLID pattern
  16. Web app context, web rules - write tests on the client side
  17. Web app context, web rules - write tests on the client side
  18. Very important “Js”, not “JS”
  19. Very important “Js”, not “JS”
  20. Reference: https://www.seleniumhq.org/docs/05_selenium_rc.jsp
  21. Reference: https://www.seleniumhq.org/docs/05_selenium_rc.jsp
  22. ES6 Mocha
  23. Focus on SPA
  24. Focus on SPA
  25. Focus on SPA
  26. Explain width is #tests
  27. https://www.protractortest.org/#/infrastructure
  28. https://www.protractortest.org/#/infrastructure
  29. Jasmine
  30. Injects scripts directly into DOM
  31. Injects scripts directly into DOM
  32. Injects scripts directly into DOM
  33. Injects scripts directly into DOM
  34. https://github.com/DevExpress/testcafe https://github.com/DevExpress/testcafe-live
  35. https://github.com/DevExpress/testcafe https://github.com/DevExpress/testcafe-live https://testcafe-studio.devexpress.com
  36. https://github.com/DevExpress/testcafe https://github.com/DevExpress/testcafe-live https://testcafe-studio.devexpress.com
  37. Source: TestCafe by DevExpress, https://github.com/DevExpress/testcafe
  38. Injects scripts directly into DOM
  39. https://github.com/DevExpress/testcafe https://github.com/DevExpress/testcafe-live
  40. https://github.com/DevExpress/testcafe https://github.com/DevExpress/testcafe-live https://testcafe-studio.devexpress.com
  41. Extensive documentation - https://docs.cypress.io
  42. Source: Cypress.io Example by Cypress.io, https://www.cypress.io
  43. We exist in a land of options
  44. Compare to Kotlin/Scala transition cost, ROI
  45. Will be sharing slides, github and useful links