{"id":27876,"date":"2021-03-19T20:42:38","date_gmt":"2021-03-19T20:42:38","guid":{"rendered":"https:\/\/app14743.cloudwayssites.com\/?p=27876"},"modified":"2021-03-20T01:04:03","modified_gmt":"2021-03-20T01:04:03","slug":"guide-to-test-automation-code-reviews","status":"publish","type":"post","link":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/","title":{"rendered":"Guide to Conducting Test Automation Code Reviews"},"content":{"rendered":"\n<p>A code review is a quality assurance activity to ensure that check-ins are reviewed by someone other than the author. If not pair-programming when writing the code, mature development shops often practice this activity as it\u2019s an excellent way to catch errors early in the process.<\/p>\n\n\n\n<p>I often state that test code should be treated with the same care as feature code, and therefore it should undergo code reviews as well. Test code can be reviewed by other automation engineers or developers who are familiar with the project and code base.<\/p>\n\n\n\n<p>But what exactly should you look for when reviewing test code? Here are 8 specific things I pay close attention to when conducting code reviews for tests.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-1-does-the-test-verify-what-s-needed\">1. Does the test verify what\u2019s needed?<\/h2>\n\n\n\n<p>When verifying something manually, there are a lot of subconscious validations that are being made. So if anything was incorrect, we\u2019d likely notice. Our tests are not as good at this. In fact, they will only fail if the conditions that we explicitly specify are not met.<\/p>\n\n\n\n<p>For example, let\u2019s say we have a test to increase the quantity of one of the products within an online shopping cart. And here\u2019s the test that you need to review:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@Test\npublic void testIncreaseQuantity() {\n    cart.addProduct(\"Be A Good Person\");\n\n    String product = \"Air Fryer Squad\";\n    cart.addProduct(product);\n    cart.increaseQuantity(product, 1);\n    cart.clickUpdate();\n    assertEquals(cart.getQuantity(product), 2);\n}<\/code><\/pre>\n\n\n\n<p>At first glance, this looks fine. The test increased the quantity of one of newly added products by 1 and is verifying that the quantity is now 2. However, let\u2019s look at the UI.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"657\" src=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/TestedUI.png\" alt=\"A picture of the UI we are testing, showing multiple items in the cart, along with cart totals and subtotals\" class=\"wp-image-27877\" srcset=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/TestedUI.png 624w, https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/TestedUI-285x300.png 285w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/figure>\n\n\n\n<p>There\u2019s so much here that\u2019s not being verified by this test.<\/p>\n\n\n\n<ul><li>Where\u2019s the assertion to make sure the product\u2019s price was updated correctly?<\/li><li>How about the subtotal of the entire cart? This needs to be verified.<\/li><li>The tax should change based on the total, so when the quantity was increased, the tax should have increased. Where\u2019s the assertion?<\/li><li>The shipping is a flat rate. When the cart changes, how can you be sure the shipping cost remains the same?<\/li><li>What about the other item in the cart? Was it inadvertently affected when we changed the quantity of Air Fryer Squad shirt? Who knows&#8230;there are no assertions for this.<\/li><\/ul>\n\n\n\n<p>As you can see, the one action of increasing the quantity affects many different aspects of the shopping cart &#8211; and this is often the case with software features. So when reviewing test code, make sure the test is including assertions for all that is needed. Pro tip: <a href=\"https:\/\/app14743.cloudwayssites.com\/visual-testing\/\">visual testing<\/a> with Applitools will catch all of these subconscious assertions without you needing to think of them all; highly recommended! ?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-2-does-the-test-focus-on-one-thing\">2. Does the test focus on one thing?<\/h2>\n\n\n\n<p>Each test should focus on a single thing. This may be a bit confusing because in the test above, I mentioned a bunch of things that should be asserted. However, all of those assertions work together to verify a single thing (increasing a product\u2019s quantity within a shopping cart).<\/p>\n\n\n\n<p>If, however, the test above also verified the company\u2019s logo or some other feature besides the cart, that would be outside of the scope of this test.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-3-can-the-test-run-independently\">3. Can the test run independently?<\/h2>\n\n\n\n<p>In addition to focusing on a single thing, each test should be independent, meaning it should not rely on other tests at all. This makes it much easier to track down failures and their root causes, and will also enable the team to run the tests in parallel to speed up execution if needed.<\/p>\n\n\n\n<p>While the author may agree that tests should be isolated, they still sometimes fall into the trap of using related test runs as setup for other tests. For example, if the test is to remove an item from the cart, it\u2019s tempting to run the \u201cadd to cart\u201d test first and depend upon it before running the \u201cremove from cart\u201d test. Call this out in reviews! Your recommendation should be that the test create and delete whatever it needs, and if possible to do this outside of the GUI. More on this in #4 \u2b07\ufe0f<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-4-how-is-test-data-being-managed\">4. How is test data being managed?<\/h2>\n\n\n\n<p>How tests deal with test data can be the difference between a stable and reliable test suite versus a <a href=\"https:\/\/app14743.cloudwayssites.com\/blog\/uncover-flaky-tests\/\">flaky and untrustworthy one<\/a>. As each test should be developed to run independently and all tests should be able to run in parallel at the exact same time, each test should be responsible for their own test data. Trying to share data that is being manipulated is the perfect ingredient for an unreliable test. When the tests are running in parallel and have different expectations of the test data\u2019s state, the tests end up failing when there\u2019s no real issue with the application. Recommend to the author that they create whatever data is needed for the test within the test itself. Since adding something to the cart already has a test, the \u201cremove item\u201d test can use code seams such as an API or database call to add the item to the cart.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-5-is-there-a-separation-of-concerns\">5. Is there a separation of concerns?<\/h2>\n\n\n\n<p>Remember, test code should be treated with the same care as feature code. That means that clean coding practices, such as separation of concerns, should be followed. The test method should only focus on putting the application in a desired state and verifying that state. The implementation of manipulating the application\u2019s state should not be within the test itself.<\/p>\n\n\n\n<p>For example, in this test, notice the call to <code>addToCart()<\/code>. The implementation of adding a product to a cart is not the responsibility of the test, and therefore it is separated out into another method, and even another class. Same goes for <code>goToCart()<\/code>.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    @Test\n    public void testAddToCart() {\n        product.addToCart(\"Be A Good Person\");\n        page.goToCart();\n        eyes.checkWindow();\n    }\n<\/code><\/pre>\n\n\n\n<p>Likewise, the non-test methods should not make any assertions. Their responsibility is to manipulate the state of the application, and the test\u2019s responsibility is to verify that state. Adding assertions within non-tests decreases the reusability of those methods.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-6-is-there-anything-in-the-test-that-should-be-a-utility\">6. Is there anything in the test that should be a utility?<\/h2>\n\n\n\n<p>Separating concerns already addresses this in most cases, but double check that the test isn\u2019t implementing something that can be reused by other tests. Sometimes this may be a common series of verification steps that certainly is the test\u2019s responsibility, however, is\/will be duplicated across multiple tests.<\/p>\n\n\n\n<p>In these cases, it\u2019s good to recommend that the author move this block of code into a utility method that can be reused by multiple tests.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-7-are-the-selectors-reliable\">7. Are the selectors reliable?<\/h2>\n\n\n\n<p>For GUI and mobile tests, the author will need to use selectors to locate and interact with the web elements. The first thing to ensure is that these locators are not within the tests themselves. Remember&#8230;separation of concerns!<\/p>\n\n\n\n<p>Next, make sure the selectors can stand the test of time. For example, using selectors that depend on the structure of the page (e.g. indices) will only work until the structure of the page is changed.<\/p>\n\n\n\n<p>This is a horrible selector and it\u2019s only a matter of time before the test breaks because of it:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/*&#91;@id=\"main\"]\/ul&#91;1]\/li&#91;2]\/a<\/code><\/pre>\n\n\n\n<p>If another list item is added before this one, all of a sudden, this selector is no longer good. Encourage the author to use unique IDs to locate any elements they need to interact with, even if that means adding the ID to the element as part of this check-in.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-8-is-the-wait-strategy-solid\">8. Is the wait strategy solid?<\/h2>\n\n\n\n<p>Flag any hard-coded waits. Automated tests run faster than customers would actually interact with the product and this could lead to issues with the test, such as trying to interact with or verify something that is not yet in the desired state. To solve for this, the code needs to wait until the application is in the expected state before proceeding.<\/p>\n\n\n\n<p>However, hard-coding a wait is not ideal. It leads to all kinds of problems such as lengthening the duration of execution, or still failing because it didn\u2019t wait long enough.<\/p>\n\n\n\n<p>Instead, recommend that the author use conditional waits that will only pause execution for the least amount of time that is needed.<\/p>\n\n\n\n<p>For example, if testing a POST API request, while the response may have been returned, there could still be some processing on the backend. Attempting to run another request on this newly-created entity before the entity has actually been created would result in a test failure. Instead of waiting a set 3 seconds before proceeding, recommend that the author includes logic that polls every few milliseconds until the test is sure the entity has been created, and then proceed.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-you-re-ready-to-review\">You\u2019re ready to review!<\/h2>\n\n\n\n<p>Hopefully these tips provide something substantial to look for in reviews of test code. Remember, your test code is what\u2019s used to determine the quality of your feature code, so it\u2019s really important that it\u2019s developed with care. If you&#8217;re looking for more tips or advice on how to set yourself up for success in test automation, check out my free course over at Test Automation University, <a href=\"https:\/\/testautomationu.applitools.com\/setting-a-foundation-for-successful-test-automation\/\" target=\"_blank\" rel=\"noreferrer noopener\">Setting a Foundation for Successful Test Automation<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A code review is a quality assurance activity to ensure that check-ins are reviewed by someone other than the author. If not pair-programming when writing the code, mature development shops&#8230;<\/p>\n","protected":false},"author":31,"featured_media":27885,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[12271],"tags":[16647,10152],"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>Guide to Conducting Test Automation Code Reviews - AI-Powered End-to-End Testing | Applitools<\/title>\n<meta name=\"description\" content=\"What should you look for when reviewing test code? Here are 8 specific things I pay close attention to when conducting code reviews for tests.\" \/>\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\/guide-to-test-automation-code-reviews\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Guide to Conducting Test Automation Code Reviews\" \/>\n<meta property=\"og:description\" content=\"A code review is a quality assurance activity to ensure that check-ins are reviewed by someone other than the author. If not pair-programming when writing\" \/>\n<meta property=\"og:url\" content=\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/\" \/>\n<meta property=\"og:site_name\" content=\"AI-Powered End-to-End Testing | Applitools\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-19T20:42:38+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-20T01:04:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"831\" \/>\n\t<meta property=\"og:image:height\" content=\"532\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Angie Jones\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Angie Jones\" \/>\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:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/\"},\"author\":{\"name\":\"Angie Jones\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/bef60d60f816d3253a3e37120c0b9bba\"},\"headline\":\"Guide to Conducting Test Automation Code Reviews\",\"datePublished\":\"2021-03-19T20:42:38+00:00\",\"dateModified\":\"2021-03-20T01:04:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/\"},\"wordCount\":1491,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg\",\"keywords\":[\"code review\",\"Test Automation\"],\"articleSection\":[\"Getting Started\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/\",\"name\":\"Guide to Conducting Test Automation Code Reviews - AI-Powered End-to-End Testing | Applitools\",\"isPartOf\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg\",\"datePublished\":\"2021-03-19T20:42:38+00:00\",\"dateModified\":\"2021-03-20T01:04:03+00:00\",\"description\":\"What should you look for when reviewing test code? Here are 8 specific things I pay close attention to when conducting code reviews for tests.\",\"breadcrumb\":{\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage\",\"url\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg\",\"contentUrl\":\"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg\",\"width\":831,\"height\":532},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/app14743.cloudwayssites.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting Started\",\"item\":\"https:\/\/app14743.cloudwayssites.com\/blog\/category\/getting-started\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Guide to Conducting Test Automation Code Reviews\"}]},{\"@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\/bef60d60f816d3253a3e37120c0b9bba\",\"name\":\"Angie Jones\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/60864923503620d0b54e2493ef75b9d8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/60864923503620d0b54e2493ef75b9d8?s=96&d=mm&r=g\",\"caption\":\"Angie Jones\"},\"url\":\"https:\/\/app14743.cloudwayssites.com\/blog\/author\/angiejones\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Guide to Conducting Test Automation Code Reviews - AI-Powered End-to-End Testing | Applitools","description":"What should you look for when reviewing test code? Here are 8 specific things I pay close attention to when conducting code reviews for tests.","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\/guide-to-test-automation-code-reviews\/","og_locale":"en_US","og_type":"article","og_title":"Guide to Conducting Test Automation Code Reviews","og_description":"A code review is a quality assurance activity to ensure that check-ins are reviewed by someone other than the author. If not pair-programming when writing","og_url":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/","og_site_name":"AI-Powered End-to-End Testing | Applitools","article_published_time":"2021-03-19T20:42:38+00:00","article_modified_time":"2021-03-20T01:04:03+00:00","og_image":[{"width":831,"height":532,"url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg","type":"image\/jpeg"}],"author":"Angie Jones","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Angie Jones","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#article","isPartOf":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/"},"author":{"name":"Angie Jones","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/bef60d60f816d3253a3e37120c0b9bba"},"headline":"Guide to Conducting Test Automation Code Reviews","datePublished":"2021-03-19T20:42:38+00:00","dateModified":"2021-03-20T01:04:03+00:00","mainEntityOfPage":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/"},"wordCount":1491,"commentCount":0,"publisher":{"@id":"https:\/\/app14743.cloudwayssites.com\/#organization"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage"},"thumbnailUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg","keywords":["code review","Test Automation"],"articleSection":["Getting Started"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/","url":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/","name":"Guide to Conducting Test Automation Code Reviews - AI-Powered End-to-End Testing | Applitools","isPartOf":{"@id":"https:\/\/app14743.cloudwayssites.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage"},"image":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage"},"thumbnailUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg","datePublished":"2021-03-19T20:42:38+00:00","dateModified":"2021-03-20T01:04:03+00:00","description":"What should you look for when reviewing test code? Here are 8 specific things I pay close attention to when conducting code reviews for tests.","breadcrumb":{"@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#primaryimage","url":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg","contentUrl":"https:\/\/app14743.cloudwayssites.com\/wp-content\/uploads\/2021\/03\/Guide-to-Conducting-Test-Automation-Code-Reviews_831x532.jpg","width":831,"height":532},{"@type":"BreadcrumbList","@id":"https:\/\/app14743.cloudwayssites.com\/blog\/guide-to-test-automation-code-reviews\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/app14743.cloudwayssites.com\/"},{"@type":"ListItem","position":2,"name":"Getting Started","item":"https:\/\/app14743.cloudwayssites.com\/blog\/category\/getting-started\/"},{"@type":"ListItem","position":3,"name":"Guide to Conducting Test Automation Code Reviews"}]},{"@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\/bef60d60f816d3253a3e37120c0b9bba","name":"Angie Jones","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/app14743.cloudwayssites.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/60864923503620d0b54e2493ef75b9d8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/60864923503620d0b54e2493ef75b9d8?s=96&d=mm&r=g","caption":"Angie Jones"},"url":"https:\/\/app14743.cloudwayssites.com\/blog\/author\/angiejones\/"}]}},"_links":{"self":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts\/27876"}],"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\/31"}],"replies":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/comments?post=27876"}],"version-history":[{"count":0,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/posts\/27876\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/media\/27885"}],"wp:attachment":[{"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/media?parent=27876"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/categories?post=27876"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/app14743.cloudwayssites.com\/wp-json\/wp\/v2\/tags?post=27876"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}