<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lauren Christianson</title>
    <description>The latest articles on DEV Community by Lauren Christianson (@laurenchristianson).</description>
    <link>https://dev.to/laurenchristianson</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F985362%2Fbab13664-17fb-42bd-949d-1a908a6fae05.png</url>
      <title>DEV Community: Lauren Christianson</title>
      <link>https://dev.to/laurenchristianson</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/laurenchristianson"/>
    <language>en</language>
    <item>
      <title>Impact-Driven Automation Testing For Ecommerce Websites</title>
      <dc:creator>Lauren Christianson</dc:creator>
      <pubDate>Tue, 06 Dec 2022 16:09:08 +0000</pubDate>
      <link>https://dev.to/testmuai/impact-driven-automation-testing-for-ecommerce-websites-1gbl</link>
      <guid>https://dev.to/testmuai/impact-driven-automation-testing-for-ecommerce-websites-1gbl</guid>
      <description>&lt;p&gt;Every piece of software is unique: different tech stacks, varying coding styles, wide arrays of use cases, and distinct ways in which the software itself will be exercised. Due to this, testing methodologies, be it manual or automated, are also unique.&lt;/p&gt;

&lt;p&gt;While this certainly keeps our jobs fresh and exciting, it presents a problem that is left to the expertise of the developers and QA engineers. A plethora of questions need to be answered before we begin designing an automation approach; including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What approach should we follow in selecting an automation framework?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Which CI/CD tools should be used for accelerating automation testing?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;What should be the frequency at which automated tests need to run?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Automation engineers must maintain a robust tool belt in order to execute the respective automation tasks effectively. However, given the myriad of &lt;a href="https://www.lambdatest.com/blog/best-ci-cd-tools/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;CI/CD tools&lt;/a&gt; and frameworks to choose from, it can be challenging to keep our skills up-to-date on top of our day-to-day activities at work.&lt;/p&gt;

&lt;p&gt;After working on a variety of applications in completely different industries (online gaming, financial services, advertising, travel, video streaming, eCommerce, and currently commercial insurance), I’ve identified working patterns and necessary components to succeed in QA and &lt;a href="https://www.lambdatest.com/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webapge" rel="noopener noreferrer"&gt;test automation&lt;/a&gt; in these domains.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you work in the eCommerce industry, I suggest bookmarking this article as the tips mentioned below can help you in your day-to-day work.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;There are intricacies in every domain that, if known, can drastically improve an automation engineer’s efficacy on a team. Foundational knowledge of QA and &lt;a href="https://www.lambdatest.com/blog/selenium-best-practices-for-web-testing/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;test automation best practices&lt;/a&gt; paired with a specialized, industry-specific toolset will have a significant positive impact on a team.&lt;/p&gt;

&lt;p&gt;US eCommerce sales grew more than 30% in 2020, which is projecting a strong shift in buying patterns of consumers. As the world shifts from in-person shopping to online shopping, eCommerce giants like Target, Amazon, Walmart, and Best Buy are increasing their engineering efforts to enhance their platforms further.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AKiubxTqsFeJr6cZ8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AKiubxTqsFeJr6cZ8.png" width="512" height="507"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this meteoric shift comes an increased need for strong QA practices since these businesses are now seeing a larger share of their revenue come from online fulfillment.&lt;/p&gt;

&lt;p&gt;Here are QA &amp;amp; test automation best practices that are derived from my QA experience with companies like Best Buy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Utilize data-driven testing
&lt;/h2&gt;

&lt;p&gt;When you hear the term data-driven in the context of testing, it commonly means setting up test scenarios so that the same scenario is run ‘X’ number of times, where X is the amount of data permutations that exist for the given scenario. For example: Verify that a customer can add X products to the shopping cart.&lt;/p&gt;

&lt;p&gt;As an automation engineer, I may opt to implement automation testing using BDD. &lt;a href="https://www.lambdatest.com/blog/tdd-vs-bdd/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;TDD vs BDD&lt;/a&gt; is a quest for some developers. The choice of an appropriate&lt;a href="https://www.lambdatest.com/blog/behaviour-driven-development-by-selenium-testing-with-gherkin/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt; BDD framework&lt;/a&gt; can depend on the team’s prior experience with BDD tools. I personally prefer the &lt;a href="https://www.lambdatest.com/selenium-automation-testing-with-cucumber-framework?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webapge" rel="noopener noreferrer"&gt;Cucumber test framework&lt;/a&gt; since it is a popular, easy to use framework. For the test scenario mentioned above, I could do something like this (simplified example):&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Scenario Outline: Add to Cart
  Given a logged in user
  When I add &amp;lt;items&amp;gt; to my cart
  Then I should see &amp;lt;items&amp;gt; in my cart

  Examples:
    | items |
    |     1 |
    |     5 | 
    |    25 |
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This allows me to easily add thorough test coverage for common workflows in the application. For example, I would likely use an API endpoint to add items to my cart, then call another endpoint to get all items in my cart once they’ve been added. These tests could also be run through the UI, resulting in lengthy runtimes and more test flakiness.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2Ap2HOSV1LkHw9g-Y2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2Ap2HOSV1LkHw9g-Y2.png" width="512" height="159"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s look at my second definition of data-driven testing: obtaining real, production user data and statistics to drive test scenario design. In the example above, I arbitrarily chose three different test scenarios: adding a single item to the shopping cart, adding 5 items, and adding 25 items. Test scenarios should, ideally, never be arbitrarily chosen!&lt;/p&gt;

&lt;p&gt;When I join a team, I always ask for production reports — this, in my opinion, is some of the most valuable data you can leverage for your test suite. Based on this information, you can set up test scenarios and have greater confidence that your most common use cases are working as expected.&lt;/p&gt;

&lt;p&gt;This data is a goldmine that can be extensively used for setting up the baseline test cases. Once the data is available to the entire team, they have visibility into the most critical pieces of the application’s functionality. The type of production data you use depends on the system under test, but here are a few examples of the most prominent data used in the testing of e-commerce websites:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Common types of order fulfillment — delivery, in-store pickup, curbside pickup, locker pickup&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Common size of orders — single item, 2–10 items, 10+ items, bulk orders&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Insights into the most commonly ordered items&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Depending on the user metrics derived from the above data, we can create our baseline test scenarios, accounting for a large amount of our application’s real use cases.&lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Read *&lt;/em&gt;—&lt;a href="https://www.lambdatest.com/blog/12-mistakes-in-an-e-commerce-website-that-affects-online-sales/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;12 Mistakes In An E-commerce Website That Affect Online Sales&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Leverage Cloud-based testing solutions
&lt;/h2&gt;

&lt;p&gt;A majority of eCommerce sites can be broken into the following core functionalities:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Product search&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Addition of product to shopping cart&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Order summary and modification&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Check out and payments&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It is common for separate development teams to own these features, which unfortunately creates silos within the organization. Intertwining different pieces of the system with each other is one of the major uphill tasks when it comes to eCommerce development and testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AFY9RWzLq2V9neZiW.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AFY9RWzLq2V9neZiW.png" width="800" height="151"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are working on product pages, you’re reliant on the search development teams and the inventory development teams. In distributed eCommerce platforms, visibility into the state of applications in the test system will save teams a significant amount of time during testing activities.&lt;/p&gt;

&lt;p&gt;With cloud-based automated &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webapge" rel="noopener noreferrer"&gt;cross browser testing&lt;/a&gt; solutions like LambdaTest, teams have increased visibility into the state of upstream and downstream apps in the test system. It enables testing of the different site functionalities across browsers and platforms at a much faster pace! It leverages the cloud to its maximum potential.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2APwBNIJw-Ot84x2qB.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2APwBNIJw-Ot84x2qB.png" width="512" height="182"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;LambdaTest Automation Dashboard&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Another great benefit of cloud-based tools is the transparency into other teams’ test suites. eCommerce organizations are large and require cross-team collaboration to ensure company-wide success. Tools like LambdaTest enable teams to have transparent testing efforts, enabling teams to understand the rules and requirements of applications outside of their own.&lt;/p&gt;

&lt;p&gt;You can also refer to the below video tutorial on how to perform real-time browser testing on LambdaTest.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/hJ-eP8TcGuY"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check this out: How To Debug Websites Using &lt;a href="https://www.lambdatest.com/blog/debug-websites-using-safari-developer-tools/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Developer Tools for safari&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Think like a user, but test like An Engineer
&lt;/h2&gt;

&lt;p&gt;It’s likely that you are working with highly distributed and complex systems when working in the eCommerce industry. As a result, if you were to automate your tests to mimic a real user’s path through the system, your tests would be huge, slow, and prone to failures caused by upstream dependencies.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AQjaBO_EXPzWJtXbN.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AQjaBO_EXPzWJtXbN.png" width="512" height="160"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If your system allows it, utilize writing directly to a database or posting to a web service endpoint to eliminate time-consuming test data setup.&lt;/p&gt;

&lt;p&gt;An example of where this can be useful:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Testing Cart functionality:&lt;/strong&gt; My high-level suggestion here would be to do thorough &lt;a href="https://www.lambdatest.com/blog/everything-you-need-to-know-about-api-testing/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;API automation testing&lt;/a&gt;. Here are some of the relevant endpoints:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;POST&lt;/strong&gt;: /addToCart/{sku} → {sku} is associated to an item and this call adds the item to the user’s cart&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GET&lt;/strong&gt;: /cart → All items currently in the user’s cart are returned&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DELETE&lt;/strong&gt;: /removeFromCart/{sku} → {sku} is removed from the cart&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your test cases can quickly add items to the cart with the &lt;strong&gt;POST&lt;/strong&gt; call, retrieve all items in the cart by calling the &lt;strong&gt;/cart&lt;/strong&gt; endpoint, then use the &lt;strong&gt;DELETE&lt;/strong&gt; call to clean up the test. Using the earlier example, a test like this would probably run in a matter of seconds. However, the test could take several minutes and be vulnerable to upstream dependencies in the &lt;strong&gt;Search&lt;/strong&gt; application and the &lt;strong&gt;Item Details&lt;/strong&gt; application. This is especially true if you handled the data setup and test execution at the UI level.&lt;/p&gt;

&lt;p&gt;This approach to test data setup can be used within your UI tests and functional areas in an eCommerce platform.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/aR3JIXKBzAE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check this out: Cross Browser Testing Cloud- Browser &amp;amp; app testing cloud to perform both exploratory and automated &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;testing web&lt;/a&gt; across 3000+ different browsers, real devices and operating systems.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Leverage feature flags and isolate new features in production
&lt;/h2&gt;

&lt;p&gt;eCommerce platforms require 24/7 uptime and availability. In &lt;a href="https://www.lambdatest.com/blog/automation-testing-important-agile-development/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Agile software development&lt;/a&gt;, frequent releases are recommended to reduce the overall risk introduced by not allowing changes to pile up over long periods of time. I would recommend embracing &lt;a href="https://www.lambdatest.com/blog/continuous-testing-using-shift-left-testing-approach/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;shift left testing&lt;/a&gt; for eCommerce website testing so that development and testing can move hand-in-hand.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1040496791161131008-379" src="https://platform.twitter.com/embed/Tweet.html?id=1040496791161131008"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1040496791161131008-379');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1040496791161131008&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;While it’s important to have either a roll-back or fall-forward strategy in case an issue is introduced in production, there are ways to isolate features so that a new piece of functionality can also be tested in production before rolling it out to the entire system of users.&lt;/p&gt;

&lt;p&gt;Here are some of the ways in which you can leverage flags in testing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enabled/disabled feature flags&lt;/strong&gt;: Akin to turning a lightswitch on and off, these flags are useful for enabling and disabling features for short periods of time. This can be used for production testing during a low-traffic time period.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;User-based flags&lt;/strong&gt;: You can really narrow down the visibility of a feature in production using these flags.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In general, don’t be afraid to test in production (safely!), if it is possible to do so. Features can be easily isolated to your own production user account (and/or others on your team) to give you higher confidence that the application is functioning as expected in a true production environment. This is particularly useful in eCommerce, as it is hard to end-to-end test the full user flow in test environments considering the expansive size of the e-commerce platform.&lt;/p&gt;

&lt;p&gt;Read — &lt;a href="https://www.lambdatest.com/blog/top-automation-testing-trends-2021/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Top Automation Testing Trends To Look Out In 2021&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Run Selenium, Cypress, and Appium tests on LambdaTest to scale with the demand of your website and web apps.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2Ae25PtTwdLZpeUWkp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2Ae25PtTwdLZpeUWkp.jpg" width="640" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check this out: How To Debug Websites Using &lt;a href="https://www.lambdatest.com/blog/debug-websites-using-safari-developer-tools/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Dev tools in Safari&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping It Up
&lt;/h2&gt;

&lt;p&gt;While major eCommerce platforms — Target, Walmart, Amazon, Best Buy, and more — are competitors trying to differentiate from one another, remember that their systems are generally the same at a high level. A customer searches for a product, adds it to their cart, checks out, and can view/modify their order.&lt;/p&gt;

&lt;p&gt;Of course, underlying systems that power this simple-sounding user flow are large and significantly complex inventory systems, supply chain systems, integrations with retail POS systems, and integrations with marketplaces like eBay. Thankfully, the testing we can do at the database, web service, and UI application layers cover the user-facing functionality that customers interact with daily.&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Enabling Agile Software Testing With Automation</title>
      <dc:creator>Lauren Christianson</dc:creator>
      <pubDate>Tue, 06 Dec 2022 15:20:46 +0000</pubDate>
      <link>https://dev.to/testmuai/enabling-agile-software-testing-with-automation-33b1</link>
      <guid>https://dev.to/testmuai/enabling-agile-software-testing-with-automation-33b1</guid>
      <description>&lt;p&gt;Over the years, I’ve worked with teams at varying levels of Agile maturity. Some, completely new to Agile, others ‘doing’ Agile (talking the talk), and very few being Agile (walking the walk). Regardless of a team’s Agile maturity, there is almost always one commonality: a struggle for QA to keep up with the lightning-fast pace of &lt;a href="https://www.lambdatest.com/blog/automation-testing-important-agile-development/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Agile software development&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;When teams are learning how to operate with agility, they see how fast things move. This is a great benefit of Agile, but it comes with some assumptions that, if ignored, can cause a team to struggle with frequently delivered iterations of their product.&lt;/p&gt;

&lt;p&gt;I consider automated testing to be an unspoken necessity for a team to truly experience the benefits of agility. A team can only go as fast as the tools, pipelines, and processes that enable it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Automated testing decreases regression time and increases confidence in each release.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you’re new to Selenium and wondering what it is then we recommend checking out our guide — &lt;a href="https://www.lambdatest.com/selenium?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;What is Selenium?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Read: Why Selenium Automation &lt;a href="https://www.lambdatest.com/blog/why-selenium-automation-testing-in-production-is-pivotal-for-your-next-release/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Testing In Production&lt;/a&gt; Is Pivotal For Your Next Release?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let’s talk about approaches that teams can take to level up their automated testing.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The realm of &lt;a href="https://www.lambdatest.com/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webapge" rel="noopener noreferrer"&gt;test automation&lt;/a&gt; tools and frameworks can feel overwhelming. Every team has different needs, so it can be a daunting task to build up an automation solution from scratch.&lt;/p&gt;

&lt;p&gt;Even teams with an established automation suite will constantly find new frameworks and &lt;a href="https://www.lambdatest.com/blog/top-automation-testing-trends-2021/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;automation trends&lt;/a&gt; to follow in the space (all-in-one automation solutions, visual UI regression tools, and Selenium alternatives — to name a few!).&lt;/p&gt;

&lt;p&gt;That said, there are generally similar approaches to leveling up a team’s automation, depending on the team’s current state.&lt;/p&gt;

&lt;p&gt;In true Agile fashion, we’ll identify some team personas that necessitate uniquely tailored solutions to becoming automation superstars.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Persona 1:&lt;/strong&gt; Team has no automated testing in place; all test activities are performed with a manual approach.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Persona 2:&lt;/strong&gt; Team has automated testing in place, but the automation is not benefiting the team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Persona 3:&lt;/strong&gt; Team has automated testing in place; the automation provides value and acts as an enabler for the team. This looks different for everyone!&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, let’s deep dive into each of these types of teams and identify how to help them succeed in their automation journey:&lt;/p&gt;

&lt;h2&gt;
  
  
  Persona 1: How To Get Started If Your Team Has No Automation In Place
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Identify the skill set of the team:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;QA teams have different make-ups. Some are 100% manual testers. Some are 100% developers, maybe with zero testing experience. Others have a combination of manual and technical testing experience.&lt;/p&gt;

&lt;p&gt;When working with an existing team, it’s important to know your team’s background and skill sets so that their strengths &amp;amp; skills can be leveraged in the best possible manner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AMqF1igBK9N42yC2U.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2AMqF1igBK9N42yC2U.jpg" width="800" height="390"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If an existing team’s QA members are solely manual testers with no technical background, they’ll need a different introduction to automation than developers or SDETs (Software Development Engineers In Test).&lt;/p&gt;

&lt;p&gt;They might be interested in coding and should therefore be given proper programming training before delving into automation. This will ensure their long-term success.&lt;/p&gt;

&lt;p&gt;On the other hand, a manual tester may not want to code but can still contribute to automated testing activities. In this case, the team may want to consider an &lt;a href="https://www.lambdatest.com/blog/behaviour-driven-development-by-selenium-testing-with-gherkin/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;automation implementation using BDD&lt;/a&gt; (Behavior Driven Development) frameworks like Cucumber so that non-technical team members can chip in and help write test scenarios.&lt;/p&gt;

&lt;p&gt;Run Selenium, Cypress, and Appium tests on LambdaTest to scale with the demand of your website and web apps.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/jrgx_3gfWVA"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check this out: Getting Started With &lt;a href="https://www.lambdatest.com/blog/playwright-framework/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Playwright automation&lt;/a&gt; Framework&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automation should be used to boost efficiency in manual testing:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Examples include using Postman’s test scripts while manually testing APIs, scalable cross browser testing tools like LambdaTest, creating JavaScript bookmarklets for easier form-filling, or custom bashing scripts to generate test data. Automation engineers and developers can utilize automation in creative ways to speed up manual testing!&lt;/p&gt;

&lt;p&gt;For a team with a mix of manual and technical testers, I highly recommend using the philosophy of paired programming and partnering up with people on the team that have complementary skills.&lt;/p&gt;

&lt;p&gt;If you have someone with a lot of domain knowledge who doesn’t have a coding background and another person with strong technical skills but less subject matter expertise, these two could be an extremely powerful pair!&lt;/p&gt;

&lt;p&gt;In any case, the team must take inventory of their skills when laying the foundation for their automation solution. Once this is established, there are other factors to consider before jumping into automation.&lt;/p&gt;

&lt;p&gt;There are too many to list (and might vary from team to team or project to project), but here are a few common ones:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tech stack:&lt;/strong&gt; If the technical team members solely program in JavaScript, you likely wouldn’t choose a Python-specific automation framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Technical skill sets:&lt;/strong&gt; If non-technical team members want to contribute to automated testing, consider a Behavior-Driven Development (BDD) automation solution.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Application functionality:&lt;/strong&gt; Mobile app? Web app? API? There are frameworks for everything!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understand what you’re automating:&lt;/strong&gt; Lay out test scenarios, identify critical functionality of the application, user flows — this could help you choose the best-suited test automation tools. For example, if your app has graphs, charts, complex diagrams, etc., that are critical pieces of functionality, you might consider a solution that supports visual UI testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The key here is to dedicate time to planning the solution before jumping in. Involving developers and technical leads is beneficial.&lt;/p&gt;

&lt;p&gt;Once the team has laid out the groundwork, you’re ready to start automating. I highly recommend becoming familiar with the &lt;a href="https://www.lambdatest.com/blog/how-agile-teams-use-test-automation-pyramid/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Test Automation Pyramid&lt;/a&gt; concept before you start. I’ll go over some anti-patterns and things not to do below.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A0hc9PyvEBPYVReqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2A0hc9PyvEBPYVReqa.png" width="800" height="154"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check this out: Getting Started With &lt;a href="https://www.lambdatest.com/blog/playwright-framework/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Playwright automated testing&lt;/a&gt; Framework&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Persona 2: Course-correcting To Get Your Automated Testing On The Right Path
&lt;/h2&gt;

&lt;p&gt;Unfortunately, it’s very common for teams to throw together an automated test solution without taking a planned approach to it from the start. As a result, testers end up with unreliable tests in an unmaintainable suite.&lt;/p&gt;

&lt;p&gt;In my own experience, I have joined teams that have two or more years invested into an automation framework, only to discover it is not scalable for their needs and scrap the whole thing for a new one.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2Ac__oRA_s-br9XpWa.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2000%2F0%2Ac__oRA_s-br9XpWa.gif" width="900" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While I am a proponent of switching out tool sets for new, shiny ones that enable you to work more efficiently, no one wants to discard years of hard work.&lt;/p&gt;

&lt;p&gt;If any of these pain points sound familiar, it might be time to look at how you can improve your automation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Tests take a long time to execute (several hours or longer).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your regression tests are being run on testers’ local machines.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tests fail a lot for unknown reasons.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;There is no easy way to run a subset of the full test suite.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testers are spending hours upon hours updating tests that break when there are UI changes in the application.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Your regression suite has hundreds of UI, end-to-end, and user story-based tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Test runs are unreliable and have false positives/false failures.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I’ve experienced each of these at least once! While all of these can cause a lot of pain for a tester, there are solutions. For Agile teams, everything moves fast. The most common problem that I see teams face, however, is time. How do you balance automation work with all the other day-to-day activities going on?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Prove the potential of automation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If QA is having a hard time getting Product Owners/BAs/leadership on board allocating time to automate, show them a proof-of-concept or demo of how much time can be saved with automating.&lt;/p&gt;

&lt;p&gt;Automated testing creates more time for QAs to test how only humans can provide faster feedback to developers and save time during regression. All of this equates to delivering features faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ensure there is visibility into the automated tests:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The entire development team (QA, Devs, Product Owners) should feel some level of ownership in the quality of the product — including automated testing.&lt;/p&gt;

&lt;p&gt;I have found it extremely valuable to get the Product Owner’s inputs on critical user scenarios, which I then turned into automated &lt;a href="https://www.lambdatest.com/learning-hub/smoke-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;smoke testing&lt;/a&gt; run against every pull request, giving the whole team higher confidence that the most important pieces of functionality were always working.&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1408124555646803977-78" src="https://platform.twitter.com/embed/Tweet.html?id=1408124555646803977"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1408124555646803977-78');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1408124555646803977&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;p&gt;When the team knows what tests are running, they’ll chime in during new feature development and make sure there’s time to automate new tests! Automation and testing effort should also be included in the ‘definition of done’ for a story. Another great way to keep an eye on the automation is to demo framework enhancements or test runs in Sprint Reviews!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make it useful:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I have seen teams that dedicate hundreds of hours to a huge automation suite, only to run it once a month. Automation is a time investment, and it only pays off if it’s utilized fruitfully.&lt;/p&gt;

&lt;p&gt;Ideally, you have automated tests that run against every pull request — even if that is a small subset of smoke tests. Using &lt;a href="https://www.lambdatest.com/blog/best-ci-cd-tools/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;CI/CD tools&lt;/a&gt; enables you to schedule nightly regression runs, trigger executions based on code merge, and more.&lt;/p&gt;

&lt;h2&gt;
  
  
  Persona 3: Your Automation Is Awesome — How You Can Make It Even Better
&lt;/h2&gt;

&lt;p&gt;Even the most impressive test suites can always be improved! On teams with a mature automation setup, here are a few things I like to tackle with them:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Cleaning up spec files and focusing on improving the maintainability of the entire automation framework.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Identifying any areas for flakiness and making them more reliable — every test suite has some weak spots!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Looking for opportunities to move tests closer to the application code by utilizing API calls or database interactions to take steps out of brittle UI tests.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;If the QA team comprises dedicated automation engineers and dedicated manual testers, blend these roles so that there are no bottlenecks in the testing process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.lambdatest.com/blog/what-is-parallel-testing-and-why-to-adopt-it/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Running tests in parallel&lt;/a&gt; (be cautious with shared test environments, test accounts, or test data) using a tool like &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=webapge" rel="noopener noreferrer"&gt;LambdaTest&lt;/a&gt; to speed up regression execution exponentially.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2048%2F0%2Av2Cxw7DehA0gj5wX.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcdn-images-1.medium.com%2Fmax%2F2048%2F0%2Av2Cxw7DehA0gj5wX.gif" width="1024" height="311"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Continuously dedicate time to automation:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Do not let automation become ‘set and forget.’ Automation can quickly become outdated and obsolete if the team is not actively maintaining it. When developing new features, look closely at how to ensure test coverage while keeping the maintainability of the test suite intact.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shift the testing left:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Run automated tests against every PR, after every merge request, and against every release build. The earlier in the development cycle that an issue is caught, the less costly it is to fix.&lt;/p&gt;

&lt;p&gt;Read &lt;a href="https://www.lambdatest.com/blog/how-shift-left-testing-can-help-your-product-quality/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;How “Shift-Left” Testing Can Help Your Product Quality?&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Always explore new things:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Have you heard of Contract testing? What about Visual UI testing? Automation tools and frameworks are evolving and bringing us innovative ways to speed up testing as we’ve never seen before. It’s up to us, as engineers, to use them to solve problems for the betterment of our teams.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check this out: Getting Started With &lt;a href="https://www.lambdatest.com/blog/playwright-framework/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=dec06_sd&amp;amp;utm_term=sd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Playwright browser testing&lt;/a&gt; Framework&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping it Up!
&lt;/h2&gt;

&lt;p&gt;On Agile teams, it is crucial to have some form of automated testing in place. Without it, testing inevitably becomes a bottleneck to delivering features faster. Manual testing will always have its place in ensuring that software functions well for humans. No tool or software will ever perfectly replace or replicate the human eye and the critical thinking that is such a valuable component of testers’ mentalities. I challenge you to boundary test the current limits of your testing and take your software’s quality assurance to the next level. Your team will thank you for it!&lt;/p&gt;

</description>
      <category>testing</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
