{"id":14578,"date":"2019-04-09T22:34:32","date_gmt":"2019-04-09T22:34:32","guid":{"rendered":"https:\/\/applitools.com\/blog\/?p=4578"},"modified":"2023-01-10T15:44:57","modified_gmt":"2023-01-10T23:44:57","slug":"what-is-front-end-testing-in-2019","status":"publish","type":"post","link":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/","title":{"rendered":"What Is Front End Testing in 2019?"},"content":{"rendered":"<p>What do you think are best practices for front end testing? On April 3, 2019, <a href=\"https:\/\/twitter.com\/carmiadam\">Adam Carmi<\/a>, our CTO and Co-Founder, joined a panel discussed this topic on a This Dot Media webinar. The webinar title was \u201cThis.Javascript: State of Front End Testing.\u201d \u00a0Moderated by Tracy Lee of This Dot, the panel included:<\/p>\n<ul>\n<li>Guillermo Rauch &#8211; Founder &amp; CEO, Zeit (@rauchg, @zeithq)<\/li>\n<li>Gleb Bahmutov &#8211; VP of Engineering, Cypress (@bahmutov, @cypress_io)<\/li>\n<li>Simen Bekkhus &#8211; Developer, Folio (@SBekkhus, @folio, @fbjest)<\/li>\n<li>Adam Carmi &#8211; Co-Founder and CTO, Applitools (@carmiadam, @applitools)<\/li>\n<li>Kevin Lamping &#8211; Developer, Test Automation (@klamping)<\/li>\n<li>Vikram Subramanian &#8211; Googler, Angular Universal (@vikerman)<\/li>\n<li>Tracy Lee &#8211; Founder, This Dot &amp; RxJS Core Team (@ladyleet \u200f, @thisdotmedia)<\/li>\n<\/ul>\n<p>The panel covered a broad range of test issues. Adam began his segment by zeroing in on a simple problem: how small changes can have huge impacts on front end behavior. Specifically, how can developers account for changes in their <a href=\"https:\/\/www.w3.org\/Style\/CSS\/Overview.en.html\" target=\"_blank\" rel=\"noopener noreferrer\">CSS<\/a>?<\/p>\n<p><!--more--><\/p>\n<p>CSS changes can affect look and feel of a set of pages &#8211; leaving them visually problematic for users. \u00a0With an existing CSS, developers can create functional tests around expected behaviors and visualizations. But, CSS changes can have unknown or unexpected behavior changes that impact functional behavior.<\/p>\n<h2 id=\"h.7co99gdq28fa\">How Do Front End Developers Test?<\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4600 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS.jpg\" alt=\"\" width=\"560\" height=\"315\" \/><\/p>\n<p>Adam started out by asking how most front end developers handle visual testing. He acknowledged the reality that most frontend developers don&#8217;t do testing, and those that do usually run unit tests. Some developers create functional UI testing with tools like <a href=\"https:\/\/www.cypress.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Cypress<\/a>, <a href=\"https:\/\/webdriver.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Webdriver.IO<\/a>, <a href=\"https:\/\/www.seleniumhq.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Selenium<\/a>, and other tools.<\/p>\n<p>Adam gave an example of a typical login page test. The page requires that a user provide both an email and a password. If either or both are missing, the page should respond with \u201cRequired\u201d to indicate that content is missing.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4599 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS-1.jpg\" alt=\"\" width=\"641\" height=\"363\" \/><\/p>\n<p>This kind of behavior is easy to test in Cypress. The test below instructs Cypress to run the test behavior and ensure that the screen shows the \u201cRequired\u201d error for each box.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4598 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS-2.jpg\" alt=\"\" width=\"613\" height=\"358\" \/><\/p>\n<h2 id=\"h.4gc8979idecg\">Functional Tests Miss UI Changes<\/h2>\n<p>After walking through the functional test approach, Adam asked,<\/p>\n<p>\u201cWhat happens if another developer on our team, or one on a different team, changes the CSS&#8230; \u201c<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4597 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS-3.jpg\" alt=\"\" width=\"665\" height=\"396\" \/><\/p>\n<p>What happens when the change unintentionally modifies pages with an existing functional test? The test would still pass because the functional elements haven&#8217;t changed. If we don&#8217;t have other means to verify how the UI looks like, we just might this change might go unnoticed and push this back to production.<\/p>\n<h2 id=\"h.5m0ermj1li11\">Why Automated Visual UI Testing Matters<\/h2>\n<p>Then, Adam discussed the range of problems that result in visual UI issues. He said that the typical web page,<\/p>\n<p>\u201c&#8230; can have hundreds of elements and each element has dozens of attributes that affect the way that it is rendered.\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4596 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS-4.jpg\" alt=\"\" width=\"570\" height=\"366\" \/><\/p>\n<p>&#8220;How can we make sure that the application looks right renders correctly on all different form factors and viewport sizes that affect its layout? Especially when each browser uses a different layout engine, and each has a slightly different interpretation for the same domain CSS? \u00a0Even if we don&#8217;t change a line of code a browser version update might be incompatible with the application.\u201d<\/p>\n<p>Then, Adam talked about <a href=\"https:\/\/applitools.com\/\">visual UI testing<\/a>\u00a0and how Applitools addresses these issues.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4603 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/Screen-Shot-2019-04-09-at-1.18.56-PM.png\" alt=\"\" width=\"609\" height=\"345\" \/><\/p>\n<p>\u201cThe answer,\u201d he said, \u201cis visual testing and the way that you do it with Applitools. Basically, you just add a visual assertion, or a visual checkpoint, as we call it, which validates the entire window with one line of code. It captures a screenshot of the page, or a component (if you want to test a specific component) and compares that with a baseline image that defines the expected appearance of the page, and if there is any difference it the test.\u201d<\/p>\n<h2 id=\"h.afu2am2rfqzv\">Ultrafast Grid<\/h2>\n<p>Next, Adam described how Applitools new <a href=\"https:\/\/applitools.com\/visualgrid\">Ultrafast Grid<\/a>\u00a0lets engineers automatically run their tests on a range of target environments and devices.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4595 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS-5.jpg\" alt=\"\" width=\"653\" height=\"419\" \/><\/p>\n<p>\u201cWhat we do is basically capture all the resources that are used by the browser to render the page locally. We upload the differences to our Ultrafast Grid, which is where we host our own devices and browsers. And then we simultaneously render the same resources on all these different combinations of environment details. You can run hundreds of visual tests in less than a minute &#8211; super powerful and super cool.\u201d<\/p>\n<p>Adam then demonstrated <a href=\"https:\/\/applitools.com\/features#visual-ai\">Applitools Eyes<\/a>\u00a0in action.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4602 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/Screen-Shot-2019-04-09-at-1.21.32-PM.png\" alt=\"\" width=\"616\" height=\"528\" \/><\/p>\n<p>He noted that when Applitools Eyes detects a difference, you can see the difference highlighted on the screen. The dashboard lets you compare the checkpoint and baseline image. You can toggle between the two images and clearly see what changed. Applitools Eyes is simple enough to use that anyone on your team who knows your application can run these tests.<\/p>\n<h2 id=\"h.npztal5uov3g\">Root Cause Analysis<\/h2>\n<p>Adam then showed the Applitools Eyes Root Cause Analysis option.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-4594 aligncenter\" src=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/20190403-How-to-test-your-CSS-6.jpg\" alt=\"\" width=\"721\" height=\"415\" \/><\/p>\n<p>&#8220;Beyond just seeing what&#8217;s changed, we can show you what caused the change,&#8221; he said. &#8220;For example, if we click on a difference, Root Cause Analysis highlights the code difference between the checkpoint and the baseline. Root Cause analysis highlights changes in CSS that affect color, text case, and even indicate misbehavior on a specific platform. Root Cause Analysis saves a lot of time by presenting the code differences, rather than requiring the developer to dig into the code.&#8221;<\/p>\n<h2 id=\"h.min3opshbunw\">Ease of Use<\/h2>\n<p>Next, Adam spoke about ease of use.<\/p>\n<p>&#8220;We have plenty of features in the product that allow you to scale up your tests without increasing your maintenance overhead,&#8221; he said. Maintaining a baseline is very simple &#8211; there is a workflow for accepting new screenshots. And, Applitools Eyes can isolate errors to a single root cause, so an error touching hundreds of pages will show up as one error.<\/p>\n<p>Finally, Adam spoke about Applitools integration with development and continuous development &#8211; continuous integration tools.<\/p>\n<p>\u201cThe last thing I&#8217;ll mention is that visual testing needs to integrate with your day-to-day workflow. We integrate with bug trackers and with continuous integration systems like Jenkins, Travis CI, and many others. We also integrate with code repositories like Bitbucket and GitHub. You can quickly view, initiate, and maintain visual test results directly from your pull requests.\u201d<\/p>\n<h2>See The Whole Webinar<\/h2>\n<p>We have linked the entire webinar here. Enjoy!<\/p>\n<p><iframe title=\"What Is Frontend Testing In 2019\" width=\"1160\" height=\"653\" src=\"https:\/\/www.youtube.com\/embed\/im7Zl9k-eBA?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen><\/iframe><\/p>\n<p>Find out more about Applitools. Setup a <a href=\"https:\/\/applitools.com\/request-demo\">live demo<\/a> with us, or if you\u2019re the do-it-yourself type, <a href=\"https:\/\/applitools.com\/users\/register\">sign up for a free Applitools account<\/a> and follow one of our <a href=\"https:\/\/applitools.com\/tutorials\">tutorials<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>What do you think are best practices for front end testing? On April 3, 2019, Adam Carmi, our CTO and Co-Founder, joined a panel discussed this topic on a This&#8230;<\/p>\n","protected":false},"author":77,"featured_media":14610,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10002],"tags":[10234,10357,12688,12690],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The State of Front End Testing 2019<\/title>\n<meta name=\"description\" content=\"What are the best practices for front end testing? We talked to several engineers to get their thoughts on how to deliver high quality apps.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What Is Front End Testing in 2019?\" \/>\n<meta property=\"og:description\" content=\"What do you think are best practices for front end testing? On April 3, 2019, Adam Carmi, our CTO and Co-Founder, joined a panel discussed this topic on a\" \/>\n<meta property=\"og:url\" content=\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\" \/>\n<meta property=\"og:site_name\" content=\"Automated Visual Testing | Applitools\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-09T22:34:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-01-10T23:44:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/ThisDot-Presents-3.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"960\" \/>\n\t<meta property=\"og:image:height\" content=\"720\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Michael Battat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Michael Battat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\"},\"author\":{\"name\":\"Michael Battat\",\"@id\":\"https:\/\/applitools.com\/#\/schema\/person\/b437278e58a40abd251bfb74ab7b8382\"},\"headline\":\"What Is Front End Testing in 2019?\",\"datePublished\":\"2019-04-09T22:34:32+00:00\",\"dateModified\":\"2023-01-10T23:44:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\"},\"wordCount\":1078,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/applitools.com\/#organization\"},\"keywords\":[\"Best Practices\",\"Cypress\",\"Technical Leaders\",\"Test Engineers\"],\"articleSection\":[\"Events\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\",\"url\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\",\"name\":\"The State of Front End Testing 2019\",\"isPartOf\":{\"@id\":\"https:\/\/applitools.com\/#website\"},\"datePublished\":\"2019-04-09T22:34:32+00:00\",\"dateModified\":\"2023-01-10T23:44:57+00:00\",\"description\":\"What are the best practices for front end testing? We talked to several engineers to get their thoughts on how to deliver high quality apps.\",\"breadcrumb\":{\"@id\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/applitools.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Events\",\"item\":\"https:\/\/applitools.com\/blog\/category\/events\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"What Is Front End Testing in 2019?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/applitools.com\/#website\",\"url\":\"https:\/\/applitools.com\/\",\"name\":\"Automated Visual Testing | Applitools\",\"description\":\"Applitools delivers the next generation of test automation powered by AI assisted computer vision technology known as Visual AI.\",\"publisher\":{\"@id\":\"https:\/\/applitools.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/applitools.com\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/applitools.com\/#organization\",\"name\":\"Applitools\",\"url\":\"https:\/\/applitools.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/applitools.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ewig5qf9cgn.exactdn.com\/wp-content\/uploads\/2020\/03\/applitools.png?strip=all&lossy=1&ssl=1\",\"contentUrl\":\"https:\/\/ewig5qf9cgn.exactdn.com\/wp-content\/uploads\/2020\/03\/applitools.png?strip=all&lossy=1&ssl=1\",\"width\":156,\"height\":28,\"caption\":\"Applitools\"},\"image\":{\"@id\":\"https:\/\/applitools.com\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/applitools.com\/#\/schema\/person\/b437278e58a40abd251bfb74ab7b8382\",\"name\":\"Michael Battat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/applitools.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/b1216c259c20b8394687b91ff06f1af2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/b1216c259c20b8394687b91ff06f1af2?s=96&d=mm&r=g\",\"caption\":\"Michael Battat\"},\"sameAs\":[\"https:\/\/www.linkedin.com\/in\/mdbattat\/\"],\"url\":\"https:\/\/applitools.com\/blog\/author\/michaelbattat\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"The State of Front End Testing 2019","description":"What are the best practices for front end testing? We talked to several engineers to get their thoughts on how to deliver high quality apps.","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:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/","og_locale":"en_US","og_type":"article","og_title":"What Is Front End Testing in 2019?","og_description":"What do you think are best practices for front end testing? On April 3, 2019, Adam Carmi, our CTO and Co-Founder, joined a panel discussed this topic on a","og_url":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/","og_site_name":"Automated Visual Testing | Applitools","article_published_time":"2019-04-09T22:34:32+00:00","article_modified_time":"2023-01-10T23:44:57+00:00","og_image":[{"width":960,"height":720,"url":"https:\/\/applitools.com\/wp-content\/uploads\/2019\/04\/ThisDot-Presents-3.jpg","type":"image\/jpeg"}],"author":"Michael Battat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Michael Battat","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#article","isPartOf":{"@id":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/"},"author":{"name":"Michael Battat","@id":"https:\/\/applitools.com\/#\/schema\/person\/b437278e58a40abd251bfb74ab7b8382"},"headline":"What Is Front End Testing in 2019?","datePublished":"2019-04-09T22:34:32+00:00","dateModified":"2023-01-10T23:44:57+00:00","mainEntityOfPage":{"@id":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/"},"wordCount":1078,"commentCount":0,"publisher":{"@id":"https:\/\/applitools.com\/#organization"},"keywords":["Best Practices","Cypress","Technical Leaders","Test Engineers"],"articleSection":["Events"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/","url":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/","name":"The State of Front End Testing 2019","isPartOf":{"@id":"https:\/\/applitools.com\/#website"},"datePublished":"2019-04-09T22:34:32+00:00","dateModified":"2023-01-10T23:44:57+00:00","description":"What are the best practices for front end testing? We talked to several engineers to get their thoughts on how to deliver high quality apps.","breadcrumb":{"@id":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/applitools.com\/blog\/what-is-front-end-testing-in-2019\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/applitools.com\/"},{"@type":"ListItem","position":2,"name":"Events","item":"https:\/\/applitools.com\/blog\/category\/events\/"},{"@type":"ListItem","position":3,"name":"What Is Front End Testing in 2019?"}]},{"@type":"WebSite","@id":"https:\/\/applitools.com\/#website","url":"https:\/\/applitools.com\/","name":"Automated Visual Testing | Applitools","description":"Applitools delivers the next generation of test automation powered by AI assisted computer vision technology known as Visual AI.","publisher":{"@id":"https:\/\/applitools.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/applitools.com\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/applitools.com\/#organization","name":"Applitools","url":"https:\/\/applitools.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/applitools.com\/#\/schema\/logo\/image\/","url":"https:\/\/ewig5qf9cgn.exactdn.com\/wp-content\/uploads\/2020\/03\/applitools.png?strip=all&lossy=1&ssl=1","contentUrl":"https:\/\/ewig5qf9cgn.exactdn.com\/wp-content\/uploads\/2020\/03\/applitools.png?strip=all&lossy=1&ssl=1","width":156,"height":28,"caption":"Applitools"},"image":{"@id":"https:\/\/applitools.com\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/applitools.com\/#\/schema\/person\/b437278e58a40abd251bfb74ab7b8382","name":"Michael Battat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/applitools.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/b1216c259c20b8394687b91ff06f1af2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/b1216c259c20b8394687b91ff06f1af2?s=96&d=mm&r=g","caption":"Michael Battat"},"sameAs":["https:\/\/www.linkedin.com\/in\/mdbattat\/"],"url":"https:\/\/applitools.com\/blog\/author\/michaelbattat\/"}]}},"_links":{"self":[{"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/posts\/14578"}],"collection":[{"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/comments?post=14578"}],"version-history":[{"count":2,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/posts\/14578\/revisions"}],"predecessor-version":[{"id":45795,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/posts\/14578\/revisions\/45795"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/media\/14610"}],"wp:attachment":[{"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/media?parent=14578"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/categories?post=14578"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/applitools.com\/wp-json\/wp\/v2\/tags?post=14578"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}