SlideShare a Scribd company logo
TESTING STYLES
ARPIT MAHESHWARI
http://arpitmaheshwari.com
FRONT END OPS
BROAD LEVEL WORKFLOW
JOURNEY OF A STORY
Test locally
‱Preferred Editor
‱Preferred Browser
Broader
testing
‱Targeted Browser
‱Targeted Devices
Testing on
environments
‱Dev Environment
‱Production
Environment
‱ CODE IN PREFERRED EDITOR
‱ TEST IN PREFERRED BROWSER
‱ IMPROVE & RE-TEST ( TILL YOU ARE SATISFIED )
‱ TESTING IS GENERALLY MANUAL USING WEB INSPECTORS (SUPPLIED
WITH BROWSERS )
‱ CAN USE SOME TOOLS LIKE
‱ LIVERELOAD (BROWSER PLUGIN )
‱ CSSLINT (HTTP://CSSLINT.NET/ )
‱ FIREBUG ( FIREFOX PLUGIN)
WHEN A DEV STARTS
START SMALL, END USEFUL
‱ TESTING YOUR CODE ACROSS THE TARGETED SPECTRUM OF
BROWSERS & DEVICES .
‱ DISTINGUISHING BUGS FROM BROWSER BEHAVIOR.
‱ CONSIDERING PRINCIPLES OF PROGRESSIVE ENHANCEMENT OR
GRACEFUL DEGRADATION. (RECOMMENDED )
‱ WITH GROWTH OF MOBILE DEVICES AND RAPID LAUNCH CYCLES
OF BROWSERS , MANUAL TESTING IS BECOMING INCREASINGLY
DIFFICULT.
‱ RESPONSIVE WEB DESIGN ALLOWED THE SAME CODEBASE TO BE
RENDERED ACROSS PLATFORMS THEREBY INCREASING THE
EFFORTS REQUIRED FOR TESTING.
CROSS BROWSER TESTING
BRANDED AS : WEB CONSISTENCY TESTING
CROSS BROWSER TESTING
CROSS BROWSER TESTING
‱ BROWSER STACK
‱ HTTP://WWW.BROWSERSTACK.COM/
‱ XAMARIN
‱ HTTP://XAMARIN.COM/
‱ SAUCELABS
‱ HTTPS://SAUCELABS.COM/
‱ BROWSERA
‱ HTTP://WWW.BROWSERA.COM/
‱ MOGOTEST ( NOT MAINTAINED )
‱ HTTPS://BITBUCKET.ORG/MOGOTEST/
CROSS BROWSER TESTING
TOOLS AVAILABLE
‱ FOR QAS : DEFINITELY AUTOMATION
‱ ABILITY TO COMPARE DIFFERENT /EVALUATE DIFFERENT BROWSER RENDERINGS
ON A COMMON PLATFORM GIVES BETTER/BROADER PERSPECTIVE .
‱ SAVES TIME& EFFORTS.
‱ SOME TOOLS ALSO PROVIDE FEATURE TO REGISTER BUG , TAKE SNAPSHOTS
ALONG WITH ENVIRONMENT DETAILS ETC .
‱ FOR DEVS : CREATE YOU OWN HOUSE RULES (MANUAL OR TOOL
BASED )
‱ IN CASE YOU OPT FOR AUTOMATED TOOLS , BE PREPARED TO WAIT FOR A FEW
MINUTES TO TEST EVERY CHANGE YOU MAKE.
CROSS BROWSER TESTING
RECOMMENDED WAY :
‱ TRADITIONALLY DONE MANUALLY . BUT YES , IT CAN BE
AUTOMATED .
‱ THERE ARE TWO POPULAR APPROACHES TO AUTOMATE CSS
REGRESSION TESTING :
‱ IMAGE DIFF
‱ FROZEN DOM
HMMM REGRESSION

CAN’T DETECT 1 – 2 PIXELS CHANGES WITH EYES 
‱ WHEN YOUR PAGE IS DONE, TAKE A SCREENSHOT OF HOW IT
LOOKS.
‱ AFTER CHANGES, TAKE ANOTHER SCREENSHOT AND COMPARE
THE DIFFERENCES.
‱ FUNCTION ( REFERENCE_SNAPSHOT , COMPARISON_SNAPSHOT ){
RETURN RENDERING_ISSUES;
}
IMAGE DIFF TESTING
APPLES VS ORANGES
‱ BENEFITS
‱ VISUAL: IT’S DOING WHAT YOU'D DO
‱ PREDICTABLE: IT'S EASY TO AUTOMATE
‱ BROWSER AGNOSTIC : ALGORITHM NEEDN’T BE BROWSER SPECIFIC
‱ LOW DOCUMENTATION : SNAPSHOTS ARE IN THEMSELVES “STATUS LOGS” .
‱ HELPFUL IN PIXEL PERFECTION.
‱ INTERNATIONALIZATION : HANDY IN COMPARING PAGES RENDERED IN DIFFERENT
LOCAL.
‱ PROBLEMS
‱ NOT SO SMART : A SMALL CHANGE CAN TRIGGER SERIES OF BUGS. IMAGE DIFF
TESTING DOESN’T PIN POINTS TO ROOT CAUSE OF ERROR .
‱ GETS DIFFICULT FOR MULTIPLE PAGE WEBSITES.
‱ DOM-UNAWARE: HAS NO REFERENCE TO THE ORIGINAL PAGE STRUCTURE. LACKS
SEMANTIC MEANING.
‱ EASILY CONFUSED BY ANIMATIONS/MOVING CONTENT. EG. SLIDE-SHOW ,
IMAGE DIFF TESTING
PROS & CONS
‱ PHANTOM CSS
‱ HTTP://TLDR.HUDDLE.COM/BLOG/CSS-TESTING/
‱ NEEDLE
‱ HTTPS://GITHUB.COM/BFIRSH/NEEDLE
‱ CSS CRITIC
‱ HTTPS://GITHUB.COM/CBURGMER/CSSCRITIC
‱ SCREENSHOT AS A SERVICE
‱ HTTPS://GITHUB.COM/FZANINOTTO/SCREENSHOT-AS-A-SERVICE
‱ FACEBOOK’S HUXLEY
‱ HTTPS://GITHUB.COM/FACEBOOKARCHIVE/HUXLEY
IMAGE DIFF TESTING
TOOLS / FRAMEWORK AVAILABLE
‱ PHANTOMCSS ( USES CASPER.JS TO TAKE SNAPSHOT & RESEMBLE.JS
TO COMPARE )
‱ CASPER.START("HTTP://<TESTURL>")
.THEN( FUNCTION (){
CSS.SCREENSHOT('BODY');
})
.THEN( FUNCTION (){
CASPER.PAGE.SENDEVENT('CLICK', 10, 10);
})
.THEN( FUNCTION (){
CSS.SCREENSHOT('BODY');
})
IMAGE DIFF TESTING
CODE SNIPPET
‱ WHEN YOUR PAGE IS DONE, TAKE A COPY OF THE DOM AND
MEASURE THE STYLES APPLIED. THAT BECOMES YOUR TEST SUITE.
‱ RUN THE TEST BY USING THE SAME DOM AND YOUR NEW
STYLESHEET. IF THE STYLES NOW ARE THE SAME AS THEY WERE,
IT'S A PASS.
‱ FUNCTION ( REFERENCE_PAGE , COMPARISON_PAGE ){
RETURN RENDERING_ISSUES;
}
FROZEN DOM
FROZEN DOM
VISUALIZATION
‱ BENEFITS
‱ RICH SEMANTIC MEANING. CAN IDENTIFY ROOT CAUSE OF ERROR.
‱ BETTER HANDLING OF MULTIPLE PAGES. INDIFFERENT TO ANIMATIONS.
‱ BETTER SUPPORT FOR CONDITIONING .
‱ PROBLEMS
‱ BEING DOM AWARE , ITS SUSCEPTIBLE TO BROWSER QUIRKS. ( IE 7,8 ,
‱ DOESN’T AUTOMATICALLY IGNORE HIDDEN ELEMENTS .
‱ NO VISUAL REPRESENTATION OF BUGS. SORRY PIXEL PERFECTION.
‱ LOCALE AGNOSTIC.
FROZEN DOM
PROS & CONS
‱ CSSUNIT (NOT MAINTAINED)
‱ HTTPS://GITHUB.COM/GAGARINE/CSSUNIT
‱ CSS-TEST (NOT MAINTAINED)
‱ HTTPS://GITHUB.COM/GARETHR/CSS-TEST/
‱ CSSERT
‱ HTTP://THINGSINJARS.GITHUB.IO/CSSERT/
‱ HARDY
‱ HTTP://HARDY.IO/
‱ CACTUS
‱ HTTPS://GITHUB.COM/WINSTON/CACTUS
FROZEN DOM
TOOLS / FRAMEWORK AVAILABLE

More Related Content

PDF
Effectively Monitoring Client-Side Performance
PDF
How to Use Selenium, Successfully
PPSX
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
PPT
Building a Simple Theme Framework
PPTX
Get responsive with Galen
PDF
Sharing the pain using Protractor
PPTX
AutomationTesting_HOW_
PDF
Approaching APIs
Effectively Monitoring Client-Side Performance
How to Use Selenium, Successfully
MCE^3 - Konstantin Raev - React Native: Open Source Continuous Build and Deli...
Building a Simple Theme Framework
Get responsive with Galen
Sharing the pain using Protractor
AutomationTesting_HOW_
Approaching APIs

Similar to Testing CSS - Front end ops by Arpit Maheshwari (20)

PPTX
Badneedles
PDF
Automated Visual Regression Testing by Dave Sadlon
PDF
Optimizing React at Postmates
PPTX
Building SharePoint Single Page Applications Using AngularJS
PPTX
Mvvm knockout vs angular
PDF
Getting your mobile test automation process in place - using Cucumber and Cal...
ODP
Cvcc performance tuning
PDF
How to use selenium successfully
PPT
performance.ppt
PPTX
Building a PWA - For Everyone Who Is Scared To
PDF
The what, why and how of web analytics testing
PPTX
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
PDF
Into the Box 2018 Building a PWA
PDF
Node.js Development Workflow Automation with Grunt.js
PDF
Node.js 101
 
PPTX
JAVASCRIPT and JQUERY For Beginner
PDF
Automated Browser Testing
KEY
Continuous Integration, the minimum viable product
PPTX
Road to Continuous Delivery - Wix.com
PPTX
Single Page Applications: Your Browser is the OS!
Badneedles
Automated Visual Regression Testing by Dave Sadlon
Optimizing React at Postmates
Building SharePoint Single Page Applications Using AngularJS
Mvvm knockout vs angular
Getting your mobile test automation process in place - using Cucumber and Cal...
Cvcc performance tuning
How to use selenium successfully
performance.ppt
Building a PWA - For Everyone Who Is Scared To
The what, why and how of web analytics testing
Sauce Labs+Applitools - Automated Visual Testing in the Cloud
Into the Box 2018 Building a PWA
Node.js Development Workflow Automation with Grunt.js
Node.js 101
 
JAVASCRIPT and JQUERY For Beginner
Automated Browser Testing
Continuous Integration, the minimum viable product
Road to Continuous Delivery - Wix.com
Single Page Applications: Your Browser is the OS!
Ad

Recently uploaded (20)

PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PDF
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
PDF
System and Network Administration Chapter 2
PPTX
Transform Your Business with a Software ERP System
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
How to Choose the Right IT Partner for Your Business in Malaysia
PDF
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
Odoo POS Development Services by CandidRoot Solutions
PPTX
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
PPTX
Operating system designcfffgfgggggggvggggggggg
PPTX
history of c programming in notes for students .pptx
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Wondershare Filmora 15 Crack With Activation Key [2025
T3DD25 TYPO3 Content Blocks - Deep Dive by André Kraus
System and Network Administration Chapter 2
Transform Your Business with a Software ERP System
wealthsignaloriginal-com-DS-text-... (1).pdf
Odoo Companies in India – Driving Business Transformation.pdf
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Design an Analysis of Algorithms II-SECS-1021-03
How to Choose the Right IT Partner for Your Business in Malaysia
Flood Susceptibility Mapping Using Image-Based 2D-CNN Deep Learnin. Overview ...
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Design an Analysis of Algorithms I-SECS-1021-03
VVF-Customer-Presentation2025-Ver1.9.pptx
Navsoft: AI-Powered Business Solutions & Custom Software Development
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
Odoo POS Development Services by CandidRoot Solutions
Agentic AI : A Practical Guide. Undersating, Implementing and Scaling Autono...
Operating system designcfffgfgggggggvggggggggg
history of c programming in notes for students .pptx
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
Ad

Testing CSS - Front end ops by Arpit Maheshwari

  • 2. BROAD LEVEL WORKFLOW JOURNEY OF A STORY Test locally ‱Preferred Editor ‱Preferred Browser Broader testing ‱Targeted Browser ‱Targeted Devices Testing on environments ‱Dev Environment ‱Production Environment
  • 3. ‱ CODE IN PREFERRED EDITOR ‱ TEST IN PREFERRED BROWSER ‱ IMPROVE & RE-TEST ( TILL YOU ARE SATISFIED ) ‱ TESTING IS GENERALLY MANUAL USING WEB INSPECTORS (SUPPLIED WITH BROWSERS ) ‱ CAN USE SOME TOOLS LIKE ‱ LIVERELOAD (BROWSER PLUGIN ) ‱ CSSLINT (HTTP://CSSLINT.NET/ ) ‱ FIREBUG ( FIREFOX PLUGIN) WHEN A DEV STARTS START SMALL, END USEFUL
  • 4. ‱ TESTING YOUR CODE ACROSS THE TARGETED SPECTRUM OF BROWSERS & DEVICES . ‱ DISTINGUISHING BUGS FROM BROWSER BEHAVIOR. ‱ CONSIDERING PRINCIPLES OF PROGRESSIVE ENHANCEMENT OR GRACEFUL DEGRADATION. (RECOMMENDED ) ‱ WITH GROWTH OF MOBILE DEVICES AND RAPID LAUNCH CYCLES OF BROWSERS , MANUAL TESTING IS BECOMING INCREASINGLY DIFFICULT. ‱ RESPONSIVE WEB DESIGN ALLOWED THE SAME CODEBASE TO BE RENDERED ACROSS PLATFORMS THEREBY INCREASING THE EFFORTS REQUIRED FOR TESTING. CROSS BROWSER TESTING BRANDED AS : WEB CONSISTENCY TESTING
  • 7. ‱ BROWSER STACK ‱ HTTP://WWW.BROWSERSTACK.COM/ ‱ XAMARIN ‱ HTTP://XAMARIN.COM/ ‱ SAUCELABS ‱ HTTPS://SAUCELABS.COM/ ‱ BROWSERA ‱ HTTP://WWW.BROWSERA.COM/ ‱ MOGOTEST ( NOT MAINTAINED ) ‱ HTTPS://BITBUCKET.ORG/MOGOTEST/ CROSS BROWSER TESTING TOOLS AVAILABLE
  • 8. ‱ FOR QAS : DEFINITELY AUTOMATION ‱ ABILITY TO COMPARE DIFFERENT /EVALUATE DIFFERENT BROWSER RENDERINGS ON A COMMON PLATFORM GIVES BETTER/BROADER PERSPECTIVE . ‱ SAVES TIME& EFFORTS. ‱ SOME TOOLS ALSO PROVIDE FEATURE TO REGISTER BUG , TAKE SNAPSHOTS ALONG WITH ENVIRONMENT DETAILS ETC . ‱ FOR DEVS : CREATE YOU OWN HOUSE RULES (MANUAL OR TOOL BASED ) ‱ IN CASE YOU OPT FOR AUTOMATED TOOLS , BE PREPARED TO WAIT FOR A FEW MINUTES TO TEST EVERY CHANGE YOU MAKE. CROSS BROWSER TESTING RECOMMENDED WAY :
  • 9. ‱ TRADITIONALLY DONE MANUALLY . BUT YES , IT CAN BE AUTOMATED . ‱ THERE ARE TWO POPULAR APPROACHES TO AUTOMATE CSS REGRESSION TESTING : ‱ IMAGE DIFF ‱ FROZEN DOM HMMM REGRESSION
 CAN’T DETECT 1 – 2 PIXELS CHANGES WITH EYES 
  • 10. ‱ WHEN YOUR PAGE IS DONE, TAKE A SCREENSHOT OF HOW IT LOOKS. ‱ AFTER CHANGES, TAKE ANOTHER SCREENSHOT AND COMPARE THE DIFFERENCES. ‱ FUNCTION ( REFERENCE_SNAPSHOT , COMPARISON_SNAPSHOT ){ RETURN RENDERING_ISSUES; } IMAGE DIFF TESTING APPLES VS ORANGES
  • 11. ‱ BENEFITS ‱ VISUAL: IT’S DOING WHAT YOU'D DO ‱ PREDICTABLE: IT'S EASY TO AUTOMATE ‱ BROWSER AGNOSTIC : ALGORITHM NEEDN’T BE BROWSER SPECIFIC ‱ LOW DOCUMENTATION : SNAPSHOTS ARE IN THEMSELVES “STATUS LOGS” . ‱ HELPFUL IN PIXEL PERFECTION. ‱ INTERNATIONALIZATION : HANDY IN COMPARING PAGES RENDERED IN DIFFERENT LOCAL. ‱ PROBLEMS ‱ NOT SO SMART : A SMALL CHANGE CAN TRIGGER SERIES OF BUGS. IMAGE DIFF TESTING DOESN’T PIN POINTS TO ROOT CAUSE OF ERROR . ‱ GETS DIFFICULT FOR MULTIPLE PAGE WEBSITES. ‱ DOM-UNAWARE: HAS NO REFERENCE TO THE ORIGINAL PAGE STRUCTURE. LACKS SEMANTIC MEANING. ‱ EASILY CONFUSED BY ANIMATIONS/MOVING CONTENT. EG. SLIDE-SHOW , IMAGE DIFF TESTING PROS & CONS
  • 12. ‱ PHANTOM CSS ‱ HTTP://TLDR.HUDDLE.COM/BLOG/CSS-TESTING/ ‱ NEEDLE ‱ HTTPS://GITHUB.COM/BFIRSH/NEEDLE ‱ CSS CRITIC ‱ HTTPS://GITHUB.COM/CBURGMER/CSSCRITIC ‱ SCREENSHOT AS A SERVICE ‱ HTTPS://GITHUB.COM/FZANINOTTO/SCREENSHOT-AS-A-SERVICE ‱ FACEBOOK’S HUXLEY ‱ HTTPS://GITHUB.COM/FACEBOOKARCHIVE/HUXLEY IMAGE DIFF TESTING TOOLS / FRAMEWORK AVAILABLE
  • 13. ‱ PHANTOMCSS ( USES CASPER.JS TO TAKE SNAPSHOT & RESEMBLE.JS TO COMPARE ) ‱ CASPER.START("HTTP://<TESTURL>") .THEN( FUNCTION (){ CSS.SCREENSHOT('BODY'); }) .THEN( FUNCTION (){ CASPER.PAGE.SENDEVENT('CLICK', 10, 10); }) .THEN( FUNCTION (){ CSS.SCREENSHOT('BODY'); }) IMAGE DIFF TESTING CODE SNIPPET
  • 14. ‱ WHEN YOUR PAGE IS DONE, TAKE A COPY OF THE DOM AND MEASURE THE STYLES APPLIED. THAT BECOMES YOUR TEST SUITE. ‱ RUN THE TEST BY USING THE SAME DOM AND YOUR NEW STYLESHEET. IF THE STYLES NOW ARE THE SAME AS THEY WERE, IT'S A PASS. ‱ FUNCTION ( REFERENCE_PAGE , COMPARISON_PAGE ){ RETURN RENDERING_ISSUES; } FROZEN DOM
  • 16. ‱ BENEFITS ‱ RICH SEMANTIC MEANING. CAN IDENTIFY ROOT CAUSE OF ERROR. ‱ BETTER HANDLING OF MULTIPLE PAGES. INDIFFERENT TO ANIMATIONS. ‱ BETTER SUPPORT FOR CONDITIONING . ‱ PROBLEMS ‱ BEING DOM AWARE , ITS SUSCEPTIBLE TO BROWSER QUIRKS. ( IE 7,8 , ‱ DOESN’T AUTOMATICALLY IGNORE HIDDEN ELEMENTS . ‱ NO VISUAL REPRESENTATION OF BUGS. SORRY PIXEL PERFECTION. ‱ LOCALE AGNOSTIC. FROZEN DOM PROS & CONS
  • 17. ‱ CSSUNIT (NOT MAINTAINED) ‱ HTTPS://GITHUB.COM/GAGARINE/CSSUNIT ‱ CSS-TEST (NOT MAINTAINED) ‱ HTTPS://GITHUB.COM/GARETHR/CSS-TEST/ ‱ CSSERT ‱ HTTP://THINGSINJARS.GITHUB.IO/CSSERT/ ‱ HARDY ‱ HTTP://HARDY.IO/ ‱ CACTUS ‱ HTTPS://GITHUB.COM/WINSTON/CACTUS FROZEN DOM TOOLS / FRAMEWORK AVAILABLE