{"id":14799,"date":"2019-05-10T06:26:25","date_gmt":"2019-05-10T06:26:25","guid":{"rendered":"https:\/\/app14743.cloudwayssites.com\/blog\/?p=4799"},"modified":"2022-03-21T04:28:47","modified_gmt":"2022-03-21T11:28:47","slug":"visual-regression-testing-developers","status":"publish","type":"post","link":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/","title":{"rendered":"How Visual Regression Testing Can Help You Deliver Better Apps"},"content":{"rendered":"<p style=\"text-align: center;\">Photo by\u00a0<a href=\"https:\/\/unsplash.com\/photos\/8OyKWQgBsKQ?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Markus Spiske<\/a>\u00a0on\u00a0<a href=\"https:\/\/unsplash.com\/search\/photos\/testing-software?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\">Unsplash<\/a><\/p>\n<p><img decoding=\"async\" class=\"wp-image-4798 aligncenter\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/pasted-image-0-2.png\" alt=\"pasted image 0 2\" \/><\/p>\n<p style=\"text-align: center;\">Jay Phelps, Reactive Programming nut and compiler enthusiast.<\/p>\n<p>Testing, for me, is a love-hate relationship. On one hand, I absolutely love the feeling that comes from having great test coverage: I can ship new features fast, fix bugs and be confident they won\u2019t return, and above all, effectively collaborate with teams both large and small. On the other hand, writing and maintaining visual UI tests takes time. And I\u2019ll be honest: Even if I love the results, I don\u2019t enjoy writing them.<\/p>\n<p>But over the years of writing tests in countless languages, frameworks, and platforms, I\u2019ve found that not all tests are in fact worth the effort when you\u2019re testing applications rather than libraries. As <a href=\"https:\/\/medium.com\/@kentcdodds\" target=\"_blank\" rel=\"noopener noreferrer\">Kent C. Dodds<\/a>\u00a0says in his wonderful post:<!--more--><\/p>\n<p><strong>\u201c<\/strong><strong><a href=\"https:\/\/kentcdodds.com\/blog\/write-tests\" target=\"_blank\" rel=\"noopener noreferrer\">Write tests. Not too many. Mostly integration<\/a><\/strong><strong>.\u201d<\/strong><\/p>\n<p>In the rest of his post&#8211;with which I 100% agree&#8211;he describes the potential value vs. cost of different forms of tests. The so-called \u201cTesting Trophy.\u201d<\/p>\n<blockquote class=\"twitter-tweet\" data-width=\"550\" data-dnt=\"true\">\n<p lang=\"en\" dir=\"ltr\">&quot;The Testing Trophy&quot; ?<\/p>\n<p>A general guide for the **return on investment** ? of the different forms of testing with regards to testing JavaScript applications.<\/p>\n<p>&#8211; End to end w\/ <a href=\"https:\/\/twitter.com\/Cypress_io?ref_src=twsrc%5Etfw\">@Cypress_io<\/a> \u26ab\ufe0f<br \/>&#8211; Integration &amp; Unit w\/ <a href=\"https:\/\/twitter.com\/fbjest?ref_src=twsrc%5Etfw\">@fbjest<\/a> ?<br \/>&#8211; Static w\/ <a href=\"https:\/\/twitter.com\/flowtype?ref_src=twsrc%5Etfw\">@flowtype<\/a> ? and <a href=\"https:\/\/twitter.com\/geteslint?ref_src=twsrc%5Etfw\">@geteslint<\/a> \u2b23 <a href=\"https:\/\/t.co\/kPBC6yVxSA\">pic.twitter.com\/kPBC6yVxSA<\/a><\/p>\n<p>&mdash; Kent C. Dodds ? (@kentcdodds) <a href=\"https:\/\/twitter.com\/kentcdodds\/status\/960723172591992832?ref_src=twsrc%5Etfw\">February 6, 2018<\/a><\/p><\/blockquote>\n<p><script async src=\"https:\/\/platform.twitter.com\/widgets.js\" charset=\"utf-8\"><\/script><\/p>\n<p>I absolutely <strong>love<\/strong>\u00a0this.<\/p>\n<p>However, as I continued to strive to write regression tests efficiently, one case eluded me: design. In the case of the web, design means the resulting HTML and CSS, of course. <em>That is, what your page looks like<\/em>.<\/p>\n<h2 id=\"h.yqal5y3ehfmb\">Snapshot Testing? Nope.<\/h2>\n<p>For a few years, I thought the go-to solution was <a href=\"https:\/\/medium.com\/@tomgold_48918\/why-i-stopped-using-snapshot-testing-with-jest-3279fe41ffb2\" target=\"_blank\" rel=\"noopener noreferrer\">Snapshot Testing<\/a>. But HTML snapshots, in particular,\u00a0can be <a href=\"https:\/\/kentcdodds.com\/blog\/effective-snapshot-testing\" target=\"_blank\" rel=\"noopener noreferrer\">notoriously overvalued<\/a>, and they still don\u2019t include CSS, a key factor. To be clear, though, snapshot testing is <em>still useful<\/em>\u00a0in certain other cases. Even if you did somehow include CSS in your snapshot tests, like with inline styles, it still wouldn\u2019t matter what something <em>actually looks like<\/em>. Do you care that you\u2019re using two divs or one? How about whether you\u2019re using Flexbox or tables? Definitely not!<\/p>\n<p>What we care about is <em>what the user actually sees<\/em>. The pixels on the screen. So what we need to do is take a snapshot of those pixels and somehow compare it to a baseline. This has many names but is often referred to as Visual <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/regression-testing-guide\/\">Regression Testing<\/a>.<\/p>\n<p>There\u2019s just one problem: If you\u2019re familiar with how pixels work, it\u2019s probably easy to see (pun intended) that <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/why-screenshot-image-comparison-tools-fail?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">comparing pixels exactly 1:1 is an extremely brittle process<\/a>.<\/p>\n<p>Two screenshots that look identical to humans could have entirely different pixels. In less extreme, but more common, cases, even slight differences would cause a visual test failure.<\/p>\n<p>For example, changes in <a href=\"https:\/\/en.wikipedia.org\/wiki\/Spatial_anti-aliasing\" target=\"_blank\" rel=\"noopener noreferrer\">anti-aliasing<\/a>\u00a0are common, even if human eyes don\u2019t notice them.<\/p>\n<p><img decoding=\"async\" class=\"wp-image-4797\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/0zMVlbDUNiU2GbpBz.png\" alt=\"0zMVlbDUNiU2GbpBz\" \/><\/p>\n<p><img decoding=\"async\" class=\"wp-image-4795\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/0oy9Jybaw1X4Q6Xjl.png\" alt=\"0oy9Jybaw1X4Q6Xjl\" \/><\/p>\n<p>Even though we didn\u2019t change any CSS and the menus appear visually the same, if we just compare their pixels 1:1, we find that a lot of it has changed! This can happen between browser versions, underlying hardware changes on your cloud platform, or just simply because you moved something one pixel to the right.<\/p>\n<p>Similar situations happen all the time, such as in how images, drop shadows, etc. are rendered. Every graphics card renders text and images differently at the pixel level. Your machine will likely have a different graphics card than the UI testing server and the other developers. While the naked eye can\u2019t tell the difference, it\u2019s clear that we need to a way to make computers \u201csee\u201d the screenshots like we do.<\/p>\n<h2 id=\"h.89m36ql47zvu\">ML and AI, Not Just Buzzwords After All<\/h2>\n<p>Fast forward to earlier this year. We started doing some developer relations for the folks at <a href=\"https:\/\/medium.com\/r\/?url=https%3A%2F%2Fapp14743.cloudwayssites.com\">Applitools<\/a>. The idea of Applitools Eyes for Visual Testing is that by combining <a href=\"https:\/\/medium.com\/r\/?url=https%3A%2F%2Fwikipedia.org%2Fwiki%2FMachine_learning\" target=\"_blank\" rel=\"noopener noreferrer\">Machine Learning<\/a>, AI, and some good old fashioned <a href=\"https:\/\/medium.com\/r\/?url=https%3A%2F%2Fwikipedia.org%2Fwiki%2FHeuristic_%28computer_science%29\" target=\"_blank\" rel=\"noopener noreferrer\">heuristics<\/a>,\u00a0we can finally write automated Visual Regression Tests that <strong>compare the screenshots as a human would<\/strong>. To be totally honest, I was super skeptical given my past experience with pixel comparison testing. But the more I tried it, the more I found it exceeding my expectations.<\/p>\n<p><img decoding=\"async\" class=\"wp-image-4796\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/pasted-image-0-1.png\" alt=\"pasted image 0 1\" \/><\/p>\n<p>If you\u2019re already writing end-to-end (E2E) or integration tests using test automation tools like <a href=\"https:\/\/app14743.cloudwayssites.com\/tutorials\/selenium-javascript.html?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">Selenium<\/a>, <a href=\"https:\/\/app14743.cloudwayssites.com\/tutorials\/cypress.html?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">Cypress<\/a>, or <a href=\"https:\/\/app14743.cloudwayssites.com\/tutorials\/webdriverio.html?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">WebdriverIO<\/a>, you can slide Applitools into them with very little ceremony. Or, you can also <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/how-to-visually-test-react-components-using-our-storybook-sdk?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">utilize the integration<\/a>\u00a0with things like <a href=\"https:\/\/medium.com\/kadira-voice\/introducing-react-storybook-ec27f28de1e2\" target=\"_blank\" rel=\"noopener noreferrer\">Storybook<\/a> for React, Vue, or Angular, giving you both a valuable way of maintaining and visualizing your components and confidence that you won\u2019t accidentally break them.<\/p>\n<h2 id=\"h.af4y6vv5iu30\">Summary<\/h2>\n<p>Traditionally snapshot testing your HTML text is almost never the right solution to test that your UI looks the way it should. We should use automated visual regression testing instead.<\/p>\n<p>Doing 1:1 pixel comparison of screenshots can have frustrating false positives, leading it to be too brittle for long-term, practical usage.<\/p>\n<p>You can leverage the modern advances in machine learning by utilizing something like Applitools.<\/p>\n<h2 id=\"h.r24q7ey5clox\">Find Out More About Applitools<\/h2>\n<p>Find out more about Applitools. Setup a <a href=\"https:\/\/app14743.cloudwayssites.com\/request-demo?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">live demo<\/a>\u00a0with us, or if you\u2019re the do-it-yourself type, <a href=\"https:\/\/app14743.cloudwayssites.com\/users\/register?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">sign up for a free Applitools account<\/a>\u00a0and follow one of our <a href=\"https:\/\/app14743.cloudwayssites.com\/tutorials?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">tutorials<\/a>.<\/p>\n<p>Or, to read more, check out some of these articles and posts:<\/p>\n<ol>\n<li><a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-selenium?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">How to Do Visual Regression Testing with Selenium<\/a>\u00a0by Dave Haeffner<\/li>\n<li><a href=\"https:\/\/app14743.cloudwayssites.com\/visual-testing\/\">Visual Testing FAQ<\/a><\/li>\n<li><a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/the-roi-of-visual-testing?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">The ROI of Visual Testing<\/a>\u00a0by Justin Rohrman<\/li>\n<li>Webinar: <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/devops-at-microsoft?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">DevOps &amp; Quality in The Era Of CI-CD: An Inside Look At How Microsoft Does It<\/a>\u00a0with Abel Wong of Microsoft Azure DevOps<\/li>\n<li><a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/cross-browser-testing-stiennon?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">How to Run 372 Cross Browser Tests In Under 3 Minutes<\/a>\u00a0by Jonah Stiennon<\/li>\n<li><a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/tag\/visual-regression-testing?utm_term=&amp;utm_source=web-referral&amp;utm_medium=blog&amp;utm_content=&amp;utm_campaign=blog-evergreen-campaign&amp;utm_subgroup=\">Applitools Blogs about Visual Regression Testing<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Photo by\u00a0Markus Spiske\u00a0on\u00a0Unsplash Jay Phelps, Reactive Programming nut and compiler enthusiast. Testing, for me, is a love-hate relationship. On one hand, I absolutely love the feeling that comes from having&#8230;<\/p>\n","protected":false},"author":33,"featured_media":14802,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10558],"tags":[12691,12688,10192,12686,10262],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.5 (Yoast SEO v24.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How Visual Regression Testing Can Help You Deliver Better Apps - AI-Powered End-to-End Testing | Applitools<\/title>\n<meta name=\"description\" content=\"Coding for visual testing and visual regression testing shouldn&#039;t be so hard. Jay Phelps explains how Applitools help simplify visual regression testing.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How Visual Regression Testing Can Help You Deliver Better Apps\" \/>\n<meta property=\"og:description\" content=\"Photo by\u00a0Markus Spiske\u00a0on\u00a0Unsplash Jay Phelps, Reactive Programming nut and compiler enthusiast. Testing, for me, is a love-hate relationship. On one\" \/>\n<meta property=\"og:url\" content=\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\" \/>\n<meta property=\"og:site_name\" content=\"AI-Powered End-to-End Testing | Applitools\" \/>\n<meta property=\"article:published_time\" content=\"2019-05-10T06:26:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-21T11:28:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2560\" \/>\n\t<meta property=\"og:image:height\" content=\"1707\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jay Phelps\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jay Phelps\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\"},\"author\":{\"name\":\"Jay Phelps\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/6923c0a1374ff3591ca3b61a044d384a\"},\"headline\":\"How Visual Regression Testing Can Help You Deliver Better Apps\",\"datePublished\":\"2019-05-10T06:26:25+00:00\",\"dateModified\":\"2022-03-21T11:28:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\"},\"wordCount\":901,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg\",\"keywords\":[\"Developers\",\"Technical Leaders\",\"Visual AI\",\"Visual Testing Strategies\",\"Visual Testing Tools\"],\"articleSection\":[\"Product\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\",\"name\":\"How Visual Regression Testing Can Help You Deliver Better Apps - AI-Powered End-to-End Testing | Applitools\",\"isPartOf\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg\",\"datePublished\":\"2019-05-10T06:26:25+00:00\",\"dateModified\":\"2022-03-21T11:28:47+00:00\",\"description\":\"Coding for visual testing and visual regression testing shouldn't be so hard. Jay Phelps explains how Applitools help simplify visual regression testing.\",\"breadcrumb\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg\",\"contentUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg\",\"width\":2560,\"height\":1707},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/app14743.cloudwayssites.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Product\",\"item\":\"https:\/\/app14743.cloudwayssites.com\/blog\/category\/product\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"How Visual Regression Testing Can Help You Deliver Better Apps\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#website\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/\",\"name\":\"Applitools Visual AI\",\"description\":\"Applitools delivers full end-to-end test automation with AI infused at every step.\",\"publisher\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/app14743.cloudwayssites.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\",\"name\":\"Applitools\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png\",\"contentUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png\",\"width\":156,\"height\":28,\"caption\":\"Applitools\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/6923c0a1374ff3591ca3b61a044d384a\",\"name\":\"Jay Phelps\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/6776e5ae77496509d1e2374fbd10c689?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/6776e5ae77496509d1e2374fbd10c689?s=96&d=mm&r=g\",\"caption\":\"Jay Phelps\"},\"url\":\"https:\/\/app14743.cloudwayssites.com\/blog\/author\/jayphelpsthisdot\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How Visual Regression Testing Can Help You Deliver Better Apps - AI-Powered End-to-End Testing | Applitools","description":"Coding for visual testing and visual regression testing shouldn't be so hard. Jay Phelps explains how Applitools help simplify visual regression testing.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/","og_locale":"en_US","og_type":"article","og_title":"How Visual Regression Testing Can Help You Deliver Better Apps","og_description":"Photo by\u00a0Markus Spiske\u00a0on\u00a0Unsplash Jay Phelps, Reactive Programming nut and compiler enthusiast. Testing, for me, is a love-hate relationship. On one","og_url":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/","og_site_name":"AI-Powered End-to-End Testing | Applitools","article_published_time":"2019-05-10T06:26:25+00:00","article_modified_time":"2022-03-21T11:28:47+00:00","og_image":[{"width":2560,"height":1707,"url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg","type":"image\/jpeg"}],"author":"Jay Phelps","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Jay Phelps","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#article","isPartOf":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/"},"author":{"name":"Jay Phelps","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/6923c0a1374ff3591ca3b61a044d384a"},"headline":"How Visual Regression Testing Can Help You Deliver Better Apps","datePublished":"2019-05-10T06:26:25+00:00","dateModified":"2022-03-21T11:28:47+00:00","mainEntityOfPage":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/"},"wordCount":901,"commentCount":0,"publisher":{"@id":"https:\/\/app14743.cloudwayssites.com\/#organization"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage"},"thumbnailUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg","keywords":["Developers","Technical Leaders","Visual AI","Visual Testing Strategies","Visual Testing Tools"],"articleSection":["Product"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/","url":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/","name":"How Visual Regression Testing Can Help You Deliver Better Apps - AI-Powered End-to-End Testing | Applitools","isPartOf":{"@id":"https:\/\/app14743.cloudwayssites.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage"},"thumbnailUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg","datePublished":"2019-05-10T06:26:25+00:00","dateModified":"2022-03-21T11:28:47+00:00","description":"Coding for visual testing and visual regression testing shouldn't be so hard. Jay Phelps explains how Applitools help simplify visual regression testing.","breadcrumb":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#primaryimage","url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg","contentUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2019\/05\/markus-spiske-221494-unsplash-scaled.jpg","width":2560,"height":1707},{"@type":"BreadcrumbList","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/visual-regression-testing-developers\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/app14743.cloudwayssites.com\/"},{"@type":"ListItem","position":2,"name":"Product","item":"https:\/\/app14743.cloudwayssites.com\/blog\/category\/product\/"},{"@type":"ListItem","position":3,"name":"How Visual Regression Testing Can Help You Deliver Better Apps"}]},{"@type":"WebSite","@id":"https:\/\/app14743.cloudwayssites.com\/#website","url":"https:\/\/app14743.cloudwayssites.com\/","name":"Applitools Visual AI","description":"Applitools delivers full end-to-end test automation with AI infused at every step.","publisher":{"@id":"https:\/\/app14743.cloudwayssites.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/app14743.cloudwayssites.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/app14743.cloudwayssites.com\/#organization","name":"Applitools","url":"https:\/\/app14743.cloudwayssites.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/","url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png","contentUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2020\/03\/applitools.png","width":156,"height":28,"caption":"Applitools"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/6923c0a1374ff3591ca3b61a044d384a","name":"Jay Phelps","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/6776e5ae77496509d1e2374fbd10c689?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/6776e5ae77496509d1e2374fbd10c689?s=96&d=mm&r=g","caption":"Jay Phelps"},"url":"https:\/\/app14743.cloudwayssites.com\/blog\/author\/jayphelpsthisdot\/"}]}},"_links":{"self":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts\/14799"}],"collection":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/users\/33"}],"replies":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/comments?post=14799"}],"version-history":[{"count":0,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts\/14799\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/media\/14802"}],"wp:attachment":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/media?parent=14799"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/categories?post=14799"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/tags?post=14799"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}