SlideShare una empresa de Scribd logo
1 de 43
Descargar para leer sin conexión
Automated Visual
Regression Testing
because….
CSS
IS
AWESOME
Now Batting…
Dave Sadlon
Testing Services Director @ HMB
12 Years in IT Industry
Cleveland Indians Fan
Avid Hiker
• What is automated visual regression testing
• When to use automated visual regression testing
• Available Libraries – and using them
• Further capabilities of automated visual regression testing
L e a r n i n g f r o m g e t t i n g h i t b y p i t c h e s
What this talk is about
4
• Best UI/UX Practices
• Refactoring CSS
• “Functional” Automated Testing (Ruby/Cucumber, Selenium etc.)
L e a r n i n g f r o m g e t t i n g h i t b y p i t c h e s
What this talk is NOT about
4
Every Session has a Story
• Rewrite of customer facing websites – Fortune 500 company
• Project that had two components
• .NET based CMS & Custom .NET MVC “Portal”
• Project had been handed off to us after failed attempt
• Content was being built while build phase was going on
O u r B o x S c o r e
4
The Starting Lineup
3
Bad News Bears
Project Team Starting Lineup
1. .NET Developers*
2. CMS Developers*
3. Business Analyst
4. Design Team*
5. Content Managers*
6. Product Owner
7. Project Manager
8. Solution Architect
9. DevOps/Test QA Lead
3
Well-Oiled Machine
Unit
Integration
E2E
Manual
Tests
https://martinfowler.com/bliki/TestPyramid.html
2
Breaking up the No-Hitter
5
Breaking up the No-Hitter
Developer
(Refactoring CSS)
Refactor!
CSS
Designer
Changing Design
Rounded
Corners!
Content Manager
Still Building
I’m
Contenting
There’s little
risk
5
Little Risk….
There’s little risk
of me flying past
this baseball
game
3
Breaking up the No-Hitter
Developer
Refactor!
CSS
Designer
Rounded
Corners!
Content
Manager
I’m
Contenting
…. 2 Days Later
Why does the
site look
horrible now
!?!?!
2
Breaking up the No-Hitter
7
Breaking up the No-Hitter
Unit
Integration
E2E
Manual
Tests
https://martinfowler.com/bliki/TestPyramid.html
1
Visit to the mound
Developer
TESTING!
Designer
TESTING!
Content
Manager
TESTING!
Test Lead
6
Call to the Bullpen
• Jenkins was reporting everything passing
• Validating the UI manually every time was too time consuming
• (7 site instances x ~50 pages per = 350 pages)
• Ultimately we just wanted to know if something changed the UI
W e n e e d a r e l i e v e r
4
Call to the Bullpen
• How can we speed up UI regression review process?
• Include it in our CI
• Visually inform us of changes
• Cost Effective
W e n e e d a r e l i e v e r
4
Error – Test Lead
P r i d e g o t t h e b e s t o f m e
Custom Build +
BrowserStack +
ImageMagik Library +
Had to align images perfectly =
Hot Garbage
6
• Stop…Collaborate and listen
• CSS is easy to break and hard to test
• Friend recommended to look into Visual Regression Testing
W e n e e d a c l u t c h h i t
Pinch Hitter
4
What is it?
Perform front-end or user-interface(UI) regression testing by capturing
the screenshots of web pages/UI and compare them with the original
images (either historical baseline screenshots or reference images from
live website)
Automated Visual Regression Testing
4
https://saucelabs.com/blog/getting-started-with-visual-regression-testing-using-intern-and-sauce-labs
• Compares DOM screenshots over
time
• A diff for web elements
• Compare against an approved styling
• Falls on the outside of the pyramid
Automated Visual Regression Testing
4
Unit
Integration
E2E
Manual
Tests
Visual
Regression
7
Automated Visual Regression Testing
• PhantomCSS - https://github.com/HuddleEng/PhantomCSS
• Selenium + other tools (webdriver, phantomcss)
• gemini + browserstack - https://github.com/gemini-testing/gemini
• BackstopJS - http://backstopjs.org
• Applitools - https://applitools.com
W h a t d i d I d e c i d e
Calling Pitches
4
• PhantomCSS – No longer maintained
• Selenium + other tools (webdriver, phantomcss) – Been there
• gemini + browserstack – Requires webdriver, slower
• BackstopJS – active, headless, simple, efficient
• Applitools – still in beta at the time of this project
W h a t d i d I d e c i d e
Shaking Off Pitches
4
T h e D e t a i l s
BackstopJS
4
BackstopJS
CasperJS
Chrome Headless
A long list
4
Name Platform Programming Language
Applitools Eyes Selenium & Other All
Fighting Layout Bugs Selenium Java
Selenium Visual Diff Selenium Java
CSS Critic Other JavaScript
Gemini Selenium JavaScript
Grunt PhotoBox PhantomJS JavaScript
PhantomCSS PhantomJS & Resemble.js JavaScript
Snap and Compare PhantomJS JavaScript
Specter XULRunner JavaScript
WebdriverCSS Selenium JavaScript
FBSnapshotTestCase Other Objective-C
VisualCeption Selenium PHP
dpdxt PhantomJS Python
Huxley Selenium Python
Needle Selenium Python
Wraith PhantomJS Ruby
Wraith-Selenium Selenium Ruby
Automated Visual Regression Testing
4
Disclaimer
Using a tool doesn’t equal good testing
Using the right tool properly is key
BackstopJS Workflow
4
backstop init Set up a new BackstopJS instance
backstop test BackstopJS creates a set of test screenshots and
compares them with your reference screenshots.
backstop approve If the test you ran looks good, then go ahead
and approve it. Approving changes will update your reference files
with the results from your last test.
Backstop_data
4
BackstopJS json
4
BackstopJS Demo
4
1. BackstopJS Node Package already installed - npm install -g
backstopjs
2. Run Initial BackstopJS config - backstop init
3. Run BackstopJS Test – backstop test
4. Approve Changes – backstop approve
BackstopJS init
4
backstop test command
4
• Compares reference images to current site
• Determines failure based on configured threshold
• Creates version history
• Produces report
backstop approve command
4
• With no added parameters – accepts all
• Replaces referenced
• --filter=<regex>
• Approve only those defined tests
Advanced BackstopJS
4
• BackstopJS ships with an onBefore script
• BackstopJS makes it easy to capture screenshots of your entire
layout or just parts of your layout with selectors attribute
• Testing PWA, SPAs, & AJAX Content
• BackstopJS solves this problem with two config properties:
readySelector, readyEvent and delay.
• Integrated Docker rendering -- to eliminate cross-platform rendering
shenanigans
• CLI reports
• Simulate user interactions with Puppeteer and ChromyJS scripts
• Run globally or locally as a standalone package app or require('backstopjs') right
into your node app
T h e D e t a i l s o f V e r s i o n 3
BackstopJS v 3
4
• Using js-webcrawler – pull all pages across 7 instances
• Integrated into Jenkins - "report" : [ "CI" ]
• Reviewed Failures instead of every page – TIME SAVER
• Loaded in style guide as reference and focused on specific
elements
W h a t d i d w e d o
Implementing BackstopJS
4
L o o k i n g i n t o t h e f u t u r e
Further capabilities
4
• Living UI Documentation of web application
• Implement with Machine Learning
• Incorporate as part of functional testing
• Integrate with SASS browser provider (Sauce
Labs/Browserstack)
B e s t P r a c t i c e s
Best Practices for AVRT
4
1. Name your screenshots
2. Don’t try to test everything
3. Full page screenshots are a bad idea – focus on elements
4. Scaling visual regression testing – Use Source Control
5. Got a pattern library? make those elements/components your
reference screenshots.
• Screenshot approach is not optimal for testing live dynamic
content
• Scope of browser support
• BS.js - Limited to Webkit (Chrome) and Gecko (Firefox)
• When you have not built any Unit Tests
• Please build Unit Tests
When not to use AVRT
4
• What is automated visual regression testing
• When to use automated visual regression testing
• Leveraging the Backstop.js library
• Further capabilities of automated visual regression testing
L e a r n i n g f r o m g e t t i n g h i t b y p i t c h e s
What this talk was about
4
If there’s one thing to remember about this…
CSS is easy to break and HARD to TEST
and always remember that…
G a m e R e c a p
Ballgame!
4
@DSadgrass
W h e r e t o f i n d m e
Thanks!
4
http://bit.ly/SadlonLinkedIn
dsadlon@hmbnet.com
Questions?

Más contenido relacionado

La actualidad más candente

Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...Sauce Labs
 
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...TEST Huddle
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Fabricio Epaminondas
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test FrameworkSmartBear
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...Sauce Labs
 
Nonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the CoinNonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the CoinTechWell
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Agile India
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQASymphony
 
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi SharmaAgile Testing Alliance
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming CodeNaresh Jain
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedLB Denker
 
Agile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvementAgile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvementXBOSoft
 
A journey to a Full Stack Tester
A journey to a Full Stack Tester A journey to a Full Stack Tester
A journey to a Full Stack Tester KMS Technology
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDGlobalLogic Ukraine
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics HeroTechWell
 
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"Christopher Hamm
 
The 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a ProxyThe 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a ProxyTEST Huddle
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoMaaret Pyhäjärvi
 

La actualidad más candente (20)

Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...Continuous Testing and New Tools for Automation - Presentation from StarWest ...
Continuous Testing and New Tools for Automation - Presentation from StarWest ...
 
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
Testing As A Bottleneck - How Testing Slows Down Modern Development Processes...
 
Continuous testing in agile projects 2015
Continuous testing in agile projects 2015Continuous testing in agile projects 2015
Continuous testing in agile projects 2015
 
Elements of a Test Framework
Elements of a Test FrameworkElements of a Test Framework
Elements of a Test Framework
 
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
From Zero to 2.7 Million - How Verizon Media Embraced Open Source to Accelera...
 
Nonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the CoinNonfunctional Testing: Examine the Other Side of the Coin
Nonfunctional Testing: Examine the Other Side of the Coin
 
Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...Building and Scaling High Performing Technology Organizations by Jez Humble a...
Building and Scaling High Performing Technology Organizations by Jez Humble a...
 
Quality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the EnterpriseQuality Jam: BDD, TDD and ATDD for the Enterprise
Quality Jam: BDD, TDD and ATDD for the Enterprise
 
Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
 
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
#ATATalk - Episode 1 : Session on Selenium Exceptions by Pallavi Sharma
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Testing and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons LearnedTesting and DevOps Culture: Lessons Learned
Testing and DevOps Culture: Lessons Learned
 
Agile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvementAgile Metrics to Boost Software Quality improvement
Agile Metrics to Boost Software Quality improvement
 
A journey to a Full Stack Tester
A journey to a Full Stack Tester A journey to a Full Stack Tester
A journey to a Full Stack Tester
 
Mobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CDMobile Apps development best practices. TDD, CI, CD
Mobile Apps development best practices. TDD, CI, CD
 
Become a Performance Diagnostics Hero
Become a Performance Diagnostics HeroBecome a Performance Diagnostics Hero
Become a Performance Diagnostics Hero
 
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
Code Palousa presentation- "Giving Digital Eyes to your Synthetic Tests"
 
The 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a ProxyThe 3 Top Techniques for Web Security Testing Using a Proxy
The 3 Top Techniques for Web Security Testing Using a Proxy
 
About Agile Testing Alliance (ATA)
About Agile Testing Alliance (ATA)About Agile Testing Alliance (ATA)
About Agile Testing Alliance (ATA)
 
Continuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San DiegoContinuous Delivery without Test Automation @STPCon, San Diego
Continuous Delivery without Test Automation @STPCon, San Diego
 

Similar a Automated Visual Regression Testing by Dave Sadlon

Automated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchAutomated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchExcella
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Applitools
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Jon Peck
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahiericjamesblackburn
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfullyTEST Huddle
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium SuccessfullyDave Haeffner
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Michael Lihs
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsMichael Lihs
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)Sauce Labs
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUGJon Peck
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)Dave Haeffner
 
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupSelenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupDave Haeffner
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfQA or the Highway
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 
Testing mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkTesting mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkSusannSgorzaly
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
2015 jcconf-h2s-devops-practice
2015 jcconf-h2s-devops-practice2015 jcconf-h2s-devops-practice
2015 jcconf-h2s-devops-practiceHochi Chuang
 

Similar a Automated Visual Regression Testing by Dave Sadlon (20)

Automated Acceptance Testing from Scratch
Automated Acceptance Testing from ScratchAutomated Acceptance Testing from Scratch
Automated Acceptance Testing from Scratch
 
Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully Mastering Test Automation: How to Use Selenium Successfully
Mastering Test Automation: How to Use Selenium Successfully
 
Continuous feature-development
Continuous feature-developmentContinuous feature-development
Continuous feature-development
 
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
Auditing Drupal Sites for Performance, Content and Optimal Configuration - SA...
 
Test Automation with Twist and Sahi
Test Automation with Twist and SahiTest Automation with Twist and Sahi
Test Automation with Twist and Sahi
 
How to use selenium successfully
How to use selenium successfullyHow to use selenium successfully
How to use selenium successfully
 
How To Use Selenium Successfully
How To Use Selenium SuccessfullyHow To Use Selenium Successfully
How To Use Selenium Successfully
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source ToolsTYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
TYPO3 Camp Stuttgart 2015 - Continuous Delivery with Open Source Tools
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Drupal Site Audit - SFDUG
Drupal Site Audit - SFDUGDrupal Site Audit - SFDUG
Drupal Site Audit - SFDUG
 
DrupalCon 2011 Highlight
DrupalCon 2011 HighlightDrupalCon 2011 Highlight
DrupalCon 2011 Highlight
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium MeetupSelenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
Selenium Tips & Tricks, presented at the Tel Aviv Selenium Meetup
 
KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Test automation proposal
Test automation proposalTest automation proposal
Test automation proposal
 
Testing mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP frameworkTesting mit Codeception: Full-stack testing PHP framework
Testing mit Codeception: Full-stack testing PHP framework
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
2015 jcconf-h2s-devops-practice
2015 jcconf-h2s-devops-practice2015 jcconf-h2s-devops-practice
2015 jcconf-h2s-devops-practice
 

Más de QA or the Highway

Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxQA or the Highway
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxQA or the Highway
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfQA or the Highway
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfQA or the Highway
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfQA or the Highway
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfQA or the Highway
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfQA or the Highway
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfQA or the Highway
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfQA or the Highway
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxQA or the Highway
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfQA or the Highway
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxQA or the Highway
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfQA or the Highway
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfQA or the Highway
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxQA or the Highway
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfQA or the Highway
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfQA or the Highway
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxQA or the Highway
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxQA or the Highway
 
Ben Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdfBen Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdfQA or the Highway
 

Más de QA or the Highway (20)

Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
 
Ben Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdfBen Oconis - Breaking Down Silos.pdf
Ben Oconis - Breaking Down Silos.pdf
 

Último

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Último (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Automated Visual Regression Testing by Dave Sadlon

  • 2. Now Batting… Dave Sadlon Testing Services Director @ HMB 12 Years in IT Industry Cleveland Indians Fan Avid Hiker
  • 3. • What is automated visual regression testing • When to use automated visual regression testing • Available Libraries – and using them • Further capabilities of automated visual regression testing L e a r n i n g f r o m g e t t i n g h i t b y p i t c h e s What this talk is about 4
  • 4. • Best UI/UX Practices • Refactoring CSS • “Functional” Automated Testing (Ruby/Cucumber, Selenium etc.) L e a r n i n g f r o m g e t t i n g h i t b y p i t c h e s What this talk is NOT about 4
  • 5. Every Session has a Story • Rewrite of customer facing websites – Fortune 500 company • Project that had two components • .NET based CMS & Custom .NET MVC “Portal” • Project had been handed off to us after failed attempt • Content was being built while build phase was going on O u r B o x S c o r e 4
  • 7. Bad News Bears Project Team Starting Lineup 1. .NET Developers* 2. CMS Developers* 3. Business Analyst 4. Design Team* 5. Content Managers* 6. Product Owner 7. Project Manager 8. Solution Architect 9. DevOps/Test QA Lead 3
  • 9. Breaking up the No-Hitter 5
  • 10. Breaking up the No-Hitter Developer (Refactoring CSS) Refactor! CSS Designer Changing Design Rounded Corners! Content Manager Still Building I’m Contenting There’s little risk 5
  • 11. Little Risk…. There’s little risk of me flying past this baseball game 3
  • 12. Breaking up the No-Hitter Developer Refactor! CSS Designer Rounded Corners! Content Manager I’m Contenting …. 2 Days Later Why does the site look horrible now !?!?! 2
  • 13. Breaking up the No-Hitter 7
  • 14. Breaking up the No-Hitter Unit Integration E2E Manual Tests https://martinfowler.com/bliki/TestPyramid.html 1
  • 15. Visit to the mound Developer TESTING! Designer TESTING! Content Manager TESTING! Test Lead 6
  • 16. Call to the Bullpen • Jenkins was reporting everything passing • Validating the UI manually every time was too time consuming • (7 site instances x ~50 pages per = 350 pages) • Ultimately we just wanted to know if something changed the UI W e n e e d a r e l i e v e r 4
  • 17. Call to the Bullpen • How can we speed up UI regression review process? • Include it in our CI • Visually inform us of changes • Cost Effective W e n e e d a r e l i e v e r 4
  • 18. Error – Test Lead P r i d e g o t t h e b e s t o f m e Custom Build + BrowserStack + ImageMagik Library + Had to align images perfectly = Hot Garbage 6
  • 19. • Stop…Collaborate and listen • CSS is easy to break and hard to test • Friend recommended to look into Visual Regression Testing W e n e e d a c l u t c h h i t Pinch Hitter 4
  • 20. What is it? Perform front-end or user-interface(UI) regression testing by capturing the screenshots of web pages/UI and compare them with the original images (either historical baseline screenshots or reference images from live website) Automated Visual Regression Testing 4 https://saucelabs.com/blog/getting-started-with-visual-regression-testing-using-intern-and-sauce-labs
  • 21. • Compares DOM screenshots over time • A diff for web elements • Compare against an approved styling • Falls on the outside of the pyramid Automated Visual Regression Testing 4 Unit Integration E2E Manual Tests Visual Regression
  • 23. • PhantomCSS - https://github.com/HuddleEng/PhantomCSS • Selenium + other tools (webdriver, phantomcss) • gemini + browserstack - https://github.com/gemini-testing/gemini • BackstopJS - http://backstopjs.org • Applitools - https://applitools.com W h a t d i d I d e c i d e Calling Pitches 4
  • 24. • PhantomCSS – No longer maintained • Selenium + other tools (webdriver, phantomcss) – Been there • gemini + browserstack – Requires webdriver, slower • BackstopJS – active, headless, simple, efficient • Applitools – still in beta at the time of this project W h a t d i d I d e c i d e Shaking Off Pitches 4
  • 25. T h e D e t a i l s BackstopJS 4 BackstopJS CasperJS Chrome Headless
  • 26. A long list 4 Name Platform Programming Language Applitools Eyes Selenium & Other All Fighting Layout Bugs Selenium Java Selenium Visual Diff Selenium Java CSS Critic Other JavaScript Gemini Selenium JavaScript Grunt PhotoBox PhantomJS JavaScript PhantomCSS PhantomJS & Resemble.js JavaScript Snap and Compare PhantomJS JavaScript Specter XULRunner JavaScript WebdriverCSS Selenium JavaScript FBSnapshotTestCase Other Objective-C VisualCeption Selenium PHP dpdxt PhantomJS Python Huxley Selenium Python Needle Selenium Python Wraith PhantomJS Ruby Wraith-Selenium Selenium Ruby
  • 27. Automated Visual Regression Testing 4 Disclaimer Using a tool doesn’t equal good testing Using the right tool properly is key
  • 28. BackstopJS Workflow 4 backstop init Set up a new BackstopJS instance backstop test BackstopJS creates a set of test screenshots and compares them with your reference screenshots. backstop approve If the test you ran looks good, then go ahead and approve it. Approving changes will update your reference files with the results from your last test.
  • 31. BackstopJS Demo 4 1. BackstopJS Node Package already installed - npm install -g backstopjs 2. Run Initial BackstopJS config - backstop init 3. Run BackstopJS Test – backstop test 4. Approve Changes – backstop approve
  • 33. backstop test command 4 • Compares reference images to current site • Determines failure based on configured threshold • Creates version history • Produces report
  • 34. backstop approve command 4 • With no added parameters – accepts all • Replaces referenced • --filter=<regex> • Approve only those defined tests
  • 35. Advanced BackstopJS 4 • BackstopJS ships with an onBefore script • BackstopJS makes it easy to capture screenshots of your entire layout or just parts of your layout with selectors attribute • Testing PWA, SPAs, & AJAX Content • BackstopJS solves this problem with two config properties: readySelector, readyEvent and delay.
  • 36. • Integrated Docker rendering -- to eliminate cross-platform rendering shenanigans • CLI reports • Simulate user interactions with Puppeteer and ChromyJS scripts • Run globally or locally as a standalone package app or require('backstopjs') right into your node app T h e D e t a i l s o f V e r s i o n 3 BackstopJS v 3 4
  • 37. • Using js-webcrawler – pull all pages across 7 instances • Integrated into Jenkins - "report" : [ "CI" ] • Reviewed Failures instead of every page – TIME SAVER • Loaded in style guide as reference and focused on specific elements W h a t d i d w e d o Implementing BackstopJS 4
  • 38. L o o k i n g i n t o t h e f u t u r e Further capabilities 4 • Living UI Documentation of web application • Implement with Machine Learning • Incorporate as part of functional testing • Integrate with SASS browser provider (Sauce Labs/Browserstack)
  • 39. B e s t P r a c t i c e s Best Practices for AVRT 4 1. Name your screenshots 2. Don’t try to test everything 3. Full page screenshots are a bad idea – focus on elements 4. Scaling visual regression testing – Use Source Control 5. Got a pattern library? make those elements/components your reference screenshots.
  • 40. • Screenshot approach is not optimal for testing live dynamic content • Scope of browser support • BS.js - Limited to Webkit (Chrome) and Gecko (Firefox) • When you have not built any Unit Tests • Please build Unit Tests When not to use AVRT 4
  • 41. • What is automated visual regression testing • When to use automated visual regression testing • Leveraging the Backstop.js library • Further capabilities of automated visual regression testing L e a r n i n g f r o m g e t t i n g h i t b y p i t c h e s What this talk was about 4
  • 42. If there’s one thing to remember about this… CSS is easy to break and HARD to TEST and always remember that… G a m e R e c a p Ballgame! 4
  • 43. @DSadgrass W h e r e t o f i n d m e Thanks! 4 http://bit.ly/SadlonLinkedIn dsadlon@hmbnet.com Questions?