SlideShare a Scribd company logo
Uphill Battle Of Mobile
Visual Regression
Dmitry Vinnik
@DmitryVinnik dvinnik.com
What are our goals?
@DmitryVinnik dvinnik.com
Goals
Visual Testing (VT):
What, Why, How and When
New Perspective on Test Pyramid
Find VT Tool For Your Team
Target Platforms?
@DmitryVinnik dvinnik.com
Target Platforms
iOS
Android
Responsive
Apps
Hybrid
Apps
@DmitryVinnik dvinnik.com
Let’s see some dataBut “Mobile” is so broad
Android
iOS
How do we organize
QA Effort?
@DmitryVinnik dvinnik.com
From the Top Level
@DmitryVinnik dvinnik.com
Testing Quadrants
@DmitryVinnik dvinnik.com
Agile Testing Quadrants
by Lisa Crispin and Janet Gregory
@DmitryVinnik dvinnik.com
Let’s go in more details
@DmitryVinnik dvinnik.com
How do we usually test?
@DmitryVinnik dvinnik.com
@DmitryVinnik
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
dvinnik.com
Let’s try get more practical
@DmitryVinnik dvinnik.com
Is anyone thirsty?
@DmitryVinnik dvinnik.com
Pour Drink
Drinking Glass
@DmitryVinnik dvinnik.com
Test Pyramid & Drinking Glass
Pour Drink
Unit Integration E2E
@DmitryVinnik dvinnik.com
Are we done?
@DmitryVinnik dvinnik.com
Not really...
@DmitryVinnik dvinnik.com
Pour Drink
Drinking Glass
@DmitryVinnik dvinnik.com
Pour Drink
@DmitryVinnik dvinnik.com
Unit Integration E2E
Test Pyramid & Drinking Glass
What are we missing?
@DmitryVinnik dvinnik.com
What are we missing?
Same
Functionally
Different
Visually
UX
UX
@DmitryVinnik dvinnik.com
Visual Testing
Visual
Content
Page
Layout
Visual
Animation
Responsive
Design
@DmitryVinnik dvinnik.com
Functional
Manual Testing
is Difficult
@DmitryVinnik dvinnik.com
Visual
Manual Testing
is Nearly
Impossible
@DmitryVinnik dvinnik.com
A Little Bit of Science
@DmitryVinnik dvinnik.com
A Little Bit of Science
@DmitryVinnik dvinnik.com
Conclusion?
@DmitryVinnik dvinnik.com
Visual Testing
requires Automation
@DmitryVinnik dvinnik.com
But!
@DmitryVinnik dvinnik.com
On Every Level!
@DmitryVinnik dvinnik.com
@DmitryVinnik
Test Pyramid
↑ Fidelity
↓ Speed
↑ Cost
↓ Fidelity
↑ Speed
↓ Cost
dvinnik.com
Remember the Title?
@DmitryVinnik dvinnik.com
Uphill Battle Of Mobile
Visual Regression
@DmitryVinnik dvinnik.com
Uphill Battle
@DmitryVinnik dvinnik.com
Test
Pyramid
Test Hill
Test
Mountain
@DmitryVinnik dvinnik.com
@DmitryVinnik
Visual Test Mountain
dvinnik.com
@DmitryVinnik
Visual Test Mountain
↓ Fidelity
↑ Speed
↓ Cost
↑ Fidelity
↓ Speed
↑ Cost
dvinnik.com
Let’s Start Our Climb!
@DmitryVinnik dvinnik.com
CSS/DOM Tests
@DmitryVinnik dvinnik.com
Testing Demos
Responsive
App
Hybrid App
Android iOSAndroid iOS
@DmitryVinnik dvinnik.com
Demo Time:
Snapshot Testing
@DmitryVinnik dvinnik.com
Is it enough?
@DmitryVinnik dvinnik.com
No!
@DmitryVinnik dvinnik.com
Let me show you why
@DmitryVinnik dvinnik.com
Quick Glance:
Responsive Design
in Action
@DmitryVinnik dvinnik.com
Solution?
@DmitryVinnik dvinnik.com
Visual Component Testing
@DmitryVinnik dvinnik.com
Let’s Step Back First
@DmitryVinnik dvinnik.com
Component Driven
Development
Reusable
Composable
Encapsulated
Semantic
@DmitryVinnik dvinnik.com
CDD in Practice
@DmitryVinnik dvinnik.com
Storybook
Library
Testing
Ground
Styleguide IDE
@DmitryVinnik dvinnik.com
Quick Glance:
Storybook
@DmitryVinnik dvinnik.com
Visual Component Testing
@DmitryVinnik dvinnik.com
Testing Demos
Responsive
App
Hybrid App
Android iOS
@DmitryVinnik dvinnik.com
Screenshot Testing
Action
Driver
View
Loader
Comparison
Driver
@DmitryVinnik dvinnik.com
PhantomCSS
@DmitryVinnik dvinnik.com
Demo Time:
PhantomCSS
@DmitryVinnik dvinnik.com
BackstopJS
@DmitryVinnik dvinnik.com
BackstopJS
@DmitryVinnik dvinnik.com
BackstopJS
@DmitryVinnik dvinnik.com
BackstopJS
@DmitryVinnik dvinnik.com
BackstopJS
@DmitryVinnik dvinnik.com
BackstopJS
@DmitryVinnik dvinnik.com
BackstopJS
Screenshot Testing:
Native
Action
Driver
View
Loader
Comparison
Driver@DmitryVinnik dvinnik.com
Screenshot Testing:
Native
Android screenshot-tests-for-android
iOS ios-snapshot-test-caseiOS ios-snapshot-test-case
@DmitryVinnik dvinnik.com
Demo Time:
Screenshot Testing
Android
@DmitryVinnik dvinnik.com
Enterprise
Screener.io
Flawlessapp.io
Chromatic
Percy.io
@DmitryVinnik dvinnik.com
Best Practices
Screenshot
Names
Component
Testing First
Git Media
Standard
Test Pyramid
@DmitryVinnik dvinnik.com
Summary
DOM/CSS
Not Enough
Dev = Test
Choose
Solution
Build
Solution
@DmitryVinnik dvinnik.com
Page Visual Tests
@DmitryVinnik dvinnik.com
Responsive Testing
Window Size
Transition
States
DOM/CSS
Screenshots
@DmitryVinnik dvinnik.com
Demo Time:
Responsive Testing
with Selenium
@DmitryVinnik dvinnik.com
Demo Time:
Native Visual Testing
with
Appium & Applitools
@DmitryVinnik dvinnik.com
Enterprise
Applitools BrowserStack
SauceLabs TestObjectSauceLabs
@DmitryVinnik dvinnik.com
Summit
@DmitryVinnik dvinnik.com
Summit
You+
@DmitryVinnik dvinnik.com
Call For Action
Start the Climb Visual Unit
Tests
Visual
Component
Tests
Visual Page
Tests
@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

Similar to Uphill Battle of Mobile Visual Regression

Hands on React Native: From Zero to Hero
Hands on React  Native:  From Zero to HeroHands on React  Native:  From Zero to Hero
Hands on React Native: From Zero to Hero
Dmitry Vinnik
 
Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumModern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
Dmitry 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
 
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
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
 
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
Dmitry Vinnik
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
Dmitry Vinnik
 
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual RegressionMobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
All Things Open
 
Android instant app
Android instant appAndroid instant app
Android instant app
Benjamin Cheng
 
Rendering strategies: Measuring the devil's details in core web vitals - Jam...
Rendering strategies:  Measuring the devil's details in core web vitals - Jam...Rendering strategies:  Measuring the devil's details in core web vitals - Jam...
Rendering strategies: Measuring the devil's details in core web vitals - Jam...
Jamie Indigo
 
Google Glass - An Intro presentation to conduct code lab events.
Google Glass - An Intro presentation to conduct code lab events.Google Glass - An Intro presentation to conduct code lab events.
Google Glass - An Intro presentation to conduct code lab events.
getdinesh
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
Martin de Keijzer
 
Create Hybrid Mobile Application with Icenium and Kendo UI Mobile
Create Hybrid Mobile Application with Icenium and Kendo UI Mobile Create Hybrid Mobile Application with Icenium and Kendo UI Mobile
Create Hybrid Mobile Application with Icenium and Kendo UI Mobile
Dhananjay Kumar
 
I want my process back! #microservices #serverless
I want my process back! #microservices #serverlessI want my process back! #microservices #serverless
I want my process back! #microservices #serverless
camunda services GmbH
 
Camunda Con 2019 Keynote - I want my process back #microservices #serverless
Camunda Con 2019 Keynote - I want my process back #microservices #serverlessCamunda Con 2019 Keynote - I want my process back #microservices #serverless
Camunda Con 2019 Keynote - I want my process back #microservices #serverless
Bernd Ruecker
 
Empowering businesses with serverless
Empowering businesses with serverlessEmpowering businesses with serverless
Empowering businesses with serverless
Yan Cui
 
Continuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit StockholmContinuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit Stockholm
Michael Medin
 
Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)
Danny Preussler
 
Beyond Responsive [Web Design Day]
Beyond Responsive [Web Design Day]Beyond Responsive [Web Design Day]
Beyond Responsive [Web Design Day]
Aaron Gustafson
 
Beyond Responsive [Future of Web Design 2015]
Beyond Responsive [Future of Web Design 2015]Beyond Responsive [Future of Web Design 2015]
Beyond Responsive [Future of Web Design 2015]
Aaron Gustafson
 

Similar to Uphill Battle of Mobile Visual Regression (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
 
Modern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond SeleniumModern Web Testing: Going Beyond Selenium
Modern Web Testing: Going Beyond Selenium
 
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!
 
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
 
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!
 
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
 
Gauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web RevivedGauge + Taiko, BDD for Web Revived
Gauge + Taiko, BDD for Web Revived
 
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual RegressionMobile Visual Testing: Uphill Battle Of Mobile Visual Regression
Mobile Visual Testing: Uphill Battle Of Mobile Visual Regression
 
Android instant app
Android instant appAndroid instant app
Android instant app
 
Rendering strategies: Measuring the devil's details in core web vitals - Jam...
Rendering strategies:  Measuring the devil's details in core web vitals - Jam...Rendering strategies:  Measuring the devil's details in core web vitals - Jam...
Rendering strategies: Measuring the devil's details in core web vitals - Jam...
 
Google Glass - An Intro presentation to conduct code lab events.
Google Glass - An Intro presentation to conduct code lab events.Google Glass - An Intro presentation to conduct code lab events.
Google Glass - An Intro presentation to conduct code lab events.
 
Productive & easy mobile app dev
Productive & easy mobile app devProductive & easy mobile app dev
Productive & easy mobile app dev
 
Create Hybrid Mobile Application with Icenium and Kendo UI Mobile
Create Hybrid Mobile Application with Icenium and Kendo UI Mobile Create Hybrid Mobile Application with Icenium and Kendo UI Mobile
Create Hybrid Mobile Application with Icenium and Kendo UI Mobile
 
I want my process back! #microservices #serverless
I want my process back! #microservices #serverlessI want my process back! #microservices #serverless
I want my process back! #microservices #serverless
 
Camunda Con 2019 Keynote - I want my process back #microservices #serverless
Camunda Con 2019 Keynote - I want my process back #microservices #serverlessCamunda Con 2019 Keynote - I want my process back #microservices #serverless
Camunda Con 2019 Keynote - I want my process back #microservices #serverless
 
Empowering businesses with serverless
Empowering businesses with serverlessEmpowering businesses with serverless
Empowering businesses with serverless
 
Continuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit StockholmContinuous delivery @CD Summit Stockholm
Continuous delivery @CD Summit Stockholm
 
Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)Unit testing on Android (Droidcon Dubai 2015)
Unit testing on Android (Droidcon Dubai 2015)
 
Beyond Responsive [Web Design Day]
Beyond Responsive [Web Design Day]Beyond Responsive [Web Design Day]
Beyond Responsive [Web Design Day]
 
Beyond Responsive [Future of Web Design 2015]
Beyond Responsive [Future of Web Design 2015]Beyond Responsive [Future of Web Design 2015]
Beyond Responsive [Future of Web Design 2015]
 

More from Dmitry Vinnik

Leadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies CareLeadership in Open Source and Why Companies Care
Leadership in Open Source and Why Companies Care
Dmitry Vinnik
 
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 Yoga
Dmitry Vinnik
 
Documentation Made Easy with Docusaurus
Documentation Made Easy with DocusaurusDocumentation Made Easy with Docusaurus
Documentation Made Easy with Docusaurus
Dmitry Vinnik
 
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and GapsFixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Fixing Broken Windows: Dealing with Legacy Systems, Poor Quality and Gaps
Dmitry Vinnik
 
Ent: Making Data Easy in Go
Ent: Making Data Easy in GoEnt: Making Data Easy in Go
Ent: Making Data Easy in Go
Dmitry Vinnik
 
The 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project HealthThe 10,000 Steps of Open Source Project Health
The 10,000 Steps of Open Source Project Health
Dmitry Vinnik
 
Better Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with KotlinBetter Start: Enforcing Best Engineering Practices with Kotlin
Better Start: Enforcing Best Engineering Practices with Kotlin
Dmitry Vinnik
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
Dmitry Vinnik
 
Remote Work: Gateway to Freedom
Remote Work: Gateway to FreedomRemote Work: Gateway to Freedom
Remote Work: Gateway to Freedom
Dmitry Vinnik
 
Kindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What MattersKindness Engineering: Focusing on What Matters
Kindness Engineering: Focusing on What Matters
Dmitry Vinnik
 
Stress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid ItStress Driven Development, and How to Avoid It
Stress Driven Development, and How to Avoid It
Dmitry Vinnik
 
Build Tests to Build Websites
Build Tests to Build WebsitesBuild Tests to Build Websites
Build Tests to Build Websites
Dmitry Vinnik
 

More from Dmitry Vinnik (13)

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
 
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

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
Google
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
abdulrafaychaudhry
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
Aftab Hussain
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 

Recently uploaded (20)

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
AI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website CreatorAI Genie Review: World’s First Open AI WordPress Website Creator
AI Genie Review: World’s First Open AI WordPress Website Creator
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Pro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp BookPro Unity Game Development with C-sharp Book
Pro Unity Game Development with C-sharp Book
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of CodeA Study of Variable-Role-based Feature Enrichment in Neural Models of Code
A Study of Variable-Role-based Feature Enrichment in Neural Models of Code
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 

Uphill Battle of Mobile Visual Regression

Editor's Notes

  1. All code is available along with slides
  2. We will talk about: Tools from demonstration and conceptual perspective (all code is available along with links to the tools) Focus on Automation and less on Enterprise tools
  3. We will talk about: Tools from demonstration and conceptual perspective (all code is available along with links to the tools) Focus on Automation and less on Enterprise tools
  4. Few words about responsive apps (react) and hybrid apps (react native) Credit: Designed by Freepik, https://www.freepik.com/free-vector/technological-devices-design_953322.htm
  5. Few words about responsive apps (react) and hybrid apps (react native) Credit: Designed by Freepik, https://www.freepik.com/free-vector/technological-devices-design_953322.htm
  6. Data: Android: 76.53% iOS: 18.97% Windows: 0.49% Reference: http://gs.statcounter.com/os-market-share/mobile/worldwide/#monthly-201305-201805
  7. Start with something we already know *Focus on Left Side
  8. Start with something we already know *Focus on Left Side Reference: “Agile Testing: A Practical Guide for Testers and Agile Teams”, by Lisa Crispin and Janet Gregory
  9. Explain width is #tests
  10. Question to ask: does it function? This is the focus
  11. Question to ask: does it function? This is the focus
  12. Is it actual Test Pyramid?
  13. Is it actual Test Pyramid?
  14. Ultimately will break us
  15. Ultimately will break us
  16. References: Spatiotemporal Sensitivity and Visual Attention for Efficient Rendering of Dynamic Environments, http://pdiff.sourceforge.net/ypg01.pdf Change Blindness: Implications for the Nature of Visual Attention, https://www2.psych.ubc.ca/~rensink/publications/download/Vision&Attention-RR.pdf
  17. References: Spatiotemporal Sensitivity and Visual Attention for Efficient Rendering of Dynamic Environments, http://pdiff.sourceforge.net/ypg01.pdf Change Blindness: Implications for the Nature of Visual Attention, https://www2.psych.ubc.ca/~rensink/publications/download/Vision&Attention-RR.pdf
  18. Explain width is #tests
  19. Show responsive aspect of the application: Three dimensions: Desktop: > 367px In Between: 375px Mobile: <374
  20. Main Focus: on Hybrid and Responsive Apps Maybe add more css testing
  21. Demonstrate react app iin between states
  22. Demonstrate react app iin between states
  23. Demonstrate react app iin between states
  24. Main Focus: on Hybrid and Responsive Apps Maybe add more css testing
  25. From the start, showing best practice of modularization
  26. Aka, Pattern Libraries; Component Based Development Real encapsulation, self documenting
  27. Reiterate 4 principles of CDD
  28. See http://airbnb.io/react-dates
  29. From the start, showing best practice of modularization This is where you spend most of your time -> hence, spending most of the talk on it
  30. Show responsive aspect of the application: Three dimensions: Desktop: > 367px In Between: 375px Mobile: <374
  31. Calculator Demo
  32. Another one, differencify
  33. If interested in ios, please see github gradle screenshotTests
  34. screenshot-tests-for-android
  35. Screener Flawless app iOS specific Very simple and inexpensive solution Chromatic Cloud-based CI Storybook
  36. FakerJS
  37. Go to HybridAppCssTest Show Before/After methods Show Desktop dimensions Show Mobile dimensions Show in between Highlight how it is missing the point without screenshot validation
  38. Will be sharing slides, github and useful links