<?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: Spkesari</title>
    <description>The latest articles on DEV Community by Spkesari (@spkesari).</description>
    <link>https://dev.to/spkesari</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%2F1074667%2Fe8516a62-a1ef-412a-aee2-521c562d51f0.png</url>
      <title>DEV Community: Spkesari</title>
      <link>https://dev.to/spkesari</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/spkesari"/>
    <language>en</language>
    <item>
      <title>Webinar: Beyond Convenience: Regression Testing in its Real Avatar [Voices Of Community]</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Wed, 31 Jan 2024 08:53:50 +0000</pubDate>
      <link>https://dev.to/spkesari/webinar-beyond-convenience-regression-testing-in-its-real-avatar-voices-of-community-1fmg</link>
      <guid>https://dev.to/spkesari/webinar-beyond-convenience-regression-testing-in-its-real-avatar-voices-of-community-1fmg</guid>
      <description>&lt;p&gt;In the dynamic and ever-evolving landscape of software development, testing is pivotal in assuring the quality and dependability of applications. Developers and testers face numerous challenges to deliver flawless and efficient code.&lt;/p&gt;

&lt;p&gt;Among these challenges, regression testing is one of the most significant yet often underestimated. This crucial aspect of testing, typically associated with repeating existing tests in response to changes, is far more nuanced than commonly perceived.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;Run your &lt;a href="https://www.lambdatest.com/selenium-automation?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=webpage"&gt;Selenium Testing&lt;/a&gt; scripts on the LambdaTest cloud grid. Test on 3000+ desktop &amp;amp; mobile environments. Try it for free! *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Despite its complexity and critical importance, regression testing needs to be more concise in industry discussions and practices. It’s commonly seen as an innate skill that every tester claims proficiency in from the early stages of their careers. However, the true essence of regression testing extends beyond the capabilities of an individual tester or even a dedicated testing team.&lt;/p&gt;

&lt;p&gt;Our esteemed guest, &lt;a href="https://www.linkedin.com/in/rahul-verma-india/"&gt;Rahul Verma&lt;/a&gt;, a Consulting Tester and Coach from Trendig GmbH, has teamed up with &lt;a href="https://www.linkedin.com/in/manoj9788/"&gt;Manoj Kumar&lt;/a&gt;, VP — Developer Relations &amp;amp; OSPO, LambdaTest, to delve into what regression testing genuinely entails and uncover its multifaceted nature. We explore the intricate relationship between changes in software and their impact on quality dimensions, introducing the ‘3 Lake Theory of Regression’ to illustrate this concept. This session also challenges the conventional approach of blind repetition in regression testing, advocating for a more profound and collaborative effort.&lt;/p&gt;

&lt;p&gt;This article aims to demystify regression testing, presenting a clear and comprehensive understanding of its complexities. Whether you are new to the field or an experienced tester, this presentation will enrich your knowledge and approach to regression testing, providing valuable insights and guiding principles for effective practice.&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/zzDwnww--oI"&gt;
&lt;/iframe&gt;
&amp;gt;  &lt;/p&gt;

&lt;p&gt;*&lt;em&gt;Run your &lt;a href="https://www.lambdatest.com/selenium-automation?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=webpage"&gt;Selenium Automation&lt;/a&gt; Testing scripts on the LambdaTest cloud grid. Test on 3000+ desktop &amp;amp; mobile environments. Try it for free! *&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Nuances of Regression Testing
&lt;/h2&gt;

&lt;p&gt;Rahul starts the session with a thought-provoking question to the audience:&lt;br&gt;
&lt;em&gt;“Regression testing. When you hear this term, you may instinctively deem it a basic tenet of the software testing realm. But isn’t it curious how we tend to oversimplify things when observed from a distance?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Rahul further explains that viewing a painting from afar might make you believe it’s a simple task, requiring only a few brush strokes. Yet, when you approach it closely, you begin to discern the intricate details, precision, and effort of every masterpiece.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U4A1vpPb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2A0-U1h3O8ivxy6INz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U4A1vpPb--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2A0-U1h3O8ivxy6INz.png" alt="" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;Run your &lt;a href="https://www.lambdatest.com/selenium-automation?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=webpage"&gt;Selenium online&lt;/a&gt; Automation Testing scripts on the LambdaTest cloud grid. Test on 3000+ desktop &amp;amp; mobile environments. Try it for free! *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Upon diving into regression testing, you soon realize that what seemed like a quick task is anything but. There’s an art to it; like any art, it requires attention to detail, methodical precision, and an understanding of the broader picture. So, where are we erring? What crucial aspects of regression testing are we overlooking in the name of convenience or simplicity?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reality of Basics
&lt;/h2&gt;

&lt;p&gt;Rahul addressed a concerning industry trend that tends to undermine regression testing. For instance, phrases like “&lt;em&gt;Regression testing doesn’t find bugs&lt;/em&gt;,” or the inappropriate application of the ‘Pesticide Paradox’ principle to discredit regression testing have become alarmingly common. This principle, well-articulated in Boris Beizer’s book, is now being taken out of context, leading to skewed perceptions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--68JrUaUh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AQxgUexn92TRBHNvo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--68JrUaUh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AQxgUexn92TRBHNvo.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.lambdatest.com/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=webpage"&gt;Test automation&lt;/a&gt; is also a major talking point. It’s an assumption that if tests are automated, they are considered the essence of the regression testing cycle. But, as many seasoned testers know, automated tests can’t capture the intricacies and edge cases inherent in exploratory testing.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;Run your &lt;a href="https://www.lambdatest.com/playwright?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=webpage"&gt;Playwright automation testing&lt;/a&gt; test scripts instantly on 50+ browser and OS combinations using the LambdaTest cloud. Read more. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Further, the positioning of &lt;a href="https://www.lambdatest.com/learning-hub/exploratory-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;exploratory testing&lt;/a&gt; as a superior alternative and the diminishing value of regression testing over time have added to the confusion. Often, there’s a mistaken belief that regression testing is merely the repetition of known information or written test cases.&lt;/p&gt;

&lt;p&gt;The bias toward UI or functionality is a significant issue in the current testing narrative. In many circles, regression testing is seen merely as an extension of &lt;a href="https://www.lambdatest.com/learning-hub/functional-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;functional testing&lt;/a&gt; or, at most, some elements of UX testing. This reductionist view needs to consider the multi-faceted nature of regression testing.&lt;/p&gt;

&lt;p&gt;In its true essence, regression testing is a layered and nuanced domain. It’s not merely about repeating tests or checking functionality. It’s about understanding the system’s behavior, identifying potential risk areas, and ensuring that new changes have kept existing functionality intact. As we continue to navigate the evolving landscape of &lt;a href="https://www.lambdatest.com/learning-hub/software-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;software testing&lt;/a&gt;, we must revisit our understanding of “basic” concepts and appreciate their depth and importance.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misconceptions about Regression Testing
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;Debugging websites for Safari before pushing them live is crucial. In this article, learn how to debug websites using Safari Developer Tools and explore the powerful features of &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=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=blog"&gt;dev tools in Safari&lt;/a&gt;. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Fundamental Confusion
&lt;/h2&gt;

&lt;p&gt;The terms “regression testing” and “regression” are often used interchangeably. This is more than just a gap in foundational understanding; it represents a complete absence of it. Misusing these terms reflects a profound misunderstanding of testing fundamentals.&lt;/p&gt;

&lt;h2&gt;
  
  
  Oversimplification &amp;amp; Blind Repetition
&lt;/h2&gt;

&lt;p&gt;Regression testing is frequently misconstrued as mere repetition without more profound thought or analysis. This mistaken belief leads to the idea that by simply investing in platforms, tools, and technologies, one can solve all issues related to regression testing. Whether technologically aided or done manually, the essence of regression testing isn’t mere repetition.&lt;/p&gt;

&lt;h2&gt;
  
  
  Neglect of Innovation
&lt;/h2&gt;

&lt;p&gt;A prevalent misconception is that regression testing solely involves repeating existing tests. The creative aspect, which includes crafting new tests based on evolving requirements, often needs to be noticed or discussed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bias Towards Functionality and UI
&lt;/h2&gt;

&lt;p&gt;A reductive view has taken hold where regression testing is often equated only with functional or UI testing. This narrow perspective does a disservice to the comprehensive nature of regression testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misrepresentation
&lt;/h2&gt;

&lt;p&gt;By presenting regression testing as a weak straw man, it’s made to appear inferior, enabling other methods or tools to be marketed as superior alternatives. This tactic oversimplifies regression testing, reducing it to a surface-level activity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Artificial Distinctions
&lt;/h2&gt;

&lt;p&gt;Another prevalent fallacy is the separation of regression testing from exploratory testing as if they share no common ground. Some even go to lengths to position exploratory testing as a superior alternative, further muddying the waters.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aAf9H3Ls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AxuvPoRO6eo_EqBXL.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aAf9H3Ls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AxuvPoRO6eo_EqBXL.png" alt="" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.lambdatest.com/remote-test-lab?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=webpage"&gt;**Remote Test device &lt;/a&gt;Lab enables efficient software testing on various devices remotely. Click to explore and enhance your development process now! **&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Point of Direct Contact and Ripple Effect
&lt;/h2&gt;

&lt;p&gt;Rahul drew a parallel between an object (like a stone) hitting the water, and as it plunges, there’s an evident point of impact, causing ripples that extend outward. The central impact is apparent, but what about the surrounding ripples? How far do they reach? And in a philosophical sense, how much of the water is genuinely affected by the stone’s descent?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2WSOujvU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2Af8nkqCiIGMybw8yU.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2WSOujvU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2Af8nkqCiIGMybw8yU.png" alt="" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Theoretically, every drop of water feels the stone’s influence. However, real-world constraints make us ask the practical question: which ripples matter the most?&lt;/p&gt;

&lt;p&gt;Now, think of these ripples in the context of regression testing. Here, the stone’s impact represents a change or update, and the ripples symbolize the areas of potential influence or disruption. Just as we can’t feasibly track every ripple in a pond, we’re bound by constraints when it comes to regression testing. There’s a cost to consider, time limitations, the availability of skilled personnel, and the right tools.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;A comprehensive end-to-end testing tutorial that covers what &lt;a href="https://www.lambdatest.com/learning-hub/end-to-end-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;E2E testing&lt;/a&gt; is, its importance, and how to perform it. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The Constraints
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cost and Time:&lt;/strong&gt; We often need more resources and schedules that restrict the extent of our regression testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Skills and Knowledge:&lt;/strong&gt; Do our teams genuinely understand the ‘ripples’ of the software world? Do they know which ones to prioritize and how to measure them?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tools:&lt;/strong&gt; Having the correct tools is essential. Even with the best intentions, addressing certain ripples might be possible with the appropriate tools.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Processes:&lt;/strong&gt; Even if you have the tools and personnel, the desired results won’t be achieved if the process isn’t aligned.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When any of these elements are missing or inadequate, the approach to regression testing often becomes a fallback to convenience. People begin settling, labeling their makeshift methods “regression testing.” Unfortunately, this diluted understanding and application is widespread in many organizations.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Bias of UI Lens
&lt;/h2&gt;

&lt;p&gt;In software testing, there lies a subtle bias. This bias, often unrecognized, centers around viewing the test objects through a singular UI lens. This perspective, while pervasive, can limit our understanding and effectiveness in testing.&lt;/p&gt;

&lt;p&gt;Many view the test objects — whether APIs, services, classes, or modules — as monolithic entities. This “black box” viewpoint narrows our interaction to just the interface. We communicate, observe, and then deduce. But is this lens the most effective?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bilWtMGI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2A4UB6eOkN8I9jRquA.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bilWtMGI--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2A4UB6eOkN8I9jRquA.png" alt="" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While it’s easy to box a test object into the “black box” category, the reality is multifaceted. When viewed closely, even the smallest code is a composite of various components. Modules have classes; classes have methods, which are intertwined with dependencies.&lt;/p&gt;

&lt;p&gt;A piece of software doesn’t operate in a vacuum. It’s installed on an operating system, perhaps communicates over a network, and might rely on third-party services. The software might also need to coexist or interact with other third-party applications. These elements aren’t mere add-ons; they’re integral to the functioning of the software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mI0TkGYK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2A2vxNR6h0sAy7xr9f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mI0TkGYK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2A2vxNR6h0sAy7xr9f.png" alt="" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Given this intricate web of components and external dependencies, regression testing becomes even more crucial. It’s not just about assessing the changes in the software but understanding how these shifts might influence or be influenced by the larger ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Sg7wkgrh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AgE698AMcvbjfjmVq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Sg7wkgrh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AgE698AMcvbjfjmVq.png" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;In this System testing tutorial, learn why System testing is important and all the intricacies of the &lt;a href="https://www.lambdatest.com/learning-hub/system-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;System testing&lt;/a&gt; process. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Back to Basics: What is a Regression?
&lt;/h2&gt;

&lt;p&gt;Rahul further explains regression can be understood as a bug that is either transient or non-transient. This means it could be a permanent bug or a temporary one. It might resolve on its own, or it could persist until specifically addressed. While not overly technical or filled with fancy wording, this definition captures the essence of regression in the context of regression testing more effectively than most explanations out there.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3nuwCYFu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2ABsuVhb_RlPbK54XT.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3nuwCYFu--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2ABsuVhb_RlPbK54XT.png" alt="" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Nature of Regression Bugs
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Unmasked Problems:&lt;/strong&gt; A problem might already exist, but it remains unnoticed due to how it was previously used or the absence of further changes. Due to specific changes, this problem can become more prominent and get unmasked.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;New Problems at the Point of Change:&lt;/strong&gt; It’s a common misconception that the regression will only occur elsewhere if a change is made at point A. However, it’s also possible to have regressions at the same point of change.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is Regression Testing?
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.lambdatest.com/learning-hub/regression-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;Regression testing&lt;/a&gt; is essential in software testing, focusing on detecting regressions — bugs caused by changes in the software. It’s crucial regardless of the tools, technology, or organization size. This testing ensures that new modifications don’t negatively impact existing functions by identifying bugs resulting from any change anywhere in the software.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BlUZOeDJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2Ass7oekFyvvlHJd-E.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BlUZOeDJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2Ass7oekFyvvlHJd-E.png" alt="" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;In this &lt;a href="https://www.lambdatest.com/learning-hub/ad-hoc-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;Ad hoc testing&lt;/a&gt; tutorial, let’s deep dive into what Ad hoc testing is, its advantages, disadvantages, types, characteristics, and their best practices. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Beyond Functional Regressions
&lt;/h3&gt;

&lt;p&gt;The common bias towards functional testing in regression testing limits its true potential. There is no hard and fast rule that functional changes, such as code modifications, configuration alterations, or new features, will only lead to functional regressions. A functional change could also result in performance, security, or interoperability regressions. This means there’s a many-to-many relationship between the changes made and the potential quality dimensions they can affect.&lt;/p&gt;

&lt;p&gt;It’s important to ask yourself whether your regression testing includes performance and security tests. Often, there is an incorrect assumption that existing tests will cover all potential regressions. However, new changes usually require the creation of new tests, as repeating the same tests can be a flawed approach driven more by convenience than thoroughness.&lt;/p&gt;

&lt;p&gt;In the agile world, there’s a tendency to prioritize speed, but to incorporate true flexibility, it’s sometimes necessary to slow down. This allows for proper adaptation to changes before accelerating again. Unfortunately, the desire to be fast often compromises the depth and thoroughness of testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  3 Lake Model of Regression
&lt;/h2&gt;

&lt;p&gt;Regression testing in software development is a complex and multifaceted process. It encompasses not just the identification of bugs due to technical changes but also considers the broader impacts of ecosystem changes and business decisions. Understanding these diverse influences is crucial for effective regression testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pfAhbLEz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AkNhYVoIP_LS1MPLG.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pfAhbLEz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2AkNhYVoIP_LS1MPLG.png" alt="" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;In this Data driven testing tutorial, let us deep dive into what data driven testing is, its pros &amp;amp; cons, its types, &lt;a href="https://www.lambdatest.com/learning-hub/data-driven-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;data driven testing&lt;/a&gt; in an agile environment, benefits, and their best practices. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Technical Changes&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Technical changes include modifications in code, configuration, or the addition of new features. While these changes are often expected to lead to functional regressions, they can also cause unexpected performance, security, and interoperability issues. This aspect highlights the intricate relationship between various changes and their potential impacts across quality dimensions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Business Decisions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Business decisions, such as a new marketing campaign, can have unforeseen impacts on software performance. For instance, a significant discount campaign might increase an eCommerce website’s traffic, leading to performance regressions. These scenarios demonstrate how business-driven changes, although not technical, can necessitate different approaches to regression testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ecosystem Influences&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ecosystem in which the software operates plays a significant role in regression testing. Legal changes, compliance requirements, or advancements in competing technologies can impact the software’s relevance and functionality. While not directly related to the software’s code, these external changes can lead to regression, making the product less effective or obsolete.&lt;/p&gt;

&lt;h2&gt;
  
  
  Practical Regression Testing: Go Beyond Convenience
&lt;/h2&gt;

&lt;p&gt;Regression testing is acknowledged as a highly complex task in software development. It requires much more than mere repetition of existing tests; it demands the creation of new testing approaches and strategies. The challenge lies in balancing the need for exhaustive coverage with the practical limitations of time and resources.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gfodq9pi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2Ay4iDlDZMI2xjAY0g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gfodq9pi--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn-images-1.medium.com/max/3200/0%2Ay4iDlDZMI2xjAY0g.png" alt="" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Complexity of Regression Testing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Beyond Blind Repetition:&lt;/strong&gt; Emphasizes the need to create new testing methods rather than just repeat existing ones.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Accepting the Challenge:&lt;/strong&gt; Acknowledges the complexity and essential nature of regression testing in software development.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;*&lt;em&gt;Puppeteer is a powerful Node library for automating Chrome, ideal for testing and web scraping. Explore more about &lt;a href="https://www.lambdatest.com/puppeteer?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=learning_hub"&gt;puppeteer testing&lt;/a&gt; in this extensive guide. *&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Coverage and Practical Limitations
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Paradox of Coverage: As test coverage increases, the feasibility of running all tests decreases, leading to a need for selective testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Educated System vs. Chaos: Highlights the importance of making choices based on a well-informed system to avoid disorder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Role of Testers and Team Dynamics
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Testers as Moderators:&lt;/strong&gt; Testers are crucial in steering the regression testing process, acting as facilitators rather than sole executors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Collaboration with Cross-Functional Teams:&lt;/strong&gt; Stresses the importance of involving a team with representatives from various departments for comprehensive testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Risk Relationship Mapping:&lt;/strong&gt; The necessity of establishing a clear methodology for capturing risk relationships between different software features.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Effective Utilization of Advanced Technologies
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Beyond Surface-Level Solutions:&lt;/strong&gt; Concerns about using advanced technologies like AI for superficial problems rather than complex testing challenges.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Potential of AI in Regression Testing:&lt;/strong&gt; Advocates for the application of AI to build systems that can diagnose interdependencies and construct risk models.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reframing Automation Goals:&lt;/strong&gt; Suggests a shift from using automation for speed and cost reduction to enhancing test coverage and depth.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The session ended with an interactive Q&amp;amp;A session.&lt;/p&gt;

&lt;h2&gt;
  
  
  QnA Session
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: How can we anticipate and manage regression risks when delivering partial features to production in a mini waterfall SDLC model?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; In managing regression risks in a mini waterfall SDLC with partial feature delivery, it’s crucial to prioritize product quality over strict adherence to process models. Rather than rushing deployments, slowing down can enable more effective testing and quality assurance. This approach may not align with rapid deployment cycles, but it’s more beneficial for delivering a quality product. The focus should be on comprehensive testing and quality, not just fulfilling process requirements like frequent deployments or daily stand-ups. Ultimately, advocating for a quality-first approach, regardless of the specific SDLC model, is key to addressing regression risks effectively.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: How can regression testing be completed on time amidst frequent config changes and performance alterations?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; Addressing the challenge of timely regression testing amidst frequent changes requires a shift in perspective. As highlighted in a recent presentation, approaching this issue is not about accumulating numerous tests but understanding the essence of regression testing. Factors like cost, time, and technology should maintain this understanding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Steps:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Understanding Over Constraints:&lt;/strong&gt; First, understand what regression testing entails without being limited by constraints. Knowledge about regression testing is fundamental, and merely providing resources like time and money won’t automatically address knowledge gaps.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Building a Risk Model:&lt;/strong&gt; Take the time to build a risk model. This involves analyzing many-to-many relationships between quality dimensions and changes. Use historical data to inform this model, and consider pausing current activities to focus on this crucial task.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Importance of a Cross-Functional Team:&lt;/strong&gt; Forming a cross-functional team is critical. This team should include members from different departments, reflecting Agile’s foundational principle of cross-functionality. Such a team is essential for regression testing, performance, and security engineering.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Knowledge and Decision Making:&lt;/strong&gt; Knowing when and what to test is as important as conducting the tests. Discussing costs and resources becomes irrelevant if you need to be made aware of the need for specific tests like performance or security testing.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Start Small and Build:&lt;/strong&gt; Begin with a small, dedicated team consisting of a tester, developer, architect, and occasionally a manager. This team can slowly expand its scope and influence. The change may be slow, but it will likely be effective and sustainable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Methodology and Adaptability:&lt;/strong&gt; The approach to regression testing can vary. You might pause other activities to focus on testing or integrate testing into ongoing work. The key is to start making changes and be serious about the importance of comprehensive regression testing.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Q: How can we balance risk-based testing with thorough regression testing in a fast-paced development environment, avoiding convenience-based testing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A:&lt;/strong&gt; Risk-based testing is integral to effective software testing, not just as a separate methodology but as a core aspect of all testing practices. Every tester should inherently consider risks in their approach.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Risk-Based Testing as a Core Concept:&lt;/strong&gt; Contrary to risk-based testing as a specialized method, it should be viewed as a fundamental part of all testing activities. All testing, in essence, should be risk-based. There’s no such thing as non-risk-based testing because assessing risks is integral to the testing process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Application in Testing Techniques:&lt;/strong&gt; For example, in equivalence class partitioning, a standard testing technique, considering risk changes the approach. In functional testing, this might mean focusing on specific partitions. In security testing it expands to a detailed examination of special characters and their sequences.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adapting to Time Constraints:&lt;/strong&gt; The ability to adjust testing strategies based on time constraints is crucial. Testers must prioritize and cover the most significant risks within the given timeframe. This approach emphasizes the importance of understanding what value can be delivered in different time frames — from days to weeks.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Balancing Skills and Time Resources:&lt;/strong&gt; When given more time, like six months, the question shifts from time management to skills and knowledge. Testers must ask themselves if they can create unique and effective tests over an extended period. It’s about more than just having time but also having the expertise to utilize it effectively.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Continuous Knowledge Enhancement:&lt;/strong&gt; Testers should continually enhance their knowledge and skills. This involves revisiting and deepening understanding of fundamental testing concepts to identify gaps and improve testing strategies.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Finding the Right Balance:&lt;/strong&gt; Good testers find a balance in their approach, adapting their testing strategies to knowledge limitations and practical constraints. As testers grow into management roles, they can extend this balanced approach to their teams, helping them understand and navigate organizational constraints while fostering a culture of quality and thoroughness.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hope You Enjoyed The Webinar!
&lt;/h2&gt;

&lt;p&gt;We hope you liked the webinar. In case you missed it, please find the webinar recording above. Share this webinar with anyone who wants to learn more about clean coding practices. You can also subscribe to our newsletter &lt;a href="https://www.lambdatest.com/newsletter/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jan_31&amp;amp;utm_term=vs&amp;amp;utm_content=newsletter"&gt;Coding Jag&lt;/a&gt;, to stay on top of everything testing and more! Stay tuned for more exciting LambdaTest Webinars.&lt;/p&gt;

&lt;p&gt;That’s all for now. Happy testing!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Webinar: My Favorite Cypress Plugins [Voices Of Community]</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Thu, 03 Aug 2023 07:50:36 +0000</pubDate>
      <link>https://dev.to/testmuai/webinar-my-favorite-cypress-plugins-voices-of-community-2261</link>
      <guid>https://dev.to/testmuai/webinar-my-favorite-cypress-plugins-voices-of-community-2261</guid>
      <description>&lt;p&gt;In the fast-paced world of software development, testing plays a crucial role in ensuring the quality and reliability of applications. As developers strive to deliver high-performing and bug-free code, they encounter various challenges that can impede their progress. One such challenge is efficiently managing tasks like accessing databases, handling emails, setting up data, and validating page accessibility.&lt;/p&gt;

&lt;p&gt;Fortunately, modern testing frameworks like &lt;a href="https://www.lambdatest.com/learning-hub/cypress-tutorial?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug_03kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Cypress&lt;/a&gt; offer powerful solutions to overcome these hurdles. Among the arsenal of Cypress features, plugins stand out as a game-changer, empowering developers to extend Cypress’s functionality and tailor it to their specific testing needs. Cypress plugins are more than just tools; they are potent allies that equip developers to automate &lt;a href="https://www.lambdatest.com/learning-hub/end-to-end-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug_03kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;end-to-end testing&lt;/a&gt; in ways previously uncharted. These plugins, used with the robust Cypress framework, help navigate the complex terrain of modern &lt;a href="https://www.lambdatest.com/learning-hub/software-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug_03kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;software testing&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our esteemed guest &lt;a href="https://www.linkedin.com/in/bahmutov/" rel="noopener noreferrer"&gt;Dr. Gleb Bahmutov&lt;/a&gt;, Senior Director Of Engineering, Mercari &amp;amp; Ex-VP of Engineering, Cypress.io has teamed up with &lt;a href="https://www.linkedin.com/in/manoj9788/" rel="noopener noreferrer"&gt;Manoj Kumar&lt;/a&gt;, VP — Developer Relations &amp;amp; OSPO, LambdaTest, to share his in-depth experiences and insights on leveraging Cypress plugins, offering a hands-on and all-encompassing guide to this ground-breaking addition to the testing toolkit.&lt;/p&gt;

&lt;p&gt;From the uninitiated to the seasoned expert, this webinar promises to be a treasure trove of information, insights, and practical advice on Cypress plugins. Whether you’re looking to step up your testing game or stay updated with the latest in the industry, this webinar will delve into the world of Cypress plugins and reveal their untapped potential.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Deep dive to learn about &lt;a href="https://www.lambdatest.com/learning-hub/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;test automation&lt;/a&gt;, its uasage, types and also gain insights on how to get started with automated testing.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cypress: A Complete Testing Solution
&lt;/h2&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%2F3200%2F0%2AjmOPgehfpoXYQsYs.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%2F3200%2F0%2AjmOPgehfpoXYQsYs.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The webinar starts with Dr. Gleb introducing Cypress as a comprehensive testing solution encapsulated within a single dependency. It features a test runner that operates via the Mocha engine. While it’s equipped with its browser, it also can utilize a browser installed on your machine. Additionally, it provides unrestricted access to all the functionalities of your operating system via Node.js code in the configuration file.&lt;/p&gt;

&lt;p&gt;Cypress also includes Chai assertions, along with spying and stubbing methods provided by the Sinon library. The clock control and network mocking features of Cypress are also notable inclusions. Furthermore, it’s enriched with a range of utilities beneficial for handling data, timestamps, and promises, among other things.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Discover what &lt;a href="https://www.lambdatest.com/learning-hub/load-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;load testing&lt;/a&gt; is and why it’s critical in ensuring optimal system performance. Understand its role in identifying bottlenecks, enhancing scalability, and improving user experience.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About cypress-map plugin
&lt;/h2&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%2F3200%2F0%2AdvD3s-2yF7HY0zMP.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%2F3200%2F0%2AdvD3s-2yF7HY0zMP.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dr. Gleb explained that while using Cypress for his projects, he always installs Prettier for code formatting and a plugin called &lt;strong&gt;&lt;em&gt;cypress-map&lt;/em&gt;&lt;/strong&gt;. This feature allows Cypress to go back to the start of the command chain and retry all commands, making it more resilient to dynamic changes on the page. However, not all commands were designed to be retried, which led to some limitations.&lt;/p&gt;

&lt;p&gt;To overcome these limitations, Dr. Gleb developed the &lt;strong&gt;&lt;em&gt;cypress-map&lt;/em&gt;&lt;/strong&gt; plugin. This plugin extends the functionality of Cypress, adding commands that can be retried and making the most out of the Cypress version 12 improvements. This allows for a more robust and reliable testing experience.&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%2F3200%2F0%2AvR0HZrcv8Sg52t9L.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%2F3200%2F0%2AvR0HZrcv8Sg52t9L.png" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dr. Gleb further explains that the &lt;strong&gt;&lt;em&gt;cypress-map&lt;/em&gt;&lt;/strong&gt; plugin comes with various utility methods for printing, mapping, and reducing data. It even allows for operations like fetching all cell values from a table in one go. Moreover, it offers the option to select a specific section or region of a table based on coordinates and validate it through an easy-to-use operator.&lt;/p&gt;

&lt;p&gt;These functionalities aren’t part of the standard Cypress API, but they were developed to take full advantage of the capabilities introduced in Cypress version 12. They provide supplementary commands that aren’t included in Cypress by default.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Deep dive to learn about test automation, its uasage, types and also gain insights on how to get started with &lt;a href="https://www.lambdatest.com/learning-hub/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;automated testing&lt;/a&gt;.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How do Cypress Plugins work?
&lt;/h2&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%2F3200%2F0%2ANo6zMlBcw4muySib.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%2F3200%2F0%2ANo6zMlBcw4muySib.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dr. Gleb breaks down how plugins work in Cypress, which essentially operates as a Node.js process. This process has control over a browser where the tests are executed.&lt;/p&gt;

&lt;p&gt;The interesting part is the symbiosis of JavaScript in both the Node.js process and the browser. This allows plugins to modify the behavior of the Node.js process, for instance, how to bundle or locate specs. These plugins can also modify browser activities, potentially altering Cypress’s code.&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%2F3200%2F0%2AKEwwXUyk4zd449NY.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%2F3200%2F0%2AKEwwXUyk4zd449NY.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Imagine a scenario involving Node.js, browsers, and Cypress acting as the browser itself. In this context, there are specific plugins, like the &lt;strong&gt;&lt;em&gt;cypress-map&lt;/em&gt;&lt;/strong&gt; we previously discussed, that work directly within the browser. These plugins can manipulate the existing commands and determine their execution process.&lt;/p&gt;

&lt;p&gt;Dr. Gleb introduces &lt;strong&gt;&lt;em&gt;cypress-esbuild-preprocessor&lt;/em&gt;&lt;/strong&gt; plugin, which allows the user to switch and expedite your testing by moving from the built-in webpack preprocessor that bundles a test file and all its inner code to the cypress-es-build preprocessor.&lt;/p&gt;

&lt;p&gt;Then, there are plugins like &lt;strong&gt;&lt;em&gt;cypress-grab&lt;/em&gt;&lt;/strong&gt;, which need to function in both the Node.js process and the browser. For instance, if you’re using the grab feature, there may be times when you have to pre-filter the spec files to find only those spec files containing a particular title or tag.&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%2F3200%2F0%2A4RVGetUOkpwi98EM.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%2F3200%2F0%2A4RVGetUOkpwi98EM.png" width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The highly popular &lt;strong&gt;&lt;em&gt;cypress-real-events&lt;/em&gt;&lt;/strong&gt; plugin overcomes Cypress’s limitations in simulating certain browser events, like hover. It utilizes the Chrome debugger protocol to execute these actions, enhancing Cypress’s capabilities and demonstrating JavaScript’s adaptability in testing scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Learn what is code review &amp;amp; its importance in software development. Explore the best &lt;a href="https://www.lambdatest.com/learning-hub/code-review?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;code review&lt;/a&gt; tools available, to enhance your project’s quality.&lt;/em&gt;&lt;/strong&gt;&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%2F3200%2F0%2AbC0Q11IA2m8NJHjI.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%2F3200%2F0%2AbC0Q11IA2m8NJHjI.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Cypress is just JavaScript
&lt;/h2&gt;

&lt;p&gt;Dr. Gleb further mentions that Cypress exemplifies JavaScript’s nature. In JavaScript, unless something is ‘bolted down’ — meaning sealed or frozen — you have the freedom to modify it. This includes changing the properties of an object or even adding new ones.&lt;/p&gt;

&lt;p&gt;This flexibility allows for new functionalities to be introduced and existing behaviors to be altered. Let’s consider some examples of plugins that utilize both of these capabilities.&lt;/p&gt;

&lt;h2&gt;
  
  
  Add New Things
&lt;/h2&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%2F3200%2F0%2A8A9z2DUqOmZV_Qzr.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%2F3200%2F0%2A8A9z2DUqOmZV_Qzr.png" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Consider a case where you have a test scrutinizing each element via a selector. You might notice redundancy, performing the same test over and over. This observation could be a catalyst for developing a new method within &lt;strong&gt;&lt;em&gt;it.each()&lt;/em&gt;&lt;/strong&gt; function. This function accepts an array of items, a test title, and a callback to construct these tests individually. Consequently, this prompts the birth of the &lt;strong&gt;&lt;em&gt;cypress-each&lt;/em&gt;&lt;/strong&gt; plugin, an ingenious tool designed to produce tests dynamically from data.&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%2F3200%2F0%2Aws0mnrINCPgW12tl.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%2F3200%2F0%2Aws0mnrINCPgW12tl.png" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another plugin, &lt;strong&gt;&lt;em&gt;cypress-watch-and-reload&lt;/em&gt;&lt;/strong&gt;, enhances the Cypress UI. While Cypress automatically reruns tests when you save your spec file, there may be times you want to run the test immediately upon changing the source of your application. The cypress-watch-and-reload plugin allows for this, even providing a button within the Cypress command log for disabling this function when not needed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Learn the essential concepts, techniques, and strategies for high-quality software through effective &lt;a href="https://www.lambdatest.com/learning-hub/software-quality-assurance?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Software Quality Assurance&lt;/a&gt;. This guide covers its importance, benefits, practical tips, and best practices.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Overwrite Existing Things
&lt;/h2&gt;

&lt;p&gt;Using JavaScript’s flexibility to alter existing functionalities is particularly useful in Cypress, where many users have expressed a desire to selectively execute tests based on fragments of titles or specific test tags.&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%2F3200%2F0%2AoSEwD1knYOhHVROc.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%2F3200%2F0%2AoSEwD1knYOhHVROc.png" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can override the global &lt;strong&gt;&lt;em&gt;‘it’&lt;/em&gt;&lt;/strong&gt; function that Cypress provides (as it includes &lt;a href="https://www.lambdatest.com/mocha-js?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug_03kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Mocha&lt;/a&gt;) and add functionality to examine the current title and compare it with the grep settings from the Cypress environment specified by the user. If the title contains the grep string, the test runs; otherwise, it’s skipped. You can pass the config value from the command line or use environment variables to run a subset of your tests. This straightforward solution evolved into the &lt;strong&gt;&lt;em&gt;cypress-grep&lt;/em&gt;&lt;/strong&gt; plugin.&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%2F3200%2F0%2AkGZq9mcfFf3dCcSs.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%2F3200%2F0%2AkGZq9mcfFf3dCcSs.png" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Dr. Geb also developed an extended version called the &lt;strong&gt;&lt;em&gt;cy-grep plugin&lt;/em&gt;&lt;/strong&gt;. This plugin overwrites the global &lt;strong&gt;&lt;em&gt;‘it’&lt;/em&gt;&lt;/strong&gt; function and provides several functionalities. You can specify tests containing specific text or tags, run all tests without a particular tag, or execute all tests multiple times that contain a particular word. You can also pre-filter tests, run untagged tests, and even execute selected tests by title or test tags directly from your browser’s DevTools console, all without altering the source code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Discover the ins and outs of &lt;a href="https://www.lambdatest.com/learning-hub/ux-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;UX testing&lt;/a&gt; with this comprehensive guide. Explore various testing methods, tools, and best practices for measuring success.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About cypress-recurse Plugin
&lt;/h2&gt;

&lt;p&gt;Dr. Gleb explains this with an example of a large paginated table, where your task is to click the ‘next page’ button until you reach the end, where the button no longer exists. It sounds like a simple human instruction, but for a bot, it needs to be translated into a form of pseudo-code. The bot’s instructions would be quite straightforward — locate the ‘next’ button, and if it’s disabled, it signifies you’re on the final page. If it’s not disabled, click on it and repeat the process.&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%2F3200%2F0%2A57MH4m8Fcj1Hl20G.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%2F3200%2F0%2A57MH4m8Fcj1Hl20G.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This plugin simplifies complex tasks, handling situations like page reloading until specific data appears, scrolling to locate data, and managing typing into a text box. The &lt;strong&gt;&lt;em&gt;cypress-recurse&lt;/em&gt;&lt;/strong&gt; plugin works on the principle of ‘perform operation X until condition Y is true.’&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;This tutorial dive deep into &lt;a href="https://www.lambdatest.com/learning-hub/web-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;web testing&lt;/a&gt; to help you understand its life cycle, elements, angles, the role of automation, and more.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About cypress-data-session plugin
&lt;/h2&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%2F3200%2F0%2A7VV43iFVnM48_-YP.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%2F3200%2F0%2A7VV43iFVnM48_-YP.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Managing data creation and loading in end-to-end testing can be time-consuming, especially if repeated user creation is required for multiple tests. The &lt;strong&gt;&lt;em&gt;cypress-data-session&lt;/em&gt;&lt;/strong&gt; plugin addresses this challenge, providing a way to cache and reuse data across tests, thereby increasing efficiency.&lt;/p&gt;

&lt;p&gt;Using this plugin, you can create a user, cache the user data, and utilize it in subsequent tests, eliminating the need for repeated sign-ups. The plugin can even check your database to see if a user exists and skip the setup if it finds a match.&lt;/p&gt;

&lt;p&gt;Another notable feature is handling user session cookies. With the &lt;strong&gt;&lt;em&gt;cypress-data-session&lt;/em&gt;&lt;/strong&gt; plugin, you can create a separate data session for logging in, grabbing the session ID cookie, storing it, and resetting it in the browser when required. It allows for an instant login process, further optimizing your tests.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Elevate Your &lt;a href="https://www.lambdatest.com/mobile-app-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Mobile App Test&lt;/a&gt; Quality: Make the most of your mobile application testing &amp;amp; Test on LambdaTest Cloud for Comprehensive Testing, Bug Detection &amp;amp; More.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The session ended with an interactive Q&amp;amp;A session.&lt;/p&gt;

&lt;h2&gt;
  
  
  Q&amp;amp;A Session
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q. Can you suggest a plugin for connecting Microsoft SQL Server with Cypress?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A. While there isn’t a solution that directly integrates Microsoft SQL Server with Cypress, remember that any code running in the Cypress config file in the setup callback executes in Node.js. Therefore, you can connect to your SQL Server (or MySQL or Postgres) the same way you would from Node.js. If you’re familiar with connecting to your Microsoft SQL Server, you can write that same code and require it from your Cypress config file to establish the connection. Regrettably, there isn’t a ready-to-use, out-of-the-box solution that works flawlessly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. Could you provide some guidance on error handling in the case where a specific element was not found?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A. It is possible to create error-handling methods for unfound elements, but this is generally not a recommended practice. It could lead to what’s known as conditional testing, where your test’s actions depend on what it encounters in the application. This can result in varying paths taken during testing based on different conditions, which can compromise the integrity and predictability of your tests. However, if you still need to proceed with such a method, there’s a workaround. You can disable the built-in existence assertion by providing an assertion, which allows Cypress not to use its default existence check because the element may not be present. You then can define your conditions depending on whether the element is present.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. What plugin would you recommend for managing window pop-ups in Cypress?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A. Regarding pop-ups, while referring to instances where a second browser window is opened. This often happens when you click a link with the ‘target=_blank’ attribute or your application’s JavaScript calls the window.open() function. Cypress has control over your JavaScript window.open() method and can override it. Moreover, it can access the link’s attributes, allowing you to change ‘target=_blank’ to ‘target=_self’. This way, instead of opening a second window, your operations continue in the existing window, maintaining your testing flow. It could be a better solution, but I’ve found it effective in most scenarios.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Automate &lt;a href="https://www.lambdatest.com/cypress-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=aug03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Cypress tests&lt;/a&gt; and perform browser automation testing with LambdaTest. Our cloud infrastructure has 3000+ desktop &amp;amp; mobile environments.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hope You Enjoyed The Webinar!
&lt;/h2&gt;

&lt;p&gt;We hope you liked the webinar. In case you missed it, please find the webinar recording above. Share this webinar with anyone who wants to learn more about clean coding practices. You can also subscribe to our newsletter Coding Jag to stay on top of everything testing and more! Stay tuned for more exciting LambdaTest Webinars.&lt;/p&gt;

&lt;p&gt;That’s all for now. Happy testing!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cypress</category>
      <category>plugin</category>
      <category>webinar</category>
    </item>
    <item>
      <title>Webinar: The ‘New Tool On The Block’ Playwright [Voices Of Community]</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Wed, 12 Jul 2023 08:35:40 +0000</pubDate>
      <link>https://dev.to/testmuai/webinar-the-new-tool-on-the-block-playwright-voices-of-community-5d3b</link>
      <guid>https://dev.to/testmuai/webinar-the-new-tool-on-the-block-playwright-voices-of-community-5d3b</guid>
      <description>&lt;p&gt;Staying ahead of the curve in the continually evolving landscape of software development and testing requires adopting and integrating solutions that push the envelope of what is possible. In an industry that thrives on innovation, the arrival of a new tool can usher in a paradigm shift, offering new perspectives and solutions to existing challenges. &lt;a href="https://www.lambdatest.com/playwright?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Playwright&lt;/a&gt;, an innovative open-source testing tool, is making waves in the testing world.&lt;/p&gt;

&lt;p&gt;Playwright is not just a tool but a powerful ally that empowers developers to automate &lt;a href="https://www.lambdatest.com/learning-hub/end-to-end-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;end-to-end testing&lt;/a&gt; in ways previously unimagined. It’s developed by Microsoft and designed to navigate the complex landscape of modern browsers, platforms, and languages.&lt;/p&gt;

&lt;p&gt;Our special guest Butch Mayhew, Head of Quality and Reliability, Tilled &amp;amp; Playwright Ambassador, has teamed up with Manoj Kumar, VP — Developer Relations &amp;amp; OSPO, LambdaTest, to share his hands-on experiences and insights into leveraging Playwright, providing a practical and comprehensive guide to this innovative tool.&lt;/p&gt;

&lt;p&gt;From the uninitiated to the seasoned expert, this webinar promises to be a treasure trove of information, insights, and practical advice on Playwright. Whether you’re looking to step up your testing game or stay updated with the latest in the industry, this webinar will delve into the world of Playwright and unveil its power.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Learn the essential concepts, techniques, and strategies for high-quality software through effective &lt;a href="https://www.lambdatest.com/learning-hub/software-quality-assurance?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Software Quality Assurance&lt;/a&gt;. This guide covers its importance, benefits, practical tips, and best practices.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Playwright?
&lt;/h2&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%2F3200%2F0%2A2U7S15rabbL7X6ng.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%2F3200%2F0%2A2U7S15rabbL7X6ng.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The webinar starts with Butch introducing Playwright as a powerful open-source tool used for end-to-end API and &lt;a href="https://www.lambdatest.com/learning-hub/ui-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;UI testing&lt;/a&gt; of modern web applications. Built by Microsoft, Playwright is a fork of the well-known &lt;a href="https://www.lambdatest.com/puppeteer?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Puppeteer&lt;/a&gt;, a Google tool, and has been progressively improved and expanded upon. This tool allows testers and developers to cover a lot of ground in their day-to-day work, offering functionalities from regression coverage to component and unit-level UI testing.&lt;/p&gt;

&lt;p&gt;Playwright has gained popularity, indicated by its 52.7k Stars ⭐ on GitHub. It’s continually updated with a monthly release cycle, bringing new browser versions and features regularly.&lt;/p&gt;

&lt;p&gt;Its compatibility spans multiple programming languages, including TypeScript, JavaScript, Python, .NET, Java, and community bindings like Ruby and Go, much like &lt;a href="https://www.lambdatest.com/selenium?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Selenium&lt;/a&gt;.&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%2F3200%2F0%2AhNS1k2b6z42EOw3F.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%2F3200%2F0%2AhNS1k2b6z42EOw3F.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Butch emphasizes the ease of use and flexibility of the Playwright. Unlike &lt;a href="https://www.lambdatest.com/learning-hub/cypress-tutorial?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Cypress&lt;/a&gt;, which needs a dedicated browser for testing, Playwright, akin to &lt;a href="https://www.lambdatest.com/learning-hub/webdriver?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Selenium WebDriver&lt;/a&gt;, allows for easy interaction with different tabs and browser contexts.&lt;/p&gt;

&lt;p&gt;Unlike Cypress, which operates through an in-built browser with integrated dev tools, Playwright and Selenium allow interactions with other tabs or iframes more efficiently. Cypress, while convenient, can pose some challenges when trying to interact with other tabs or iframes, which often necessitates finding workarounds. In contrast, Selenium and Playwright allow you to create a new browser context or tab easily with a couple of lines of code.&lt;/p&gt;

&lt;p&gt;Playwright uses the Chrome DevTools protocol to drive Chrome and similar APIs to drive other browsers. It is described as an out-of-process automation driver, operating externally rather than within the scope of a JavaScript execution.&lt;/p&gt;

&lt;p&gt;One of Playwright’s key features is its built-in test runner for TypeScript and JavaScript. Playwright has incorporated a similar concept to Cypress by bundling everything together, thus providing a more streamlined experience. It allows users to follow a certain guide with its test runner or use Playwright as an individual library.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Here’s 295+ &lt;a href="https://www.lambdatest.com/learning-hub/selenium-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Selenium Interview Questions&lt;/a&gt; with Answers that will help you boost your confidence in an Interview.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Tilled’s CI/CD Pipeline
&lt;/h2&gt;

&lt;p&gt;Butch discusses the development life cycle and automated testing in their company, Tilled, using two automation frameworks named after birds: &lt;strong&gt;Peacock and Turkey&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;For ref&lt;/strong&gt;. Tilled uses Peacock as a UI automation framework and Turkey for API checks. These names were chosen based on the fact that these birds eat bugs, symbolizing the debugging process in software development.&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%2F3200%2F0%2AQIErL_uEz6NBtnd7.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%2F3200%2F0%2AQIErL_uEz6NBtnd7.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When developers create a feature, they branch off from the development environment, perform testing on their local machine, and run unit tests. After creating a pull request, they use a service called Uffizi to set up a preview environment where they run some automation checks and provide feedback on the pull request.&lt;/p&gt;

&lt;p&gt;After merging and deploying, they use automation to detect any changes or bugs. Sometimes, they release up to six times a week, and with automation, this process would be relatively easy.&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%2F3200%2F0%2AU90mSB_j46Ba1DTt.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%2F3200%2F0%2AU90mSB_j46Ba1DTt.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Their UI uses a similar process and AWS Amplify instead of Uffizi. They conduct exploratory testing before the development starts and throughout the process, including before pull requests, during the peer review process, in the staging environment, before deployment to production, and in the production environment itself.&lt;/p&gt;

&lt;p&gt;Butch further emphasizes that automation is a tool to help them get the feedback they need to release high-quality software. However, it’s also important to include human testing as part of the process.&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%2F3998%2F0%2AM4IgrLIjtJQOTTQr.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%2F3998%2F0%2AM4IgrLIjtJQOTTQr.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finally, he mentions the role called “bird watching” — this person monitors their automation runs, looking out for any failures. These are reported in real-time on Slack, where the team can quickly assess and address the issue. Developers are also encouraged to monitor the channel, providing additional scrutiny.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get ready to ace your &lt;a href="https://www.lambdatest.com/learning-hub/Junit-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;JUnit interview questions&lt;/a&gt; in 2023 with our comprehensive list of 90 questions and answers that will help you sharpen your testing skills&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Top Playwright Features
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Reporters
&lt;/h2&gt;

&lt;p&gt;Butch mentions reporters in the context of the built-in features of the Playwright. These are tools for creating human-readable summaries or detailed logs of test results. For example, reports are configured to generate a report that presents the &lt;a href="https://www.lambdatest.com/learning-hub/test-execution?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;test execution&lt;/a&gt; results in a user-friendly HTML format. It allows teams to understand test outcomes quickly, identify potential issues, and act upon them.&lt;/p&gt;

&lt;h2&gt;
  
  
  Videos
&lt;/h2&gt;

&lt;p&gt;The video feature is handy when a test fails. The video recording can be reviewed to see what happened during the test visually. It means any unexpected behavior or issues can be identified and resolved more efficiently than by examining logs or error messages alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  Retries
&lt;/h2&gt;

&lt;p&gt;The Retries feature allows the system to rerun any failed tests automatically. It is beneficial because some test failures could be transient or sporadic, possibly due to external dependencies such as network instability or temporary unavailability of a service. With the retry mechanism, these occasional failures won’t necessarily cause the entire &lt;a href="https://www.lambdatest.com/learning-hub/test-suite?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;test suite&lt;/a&gt; to fail, and genuine, persistent issues will become more apparent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;This exhaustive list of &lt;a href="https://www.lambdatest.com/learning-hub/testng-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;TestNG interview questions&lt;/a&gt; will aid you in strengthening your position as a candidate for the TestNG interview.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Parallelization
&lt;/h2&gt;

&lt;p&gt;Parallelization is an in-built ability to execute multiple tests concurrently. It is particularly valuable when a large test suite needs to run. By running tests in parallel, the total time taken to run the entire test suite can be reduced. It leads to faster feedback and improved efficiency.&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%2F3998%2F0%2Aw4v4YkjouQy-VHV5.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%2F3998%2F0%2Aw4v4YkjouQy-VHV5.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  VS Code Extension
&lt;/h2&gt;

&lt;p&gt;This tool is an extension installed in the Visual Studio Code editor, named “&lt;strong&gt;Playwright Test for VS Code&lt;/strong&gt;.” The extension provides a testing beaker icon in the Visual Studio Code interface that shows all the written tests. It allows the user to run, debug, or visit these tests directly from the interface. The extension provides the ability to run all tests or select subsets to run. Furthermore, Butch highlights the debugging capabilities of the tool, such as the option to show or hide the browser when running the test.&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%2F3998%2F0%2AhobLGMD_-laq_68A.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%2F3998%2F0%2AhobLGMD_-laq_68A.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  UI Mode
&lt;/h2&gt;

&lt;p&gt;Playwright’s UI mode provides users with a real-time visual platform that lets them see exactly how their test scripts are executing. Running the UI mode directly from the terminal gives a detailed look into the network requests and debugging processes. There is a choice of light and dark themes for user preference. Also, the debugging capabilities offered in the UI mode range from stepping through the test and watching the elements load to observing the network requests and much more.&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%2F3998%2F0%2AoUh7DMFNjHqdIbln.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%2F3998%2F0%2AoUh7DMFNjHqdIbln.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Here’s a list of 70 &lt;a href="https://www.lambdatest.com/learning-hub/cucumber-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Cucumber Interview Questions&lt;/a&gt; and Answers that will help you boost your confidence in an Interview.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Developer Docs
&lt;/h2&gt;

&lt;p&gt;The Playwright documentation offers users a comprehensive guide to understanding and making full use of the tool’s features. The documentation includes a quick start guide, which provides the necessary assistance for users to get up and running swiftly. Furthermore, for any issues or inquiries, there is a readily available Discord community to support and answer queries.&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%2F3998%2F0%2AUCHa6l8FLSht2E4m.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%2F3998%2F0%2AUCHa6l8FLSht2E4m.png" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Ability to Run API/UI Regression
&lt;/h2&gt;

&lt;p&gt;This feature offers a unified &lt;a href="https://www.lambdatest.com/blog/what-is-test-environment/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;testing environment&lt;/a&gt; where users can create UI tests to verify how the application’s interface interacts with users and API tests to validate the backend processes. It also includes &lt;a href="https://www.lambdatest.com/learning-hub/regression-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;regression tests&lt;/a&gt; which ensure that existing functionality still works as expected after modifications. Playwright’s framework makes it easy to set up, execute, and debug these tests, making it a comprehensive tool for end-to-end testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get ready for your &lt;a href="https://www.lambdatest.com/learning-hub/bdd-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;BDD interview questions&lt;/a&gt; with 100+ BDD interview questions. Boost your confidence and impress your interviewer with this comprehensive guide covering principles &amp;amp; techniques:.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Automated Testing Great Practices
&lt;/h2&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%2F3998%2F0%2A6yqUuP0hOHA0YeBi.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%2F3998%2F0%2A6yqUuP0hOHA0YeBi.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Furthermore, Butch outlines several exemplary &lt;a href="https://www.lambdatest.com/blog/best-practices-to-follow-in-test-automation/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;automated testing practices&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Independence of Tests&lt;/strong&gt;&lt;br&gt;
Ensure each test operates independently; no test should rely on the outcome or state of another.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;**Avoid Data Sharing Between Tests&lt;br&gt;
**Refrain from sharing data between tests to maintain their independence and reliability.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;**Use Static Data Sparingly&lt;br&gt;
**Utilize static data only when necessary and carefully manage it when used.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;**Leave the State as You Found It&lt;br&gt;
**After running each test, the system should be left in the same state it was in before the test or better.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;**Create Reusable Methods and Functions&lt;br&gt;
**Use methods like the page object model to abstract logic from the test, keeping tests simple and manageable.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;**Run Tests in Parallel&lt;br&gt;
**By ensuring that tests are independent, they can be run in parallel, significantly speeding up the overall &lt;a href="https://www.lambdatest.com/learning-hub/test-process?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;test process&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Q&amp;amp;A Session
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q. How do you feel about utilizing Playwright’s test runner in comparison to using other runners like Cucumber to execute Playwright using SpecFlow?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A.Playwright Runner provides built-in features such as reporting, videos, and trace files, which streamline the process. It even offers customizable reporters and a comprehensive end-of-check report. When you introduce other runners into the mix, you face the task of combining multiple tools, something I’ve aimed to avoid.&lt;/p&gt;

&lt;p&gt;If an organization fully embraces &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=jul12_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Behavior Driven Development&lt;/a&gt; (BDD), incorporating it with Playwright could be beneficial. But in our organization, developers and testers work semi-independently, and our focus is on user testing for change detection rather than as a precursor to writing code. The definition and implementation of BDD often spark discussions, but that’s a conversation for another time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. In what way does Playwright manage the sharing of data or state across different browser contexts, especially during the testing of linked user scenarios or workflows?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A. Playwright handles session state and allows for the transfer of cookies and state data between browser contexts. It differentiates between individual action tests and scenario-based tests, allowing for a more comprehensive user journey simulation. With features like ‘soft fail,’ it offers flexibility in handling test failures. However, successfully managing such scenarios requires thoughtful architectural planning for sustainability.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hope You Enjoyed The Webinar!
&lt;/h2&gt;

&lt;p&gt;We hope you liked the webinar. In case you missed it, please find the webinar recording above. Share this webinar with anyone who wants to learn more about clean coding practices. You can also subscribe to our newsletter &lt;a href="https://www.lambdatest.com/newsletter/" rel="noopener noreferrer"&gt;Coding Jag&lt;/a&gt; to stay on top of everything testing and more! Stay tuned for more exciting &lt;a href="https://www.youtube.com/@LambdaTest" rel="noopener noreferrer"&gt;LambdaTest Webinars&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That’s all for now. Happy testing!&lt;/p&gt;

</description>
      <category>wed</category>
      <category>testing</category>
      <category>playwright</category>
      <category>community</category>
    </item>
    <item>
      <title>Webinar: Digital Experience Testing: Need of the Hour for Enterprises [LambdaTest Webinar]</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Thu, 15 Jun 2023 05:24:05 +0000</pubDate>
      <link>https://dev.to/testmuai/webinar-digital-experience-testing-need-of-the-hour-for-enterprises-lambdatest-webinar-2a1f</link>
      <guid>https://dev.to/testmuai/webinar-digital-experience-testing-need-of-the-hour-for-enterprises-lambdatest-webinar-2a1f</guid>
      <description>&lt;p&gt;According to Forrester’s Best Practice Report titled ‘Optimize Your Digital Experience To Compete For Customers’- “No matter how embedded your brand is in customers’ lives today, if you stop meeting their expectations, it’s easy for them to switch to a competitor tomorrow. As the ratio of digital to non-digital customer interactions continues to increase, digital customer experiences and the data that firms collect about them will evolve in ways that will challenge and reward insights-driven, customer-led organizations.”&lt;/p&gt;

&lt;p&gt;Given the pace of innovation and increasing customer expectations, enterprises have no option but to increase release velocity. However, to test for omnichannel experiences, QA/Dev teams not only need access to all possible configurations of devices and interfaces a user might access applications from — but also have a robust test infrastructure in place to have on-demand scalability for test execution of all types.&lt;/p&gt;

&lt;p&gt;Today, enterprises need digital experience testing at the center of their digital transformation strategy to ensure a seamless customer experience.&lt;/p&gt;

&lt;p&gt;We’re sure you would have many questions about digital experience testing, understanding the industry insights and trends challenges that enterprises are facing, and developing the blueprint for a successful digital experience testing strategy.&lt;/p&gt;

&lt;p&gt;But worry not! Our special guest Diego Lo Giudice, Vice President and Principal Analyst, Forrester has teamed up with Maneesh Sharma, Chief Operating Officer, LambdaTest, to discuss and share their thoughts on what goes into digital experience testing and how enterprises can come up with the right testing strategy to make it successful.&lt;/p&gt;

&lt;p&gt;If you missed the power-packed webinar, let us recap the event’s significant highlights together.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Test native, hybrid, and web apps on any mobile OS with our free &lt;a href="https://www.lambdatest.com/android-emulator-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Android emulator online&lt;/a&gt;. Sign up to optimize app performance.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is a digital business?
&lt;/h2&gt;

&lt;p&gt;Diego begins the webinar by discussing Testing Market Trends in 2023+.&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%2F3998%2F0%2AQIIlgJ3yUTpFzEWd.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%2F3998%2F0%2AQIIlgJ3yUTpFzEWd.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He explains that organizations are moving towards becoming digital organizations and ensuring they have a business model with software technology at its core. He further explains that software is an expression of business which means that if an organization can represent all policies and procedures in software, then ideally, it will be able to identify and implement the change of its software and pivot its business model. Therefore, becoming a master of how you build software, test, and deploy becomes very important for organizations.&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%2A1hnPH87YP6qH__Vu.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%2A1hnPH87YP6qH__Vu.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diego agrees that businesses will depend on tons of software, and choosing them should be crucial and strategic. He emphasizes that writing tons of software shouldn’t be the only focus organizations need to follow a more agile digital operating model.&lt;/p&gt;

&lt;p&gt;It includes changing how we work, becoming more agile, managing and organizing different people and talents, and the need to upscale, and technology plays an important role.&lt;/p&gt;

&lt;p&gt;Organizations must balance these three areas: organization/people, process/practices, and technology to transform into a digital organization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Test your apps on the cloud using our &lt;a href="https://www.lambdatest.com/mobile-emulator-for-app-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Mobile Emulator&lt;/a&gt; for App Testing. Ditch your in-house infrastructure, and gain access to 3000+ browsers in real time.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How does this impact testing?
&lt;/h2&gt;

&lt;p&gt;Testing has to evolve as practiced in past years to become a more effective software-driven organization. Diego shares the trends from the last two years of the most frequently used modern testing practices, which shows that its implementation is improving slowly, although manual testing still remains dominant with around 50%.&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%2AJrODjNkjDLFsZqct.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%2AJrODjNkjDLFsZqct.png" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The speaker further shares an improving trend of testing structure in organizations, where testing is evolving from a centralized test center environment to a federated one, where engineers and testers work together inside product teams.&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%2AR_Cn3UBPA_Aq5nTj.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%2AR_Cn3UBPA_Aq5nTj.png" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He also shares data from a general survey of developers about the level of adoption of automated tests. This data suggests that we focus more on implementing automated tests to fix the continuous delivery loop. However, it is evident that these tests still encounter challenges and face lower levels of implementation.&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%2ADdDt8-A-Pb51Emsw.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%2ADdDt8-A-Pb51Emsw.png" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diego concludes that by studying and comparing these data results, most organizations are positioned at the beginner to intermediate level in the continuous testing journey. We further need to make ongoing efforts to move the organizations to the intermediate stage and eventually to the advanced adoption level.&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%2ArA2N6PUW3W9rrwpw.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%2ArA2N6PUW3W9rrwpw.png" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get started with this complete &lt;a href="https://www.lambdatest.com/selenium?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Selenium&lt;/a&gt; automation testing tutorial. Learn what Selenium is, its architecture, advantages and more for automated cross browser testing.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What can we do better?
&lt;/h2&gt;

&lt;p&gt;Diego focuses on the way forward to keep modernizing, and continuous delivery is a very crucial strategy that needs to be implemented by every organization. It means implementing shift left, i.e., testing needs to start at the very beginning, from when we begin analyzing requirements to the release stage.&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%2AdA-teCI6uFnR5JiC.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%2AdA-teCI6uFnR5JiC.png" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He further shares that continuous testing not only means implementing the technology but also means adopting modern testing practices like test-driven development, behavior-driven development, shift-left testing, shift-right testing, implementing monitoring and observability practices, focusing on more automation, CI/CD, test environments, etc.&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%2AO-5mT56zRqfss0PO.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%2AO-5mT56zRqfss0PO.png" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Run your &lt;a href="https://www.lambdatest.com/playwright?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Playwright&lt;/a&gt; test scripts instantly on 50+ browser and OS combinations using the LambdaTest cloud.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Continuous Automation Testing Platforms are the modern technology foundation
&lt;/h2&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%2AkWEpmij5Q27MGsNr.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%2AkWEpmij5Q27MGsNr.png" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diego explains that &lt;a href="https://www.lambdatest.com/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;continuous automation testing platforms&lt;/a&gt; provide the consistent collaboration and experience that modern testers require, from reporting bugs to enabling functional testing from a UI level to the capability of orchestrating test environments, managing test data, and executing tests effectively. These platforms should also be able to move the testing experience to the cloud and integrate seamlessly with the CI/CD pipeline.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;A comprehensive &lt;a href="https://www.lambdatest.com/learning-hub/end-to-end-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;end-to-end Testing&lt;/a&gt; tutorial that covers what E2E Testing is, its importance, benefits, and how to perform it with real-time examples.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is a test platform important?
&lt;/h2&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%2A4hAH4IokkXpEEibQ.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%2A4hAH4IokkXpEEibQ.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In addition, he addresses the need for a test platform since testing requires a village of people; the test platform supports all the different personas needed for testing. From business testers, who test for business logic, to subject matter experts, all look for tools and platforms which are easier to implement and automate their respective requirements.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what’s next?
&lt;/h2&gt;

&lt;p&gt;Furthermore, Diego points out that testing is becoming smarter during automation phases and throughout all stages.&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%2AiC9jMCB5Pc2kl_gc.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%2AiC9jMCB5Pc2kl_gc.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additionally, he presents data indicating a growth of 20% in smarter testing from 2020 to 2021, and since 2021, the use of AI for automating, authoring, and optimizing tests has increased by 10%.&lt;/p&gt;

&lt;p&gt;By giving one such example of an AI-based tool, Tester TuringBot, that helps developers and testers test faster and smarter and optimize testing for business coverage. It creates models to help optimize the test based on the resources, focusing on the most critical business areas. Additionally, it helps in eliminating redundant functional test cases.&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%2AcXdZhs-OlEeHM08a.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%2AcXdZhs-OlEeHM08a.png" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;In this &lt;a href="https://www.lambdatest.com/learning-hub/system-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;System testing&lt;/a&gt; tutorial, learn why System testing is important and all the intricacies of the System testing process.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Re-energize your testing strategy
&lt;/h2&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%2AqLtMCNtwgIXJ5Ohr.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%2AqLtMCNtwgIXJ5Ohr.png" width="800" height="444"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diego concluded by sharing some tips for organizations to re-energize their testing strategy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Keeping a check on how testing is organized, they need to be federated if they have a centralized structure. If it is completely distributed, it must be centralized to adopt a federated governance approach successfully.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Updating skills and practices&lt;/strong&gt; and reviewing partners to help modernize testing approaches.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Testing approaches to become more continuous, and organizations need to think about how the &lt;strong&gt;adoption of AI can empower their testing strategy and focus on data-driven testing&lt;/strong&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adoption of cloud-based testing platforms to support multi-persona testing in a highly scalable digital environment.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Our host speaker, Maneesh, adds that organizations must test better, faster, and smarter for seamless digital transformation. He further asks Diego, as an enterprise, &lt;strong&gt;what should be the starting point for their digital experience testing strategy&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Diego explains that the strategy for modernizing testing should be part of an overall program for modernizing software development, as testing is now crucial. It’s best to choose a value stream to focus on and partner with testers to support the journey within a significant environment. It’s important to start small, iterate and replicate, and review the toolset and available technology to support the journey. Leveraging external partners can provide an advantage, but it’s essential to formalize frameworks over time rather than waiting for everything to be ready.&lt;/p&gt;

&lt;p&gt;Maneesh then asks about the &lt;strong&gt;wave of change from tools to suites to platforms and how enterprises should think about setting up a platform for testing&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Diego replied that testing is not an isolated platform but rather a part of the ongoing platform the organization is putting together for continuous software delivery. The continuous software delivery toolchain comprises 17 to 18 technologies, including requirements formalization, agile planning, work item management, build and authoring tools, and various testing tools. Diego emphasized the importance of platformization and integration to avoid integration hassles and to provide a testing platform with multiple testing capabilities that can integrate well into the continuous integration delivery suite of tools. Diego cited Forrester’s research indicating that 72% of organizations chose the platform approach versus the best of breed and that this approach aligns with the general platformization trend happening in the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Q&amp;amp;A Session:
&lt;/h2&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%2AHj2aiBHdSd8alj27.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%2AHj2aiBHdSd8alj27.png" width="800" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. Where do you see the automation testing space heading from writing test cases to execution, particularly with the emergence of new-age authoring tools such as low code offering tools and AI-enabled codeless tools like GitHub co-pilot and Codeless Broad? And how do you think AI will impact this space?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: The current capabilities of AI-enabled tools, such as GitHub Co-Pilot and Amazon’s Whisperer, mainly involve generating and creating unit tests. This is helpful because building unit tests doubles the cost of software development. There are also platforms like Diff Blue that can build unit tests for code given to it. As AI solutions like touring bots become more intelligent, they can optimize test execution and environments through machine learning. Touring bots will evolve to become more autonomous, assist in testing and executing test cases, and help developers build pipelines and configure tools and platforms.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. Do you believe AI can contribute to ensuring adequate code coverage in software testing?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Regarding code coverage, I’m still determining if it matters. There has always been a debate about this, and while AI can generate all possible combinations to achieve 100% code coverage, it’s unnecessary. What’s more critical is business coverage. We need to be smart about it and focus on testing high-risk areas critical to the business and the application’s users.&lt;/p&gt;

&lt;p&gt;Thanks to technology, we can now determine which features are used the most in production. Based on that information, we can develop a testing strategy that is much smarter and more efficient. AI can connect the dots between the data in production and help us make informed decisions about what to test and leave out. Instead of focusing on code coverage, we should be more concerned with business and technical coverage of the high-risk areas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. What do you think is the biggest stumbling block for testers within an organization to modernize their testing practices?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Generally, the main issues in modern software testing are organizations treating testing as an afterthought rather than investing in quality, skills, and partnerships. Quality is becoming increasingly important, as poor quality can impact an organization’s revenue and reputation. Evangelizing the importance of testing to executives and management can help break through these roadblocks, but an initial investment is required to modernize testing. It may also need reskilling manual testers, choosing the right partnerships, and reviewing sourcing strategies. It’s important to understand where an organization is starting from and apply a proper strategy based on that rather than trying to become a leader immediately through a maturity model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. What’s your point of view regarding the business value that quality engineers would deliver, and what emphasis is on cost vs value?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maneesh&lt;/strong&gt;: As a consumer, the value of QE is not standalone but rather for the business and the application. When using a mobile app to order food or book a hotel through a website, if the application breaks, the consumer immediately switches to another provider. From a consumer perspective, the value of QE is the experience and whether or not the application is breaking. Businesses need to ensure they offer a good experience and maintain their brand. Therefore, the value should not be considered the value of QE alone but rather the value of the entire application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diego&lt;/strong&gt;: Last year, I authored a report on essential modern application development metrics, introducing a framework. At the core of this framework lies a cluster of metrics known as business value, which is critical for a development team to measure. The outcome of this metric can be evaluated through net promoter score, revenue generation, faster customer onboarding, and increased profits for the business line. While testing is not the sole contributor to this business value, it has four leading clusters of metrics within it. Quality is one of the primary metrics leading to the outcome of business value, as poor quality can adversely affect customer experience and, consequently, business value.&lt;/p&gt;

&lt;p&gt;Therefore, metrics such as rework and escaped bugs in production should still be measured. Similarly, efficiency is also linked to business value, as being cost-effective and faster increases it. Engagement and progress are critical leading metrics into business value, as improvement and engagement enhance the business’s overall performance. The four leading clusters: progress, engagement, quality, and efficiency, are interconnected with business value. Hence, this framework and dashboard assist organizations in managing these issues.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. Do you believe that manual testers and testing will become irrelevant with the increasing use of AI and coordination in software development?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Even with AI, manual testing is not going away ultimately. There will always be edge cases, and situations where automating the test cases might not be feasible. However, the goal should be to invert the current 80% manual testing and 20% automated testing ratio to 80% automated and 20% manual testing. The testing landscape is changing with AI, and new areas, such as accessibility testing, are becoming more automated.&lt;/p&gt;

&lt;p&gt;Although manual testing will not completely disappear, more of it will become automated and autonomous. The shift will take time, and manual testers should learn new skills to adapt to the changing testing landscape. For example, testers can use high-level scripting and prompting techniques to instruct Turing bots on what to do, making their roles essential in the new world of testing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. Can you envision merging the traditional approach of developers testing their code with the current trend of having a separate testing team, especially with the increasing availability of automation tools and platforms?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: To clarify, developers test their code, but typically only at the unit test level. Functional testing, which tests the functionality of an application, is usually performed by a separate testing team or individual, such as a business tester or business analyst. These individuals are responsible for writing test cases based on the requirements and business functionality of the application. However, with the rise of API testing, developers can also test at the API level and orchestrate multiple APIs to test functionality. While developers can perform some functional testing, they still require guidance and direction from testing experts to ensure the testing is comprehensive and effective.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. What challenges does an Enterprise face in test execution as developers start testing APIs and functional applications in addition to writing code, given the increase in provisioning of test execution?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diego&lt;/strong&gt;: The challenge for enterprises in test execution is test and environment management. With cloud-based platforms, it’s easier to provision test environments dynamically and execute tests effectively. The challenge is to find tools that provide flexibility in where test environments are provisioned and to enable self-service provisioning. The governance and process around test environment provisioning are essential, and cloud-based platforms would allow teams to be serviced quickly and efficiently.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Maneesh&lt;/strong&gt;: Testing is no longer a standalone activity but is integrated into agile and DevOps processes. Therefore, it is crucial to have everything stitched together in the test orchestration and execution space. Waiting for a server to be set up can clog the pipelines and slow down the whole process. As a result, a continuous, automated testing platform is essential for the overall strategy.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. What kind of strategy do organizations need to consider for Omni Channel testing, given that development is no longer limited to just web applications but also includes kiosks, mobile devices, tablets, and ODT streams?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Omnichannel testing has become a reality, and organizations need to shift their thinking towards a mobile-first approach. In the past, organizations structured teams in front-end versus back-end for either web or mobile-only applications. However, the rise of mobile devices has led to a more omnichannel world where customer experiences flow across different devices and channels. The design and thinking now start with mobile devices and then flow into the rest of the world, rather than starting with the big browser application and squeezing it onto a mobile phone.&lt;/p&gt;

&lt;p&gt;Building something requires considering all channels customers may use, which can be determined through multi-persona studies. This approach requires testing across different channels and devices, such as web browsers, mobile devices, and IoT devices. Thus, omnichannel testing has become a critical part of the testing strategy for organizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;As a closing remark&lt;/strong&gt;, Diego shares that as we utilize more technologies like chatbots and AI, it’s important to remember that we still need to prioritize testing. We cannot solely rely on these technologies to do everything perfectly, as mistakes can still occur. It’s essential to review and supervise their actions to ensure they function correctly. However, these technologies can still provide immense value, so we should utilize them while keeping testing a crucial part of our processes. This is the direction we’re heading in.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hope You Enjoyed The Webinar!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We hope you liked the webinar. In case you missed it, please find the webinar recording above. Share this webinar with anyone who wants to learn more about digital transformation and digital experience testing strategy. You can also subscribe to our newsletter &lt;a href="https://www.lambdatest.com/newsletter/" rel="noopener noreferrer"&gt;Coding Jag&lt;/a&gt; to stay on top of everything testing and more! Stay tuned for more exciting &lt;a href="https://www.youtube.com/@LambdaTest?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=jun15_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;LambdaTest Webinars&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That’s all for now, happy testing!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>testing</category>
      <category>webinar</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Webinar: Clean Coding Practices for Test Automation: Part 2 [Voices Of Community]</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Wed, 03 May 2023 06:00:35 +0000</pubDate>
      <link>https://dev.to/testmuai/webinar-clean-coding-practices-for-test-automation-part-2-voices-of-community-pna</link>
      <guid>https://dev.to/testmuai/webinar-clean-coding-practices-for-test-automation-part-2-voices-of-community-pna</guid>
      <description>&lt;p&gt;Design patterns are widely used in software development to create reusable solutions to common design problems. These patterns provide proven solutions to recurring problems and can save developers significant time and effort by providing a framework for designing efficient and maintainable software systems.&lt;/p&gt;

&lt;p&gt;In &lt;a href="https://www.lambdatest.com/learning-hub/software-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;software testing&lt;/a&gt;, design patterns are applied to improve the effectiveness, efficiency, and maintainability of testing processes. Design patterns in testing can help testers to create more robust and scalable &lt;a href="https://www.lambdatest.com/learning-hub/test-suite?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;test suites&lt;/a&gt;, reduce duplication of &lt;a href="https://www.lambdatest.com/learning-hub/test-case?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;test cases&lt;/a&gt;, and increase the ease with which new tests can be added and maintained over time. In this way, design patterns can be an essential tool for software testing professionals looking to optimize their testing processes and deliver high-quality software products.&lt;/p&gt;

&lt;p&gt;We’re sure you would have many questions about how you can write clean and effective code for test automation.&lt;/p&gt;

&lt;p&gt;But worry not! In this new episode of Voices of Community, our special guests, Sai Krishna, Lead Consultant, ThoughtWorks, and Srinivasan Sekar, Lead Consultant, ThoughtWorks, have teamed up with Manoj Kumar, VP-Developer Relations &amp;amp; OSPO at LambdaTest to share their tips and to answer your questions on how to build a clean and effective &lt;a href="https://www.lambdatest.com/blog/automation-testing-frameworks/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;test automation framework&lt;/a&gt;! They showcased the implementation of various design patterns and clean coding practices with real-world scenarios.&lt;/p&gt;

&lt;p&gt;If you are tired of slogging through the pages, go ahead and hit Play on the below video, and get ready to be wowed! 🙂&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get ready for your Mocha interview with our expert-curated list of &lt;a href="https://www.lambdatest.com/learning-hub/mocha-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Mocha interview questions&lt;/a&gt; tips. Impress your potential employer and land your dream job.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you have missed Part 1 of this exciting webinar, worry not, for we have you covered. Here’s a quick recap of the major highlights you missed out on:&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Ace your QA interviews with our comprehensive guide on 60+ &lt;a href="https://www.lambdatest.com/learning-hub/specflow-interview-questions?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;SpecFlow Interview Questions&lt;/a&gt; and Answers. Boost your BDD knowledge and showcase your SpecFlow expertise.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  About the Webinar:
&lt;/h2&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%2F3788%2F0%2Awc7lgYHRY2AQgXcr.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%2F3788%2F0%2Awc7lgYHRY2AQgXcr.png" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The webinar starts with Manoj recapping the learnings Sai and Srinivasan covered in the previous webinar, where we discussed implementing clean code principles like **SOLID **and **DRY **and seeing how &lt;a href="https://www.lambdatest.com/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;test automation&lt;/a&gt; can improve. We also learned about Single Responsibility Principle, Open Closed Principle, and Flow Manager.&lt;/p&gt;

&lt;p&gt;In addition, Manoj quotes Martin Fowler’s famous quote: &lt;em&gt;“Any fool can write code that a computer can understand. Good programmers can write code that humans can understand.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Further, Sai explains that when it comes to writing clean code, it’s important to note that design patterns are often considered. It’s a misconception to believe that design patterns are a magic solution to all problems. Implementing a design pattern doesn’t make your code better. Attempting to use a design pattern to solve a problem could complicate the issue.&lt;/p&gt;

&lt;p&gt;Using a real-world scenario, Sai and Srinivasan demonstrate how to build a clean and effective test automation framework.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Discover the power of &lt;a href="https://www.lambdatest.com/learning-hub/insurance-statistics?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;insurance statistics&lt;/a&gt; and how they can help you make smarter decisions. Turn insurance statistics into actionable insights with our guide.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Factory Design Pattern
&lt;/h2&gt;

&lt;p&gt;Srinivasan explains with a scenario about Factory Design Pattern, a type of creational design pattern, which is a way of organizing your code to make it easier to create objects. Think of it like a factory that produces different types of products based on your needs. With the factory Design Pattern, we create an object without exposing the creation logic to the client and refer to a newly created object using a common interface.&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%2F3876%2F0%2A2kftJQyPuOqM_f1f.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%2F3876%2F0%2A2kftJQyPuOqM_f1f.png" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;He further explains that in this pattern, we create a central “Factory” that creates objects. We tell the factory what kind of object we want, and it creates it for us behind the scenes. This is useful because it allows us to abstract away the details of how objects are created. Instead of worrying about the nitty-gritty details of object creation, we can just tell the factory what you need, and it takes care of the rest.&lt;/p&gt;

&lt;h2&gt;
  
  
  Strategy Design Pattern
&lt;/h2&gt;

&lt;p&gt;Sai and Srinivasan further explain Strategy Design Patterns, a type of Behavioral Design Pattern. The Strategy Design Pattern organizes your code to make it easier to switch between different algorithms or behaviors at runtime. Think of it like having different strategies or plans for achieving a goal. Each strategy may have different steps or approaches, but they all aim to achieve the same result.&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%2F3904%2F0%2AfXrVtqrWg6dqfI_s.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%2F3904%2F0%2AfXrVtqrWg6dqfI_s.png" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Strategy Design Pattern, we start by defining an interface or a base class representing the behavior we want to vary. Then, we create concrete classes that implement this interface or extend the base class with different algorithms or approaches.&lt;/p&gt;

&lt;p&gt;At runtime, we can switch between different implementations of this behavior by setting the appropriate concrete class. This makes it easy to switch between different algorithms or approaches without changing the overall structure of your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get insights into financial trends and performance with our comprehensive &lt;a href="https://www.lambdatest.com/learning-hub/finance-statistics?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;finance statistics&lt;/a&gt;. Analyze data, make informed decisions, and drive success.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Lombok
&lt;/h2&gt;

&lt;p&gt;Lombok is an external 3rd party Java dependency that helps to create immutable objects and reduce boilerplate code for model/data objects. E.g., it can generate getters and setters for those objects automatically.&lt;/p&gt;

&lt;p&gt;We can also use Records which was introduced in Java 14.&lt;/p&gt;

&lt;h2&gt;
  
  
  Decorator Design Pattern
&lt;/h2&gt;

&lt;p&gt;Additionally, they explained the Decorator Design Pattern, a type of Functional Design Pattern. It is a way of extending the functionality of an object at runtime without modifying its underlying structure. It allows you to add new behavior or modify the behavior of an object by wrapping it with one or more decorator objects.&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%2F3998%2F0%2Ap0fc6rbiSmZGaaVT.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%2F3998%2F0%2Ap0fc6rbiSmZGaaVT.png" width="800" height="446"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the Decorator Design Pattern, you start with a base object with some basic functionality. Then, you create one or more decorator classes that wrap the base object and add new functionality or modify its existing behavior.&lt;/p&gt;

&lt;p&gt;Each decorator class has the same interface as the base object, which allows you to stack multiple decorators on top of each other in any order you want. A result is an object that has all of the functionality of the base object plus the additional functionality provided by the decorators.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Discover the top 70+ essential &lt;a href="https://www.lambdatest.com/learning-hub/snowflake-test-case-template?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Snowflake test cases&lt;/a&gt; to ensure your data’s integrity, accuracy, and consistency. Download our comprehensive template now.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Q&amp;amp;A Session:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Q: Is it possible to implement this design pattern in conjunction with a BDD framework? Additionally, what steps or guidelines should be followed to implement it successfully?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: No, you can apply design patterns and clean code practices regardless of the programming language or whether you’re using a BDD framework. &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=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Behavior Driven Development (BDD)&lt;/a&gt; is just using the Gherkin language to add steps on top of functions, so the underlying implementation remains the same. So, it’s possible to use design patterns with BDD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is an excessive reliance on the “static” keyword generally considered an abuse, given its frequent usage?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: We added the “static” keyword to prevent accidental object creation in the future. We also created a static function, and we don’t need to create an object for it. By making it public, we want to ensure everything is clear and correct when a new member joins the team. The aim is to provide clean functionality and prevent any unnecessary complexity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Is it possible to use abstract classes instead of interfaces in implementing the strategy design pattern?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: The definition of the interface has evolved, as seen in Java’s default method feature. However, this should be distinct from the strategy design pattern’s main concept, which is to identify an algorithm and alter its behavior at runtime. The implementation of the strategy design pattern may vary depending on the programming language and version used. The key process is identifying the algorithm and changing its behavior during runtime.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q: Can consumers and supplier concepts in Java’s inheritance be applied to JavaScript frameworks like TestCafe and Cypress? As design patterns are language-independent, how would this work with different object structures in these frameworks?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: Java has consumers and suppliers, but without them, we could still make the decorator pattern by writing more code. The same applies to JavaScript, where we may have different concepts, but the idea of design patterns is to solve problems across different programming languages. If we want to implement &lt;a href="https://www.lambdatest.com/blog/comprehensive-guide-to-javascript-design-patterns/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;design patterns in JavaScript&lt;/a&gt;, the idea will be the same, but the implementation may differ due to language differences. &lt;a href="https://www.lambdatest.com/learning-hub/cypress-tutorial?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Cypress&lt;/a&gt; and &lt;a href="https://www.lambdatest.com/testcafe?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;TestCafe&lt;/a&gt; are just runners and have nothing to do with design patterns.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get a head start on your &lt;a href="https://www.lambdatest.com/learning-hub/jenkins-test-cases?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Jenkins Test Template&lt;/a&gt; pipeline with our pre-built template for continuous testing. Explore this comprehensive list of test cases and scenarios.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hope You Enjoyed The Webinar!
&lt;/h2&gt;

&lt;p&gt;We hope you liked the webinar. In case you missed it, please find the webinar recording above. Share this webinar with anyone who wants to learn more about clean coding practices. You can also subscribe to our newsletter &lt;a href="https://www.lambdatest.com/newsletter/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Coding Jag&lt;/a&gt; to stay on top of everything testing and more! Stay tuned for more exciting &lt;a href="https://www.youtube.com/@LambdaTest?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may03_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;LambdaTest Webinars&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;That’s all for now. Happy testing!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>automation</category>
      <category>coding</category>
      <category>testing</category>
    </item>
    <item>
      <title>Webinar: From Chaos To Control: Observability And Testing In Production [Voices Of Community]</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Tue, 02 May 2023 06:13:23 +0000</pubDate>
      <link>https://dev.to/testmuai/webinar-from-chaos-to-control-observability-and-testing-in-production-voices-of-community-4nei</link>
      <guid>https://dev.to/testmuai/webinar-from-chaos-to-control-observability-and-testing-in-production-voices-of-community-4nei</guid>
      <description>&lt;p&gt;Microservice architectures are gaining immense popularity, offering many advantages over monolithic architecture, such as improved scalability, better resilience, and faster time-to-market. However, there are different &lt;a href="https://www.lambdatest.com/blog/testing-challenges-related-to-microservice-architecture/?utm_source=hashnode&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;microservices architecture challenges&lt;/a&gt;, one of the major ones being the difficulties in managing, monitoring, and maintaining the system.&lt;/p&gt;

&lt;p&gt;With domain-driven design at the heart of microservices, different bounded contexts cooperate to accomplish a business process. Two important questions arise — is my process working fine? If not, why is it failing? This is where the concept of ‘Observability’ comes into play.&lt;/p&gt;

&lt;p&gt;We’re sure you would have many questions about monitoring, observability, and how to develop your observability strategy.&lt;br&gt;
But worry not! Our special guest Vanya Seth, Head of Technology, Thoughtworks India, has teamed up with Manoj Kumar, VP — Developer Relations &amp;amp; OSPO, LambdaTest, to discuss and share her ideas and thoughts on the concept of observability and how it facilitates the concept of testing in production.&lt;/p&gt;

&lt;p&gt;If you missed the power-packed webinar, let us look at the event’s major highlights.&lt;/p&gt;

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

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Our &lt;a href="https://www.lambdatest.com/learning-hub/gaming-platform-test-case-template?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Gaming Platform Test Cases&lt;/a&gt; Templates tutorial offers a step-by-step guide for effective test scenarios. Improve your game’s quality and performance today.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Landscape Today
&lt;/h2&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%2F3998%2F0%2ALLdrkCA52hqf3TJY.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%2F3998%2F0%2ALLdrkCA52hqf3TJY.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The webinar starts with Vanya contrasting the changes in the landscape of the monolithic application and between distributed architecture.&lt;/p&gt;

&lt;p&gt;She explains that when she was working with a monolithic application, it was a single Deployable unit. She could monitor some of the signals of the application and derive whether her system was up or down. Hence, it was a very binary situation, whether the system was up because the web application was responding or down.&lt;/p&gt;

&lt;p&gt;But since then, we have evolved a lot in terms of system architecture and more complex environments, including microservices. We have gained the autonomy to deploy different system parts depending on the use case or the business problem we were trying to solve.&lt;/p&gt;

&lt;p&gt;With an analogy of pet and cattle, Vanya explains the difference; with the monolithic system acting more like a pet, she knew the IP address to get inside the system and figure out what was happening.&lt;/p&gt;

&lt;p&gt;During the last decade, with the cloud’s rise and serverless popularity due to managed cloud services, infrastructure has become more like cattle, where we aren’t concerned about its ephemeral nature because it can spin up and die down at free will.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Unknowns
&lt;/h2&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%2F3998%2F0%2ALQPW1bZCMAreEuvl.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%2F3998%2F0%2ALQPW1bZCMAreEuvl.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vanya shares an interesting outlook on how we can understand and differentiate between observability and monitoring with the help of mapping the Knowns and Unknowns framework.&lt;/p&gt;

&lt;p&gt;In a real situation, Vanya explains the difference; Monitoring allows teams to watch and understand the state of their systems with the help of gathering predefined sets of metrics or logs, whereas Observability is a solution that will enable teams to actively debug their system and help understand why something is behaving the way it is behaving right now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check out these top 50+ essential &lt;a href="https://www.lambdatest.com/learning-hub/mobile-development-test-case-template?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Mobile Development test cases&lt;/a&gt; to ensure your data’s integrity, accuracy, and consistency. Download our comprehensive template now.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Observability?
&lt;/h2&gt;

&lt;p&gt;Vanya explains observability for her is “what” is not working to “why” something is not working and the transition from what to why.&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%2F3998%2F0%2A6hLcWFbGCbk3rYCB.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%2F3998%2F0%2A6hLcWFbGCbk3rYCB.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vanya also explains with the help of a quadrant graph of known — unknown framework, the black oval marks the spectrum of observability and monitoring being a part, as showcased by the white color in the known quadrant. The outward pushing arrows denote that the more we expand our monitoring scope, the more we will understand the system failures.&lt;/p&gt;

&lt;p&gt;In other words, we can infer observability as a measure of how well we can understand the internal state of the system using only its outputs that we are monitoring. She further explains from a QA’s perspective. It means observing our systems and making some hypotheses on how the system is behaving in production.&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%2F3998%2F0%2A2mGZnOMMReybJROR.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%2F3998%2F0%2A2mGZnOMMReybJROR.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;She also further explains interdependency with an example Latency — a metric that is a known symptom that we should all monitor from a monitoring perspective, but as soon as we get an alert, we need to observe and investigate from the logs and trace the actual reason for increasing latency, explaining the interrelationship between observability and monitoring.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;a href="https://www.lambdatest.com/learning-hub/cms-test-case-template?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;CMS testing&lt;/a&gt; is required to ensure a content management system’s functionality, performance, security, and usability remain smooth.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pillars of Observability
&lt;/h2&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%2F3998%2F0%2Azi8vi-q905rqj0PJ.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%2F3998%2F0%2Azi8vi-q905rqj0PJ.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Moving forward, Vanya talks about the three main pillars of observability: Metrics, Traces, and Logs&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Metrics are the key pointers that define the health of your system. You can set up monitoring for these metrics.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Traces map the user’s journey through the various systems. Traceability also deals with how you can audit the complete business process.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Logs are actual logs emitted by the events that occurred, which also help to take the decision and debug at the info level.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What’s your Observability Strategy?
&lt;/h2&gt;

&lt;p&gt;Vanya adds some of the questions that should come to our mind when planning our observability strategy:&lt;/p&gt;

&lt;p&gt;Are we able to do a post-mortem of our production issues? Are we able to do root cause analysis and debugging? How is your software robustness at any point in time? How are you designing your system for debuggability?&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%2F3998%2F0%2A2JrP1UkWOicBjwXW.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%2F3998%2F0%2A2JrP1UkWOicBjwXW.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And most importantly, how is observability a first-class concern in your software development life cycle or your various cross-functional requirements?&lt;/p&gt;

&lt;p&gt;In the next section, Vanya shared some important, relevant tenets when considering our observability strategy.&lt;/p&gt;

&lt;p&gt;As a quality engineer, looking at the entire part of the production is extremely relevant and important.&lt;/p&gt;

&lt;p&gt;How am I delivering software? How am I writing software? How are your stories being groomed? How are the acceptance criteria for your story being identified? and How QA’s are evangelizing observability as a first-class concern across the software value chain of development?&lt;/p&gt;

&lt;p&gt;Next, let’s look at some other key aspects of observability strategies.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Streamline your mobile app testing process with our tutorial on &lt;a href="https://www.lambdatest.com/learning-hub/xamarin-test-case-template?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Xamarin Test Cases&lt;/a&gt; Template. Learn how to create comprehensive test cases efficiently.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Designing your telemetry data right
&lt;/h2&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%2F3998%2F0%2ArdWW3iggyjLMd2ds.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%2F3998%2F0%2ArdWW3iggyjLMd2ds.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vanya talks about designing your telemetry data. In the days of monolith architecture, she worked with single processes and human-readable logs.&lt;/p&gt;

&lt;p&gt;With the evolution of serverless and managed services from a cloud perspective, the idea is to deliver machine-readable logs. The switch from human-readable logs to machine-readable logs needs to happen, and how we define the right structure of the telemetry data becomes extremely critical.&lt;/p&gt;

&lt;p&gt;Further, Vanya discusses conventions for designing telemetry data that teams must follow.&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%2F3998%2F0%2AoHNvPUxdS1Vsc1XB.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%2F3998%2F0%2AoHNvPUxdS1Vsc1XB.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Separation of Concern
&lt;/h2&gt;

&lt;p&gt;Separation of concern is a widely understood principle from designing classes or functions. We practice separation of concern to the nth level. Vanya explains to the viewers the need to practice separation of concern in observability. The aim of a developer or a quality engineer is always to observe their system reliably; even if the system were to go down, they should be able to observe what happened and why it happened, bringing reliability into the picture.&lt;/p&gt;

&lt;p&gt;They need to decouple their data sources from their data syncs and take out the observability data blast radius of their current system and services deployment to an outside location right think about some system so that even if something happens to the operational system, the logs are always available to debug.&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%2F3998%2F0%2AGJr0hF8HLTEBcR_m.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%2F3998%2F0%2AGJr0hF8HLTEBcR_m.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Optimize your &lt;a href="https://www.lambdatest.com/learning-hub/retail-testing-test-cases?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;retail application test cases&lt;/a&gt; testing process with 267 efficient test cases for comprehensive analysis. Ensure seamless customer experience and efficient operations.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What to trace and log?
&lt;/h2&gt;

&lt;p&gt;She then shares her insights on the other dimensions we should consider, such as how we manage our systems’ capacity and the cost implications of storing large logs.&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%2F3998%2F0%2A7ivipMgr_pQv33lr.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%2F3998%2F0%2A7ivipMgr_pQv33lr.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observability is Evolutionary; as we talk about the knowns and unknowns, the possibilities are endless. The more we observe, the more we understand our system; how do we evolve our monitoring dashboards? How do we cut down the noise on the dashboard? How do we reduce the noise on the alarms we have set up on top of those monitoring dashboards? How do we improve our logging? How do we improve our traces? How do we log the most optimum information to do root cause analysis?&lt;/p&gt;

&lt;h2&gt;
  
  
  Antipatterns to watch for
&lt;/h2&gt;

&lt;p&gt;Vanya then shares some of the important antipatterns we must watch out for a while planning our observability strategy.&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%2F3998%2F0%2A77P1fHP7pLL5keTD.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%2F3998%2F0%2A77P1fHP7pLL5keTD.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Are you testing in production?
&lt;/h2&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%2F3998%2F0%2A3_m4XyGRheZVo93K.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%2F3998%2F0%2A3_m4XyGRheZVo93K.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vanya then further explains observability is all possible permutations of full and partial failure of your application ecosystem. Testing is your best effort to verify the correctness of the product you’re building, whereas monitoring is the predictable failure.&lt;/p&gt;

&lt;p&gt;She further talks about embracing the need for &lt;a href="https://www.lambdatest.com/blog/testing-in-production-a-detailed-guide/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;testing in production&lt;/a&gt; by monitoring and observing the entire ecosystem and how everything is coming together in production.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Discover the top 60 essential &lt;a href="https://www.lambdatest.com/learning-hub/healthcare-domain-test-case-examples?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Healthcare Domain Test Cases&lt;/a&gt; along with its importance, types and usage for better understanding.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Wrapping Up
&lt;/h2&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%2F3998%2F0%2Abe4G9h9hQPZEMgho.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%2F3998%2F0%2Abe4G9h9hQPZEMgho.png" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As wrapping up her talk, she gave an important tip to follow about how we should embrace the chaos and not try to overcontrol it because things will never be fully in control and the ability to cope with this dynamism and the ability to embrace this chaos is something that’s going to help us become better quality engineers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Q&amp;amp;A Session:
&lt;/h2&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%2F3998%2F0%2AlPZ6r1LSM-oaU_1w.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%2F3998%2F0%2AlPZ6r1LSM-oaU_1w.png" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before wrapping up, Vanya answered several questions the viewers raised. Here are some insightful questions from the session:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. How do you verify that Observer data is being analyzed effectively and that insights and recommendations generated from this data are accurate and actionable?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: To achieve effective observability, teams should start by thinking about what data they need to capture and emit from their application in the form of logs, traces, or metrics. Guidelines should be created for autonomous teams, ensuring the data quality is good and actionable. This requires effort, and it’s an iterative process. Teams must work together to create an observability strategy that promotes high-quality observability data, which can be used as a feedback loop to improve the system continuously.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Q. How can a QA with no microservices experience learn about observability? Any advice or recommended steps to take, such as using a playground to practice and gain insights from testing in production?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A: To learn about observability, set up an open-source tool like Eager in your Docker container and explore the example application. Analyze how information is collected, traces are created, and context is passed between services. Make changes to the application to learn more. This hands-on approach will help you understand observability’s first principles. Additionally, many great articles and talks are available to supplement your learning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hope You Enjoyed The Webinar!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We hope you liked the webinar. In case you missed it, please find the webinar recording above. Share this webinar with anyone who wants to learn more about moving forward with an &lt;a href="https://www.lambdatest.com/blog/effective-test-automation-strategy/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;effective test automation&lt;/a&gt; strategy. Stay tuned for more exciting &lt;a href="https://www.lambdatest.com/webinar/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;LambdaTest Webinars&lt;/a&gt;. You can also subscribe to our newsletter &lt;a href="https://www.lambdatest.com/newsletter/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may02_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Coding Jag&lt;/a&gt; to stay on top of everything testing and more!&lt;/p&gt;

&lt;p&gt;That’s all for now, happy testing!&lt;/p&gt;

</description>
      <category>webinar</category>
      <category>testing</category>
      <category>productivity</category>
      <category>chaos</category>
    </item>
    <item>
      <title>Testing Modern Applications With Playwright 🎭</title>
      <dc:creator>Spkesari</dc:creator>
      <pubDate>Mon, 01 May 2023 07:47:04 +0000</pubDate>
      <link>https://dev.to/testmuai/testing-modern-applications-with-playwright-1j76</link>
      <guid>https://dev.to/testmuai/testing-modern-applications-with-playwright-1j76</guid>
      <description>&lt;p&gt;Web applications continue to evolve at an unbelievable pace, and the architecture surrounding web apps get more complicated all of the time. With the growth in complexity of the web application and the development process, &lt;a href="https://www.lambdatest.com/web-application-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;web application testing&lt;/a&gt; also needs to keep pace with the ever-changing demands.&lt;/p&gt;

&lt;p&gt;This blog will cover how Playwright solves the problem of capability, reliability, and speed, making it the perfect &lt;a href="https://www.lambdatest.com/learning-hub/end-to-end-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;end-to-end testing&lt;/a&gt; framework for building modern web applications.&lt;/p&gt;

&lt;p&gt;Let’s get started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Evolution of web applications
&lt;/h2&gt;

&lt;p&gt;There has been a dramatic evolution in &lt;a href="https://www.lambdatest.com/web-technologies?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;web technology&lt;/a&gt; over the past three decades. Applications are increasingly being dispersed between data centers and the cloud.&lt;/p&gt;

&lt;p&gt;The current web platform is more sophisticated than ever before. Web browsers have grown dramatically in recent years, and they now operate on every device we own, including our desktop computers, smartphones, and smart televisions.&lt;/p&gt;

&lt;p&gt;A steady stream of new capabilities has also been added to these web platforms. For example, the web can now recognize your current location, connect to Bluetooth devices, and communicate with your file system. The web platform’s rate of invention has been remarkable, and these developments have fueled innovation in the application world.&lt;/p&gt;

&lt;p&gt;Web apps today are full-fledged programs with rich and responsive interactions. While desktop apps look relatively the same as they did ten years ago, online applications look much different. Modern reactive JavaScript frameworks are used to develop single-page applications. PWAs are also being designed to replace native apps.&lt;/p&gt;

&lt;p&gt;We have also seen changes in how teams operate. Teams are creating apps more often nowadays, forcing them to ship faster due to competitive pressures. Newer processes, such as &lt;a href="https://www.lambdatest.com/blog/what-is-continuous-integration-and-continuous-delivery/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;continuous integration&lt;/a&gt; and deployment, are looking for &lt;a href="https://www.lambdatest.com/automation-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;automated testing&lt;/a&gt; solutions to release.&lt;/p&gt;

&lt;p&gt;The web is no longer a single server and client. Today’s web applications require several servers to generate a single interaction. You can no longer monitor a few servers and check a few pages for uptime. The intricacies of today’s web applications require a dynamic solution.&lt;/p&gt;

&lt;p&gt;In short, web applications are becoming more complex as they become more widespread. As the number of users increases, new challenges are being presented. At the same time, the tools available to build web applications have improved dramatically over the last few years, allowing for easier development and less reliance on code. However, &lt;a href="https://www.lambdatest.com/web-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;web testing&lt;/a&gt; needs to evolve for modern web development too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Check out this &lt;a href="https://www.lambdatest.com/learning-hub/ad-hoc-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Ad hoc testing&lt;/a&gt; tutorial, let’s deep dive into what Ad hoc testing is, its advantages, disadvantages, types, characteristics, and their best practices.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Modern web development and testing
&lt;/h2&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%2F1%2A4HC4PaqiwEuvi-orMHTaWw.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%2F1%2A4HC4PaqiwEuvi-orMHTaWw.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Software testing must develop and adapt to the changes occurring on the modern web. For instance, tests must handle more recent &lt;strong&gt;capabilities&lt;/strong&gt; that are becoming accessible across all browsers automatically. These include the capabilities found on desktop and mobile browsers, as well as for smart TVs. Testers struggle to automate all parts of their application because their tests cannot cover all the capabilities they are using.&lt;/p&gt;

&lt;p&gt;Today’s applications are harder to automate, and tests cannot keep up with the reactiveness of the frameworks. Projects that are built on rich single-page applications find that their end-to-end tests are flaky. They are not able to &lt;strong&gt;reliably&lt;/strong&gt; automate user interactions on their applications.&lt;/p&gt;

&lt;p&gt;End-to-end tests, which are meant to help you test and ship &lt;strong&gt;faster&lt;/strong&gt;, instead lead tests to run more slowly. To handle reliability difficulties, testers often include sleep timeouts or retries. Because we can only automate some aspects of our application, tests need help with coverage issues. End-to-end testing has not been able to advance for the current web because of these three issues.&lt;/p&gt;

&lt;p&gt;In conclusion, modern web testing is based on three main pillars:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Modern &lt;strong&gt;web testing&lt;/strong&gt; needs to be &lt;strong&gt;capable&lt;/strong&gt;, which means we can automate all the capabilities of modern web browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modern web testing must also be &lt;strong&gt;reliable&lt;/strong&gt;, automating all user interactions with highly rich and responsive web applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Modern web testing needs to be &lt;strong&gt;fast&lt;/strong&gt;, which means it needs to &lt;a href="https://www.lambdatest.com/blog/speed-up-testing-cycle/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;speed up the testing cycle&lt;/a&gt; for faster shipping and release.&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%2F2000%2F1%2A5auBb2ccWkd7_scOMt6XOA.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%2F1%2A5auBb2ccWkd7_scOMt6XOA.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Introducing Playwright framework 🎭
&lt;/h2&gt;

&lt;p&gt;Playwright is one of the newest and most rapidly growing headless automation libraries. Released in January 2020 by Microsoft, Playwright is a Node.js library that advertises performant, reliable, and hustle-free browser automation.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i6wezbio5r5ftohsnv0.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9i6wezbio5r5ftohsnv0.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Source: &lt;a href="https://twitter.com/playwrightweb" rel="noopener noreferrer"&gt;https://twitter.com/playwrightweb&lt;/a&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Some of the benefits provided by Playwright are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Free and Open Source.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Single API to automate Chromium, Firefox, and WebKit.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Support for multiple languages: the Playwright API in JavaScript, TypeScript, Python, .NET, and Java.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Capable automation for single-page apps that rely on the modern web platform.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Moreover, Playwright has over 45.2k Star, 2.2k Fork, and 324+ contributors on &lt;a href="https://github.com/microsoft/playwright" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;, which speaks volumes about its popularity.&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%2F3200%2F0%2A2oTqfmVMG7ZO-eex.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%2F3200%2F0%2A2oTqfmVMG7ZO-eex.png" width="800" height="324"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The above data was adopted from npm trends showing Cypress, Playwright, and Puppeteer download over the last year.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Watch this Playwright tutorial that covers everything you need to get you up and running with the Playwright framework with TypeScript.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/wawbt1cATsk"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;strong&gt;&lt;em&gt;Check this &lt;a href="https://www.lambdatest.com/xcuitest?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;XCUITest&lt;/a&gt; tutorial, learn about XCUITest framework and its benefits for mobile automation testing. Take a look at how XCUITest works and see how to use it to test your mobile applications.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There are three main core ideas behind Playwright:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Capable&lt;/strong&gt; automation without trade-offs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Reliable&lt;/strong&gt; automation without timeouts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Faster&lt;/strong&gt; executions, just like unit tests.&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%2F2000%2F0%2A9VY-cpKyZln1ZgTn.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%2A9VY-cpKyZln1ZgTn.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let us zoom into these three core ideas and how these are implemented in Playwright.&lt;/p&gt;

&lt;p&gt;Run your &lt;a href="https://www.lambdatest.com/playwright-on-aws-marketplace?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Playwright tests with AWS marketplace&lt;/a&gt; directly on the cloud.&lt;/p&gt;
&lt;h2&gt;
  
  
  Capable automation without trade-offs in Playwright
&lt;/h2&gt;

&lt;p&gt;Playwright provides full API coverage for all modern browsers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Chromium browsers — Google Chrome and Microsoft Edge&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Mozilla Firefox browser&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;WebKit browser — Apple Safari&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;   const { webkit } = require('playwright');
    (async () =&amp;gt; {
     const browser = await webkit.launch();
     const page = aa wait browser.newPage();
     await page.goto('http://lambdatest.com/');
     await browser.close();
    })();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Playwright leverages the &lt;strong&gt;Chrome DevTools Protocol (CDP)&lt;/strong&gt; to directly communicate with Chromium browsers (Chrome/Edge). This approach allows for more direct and quicker communication, and tests will be more powerful and less flaky.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test for mobile:&lt;/strong&gt; Playwright provides device emulation to test your &lt;a href="https://www.lambdatest.com/intl/en-in/responsive-test-online?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;website responsiveness&lt;/a&gt; in mobile web browsers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Headless and headed.&lt;/strong&gt; Playwright supports headless (without browser UI) and headed (with browser UI) modes for all browsers and all platforms. The headless approach is more suitable for CI/cloud executions and is quicker for debugging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiple domains, pages, and frames.&lt;/strong&gt; Playwright is an out-of-process automation driver not limited by the scope of in-page JavaScript execution and can automate scenarios with multiple pages.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Powerful network control&lt;/strong&gt;. Playwright introduces context-wide network interception to stub and mock network requests.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; const { chromium } = require('playwright');
    (async () =&amp;gt; {
       const browser = await chromium.launch();
       const page = await browser.newPage();

       await page.route('**/api/fetch_data',route =&amp;gt; route.fulfill({
           status:200,
           body: testData
       }))

       await page.goto('http://lambdatest.com/');
       await browser.close();
     })();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Modern web features.&lt;/strong&gt; Playwright supports web components through shadow-piercing selectors, geolocation, permissions, web workers, and other modern web APIs.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const {chromium } = require('playwright');
    (async () =&amp;gt; {
    const browser = await chromium.launch();
    const page = await browser.newPage({
           colorScheme:'dark',
           geolocation: { longitude: 48.858455, latitude: 2.294474 },
           permissions: ['geolocation','notifications']
       });
    await page.goto('http://lambdatest.com/');
    await browser.close();
    });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Capabilities to cover all web platform API scenarios.&lt;/strong&gt; Playwright supports file downloads and uploads, out-of-process iframes, native input events, and even dark mode.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get started with this complete &lt;a href="https://www.lambdatest.com/selenium?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;Selenium automation testing&lt;/a&gt; tutorial. Learn what Selenium is, its architecture, advantages and more for automated cross browser testing.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Reliable automation without timeouts in Playwright
&lt;/h2&gt;

&lt;p&gt;Reliability is the problem of automating user interactions on your application without having your tests flake. In many cases, we have to add timeouts to make their tests sleep for some time so they can reliably automate. This creates a whole bunch of problems because timeouts lead to flakiness.&lt;/p&gt;

&lt;p&gt;Playwright uniquely solves these problems. The key feature of Playwright is that it can &lt;strong&gt;listen to browser events&lt;/strong&gt;, get events from the browser, and understand what’s happening in your application when it’s running inside the browser.&lt;/p&gt;

&lt;p&gt;For example, in the following code snippet, we launch an instance of Firefox, create a new page, and then set up an event listener for that page. Whenever the application throws a console log, it will show in the test.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { webkit, chromium } = require('playwright');


    (async () =&amp;gt; {
       const browser = await chromium.launch();
       const page = await browser.newPage();
       // Listen for all console logs
       page.on('console', msg =&amp;gt; console.log(msg.text()))

       // Listen for all console events and handle errors
       page.on('console', msg =&amp;gt; {
           if (msg.type() === 'error')
           console.log(`Error text: "${msg.text()}"`);
       });
       await page.goto('http://lambdatest.com/');
       await browser.close();
       });

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This ability to listen to events allows players to wait for precise events instead of having to wait for blanket sleep time-outs. This makes your tests highly reliable; Playwright uses this functionality internally in every interaction.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt; const { firefox } = require('playwright');
    (async () =&amp;gt; {
       const browser = await firefox.launch();
       const page = await browser.newPage();
        await page.goto('http://lambdatest.com/');
       await page.click('text="Book a Demo"')
       await browser.close();
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, in the following example, we are launching a Firefox instance, creating a new page, visiting GitHub.com, and then clicking the sign-up button.&lt;/p&gt;

&lt;p&gt;Here, we did not require the use of sleep timeouts waiting for the browser to completely load the page URL before clicking up the signup button. This is due to page.click() in the Playwright automatically waits for the right conditions, the elements to be visible, the element to stop animating, and the element to receive click events.&lt;/p&gt;

&lt;p&gt;The Playwright does this all internally, so all user interactions can reliably test your applications. This makes the test significantly easier to write and maintain over time because we do not have to worry about custom wait conditions or sleep timeouts.&lt;/p&gt;

&lt;p&gt;It also provides the user APIs to write their custom wait for conditions. These conditions also use the same event logic, which means we do not have to guess for the amount of time, we have to wait, and it helps us write the precise conditions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Test your website or web app online for iOS browser compatibility. Perform seamless cross browser testing on the latest &lt;a href="https://www.lambdatest.com/test-on-iphone-simulator?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=webpage" rel="noopener noreferrer"&gt;iPhone tester&lt;/a&gt;. Try for free!&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Faster executions, like unit tests in Playwright
&lt;/h2&gt;

&lt;p&gt;Developers and testers are happier in performing &lt;a href="https://www.lambdatest.com/learning-hub/unit-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;unit testing&lt;/a&gt;, as these tests run reliably and are fast to execute. However, this is not the case with end-to-end tests because they depend on browsers and can be very slow, especially when launching and closing a browser.&lt;/p&gt;

&lt;p&gt;It can become a costly operation if we are running hundreds of tests and can run hundreds of browsers. To solve this in Playwright, we have a whole new abstraction layer.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;const { webkit } = require('playwright');
    (async () =&amp;gt; {
       const browser = await webkit.launch();
       const context = await browser.newContext();
       const page = await browser.newPage();
       await page.goto('http://lambdatest.com/');
       await browser.close();
    });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For example, we launch an instance of WebKit in this code snippet, and then we create a context in that browser instance. Here, we are then interacting with the page URL inside the context.&lt;/p&gt;

&lt;p&gt;We have created a new abstraction layer on the browser instance called browser context. This browser context can host multiple web pages inside it. It is very cheap to spin up multiple browser contexts, and you do not have to worry about the time it takes to launch and close a browser. It significantly speeds up your test.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Properties of browser contexts:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Contexts are completely isolated from each other&lt;/strong&gt; — we can run hundreds of tests in multiple browser contexts, and we don’t need to worry about one instance interfering with the other.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Supports device emulation&lt;/strong&gt; — we can run multiple tests across multiple devices.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are some other &lt;strong&gt;powerful tools&lt;/strong&gt; that help to generate and debug tests:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Codegen&lt;/strong&gt;. Generate tests by recording your actions. Save them in any language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Playwright inspector&lt;/strong&gt;. Inspect the page, generate selectors, step through the test execution, see click points, and explore execution logs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Trace Viewer&lt;/strong&gt;. Capture all the information to investigate the test failure. Playwright trace contains test execution screencast, live DOM snapshots, action explorer, test source, and many more.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you are a developer, this certification is the perfect measure of your expertise as a &lt;a href="https://www.lambdatest.com/playwright-on-azure-marketplace" rel="noopener noreferrer"&gt;Playwright automation&lt;/a&gt; tester in performing end-to-end testing for modern web applications.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Discover the power of &lt;a href="https://www.lambdatest.com/learning-hub/insurance-statistics?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;insurance statistics&lt;/a&gt; and how they can help you make smarter decisions. Turn insurance statistics into actionable insights with our guide.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;In today’s fast-moving, cloud-based world, testing is more important than ever. Modern applications continue evolving at an unbelievable pace, making them decentralized and interconnected like never before. For software testing to evolve and adapt to the changes, Playwright empowers testers to reliably automate all the capabilities and user interactions with highly rich and &lt;a href="https://www.lambdatest.com/blog/responsive-web-design-all-you-need-to-know/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;responsive web applications&lt;/a&gt;. It also helps speed up the testing cycle for faster shipping and release. We can say it is one of the best end-to-end testing tools for web applications.&lt;/p&gt;

&lt;p&gt;In the next couple of blogs, we will discover more functionalities and capabilities of Playwright in depth.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Get insights into financial trends and performance with our comprehensive &lt;a href="https://www.lambdatest.com/learning-hub/finance-statistics?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=may01_kj&amp;amp;utm_term=kj&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;finance statistics&lt;/a&gt;. Analyze data, make informed decisions, and drive success.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

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