<?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>Forem: TestMu AI </title>
    <description>The latest articles on Forem by TestMu AI  (@testmuai).</description>
    <link>https://forem.com/testmuai</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%2Forganization%2Fprofile_image%2F498%2F8913771f-b546-4465-b3f9-fea68e95db1c.png</url>
      <title>Forem: TestMu AI </title>
      <link>https://forem.com/testmuai</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/testmuai"/>
    <language>en</language>
    <item>
      <title>Recapping Conversations From Selenium Conf and Appium Conf 2025 | LambdaTest</title>
      <dc:creator>TestMu AI Team</dc:creator>
      <pubDate>Fri, 04 Jul 2025 10:29:18 +0000</pubDate>
      <link>https://forem.com/testmuai/recapping-conversations-from-selenium-conf-and-appium-conf-2025-lambdatest-3n44</link>
      <guid>https://forem.com/testmuai/recapping-conversations-from-selenium-conf-and-appium-conf-2025-lambdatest-3n44</guid>
      <description>&lt;p&gt;At this year’s Selenium Conf and Appium Conf, we had the pleasure of hosting booths where industry experts like Angie Jones, Christian Bromann, and Jonathan Lipps stopped by for engaging Q&amp;amp;A sessions.&lt;/p&gt;

&lt;p&gt;From thoughtful discussions to spontaneous insights, these moments captured the pulse of where testing is headed-AI, automation strategies, and ethical considerations were all on the table.&lt;/p&gt;

&lt;p&gt;Here’s a quick look at what went down.&lt;/p&gt;

&lt;h1&gt;
  
  
  Angie Jones on AI, Ethics, Adaptation, and MCP
&lt;/h1&gt;

&lt;p&gt;In a recent fireside chat at Selenium Conf and Appium Conf, test automation leader Angie Jones shares valuable insights on the evolving role of AI in testing, the ethical considerations it brings, and the growing importance of frameworks like the Model Context Protocol (MCP).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What AI Can’t Do (Alone)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Angie begins by addressing a common misconception: that AI can operate entirely independently. She stresses that AI, while powerful, can’t go from zero to 100 without human involvement. “ &lt;em&gt;Trying to get it to solve everything on its own is a futile effort&lt;/em&gt;,” she explains. Humans must continue to guide and structure the problems AI solves, remaining the architects of their solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ethics in AI Implementation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When asked about ethical concerns, Angie emphasizes the importance of data responsibility. In industries like healthcare and finance, testers must be cautious about how AI interacts with sensitive information. It’s not just about what AI can do but what it should do. She also points out the risk of AI being exploited by bad actors and stresses the need for strong safeguards.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Power of Model Context Protocol (MCP)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A self-described “huge Model Context Protocol (MCP) advocate,” Angie speaks passionately about the benefits of MCP. She describes it as both “simple and elegant” while enabling complex integrations across teams and systems.&lt;/p&gt;

&lt;p&gt;Her company uses MCP organization-wide, including for CI/CD workflows and test automation. By adopting MCP, testers can expand beyond basic scripting and begin exploring how customer data and system interactions can enhance test coverage.        &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Message to Testers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Angie closes with a powerful reminder: adapt or be left behind. She acknowledges fear about AI replacing jobs but points out that those who embrace AI are already working smarter. “ &lt;em&gt;There’s a guy at my job who uses AI, finishes early and has time for more,&lt;/em&gt;” she said. “ &lt;em&gt;That’s the person who’s getting the promotion&lt;/em&gt;.”&lt;/p&gt;

&lt;h1&gt;
  
  
  Christian Bromann on Agentic Workflows and Web Standards
&lt;/h1&gt;

&lt;p&gt;At Selenium Conf and Appium Conf, we had the opportunity to sit down with Christian Bromann for a thoughtful discussion on how AI is shaping browser automation, the evolution of web standards, and what lies ahead for the testing ecosystem. He is well-known for his contributions to the open-source testing community.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Rethinking Agentic Workflows&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When asked how AI might reshape browser interactions in the coming years, Christian had a grounded perspective. While agentic workflows-where browsers are controlled via prompts-are getting a lot of attention, he believes their long-term value might be overstated. “ &lt;em&gt;If I have to prompt an AI to click a button, I could’ve clicked it myself&lt;/em&gt;,” he noted, suggesting that efficiency shouldn’t be compromised for novelty.&lt;/p&gt;

&lt;p&gt;Instead, Christian sees real promise in AI’s ability to validate system states by leveraging the browser’s knowledge of application context. He emphasizes that the community is moving toward integrating this intelligence into tools, allowing testers to validate broader aspects of a system with far less effort.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Beyond BiDi: The Road Ahead for Browser Standards&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Christian also reflects on the progress of &lt;a href="https://www.lambdatest.com/blog/webdriver-bidi-future-of-browser-automation/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=july_04&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;WebDriver BiDi&lt;/a&gt; (Bi-directional Protocol)-a web standard that’s been evolving since 2018. While some of its capabilities have already landed in browsers (e.g., for accessibility and authentication), he believes it’s just the beginning. The future, according to Christian, lies in extending BiDi protocols to support more interactions, effectively turning common browser functionalities into standardized APIs.&lt;/p&gt;

&lt;p&gt;He envisions a world where nearly every action in a browser can be programmatically represented via such standards, enhancing interoperability and reliability across testing tools.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Model Context Protocol (MCP): The Next Frontier?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;On the topic of AI integration, Christian highlights the potential of the Model Context Protocol (MCP). Particularly in the context of web components, MCP could allow individual elements-like a login form-to expose an MCP server. This would enable intelligent agents to understand both the presence and semantics of components on a page.&lt;/p&gt;

&lt;p&gt;“ &lt;em&gt;When agents can identify the components, know what they do, and how to interact with them, we’ll be closer to a truly semantic agentic workflow&lt;/em&gt;,” he further explains. The result? AI agents that understand the structure and behavior of web applications in a meaningful way.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Message to the Community&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Wrapping up the chat, Christian reflects on the value of community engagement. “ &lt;em&gt;We’re here at Selenium Conf, not just with the people who build the tools, but also those who use them&lt;/em&gt;,” he says; conferences like this are a chance to collaborate, contribute, and inspire each other. His message to the community was clear: everyone is welcome, and everyone can be part of the journey.&lt;/p&gt;

&lt;h1&gt;
  
  
  Jonathan Lipps on the Realities of Mobile Testing, AI Hype, and Developer Experience
&lt;/h1&gt;

&lt;p&gt;At Selenium Conf and Appium Conf, industry pioneer Jonathan Lipps shares candid insights on the evolution of mobile testing, the current state of &lt;a href="https://www.lambdatest.com/blog/ai-in-test-automation/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=july_04&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;AI in test automation&lt;/a&gt;, and the ongoing challenges developers face. Known for his deep involvement in the Appium project, Jonathan reflects not just on tools-but the philosophical and practical implications of the tech we use.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Evolution of Mobile Testing&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.lambdatest.com/learning-hub/mobile-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=july_04&amp;amp;utm_term=pd&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;Mobile testing&lt;/a&gt; has undergone a dramatic shift over the years. What was once considered a niche practice has become a non-negotiable part of modern app development. As Jonathan states, “ &lt;em&gt;If you’re building an app, automate it.&lt;/em&gt; “ But despite this growth, the mobile automation space hasn’t seen the same explosion of frameworks and experimentation that the web world has.&lt;/p&gt;

&lt;p&gt;While &lt;a href="https://www.lambdatest.com/learning-hub/web-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=july_04&amp;amp;utm_term=pd&amp;amp;utm_content=learning_hub" rel="noopener noreferrer"&gt;web testing&lt;/a&gt; has long thrived on diversity-with tools like Selenium, Cypress, and Playwright pushing boundaries-mobile testing remained constrained for a significant time. According to Jonathan, this was largely due to closed ecosystems and the limited tooling provided by mobile OS vendors. “ &lt;em&gt;We’re more subject to the tools given to us by the platforms&lt;/em&gt;,” he explains, highlighting an ongoing challenge even today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tooling Limitations and Vendor Lock-In&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When asked about the biggest pain in mobile testing, Jonathan didn’t hesitate: restrictive tooling. &lt;em&gt;“Much of the flakiness testers face isn’t about automation itself&lt;/em&gt;,” he said, “but the lack of accessible, reliable, full-featured tools-especially from Apple.” He emphasizes how difficult it remains to even set up testing on an iOS device, a pain compounded by security constraints and a lack of open collaboration from vendors.&lt;/p&gt;

&lt;p&gt;While acknowledging the efforts of platform teams to keep up with OS versions, he underscores that the testing experience is often compromised by decisions made outside the testing community-a tension that continues to slow innovation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI in Mobile Testing: Promise vs. Reality&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Despite the buzz, Jonathan remains skeptical of AI’s current impact on mobile automation. “ &lt;em&gt;There’s been a lot of marketing&lt;/em&gt;, &lt;em&gt;but not much that’s truly transformational&lt;/em&gt;,” he adds. He’s yet to hear a compelling case study where AI has revolutionized how an enterprise handles mobile testing. Most use cases today feel experimental, not operational.&lt;/p&gt;

&lt;p&gt;Tools that suggest locators or assist with test authoring have been around for years, and while useful, they don’t reflect the promise of AI in its modern, ML/LLM-powered form. “ &lt;em&gt;People are trying it based on hype&lt;/em&gt;, &lt;em&gt;but I haven’t seen the results yet&lt;/em&gt;,” he adds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Value of Purpose-Built Protocols&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;While Large Language Models (LLMs) get much attention, Jonathan believes that structured protocols-like Model Context Protocol (MCP)-might offer more practical value. Instead of relying on generalized AI systems that “hallucinate,” MCP enables components to define known actions and properties, making automation more predictable and less error-prone.&lt;/p&gt;

&lt;p&gt;“ &lt;em&gt;I like that it adds structure and takes some of the magic out of AI,&lt;/em&gt; “ he explains. When paired with trusted systems like Appium servers or APIs, these protocols offer real reliability-something LLMs can’t guarantee.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI in Life: Use it Where It Helps, Not Where It Hurts&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Jonathan concludes with a thoughtful message on the philosophy of AI adoption. While it’s useful for automation, he warns against overextending it into personal or emotional spaces. “ &lt;em&gt;Don’t turn to AI for things that make life full-like music, creativity, or relationships,&lt;/em&gt; “ he shares. As a musician, he values creating art for personal expression, not outsourcing it to machines.&lt;/p&gt;

&lt;p&gt;His parting words: &lt;em&gt;“Let AI into your automation. But not into everything else. Keep the human in the loop.”&lt;/em&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;The chats at Selenium Conf and Appium Conf remind us that while the testing world is changing fast, some things still need a human touch. Whether it is Angie Jones urging us to be mindful of how we use AI, Christian Bromann calling for smarter, standards-driven tools, or Jonathan Lipps highlighting the ongoing struggles of mobile automation-each voice brings clarity to the hype.&lt;/p&gt;

&lt;p&gt;Yes, AI is exciting. But it’s not a silver bullet. The tools that truly make a difference are the ones that bring structure, reliability, and real-world value-like MCP. And behind every good tool, there’s a community of testers asking hard questions, experimenting, and pushing things forward.&lt;/p&gt;

&lt;p&gt;So, as we explore what’s next, let’s stay curious, stay grounded, and above all-stay human.&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>appium</category>
      <category>conf2025</category>
      <category>softwaretesting</category>
    </item>
    <item>
      <title>LambdaTest Collaborates With Selenium to Drive Innovation in Test Automation</title>
      <dc:creator>TestMu AI Team</dc:creator>
      <pubDate>Thu, 03 Jul 2025 11:57:03 +0000</pubDate>
      <link>https://forem.com/testmuai/lambdatest-collaborates-with-selenium-to-drive-innovation-in-test-automation-3gmb</link>
      <guid>https://forem.com/testmuai/lambdatest-collaborates-with-selenium-to-drive-innovation-in-test-automation-3gmb</guid>
      <description>&lt;p&gt;We’re over the moon to share some big news: LambdaTest is now an &lt;strong&gt;official Development Partner&lt;/strong&gt; of the Selenium Project. &lt;/p&gt;

&lt;p&gt;In many ways, it’s a story of &lt;em&gt;building what once built us&lt;/em&gt; — Selenium’s open-source framework fueled LambdaTest’s inception and success, and now LambdaTest is giving back by contributing to the Selenium project.&lt;/p&gt;

&lt;h1&gt;
  
  
  From Sponsor to Partner: A Milestone Achieved
&lt;/h1&gt;

&lt;p&gt;Our relationship with Selenium has evolved naturally over the years. Selenium has been foundational to our growth from day one — with its robust support and integration, it has formed the core of LambdaTest’s widespread adoption by users.        &lt;/p&gt;

&lt;p&gt;As we scaled, we became active sponsors of the project, supporting Selenium conferences, community events, and nurturing the testing community with resources. Now, we’re taking the next step by dedicating engineering resources to contribute directly to Selenium’s core codebase.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“Selenium has been integral to LambdaTest’s journey from day one. It’s like we’re building what once built us — giving back to the foundation that supported our growth. We’re honored and incredibly excited to work even more closely with Selenium and make a lasting positive impact for testers worldwide. Together, we will make test automation more powerful and accessible for everyone.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;- Asad Khan, CEO and Co-Founder of LambdaTest&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Open Source in Our DNA
&lt;/h1&gt;

&lt;p&gt;Open source is the engine that drives us every day here at LambdaTest. From our earliest days, we’ve seen how community‑led projects spark innovation and solve real‑world challenges faster than anything built behind closed doors. That conviction inspired us to create our Open Source Program Office (OSPO)-a dedicated team whose sole mission is to nurture and uplift the testing tools that matter most.&lt;/p&gt;

&lt;p&gt;Through the &lt;a href="https://www.lambdatest.com/open-source?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=july_03&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;LambdaTest Open Source&lt;/a&gt; program, we provide LambdaTest’s testing infrastructure to community projects, so maintainers can run comprehensive test suites without worrying about servers or setup.&lt;/p&gt;

&lt;p&gt;We assign seasoned engineers to mentor contributors, review code, and share best practices to support contributors at every step. And we back it all with sponsorship support, helping open‑source teams cover hosting costs, event expenses, or even their own development time.&lt;/p&gt;

&lt;p&gt;The LambdaTest Grants for Open Source program takes this one step further. It’s our way of celebrating the unsung heroes, the maintainers who keep critical libraries alive and the contributors who squash bugs that affect thousands.&lt;/p&gt;

&lt;p&gt;Every grant shines a spotlight on their work and provides financial backing to fuel their next breakthrough.&lt;/p&gt;

&lt;p&gt;With this Selenium Development partnership, we’re doubling down on the commitment we’ve made to Open Source.&lt;/p&gt;

&lt;p&gt;Expect to see us contributing to Selenium’s core codebase, working side-by-side with maintainers, enhancing documentation, and putting LambdaTest’s full support behind the community.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Does This Partnership Mean to Us?
&lt;/h1&gt;

&lt;p&gt;Being officially added as a Selenium Development Partner is a milestone for us and a shared commitment to building a stronger Selenium and a more resilient testing ecosystem for everyone.&lt;/p&gt;

&lt;p&gt;Here’s what this partnership means for each part of our community:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;For the community:&lt;/strong&gt; More hands on deck! Our engineers will work directly with Selenium maintainers to fix issues, develop new features, architect new capabilities, and streamline releases. We are helping carry out the load of maintaining this vital project.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;For LambdaTest users:&lt;/strong&gt; Expect tighter integration and early access to improvements. Since Selenium is at the heart of our platform, our contribution allows us to incorporate updates and new capabilities into LambdaTest much faster than ever.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This partnership sets an example of how commercial platforms and open-source projects can join forces to uplift the entire tech community.&lt;/p&gt;

&lt;p&gt;In short, as Selenium evolves, testers, developers, and vendors all benefit from it. By channeling our engineering resources back into the project, we’re co‑investing in the future of test automation together.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;“I am thrilled about this official partnership. It marks a new chapter in test automation innovation. This isn’t just a one-time collaboration but a long-term commitment to open-source excellence. By joining forces, we’re set to build robust, scalable solutions that empower developers and enhance quality assurance across the board. I’ve seen firsthand how much we can achieve when the community and companies grow together. With LambdaTest and Selenium in tandem, our collective future looks brighter than ever.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;- Sri Harsha, Engineering Manager OSPO, LambdaTest &amp;amp; Selenium TLC Member&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Coming Full Circle: Building the Future Together
&lt;/h1&gt;

&lt;p&gt;In many ways, this partnership brings our story full circle.&lt;/p&gt;

&lt;p&gt;LambdaTest has been built on the strengths of Selenium and other open-source technologies, and now, two decades into Selenium, we are their official development partner to help shape the future of test automation.&lt;/p&gt;

&lt;p&gt;Ultimately, &lt;strong&gt;this is about building together&lt;/strong&gt; -uniting industry knowledge, user insights, and a passion for open collaboration. We can’t wait to see what the future holds, and we’re grateful you’re with us on this exciting path. Now it’s time to build the future together. 🚀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Testing!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Want to learn more about how this partnership will benefit your testing practice?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Or have feedback on Selenium features, want to report issues, or explore how you can get involved?&lt;/p&gt;

&lt;p&gt;Whether you’re curious about the partnership, interested in shaping the future of open-source testing, or want to be part of our Open Source Program or Grants initiative, we’d love to hear from you. Reach out to our Open Source Program Office anytime at &lt;strong&gt;&lt;a href="mailto:opensource@lambdatest.com"&gt;opensource@lambdatest.com&lt;/a&gt;&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>lambdatest</category>
      <category>testing</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>HyperExecute MCP Server: The Future of AI-Native Test Automation</title>
      <dc:creator>TestMu AI Team</dc:creator>
      <pubDate>Sat, 28 Jun 2025 13:46:51 +0000</pubDate>
      <link>https://forem.com/testmuai/hyperexecute-mcp-server-the-future-of-ai-native-test-automation-3oad</link>
      <guid>https://forem.com/testmuai/hyperexecute-mcp-server-the-future-of-ai-native-test-automation-3oad</guid>
      <description>&lt;p&gt;In today’s fast-paced development landscape, testing at scale can be a daunting challenge. The complexity of configuring test runners, managing executions, and troubleshooting errors often leads to significant delays. To tackle these obstacles, LambdaTest introduced the &lt;a href="https://www.lambdatest.com/hyperexecute-mcp-server?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_28&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;HyperExecute MCP Server&lt;/a&gt;, which integrates the &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt;. This server empowers AI models to seamlessly interact with testing tools, automating complex tasks such as code analysis, test command generation, and configuration file creation-all within minutes.&lt;/p&gt;

&lt;p&gt;Building upon the success of &lt;a href="https://www.lambdatest.com/hyperexecute?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_28&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;HyperExecute&lt;/a&gt;, our AI-native test orchestration platform, the MCP Suite further enhances its capabilities. HyperExecute now accelerates testing by up to &lt;strong&gt;70% faster&lt;/strong&gt; than traditional grids. The integration of MCP improves scalability, allowing teams to handle larger test suites with ease. With real-time insights and automated documentation access, the entire testing process becomes more efficient. By incorporating MCP, HyperExecute now offers faster, more intelligent testing, enabling teams to deliver software with greater speed and precision.&lt;/p&gt;

&lt;h1&gt;
  
  
  Understanding MCP: Model Context Protocol
&lt;/h1&gt;

&lt;p&gt;The &lt;strong&gt;Model Context Protocol&lt;/strong&gt; (MCP) is an open standard that creates a universal language between AI models and applications. MCP essentially works like a “USB-C for AI integrations” allowing AI assistants to seamlessly connect with diverse software tools through a standardized interface. This eliminates the fragmentation problem of building custom implementations for each new integration, making it significantly easier to expand an AI assistant’s capabilities across the digital ecosystem.​​​​​​​​​​​​​​​​&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%2Ftes5oblkodiq8okg1i9j.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%2Ftes5oblkodiq8okg1i9j.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Leveraging MCP, the &lt;strong&gt;HyperExecute MCP Server&lt;/strong&gt; enables AI to analyze code, generate precise test commands, automatically create configuration files, and retrieve necessary documentation directly within the testing workflow. This integration significantly reduces manual configuration and debugging time, allowing teams to dedicate their efforts to higher-value activities.&lt;/p&gt;

&lt;h1&gt;
  
  
  HyperExecute MCP Server: AI-Native Testing Simplified
&lt;/h1&gt;

&lt;p&gt;Historically, setting up HyperExecute could take anywhere from several hours to weeks, depending on project complexity. With the introduction of the MCP Server, this process has been dramatically streamlined, reducing setup time to mere minutes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Key Capabilities of HyperExecute MCP Server:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With the MCP Server, users can manage HyperExecute directly from their Integrated Development Environment (IDE), enjoying capabilities such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Automated Codebase Analysis:&lt;/strong&gt; MCP Server intelligently identifies project types, frameworks, and test structures without manual intervention.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Dynamic Test Command Generation:&lt;/strong&gt; Automatically produces precise command-line instructions tailored to the analyzed tests.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Automatic Configuration File Creation:&lt;/strong&gt; Eliminates manual setup by generating accurate YAML configuration files customized for each project.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Real-Time Test Monitoring:&lt;/strong&gt; The integrated Job Info Tool delivers immediate updates regarding test executions, simplifying progress tracking.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Efficient Debugging:&lt;/strong&gt; The Sessions Tool facilitates detailed inspection of test results, easily identifying failures through comprehensive recordings.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Instant Documentation Retrieval:&lt;/strong&gt; Integrated AI agents utilizing Agentic RAG technology quickly deliver relevant insights from HyperExecute’s documentation, providing immediate assistance when needed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Enhancing Developer and Tester Experiences
&lt;/h1&gt;

&lt;p&gt;The core advantage of the MCP Server is its capability to manage complex testing tasks autonomously, utilizing natural interactions and commands. By significantly reducing setup times from hours to seconds, the MCP Server makes advanced test automation widely accessible and practical.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Hours of Setup, Reduced to Seconds:&lt;/strong&gt; Reduces previously time-consuming configurations to near-instantaneous execution.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Fully Automated Operations:&lt;/strong&gt; Eliminates the need for repetitive manual tasks, ensuring a truly continuous integration and continuous delivery (CI/CD) pipeline.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Seamless Scalability:&lt;/strong&gt; Effectively handles projects of varying sizes, effortlessly adapting to the specific testing demands of each team.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Curious how the MCP Server and AI agents are reshaping infrastructure and automation workflows? Hear it directly from the experts — watch the video below to see their impact in action.&lt;/p&gt;

&lt;h1&gt;
  
  
  Revolutionizing Test Automation with AI
&lt;/h1&gt;

&lt;p&gt;HyperExecute previously set a benchmark by executing tests considerably faster than traditional grids. The MCP Server enhances this further by delivering substantial improvements in developer experience and test efficiency.&lt;/p&gt;

&lt;p&gt;Automated testing should be intelligent, streamlined, and outcome-driven, minimizing the complexity involved in test configurations and management. Experience the next level of AI-native test automation with HyperExecute MCP Server.&lt;/p&gt;

&lt;p&gt;Happy Testing!&lt;/p&gt;

</description>
      <category>hyperexecute</category>
      <category>mcpserver</category>
      <category>ainative</category>
      <category>testautomation</category>
    </item>
    <item>
      <title>How to Use Selenium for Record and Playback</title>
      <dc:creator> Tahera Alam</dc:creator>
      <pubDate>Fri, 27 Jun 2025 13:21:11 +0000</pubDate>
      <link>https://forem.com/testmuai/how-to-use-selenium-for-record-and-playback-39im</link>
      <guid>https://forem.com/testmuai/how-to-use-selenium-for-record-and-playback-39im</guid>
      <description>&lt;p&gt;Selenium is a popular test automation framework that comes with a robust suite of tools, simplifying everything from writing test scripts to executing them.&lt;/p&gt;

&lt;p&gt;You can also use Selenium for record and playback tests with one of its components, the Selenium IDE. With Selenium IDE, you can create automated tests without writing a single line of code.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Is Selenium IDE?
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.lambdatest.com/learning-hub/selenium-ide?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_27&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Selenium IDE&lt;/a&gt; is a browser extension that simplifies the process of creating automated tests for web applications. It allows you to record your actions on a website in the browser and playback those actions to verify the expected functionality.&lt;/p&gt;

&lt;p&gt;It provides a user-friendly interface that allows you to quickly create and run test cases directly within your browser without requiring any technical expertise.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Is Record and Playback in Selenium?
&lt;/h1&gt;

&lt;p&gt;When it comes to codeless test automation, the record and playback feature in Selenium allows you to record your interactions with a website, and then you play them back to see if everything works as expected.&lt;/p&gt;

&lt;p&gt;The record and playback feature is available within its ecosystem through the Selenium IDE. When you enable recording, the IDE captures every action you perform in the browser and translates it into a sequence of commands.&lt;/p&gt;

&lt;p&gt;These commands are then saved as a test script, which can be executed later to replicate the same interactions. It also eliminates the need for repetitive manual testing and ensures consistency in test execution.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to Record and Playback With Selenium?
&lt;/h1&gt;

&lt;p&gt;Now, let’s look at how to use Selenium for record and playback tests.&lt;/p&gt;

&lt;h1&gt;
  
  
  Install the Selenium IDE
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;: &lt;em&gt;When writing this blog, the Selenium IDE extension is no longer available for the Chrome browser on the Chrome Web Store as it didn’t align with Chrome extension best practices.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;You can still access the Selenium IDE extension on other browsers, such as Brave.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To demonstrate how to use Selenium for record and playback, we’ll use the Brave browser to run our tests.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Install the Selenium IDE Chrome extension.&lt;/li&gt;
&lt;li&gt; Open the Selenium IDE and click on &lt;strong&gt;Create a new project&lt;/strong&gt;.&lt;/li&gt;
&lt;/ol&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%2Fsewb3jz02byxyp14rt43.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%2Fsewb3jz02byxyp14rt43.png" alt=" " width="768" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3. Give it a name and click &lt;strong&gt;OK&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkco3xzz6jdr21wp4t7zn.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%2Fkco3xzz6jdr21wp4t7zn.png" alt=" " width="768" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Create a New Test
&lt;/h1&gt;

&lt;p&gt;Now that we have a project ready, let’s create our first test in this project. For this purpose, we will use the LambdaTest eCommerce Playground website.&lt;/p&gt;

&lt;p&gt;Currently, this is how our workspace looks like:&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%2Fzjsuy1eqbfj77skrfhes.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%2Fzjsuy1eqbfj77skrfhes.png" alt=" " width="768" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Click on the &lt;strong&gt;Add new test&lt;/strong&gt; button in the top left side and give the test a name:&lt;/li&gt;
&lt;/ol&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%2Fai7r6248b6dputxz7azu.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%2Fai7r6248b6dputxz7azu.png" alt=" " width="535" height="468"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2. Click &lt;strong&gt;ADD&lt;/strong&gt; and now we are ready to actually record the test and play it back.&lt;/p&gt;

&lt;h1&gt;
  
  
  Record the Test
&lt;/h1&gt;

&lt;p&gt;Before you can start recording, you need to enter the URL of the website you want to test. To demonstrate this, we’ll use the LambdaTest eCommerce Playground. So, go ahead and paste this URL &lt;a href="https://ecommerce-playground.lambdatest.io/" rel="noopener noreferrer"&gt;&lt;em&gt;https://ecommerce-playground.lambdatest.io/&lt;/em&gt;&lt;/a&gt; in the playback base URL field.&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%2Fth5kmg8aikwg3rtftl37.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%2Fth5kmg8aikwg3rtftl37.png" alt=" " width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you enter the URL, click the recording button (at the top right in red). Selenium will open the website in a new tab and start recording all your interactions.&lt;/p&gt;

&lt;p&gt;As you navigate through the website, Selenium records every action. This includes clicking buttons, filling out forms, selecting dropdown options, and navigating between web pages.&lt;/p&gt;

&lt;p&gt;Now that recording is active, let’s follow the below steps will help you understand how Selenium IDE captures user interactions.&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%2Fgm4ty1grpasmx8s790dz.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%2Fgm4ty1grpasmx8s790dz.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Search for an iMac, check the results, and open a product page — Selenium IDE records each step.&lt;/li&gt;
&lt;li&gt; Click on the search bar, type “iMac,” and press Enter or click the search button.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The Search results page appears, and Selenium IDE captures the navigation.&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%2Fbmfha3mfwo1rse0dw446.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%2Fbmfha3mfwo1rse0dw446.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3. Click on any iMac product to open its details page — this click is also recorded.&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%2F9381dz9lbyq2fo5szrw1.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%2F9381dz9lbyq2fo5szrw1.png" alt=" " width="800" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4. Once you have completed the actions, return to Selenium IDE and stop the recording.&lt;/p&gt;

&lt;p&gt;Now, let’s move on to the next step — playing back the test to see if it works as expected.&lt;/p&gt;

&lt;h1&gt;
  
  
  Playback the Test
&lt;/h1&gt;

&lt;p&gt;Playing back a test in Selenium IDE allows you to automatically re-run the recorded steps and check whether the interactions you recorded work as intended.&lt;/p&gt;

&lt;p&gt;Now, let’s see how we can playback the test we just recorded in the previous step.&lt;/p&gt;

&lt;p&gt;Here, at the top of the Selenium IDE window, you can see a &lt;strong&gt;Run current test&lt;/strong&gt; button. Click it, and Selenium IDE will automatically execute each recorded action step by step.&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%2Fdr36pttahxz20zi34l7m.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%2Fdr36pttahxz20zi34l7m.png" alt=" " width="768" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also run multiple tests in a sequence by clicking the right arrow next to each test. This will execute every test in your project one after another.&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%2Fxiws7reagr8l4ysqdgk0.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%2Fxiws7reagr8l4ysqdgk0.png" alt=" " width="800" height="202"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It becomes useful when verifying multiple workflows or features in a web application. Since our project has a single test, both buttons will have the same effect.&lt;/p&gt;

&lt;p&gt;As the test runs, you’ll see the browser automatically repeat the recorded steps- navigating to the website, searching &lt;em&gt;imac&lt;/em&gt;, viewing the results, and opening the product page just as you did while recording.&lt;/p&gt;

&lt;p&gt;When this playback takes place, Selenium IDE offers feedback in real-time. If the test passes, all steps will run without errors. Selenium identifies a failed step and highlights it (for instance, if an element is not found or there are changes in the structure of the page). This makes it possible to quickly debug the test.&lt;/p&gt;

&lt;p&gt;At the bottom of Selenium IDE’s window, you’ll see the test log showing the steps executed along with their timestamps and a message saying everything was executed successfully.&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%2F2455ljql9yn93h8t3wc4.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%2F2455ljql9yn93h8t3wc4.png" alt=" " width="768" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that we know how to record and playback a test, let’s explore how to export your test so it can be used in Selenium or other test automation frameworks.&lt;/p&gt;

&lt;h1&gt;
  
  
  Export a Test
&lt;/h1&gt;

&lt;p&gt;Selenium IDE supports exporting tests in various programming languages and frameworks.&lt;/p&gt;

&lt;p&gt;Let’s see how you can export your test:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Click on the three dots menu located in the top left corner of the Selenium IDE window:&lt;/li&gt;
&lt;/ol&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%2Fum8ntsx063knonhztmxb.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%2Fum8ntsx063knonhztmxb.png" alt=" " width="767" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2. Choose your preferred language/framework and other optional configurations, and click &lt;strong&gt;Export&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqsj6e5ht8ny6p077q5lz.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%2Fqsj6e5ht8ny6p077q5lz.png" alt=" " width="768" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After selecting the format, simply save the file on your local machine and you are done.&lt;/p&gt;

&lt;p&gt;The exported file will contain the test script in your chosen programming language. This script includes the commands and steps that Selenium IDE recorded.&lt;/p&gt;

&lt;p&gt;You can now import this file into your development environment (e.g., Eclipse, IntelliJ IDEA, VS Code) and integrate it with your Selenium WebDriver project.&lt;/p&gt;

&lt;h1&gt;
  
  
  How to Run Selenium IDE Tests on the Cloud?
&lt;/h1&gt;

&lt;p&gt;Up until now, we have learned how to record, playback, and export tests using the Selenium IDE. However, there are limitations to running tests on only your local browser. For instance, if you need to test on several browsers and operating systems to check how your website functions?&lt;/p&gt;

&lt;p&gt;This is where cloud testing platforms like LambdaTest come into play. It is an AI-native test execution platform that enables you to execute Selenium IDE tests on a cloud-based grid.&lt;/p&gt;

&lt;p&gt;LambdaTest provides you with access to various combinations of browsers and operating systems (Chrome, Firefox, Edge, Safari on Windows/macOS, etc.), which can help you run your tests in parallel, enabling faster software release cycles.     &lt;/p&gt;

&lt;p&gt;Now, let’s see how we can run the Selenium IDE tests on LambdaTest with just a few simple steps.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Install Node.js.&lt;/li&gt;
&lt;li&gt; Connect Selenium IDE with LambdaTest. For that, you’ll need your Username and Access Key. To get the access, head over to your Account Settings &amp;gt; Password &amp;amp; Security.&lt;/li&gt;
&lt;li&gt; Install the Selenium IDE Runner (or the SIDE Runner) using the below given command:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install -g selenium-side-runner
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This will help you run the tests outside the browser.&lt;/p&gt;

&lt;p&gt;4. Open Selenium IDE and click on the save project icon to save it to your local machine.&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%2Fpn2t9rf81cg1ua84nfc7.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%2Fpn2t9rf81cg1ua84nfc7.png" alt=" " width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This file contains your recorded test case, which will be used to run tests on LambdaTest. You can also access the exported Selenium IDE project in this &lt;a href="https://github.com/Undisclosed64/record-playback-demo" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;5. To direct your tests to the platform, you’ll need the LambdaTest Username and Access Key in the LambdaTest grid URL. In this URL, replace &lt;em&gt;user-name&lt;/em&gt; and &lt;em&gt;access-key&lt;/em&gt; with your actual LambdaTest credentials.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;https://user-name:access-key@hub.lambdatest.com/wd/hub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;6. Desired capabilities are a set of key-value pairs that let you define the specific environment for test execution.   &lt;/p&gt;

&lt;p&gt;So, in this step, specify the browsers and operating systems you want to test against. You can also use LambdaTest Automation Capabilities Generator to simplify this process.&lt;/p&gt;

&lt;p&gt;For instance, to test on Chrome with Windows 11, we will use the following configuration for Selenium 4:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;options = ChromeOptions()
options.browser\_version = "latest"
options.platform\_name = "Windows 11"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;7. Open your terminal, navigate to the directory containing your .side file, and run the following command, replacing the &lt;em&gt;user-name&lt;/em&gt; and &lt;em&gt;access-key&lt;/em&gt; with your actual values:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;selenium-side-runner "your-test-file.side" --server
https://user-name:access-key@hub.lambdatest.com/wd/hub -c " options =
ChromeOptions() options.browser\_version = "latest" options.platform\_name = "Windows 11""
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Ensure to replace &lt;em&gt;your-test-file.side&lt;/em&gt; with the accurate file name of your Selenium IDE project.&lt;/p&gt;

&lt;p&gt;With these steps, your Selenium IDE test is now running on the LambdaTest online Selenium Grid.&lt;/p&gt;

&lt;p&gt;You can now check the test execution results directly from the LambdaTest Web Automation dashboard.&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%2Fgqlswwilwvoopbtls74n.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%2Fgqlswwilwvoopbtls74n.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Best Practices to Use Selenium for Record and Playback
&lt;/h1&gt;

&lt;p&gt;Record and playback is an easy way to automate tests without writing test scripts, but to make the most of this functionality, you’ll need to follow below best practices.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Avoid using XPath whenever possible. It tends to break when a webpage’s structure changes. Instead, choose more reliable options like IDs, class names, or data attributes.&lt;/li&gt;
&lt;li&gt;  Split your tests into smaller, reusable chunks. Instead of cramming multiple actions into a single test, create separate test cases for common tasks like logging in or form submissions.&lt;/li&gt;
&lt;li&gt;  Web applications aren’t always static, so use control flow commands like if, while, and times to handle changing conditions. This helps make your tests more adaptable.&lt;/li&gt;
&lt;li&gt;  Testing isn’t just about running actions — it’s about verifying results. Add assertions to check that the application behaves as expected at key points in your test.&lt;/li&gt;
&lt;li&gt;  Automated tests often fail because they move too fast. Adding wait commands ensures the script pauses until elements are ready, preventing unnecessary failures.&lt;/li&gt;
&lt;li&gt;  Recorded scripts aren’t perfect. Instead of relying on them as-is, take the time to refine them, adding logic to handle dynamic content and edge cases.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;If you are just getting started with test automation, then there is nothing better than using Selenium IDE to record and playback tests. It lets you record and replay tests, which makes it ideal for accelerating repetitive tasks.&lt;/p&gt;

&lt;p&gt;That said, the record and playback feature is not without its limitations. It is good for simple tests and relatively static websites but not ideal for complex workflows or dynamic elements that update often.&lt;/p&gt;

&lt;p&gt;You’ve just learned the fundamentals; now let’s get into Selenium IDE and automate some web tests!&lt;/p&gt;

&lt;p&gt;Happy testing!&lt;/p&gt;

</description>
      <category>selenium</category>
      <category>seleniumautomation</category>
      <category>softwaretesting</category>
      <category>recordandplayback</category>
    </item>
    <item>
      <title>19 Best Practices for Automation Testing with Node.js</title>
      <dc:creator>Harish Rajora</dc:creator>
      <pubDate>Wed, 25 Jun 2025 02:38:50 +0000</pubDate>
      <link>https://forem.com/testmuai/19-best-practices-for-automation-testing-with-nodejs-47e7</link>
      <guid>https://forem.com/testmuai/19-best-practices-for-automation-testing-with-nodejs-47e7</guid>
      <description>&lt;p&gt;Node.js has become one of the most popular frameworks for web development, powering millions of applications. As projects grow in complexity, automation testing with Node.js is essential to ensure seamless performance. This article explores the best practices for Node.js automation testing in 2025, helping you build reliable, high-quality applications.&lt;/p&gt;

&lt;p&gt;While testing a weather forecast app in Node.js could be highly complex due to multiple data sources, APIs, and location tracking, this guide simplifies the process. Instead of diving into such a large-scale application, we’ll walk through a step-by-step approach to automation testing with Node.js, ensuring you understand the fundamentals and best practices for automation testing.&lt;/p&gt;

&lt;h1&gt;
  
  
  Initializing A Simple Test In Node JS
&lt;/h1&gt;

&lt;p&gt;If you are new to node.js then here I will initialize a simple test in node.js for you to understand the procedure of testing in node.js. Let us create a basic function of multiplying two numbers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function mul(x,y)
{
return x\*y;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This is a basic function for multiplication. But, this function is not valid for every case and can stand invalid for various other numbers. We cannot perform testing in such a situation. We will extend this function to validate the equality feature.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function mul(x,y)
{
return x\*y;
}
function testMul()
{
var x = 4;
var y = 5;
val mul = x\*y;
var mul2 = mul(4,5);
if(mul == mul2)
console.log(‘Equality Test Passed’);
else
console.log(‘Equality Test Failed’);
}
testMul();

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

&lt;/div&gt;



&lt;p&gt;After writing the basic tests, we will initialise the new node project by hooking it up to the npm.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now you need to install the modules. As we discuss further in this article you will learn more about the importance of Mocha and Chai in the node js testing. Mocha gives you a good platform to define your test case suites, hooks and use assertion of whatever library you want to use. Chai on the other hand is used for writing the assertions only. These assertions are the human readable test codes which has advantages of its own.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --save-dev mocha chai
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After this, I have created two js files. One being test.js and other mull.js . Save the &lt;strong&gt;test.js&lt;/strong&gt; in the test folder and &lt;strong&gt;mull.js&lt;/strong&gt; in the root directory.&lt;/p&gt;

&lt;p&gt;Now paste the function &lt;strong&gt;mul&lt;/strong&gt; written above with an extra line.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function mul(x,y)
{
return x\*y;
}
module.exports = mul;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Exporting it will help us in adding it to the require line as we perform testing with node.js.&lt;/p&gt;

&lt;p&gt;Open your test.js file in the tests folder and write the following test code given below to go-ahead testing with node.js. This test code will test the equality of the two functions. The expect variable is the object code from chai library to write the “expect” part of the assertion and multiply will be the variable that contains the exported module of the code given just above it (module.exports = mul).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var expect = require(‘chai’).expect;
var multiply = require(‘../mul’);
describe(‘mul()’, function(){
    it(‘should multiply two number’, function(){
var x = 4;
var y = 5;
val mul = x\*y;
var mul2 = mul(4,5);
expect(mul2).to.be.equal(mul)
});
});
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Just run your tests now through npm test in the console window and you are good to go.&lt;/p&gt;

&lt;h1&gt;
  
  
  Best Practices For Testing Node JS
&lt;/h1&gt;

&lt;p&gt;Testing tells the stability of your application and if not, makes it more stable which in turn save you from a sudden wrong commit which can take the whole software down with it.&lt;/p&gt;

&lt;p&gt;Testing is required before you push your code to your users so that no one is bugged by any of the unwanted behaviour of the application. Being this important, we will see some of the best practices for testing Node JS in 2025.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. Isolated and Atomic
&lt;/h1&gt;

&lt;p&gt;Test should be atomic and isolated. Every test should run independently and without being dependant on each other. If neither test is dependent on any other test then if one test fails, other tests are not affected. Also, the tests should follow the atomicity property. It should not fail in between suddenly. A test should be entered and exited with the pass or fail result smoothly.&lt;/p&gt;

&lt;p&gt;You should also keep in mind that the data you are testing upon should be separate for every test. More than one tests working on the same global data harms the overall motive of using the tests upon the application. Your time will absolutely increase leading to good performance but it is of no point. Keep your data specific to the tests.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. Naming Of Your Test
&lt;/h1&gt;

&lt;p&gt;This is one of the most basic and important feature for &lt;a href="https://www.lambdatest.com/blog/17-lessons-i-learned-for-writing-effective-test-cases/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_23&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;writing effective test cases&lt;/a&gt;. A test should be named meaningful and easily understood by other departments who are not related to testing such as development team. A name should not be any random name such as foo() being used popularly. After seeing that your test is no random word, you should focus on what you should name your test. A test name should constitutes of   &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  What is being tested?&lt;/li&gt;
&lt;li&gt;  What are the different scenarios under which you are testing?&lt;/li&gt;
&lt;li&gt;  What should be the expected result of the test?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here is an example of a meaningful naming convention for testing node.js.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function CheckCountryLanguage()
{
//code to check if the application is showing data in the country’s official language
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The above test name makes sense because we can easily get what that function would be doing. What if I had written the function name as foo? Then I would have to read the complete code to understand the working of the function.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Using Assertions
&lt;/h1&gt;

&lt;p&gt;An assertion in the programming language is a statement for which we declare at the time of coding. This declaration may or may not be true and hence provides the boolean output with true or false. The declaration itself contains the meaning of the test code such as expect(‘age’).to.be.equal(23).&lt;/p&gt;

&lt;p&gt;This is self-explanatory and cuts the code lines’ logic to a great extent. If the variable ‘age’ is equal to 23 then True is printed or else False.&lt;/p&gt;

&lt;p&gt;Assertions are more beneficial than normal tests because they already provide a statement in the test case. Also, when an assertion is run, you don’t need to know what was the response and why you got it. It would just provide you whether the test failed or passed.&lt;/p&gt;

&lt;p&gt;A test will use logic in test cases while assertions are the human readable forms where you write tests in human readable forms. This helps when analyzing the tests after they are run.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;expect(‘currentweather’).to.be(‘string’);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Such assertions are human readable and are self-explanatory about the test they are performing. This expect shows that the currentWeather has to be a string such as Hazy, Clear or Rainy etc.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. Use Test Runner
&lt;/h1&gt;

&lt;p&gt;A &lt;a href="https://www.lambdatest.com/learning-hub/test-runner?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_23&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;test runner&lt;/a&gt; is a library or a tool that takes a source code directory which contains the unit tests and runs tests on it. After executing the tests, it writes the results back on the console or the log files. It is always recommended to use a good test runner and some of the testers use their own test runners too.&lt;/p&gt;

&lt;p&gt;While having a test runner can be advantageous with the databases as it can take the database values (dummy or real) and execute different tests on it. It can load fixtures too.&lt;/p&gt;

&lt;p&gt;Mocha is a test runner. Mocha can provide you a programmatic way to run the tests via command line tools on ES6 codebase.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Focus On Test Coverage
&lt;/h1&gt;

&lt;p&gt;A &lt;a href="https://www.lambdatest.com/learning-hub/test-coverage?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_23&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;test coverage&lt;/a&gt; while writing the tests is the amount of source code you are covering in your test. In simple words it can also be said the amount of application as a whole you are covering for your test. While writing the tests, it is considered the most important thing to work upon. So how can you increase your test coverage?&lt;/p&gt;

&lt;p&gt;First of all, you should always keep in mind that test coverage percentage is totally depended upon the nature of your application. If it is some application say Music Player then it need not have 100% test coverage because as we increase the test coverage it becomes more and more expensive for the company.&lt;/p&gt;

&lt;p&gt;But if you have an important application like any real time application receiving data from satellite or an application for the manufacturer of Airplanes then you need to have 100% coverage because it will affect the application to a great extent.&lt;/p&gt;

&lt;p&gt;We will focus on test coverage for the upcoming points. For this you can use Mocha along with Istanbul and run your Mocha tests over Istanbul.&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Use Plugins For Test Coverage
&lt;/h1&gt;

&lt;p&gt;Plugins are available which tests all the test coverage. Plugins will not help you in writing the tests that covers maximum code but it will definitely help you analyze your test and tell you if a test is skipped or not. It will also show if all the test cases are covered or not.&lt;/p&gt;

&lt;p&gt;This way you might be thinking that you have written the tests that covers some percentage of the code but in reality some tests are skipped bringing down the overall percentage.&lt;/p&gt;

&lt;h1&gt;
  
  
  7. Analyse The Test Coverage Report
&lt;/h1&gt;

&lt;p&gt;A test coverage report can be generated with the help of Istanbul and Mocha. Once you have generated the test coverage report, try to analyze the report. A report with say 90% test coverage that you might think will not be covering the complete 90% code with its test cases.&lt;/p&gt;

&lt;p&gt;While using Istanbul it is quite easy and straightforward to analyse the test coverage report. Also, you should take the failed test seriously and analyse them as to why did they fail and check if there is an issue or not.&lt;/p&gt;

&lt;h1&gt;
  
  
  8. Use Mutation Testing
&lt;/h1&gt;

&lt;p&gt;Mutation testing is the type of testing in which the test cases’ logical condition are tweaked (mutated) to deliberately fail the tests or if it failed then to pass it. The logics can also be changed for the same reasons. It is also popularly called as planting a bug. There are various libraries that you can get on the internet but one of them and most popular being Stryker can be used for the same purpose.&lt;/p&gt;

&lt;h1&gt;
  
  
  9. Check Plagiarism On Tests
&lt;/h1&gt;

&lt;p&gt;While testing node.js on the source code, you should always check for plagiarism on the code. It is not so uncommon to copy and paste the code from the internet to make the software work. You might never know the source code can be licensed and your organisation can fall into serious trouble for the same.&lt;/p&gt;

&lt;p&gt;These things violate the copyright issues also. So always remember to check the code for plagiarism in order to tweak the code a little but for the advantage of your organisation.&lt;/p&gt;

&lt;p&gt;In order to use the plagiarism checker, you can install the &lt;strong&gt;node js npm plagiarism-checker package&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To install it just type the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i plagiarism-checker
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After that, in order to use that SDK, type the following code:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var a = require('plagiarism-checker');
var b = new a();
var config = b.getConfig();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Download the code from &lt;a href="https://www.npmjs.com/package/plagiarism-checker" rel="noopener noreferrer"&gt;this&lt;/a&gt; repository and add it to your project. Keep in mind the following dependencies are installed&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ npm install lodash
$ npm install request
$ npm install request-promise
$ npm install mime-types
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  10. Use Realistic Inputs
&lt;/h1&gt;

&lt;p&gt;Many times it so happens that the testers use the inputs that are not realistic or according to the real life scenarios. For example an input demanding phone numbers should be tested on numbers which resemble the real phone numbers. So you should always use realistic inputs while testing your application.&lt;/p&gt;

&lt;p&gt;The best library available for this purpose is Faker library. According to GitHub, Faker library is a php library that generates fake data for the input you are willing to test upon.&lt;/p&gt;

&lt;p&gt;You should also keep in mind to use more and more inputs for a single input parameter so as to test heavily. As in real life, many inputs will be processed on the same function, you should use as many as possible to test them.&lt;/p&gt;

&lt;p&gt;A simple portrayal of the situation can be the same weather application that we discussed in the beginning of this chapter.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function CountryName(string country)
{
//code
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, this function should be tested with realistic inputs such as&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function CountryName(India)
{
//code
}
function CountryName(Netherlands)
{
//code
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Instead of :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function CountryName(abc)
{
//code
}
function CountryName(foo)
{
//code
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h1&gt;
  
  
  11. Use Linters
&lt;/h1&gt;

&lt;p&gt;According to Wikipedia, linter is a tool that analyzes the source code to flag programming errors, bugs, stylistic errors and suspicious constructs. Linters are great at finding certain classes of bugs including assignment to undeclared variable and use of undefined variables. Using linters can help you a lot in determining the bugs in the structural way of the code. For Node JS, you can use ESLint for the same purpose.&lt;/p&gt;

&lt;h1&gt;
  
  
  12. Property Based Testing
&lt;/h1&gt;

&lt;p&gt;Property based testing depends on different properties of the function. It is used to check the property of the entity (function, program etc) in particular. A property is a characteristic of the entity. For example, if you have a function that takes the input arguments as a,b and holds the property that b is always even then by property based checking, we check whether b is always even or not.&lt;/p&gt;

&lt;p&gt;for all(a,b)&lt;/p&gt;

&lt;p&gt;b is always an even number&lt;/p&gt;

&lt;p&gt;Property based testing helps us as it&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Contains the scope of all inputs and that can generate a huge number of test cases&lt;/li&gt;
&lt;li&gt;  Can take us to the failure in a very short time as it has something specific to put as the input like even numbers in the above case. It can keep on inserting even numbers until a point that it fails and we can get the threshold value of the function quite easily.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can use FastCheck, QuickCheck or Mocha Test Check for property based testing.&lt;/p&gt;

&lt;h1&gt;
  
  
  13. Use Chai Library
&lt;/h1&gt;

&lt;p&gt;Error catching should be done with specific libraries such as Chai library. It expects the assertions and hence give you what the error was about. This might not be the case with try-catch-finally statement. A Try-Catch-Finally statement will throw some generic error statement because it takes the exceptions as a whole class of exceptions and errors and does not give the specific result about the same. It then takes lot of time to decode what the error was actually about.        &lt;/p&gt;

&lt;p&gt;For example,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;expect(‘a’).to.not.have.property(‘b’);
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;this way few lines of code is summarised to a single line of chai assertion.&lt;/p&gt;

&lt;h1&gt;
  
  
  14. Check For Exceptional Scenarios
&lt;/h1&gt;

&lt;p&gt;While the test cases and scenarios that you design might cover everything on the source code but there are few exceptions that are very important while testing the application behaviour/response/outcome. Let say there is a feature in your application that sends email when a new user is added.&lt;/p&gt;

&lt;p&gt;The email is sent to both admin and the user. This becomes an exceptional scenario as the method must be passing correctly but you might not be getting any email.&lt;/p&gt;

&lt;p&gt;These things should be tested. The testing should also include forcefully sending different response code from the server side so that we can know how the application behaves in such a way and what values are returned.&lt;/p&gt;

&lt;p&gt;If you go to the normal approach of checking the JS conditions and test cases internally then you will be able to check the internal conditioning but will never get if your application behaves in the same way practically or not.&lt;/p&gt;

&lt;p&gt;Many firms develop their own methods to achieve these things. A good example is Netflix which has developed something they call Chaos Engineering which tests their functions and method by killing off their servers one by one.&lt;/p&gt;

&lt;p&gt;This way they are also assured that even if one server fails, the application works correctly.&lt;/p&gt;

&lt;h1&gt;
  
  
  15. Follow The Testing Pyramid
&lt;/h1&gt;

&lt;p&gt;While testing with node.js, you should try to follow the test automation pyramid. As seen from the following image the unit test should be taken as the base of all the testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxy5pgweoe0xjbuuua0i8.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%2Fxy5pgweoe0xjbuuua0i8.png" alt=" " width="650" height="460"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We do so because unit test will cover the basic units of functionality independently of one another. After the unit tests are done then move ahead to the integration testing. Integration testing will let you test the different modules combined with one another as a group. After that we move on to the next part of the pyramid and test the front-end or User-Interface testing using Selenium or similar tools.&lt;/p&gt;

&lt;p&gt;As you can see, the cost incurred keeps on increasing as we move on to the pyramid but the speed keeps on decreasing. Unit test takes most of the time to execute while the front end is tested fastest because of the less complexities and modules.&lt;/p&gt;

&lt;h1&gt;
  
  
  16. Use Component Testing
&lt;/h1&gt;

&lt;p&gt;Component testing tests the functionality of the modules which are separately testable. The input/output behaviour of the test object is verified by the component testing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzp7n8drdwlzgjik9grpw.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%2Fzp7n8drdwlzgjik9grpw.png" alt=" " width="314" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As seen in the image, each component has a test plan and every test plan has various different tests under it and then they are tested to check the functionality of the component. It is recommended to use the component testing after the unit testing in the pyramid. Component testing is a very good approach and has a great coverage and speed greater than unit testing.&lt;/p&gt;

&lt;h1&gt;
  
  
  17. Keep Infrastructure Issues In Mind
&lt;/h1&gt;

&lt;p&gt;More often, testers think that the testing of source code with the above practices kept in mind is the all they have to do for the proper functioning of the application. But, they are wrong. Testers tend to forget the infrastructure issues and testing them which have a great percentage of happening in the real life practical scenarios.&lt;/p&gt;

&lt;p&gt;These infrastructure issues include memory overloading and how the application behaves when it happens. Other infrastructure issues may include the sudden shutdown of the server or API becoming 50% slower which is used in the application. Infrastructure testing include testing of these issues and providing a feedback report on it so that they can efficiently managed.&lt;/p&gt;

&lt;h1&gt;
  
  
  18. Going Parallel
&lt;/h1&gt;

&lt;p&gt;Parallel testing means running multiple test cases, simultaneously. Running different tests in parallel has its own advantages. If you are not following parallelism then you will run one test and provide the feedback about it then you will run another tests and provide feedback about it and so on.&lt;/p&gt;

&lt;p&gt;These feedbacks are then analysed and are worked upon. Then the team will check the feedback of the second test you did and then resolve them. While following parallelism, you can drastically reduce the feedback loop and provide feedback of many tests altogether which can be resolved in a lesser time as before. This way you can save a lot of time and resources of the company.&lt;/p&gt;

&lt;p&gt;Many libraries are available for achieving parallel testing, most popular of them being Mocha and Jest.&lt;/p&gt;

&lt;h1&gt;
  
  
  19. Automate The Updation Of Your Dependencies
&lt;/h1&gt;

&lt;p&gt;Running the tests and following different rules require lot of libraries and different tools to work altogether in order to achieve the perfect testing. But it sometimes happen that the dependencies become out of date and other dependency require the latest version to run with each other.&lt;/p&gt;

&lt;p&gt;This creates disturbance in the smooth running of the tests and can be resolved by automating the updation of your dependencies. Once you automate the updation, every dependency will update by itself and will not require to manual intervention after raising the flag for the same.&lt;/p&gt;

&lt;h1&gt;
  
  
  Use An Online Selenium Grid For Cross Browser Testing
&lt;/h1&gt;

&lt;p&gt;Talking about automation, everyone favors Selenium as an open-source for performing cross browser testing. However, there are a limitation on the number of browser and machines you get access to as you go ahead setting up your Selenium grid. Performing a thorough round of automated cross browser testing calls for a cloud-based provider such as LambdaTest.      &lt;/p&gt;

&lt;p&gt;LambdaTest is an AI-native test orchestration and execution platform that lets you run manual and automated tests at scale on over 5000 real devices , browsers, and OS combinations.&lt;/p&gt;

&lt;p&gt;You can automate your testing process and can even perform testing with node.js in parallel. You can even perform test using any other test automation framework with respect to different languages such as Python, PHP, C#, Java and more.      &lt;/p&gt;

&lt;p&gt;Well, that was all from my end. Testing with node.js may look a little scary at first. However, you can get rid of hesitation and perform it like a professional by keeping the above best practices for testing Node JS in mind. Let me know if there is a special practice that I have missed, and you feel is indispensable for the article. Happy testing! 🙂&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Testing is a crucial part of ensuring the stability and reliability of your Node.js application. By following these best practices, you can ensure that your tests are efficient, effective, and maintainable. Isolated and atomic tests, proper naming conventions, assertions, and the use of test runners like Mocha can help create a solid testing foundation.        &lt;/p&gt;

&lt;p&gt;Additionally, focusing on test coverage, using plugins, and practicing mutation testing will help you spot potential issues early on. The inclusion of realistic inputs, linters, and property-based testing further strengthens the quality of your tests. By continuously analyzing reports, checking for exceptional scenarios, and automating dependency updates, you can stay ahead of any issues.&lt;/p&gt;

&lt;p&gt;Implementing parallel testing and component testing ensures efficiency and scalability, while keeping infrastructure issues in mind adds an extra layer of reliability. With these best practices, you’ll be able to take your Node.js testing to the next level in 2025.&lt;/p&gt;

</description>
      <category>automationtesting</category>
      <category>node</category>
      <category>softwaretesting</category>
      <category>lambdatest</category>
    </item>
    <item>
      <title>Best Mobile App Testing Frameworks for Android and iOS</title>
      <dc:creator>Harish Rajora</dc:creator>
      <pubDate>Mon, 23 Jun 2025 08:10:57 +0000</pubDate>
      <link>https://forem.com/testmuai/best-mobile-app-testing-frameworks-for-android-and-ios-202m</link>
      <guid>https://forem.com/testmuai/best-mobile-app-testing-frameworks-for-android-and-ios-202m</guid>
      <description>&lt;p&gt;Mobile app testing framework helps automate the testing of your native apps. It reduces test execution time and identifies bugs before the app goes live. Once a mobile application is developed, it is moved ahead to the testing phase, where it is decided whether the application is fit to be delivered to the people or needs more work.&lt;/p&gt;

&lt;p&gt;In this blog we will learn the best mobile app testing frameworks for 2025, the list of frameworks mentioned in this blog will help mobile app developers take better decision to build mobile apps in more effect way.&lt;/p&gt;

&lt;p&gt;Different mobile app testing frameworks offer different features and may confuse the app tester in choosing the best one according to the situation. To resolve this, we have crafted this post that brings out all the mobile app testing frameworks, popular features, and other relevant information.&lt;/p&gt;

&lt;h1&gt;
  
  
  Types of Mobile App Testing Frameworks
&lt;/h1&gt;

&lt;p&gt;Mobile app testing frameworks come in three strict divisions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Strictly Android testing framework.&lt;/li&gt;
&lt;li&gt;  Strictly iOS testing Automation framework.&lt;/li&gt;
&lt;li&gt;  Cross platform testing framework (for both Android latest version and latest iOS version).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We have divided this post into three sections and arranged all the mobile app testing frameworks accordingly.&lt;/p&gt;

&lt;h1&gt;
  
  
  Android Test Automation Frameworks
&lt;/h1&gt;

&lt;p&gt;The following section highlights the most popular mobile app testing frameworks available only for Android applications. &lt;/p&gt;

&lt;p&gt;In this blog, we will discuss some of the best &lt;a href="https://www.lambdatest.com/android-automation-testing" rel="noopener noreferrer"&gt;Android test automation&lt;/a&gt; frameworks, such as Espresso, Selendroid, and MonkeyRunner.&lt;/p&gt;

&lt;h1&gt;
  
  
  Espresso
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Use Espresso to write concise, beautiful and reliable Android UI tests” — Google.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Espresso is a Google-made Android testing framework and has been a popular choice due to its high performance. Espresso believes in creating very simple and straightforward tests without worrying about the application’s infrastructure. Furthermore, it is open-source, which gives the developers the power to customize the framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Espresso
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Google promotes Espresso as a quick-to-learn Android testing framework.&lt;/li&gt;
&lt;li&gt;  Espresso is comparatively faster in test execution.&lt;/li&gt;
&lt;li&gt;  Espresso is a highly stable Android test automation framework as it can detect when the main thread is idle and run the UI tests at an appropriate time to prevent load on the system.&lt;/li&gt;
&lt;li&gt;  If you are using Android Studio to develop Android applications, Espresso could be the best choice for you as it is easy and quick to integrate.&lt;/li&gt;
&lt;li&gt;  Espresso is based on &lt;a href="https://www.lambdatest.com/blog/setup-junit-environment/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_23&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;JUnit&lt;/a&gt;, a very popular testing language. Therefore, app testers can quickly pick the APIs when opting for this framework.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Selendroid
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Test automation for native or hybrid Android apps and the mobile web with Selendroid.” — Selendroid&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Selendroid is an Android test automation framework based on Selenium. Selendroid uses Selenium 2.0 for writing test scripts for Android apps. Currently, Selendroid is only an Android test automation framework, although they plan to extend it to iOS applications soon. Selendroid recommends using the iOS driver with the Webdriver for testing the iOS applications, which is just a workaround.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Selendroid
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Selendroid can be used with Android emulator online, real devices, and Selenium Grid for selenium android testing and selenium for iOS testing.&lt;/li&gt;
&lt;li&gt;  Selendroid uses Selenium which is hugely popular among app testers, and they can start right away with the Android test automation framework without investing time in learning.&lt;/li&gt;
&lt;li&gt;  Selendroid comes with advanced user interaction support APIs for faster testing. These may include human interaction such as swipe and drag and drop.&lt;/li&gt;
&lt;li&gt;  The Android testing framework comes with the support of the JSON Wire protocol.&lt;/li&gt;
&lt;li&gt;  Selendroid comes with an advanced inspector that can detect the UI elements quickly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  MonkeyRunner
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“The MonkeyRunner tool is not related to the UI/Application Exerciser Monkey, also known as the monkey tool.” — Google.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The MonkeyRunner mobile app testing framework is an Android test automation framework designed to control the Android applications outside the Android code. Monekyrunner uses the Jython language, which implements the Python programming language using Java language. These popular languages make it extremely easy for the app testers to develop the tests. The tool is designed to test the Android based applications at the functional or framework level or for running the unit tests. Although, the developers of the framework define the tool to be used in any way the app testers or the developers want.   &lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of MonkeyRunner
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  MonkeyRunner can be attached to more than one Android emulator or real device simultaneously. Through this single connection, you can run multiple test cases (or test suites) on all of them per your program/sequence, etc.&lt;/li&gt;
&lt;li&gt;  MonkeyRunner can provide you with a complete start-to-end test script for an Android application. The app tester can take multiple output screenshots whenever he feels through the test scripts.&lt;/li&gt;
&lt;li&gt;  The most popular feature of MonkeyRunner is its ability to compare multiple screenshots for correctness. The app tester can compare the present screenshot (the one taken from the current test run) and the screenshot, which is correct.
&lt;/li&gt;
&lt;li&gt;  MonkeyRunner mobile app testing is a set of API toolkits, and hence it can be customized up to any level as the developer wants. Now test with free APK emulator online!!!&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  iOS Testing Frameworks
&lt;/h1&gt;

&lt;p&gt;The following mobile app testing frameworks are available exclusively for iOS mobile applications.&lt;/p&gt;

&lt;h1&gt;
  
  
  XCTest
&lt;/h1&gt;

&lt;p&gt;XCTest is considered the primary and most popular iOS automation testing framework when you have to test an iOS mobile application. The iOS testing framework uses instance methods and creates a friendly environment for the iOS app developers. XCTest uses Objective-C and Swift programming languages for testing and is compatible with XCode 5.0+.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key features of XCTest
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  The XCTest is a powerful iOS testing framework and can be used for &lt;a href="https://www.lambdatest.com/learning-hub/unit-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_23&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;unit testing&lt;/a&gt;, &lt;a href="https://www.lambdatest.com/learning-hub/mobile-performance-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_23&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;mobile performance testing&lt;/a&gt;, and UI testing.&lt;/li&gt;
&lt;li&gt;  The languages used for writing the test cases are similar to development, and therefore the developers and app testers can start testing right away.&lt;/li&gt;
&lt;li&gt;  XCTest gives good control over continuous integration facilities.&lt;/li&gt;
&lt;li&gt;  XCTest also allows the user interface recording and enhancement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  OCMock
&lt;/h1&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%2Ftdtec0qnbxx8hhs665zp.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%2Ftdtec0qnbxx8hhs665zp.png" alt=" " width="800" height="333"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;OCMock has a rich feature set for many different use cases. — OCMock&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Another open-source mobile app testing framework designed for iOS applications is the OCMock. As the name suggests, OCMock focuses on the testing done through mock objects. OC here refers to the Objective-C language. OCMock provides three types of mocks — partial, dynamic, and stubs. The details of using each of them can be found on the official page of OCMock.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of OCMock
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  OCMock is an iOS test automation framework that provides deep and detailed documentation with many examples for the testers.&lt;/li&gt;
&lt;li&gt;  The framework uses Objective-C language, which is used in iOS development also. Therefore, it becomes very easy to learn and create suites in OCMock.&lt;/li&gt;
&lt;li&gt;  OCMock is open-source and, therefore, is free to use, is actively developed, and has established a very active community.&lt;/li&gt;
&lt;li&gt;  The latest version of OCMock (OCMock 3.0) has included modern syntax that uses macros. This benefits from separating method calls and mock setup and provides a better error reporting mechanism.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  KIF
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“The magic of KIF is that it allows you to drive your UI from your unit tests and reap all the advantages of testing in-process.” — KIF.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;KIF is an iOS test automation framework used for testing iOS mobile applications. The framework builds the tests using the XCTest targets, and therefore it becomes easier for people already familiar with XCTest to create instant tests. Since KIF is used for UI testing, app testers and developers often add it to the user interface testing target. However, the official documentation advises developers and app testers not to do that as KIF works from the unit test target and should be added to it only.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of KIF
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  KIF uses Objective-C language just like OCMock, and the ease of learning is well appreciated.&lt;/li&gt;
&lt;li&gt;  KIF mobile app testing framework can be integrated directly in XCode, and there is no need to install any additional libraries, etc.&lt;/li&gt;
&lt;li&gt;  The framework uses tap events for testing, similar to a user’s action giving this framework an additional benefit over others.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Detox
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“We believe the only way to tackle flakiness head-on is by moving from black-box testing to gray box testing. That’s where Detox comes into play.” — Detox.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Detox is an iOS test automation framework for end-to-end testing. They focus on eliminating flakiness, a major issue in mobile app testing frameworks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Features of Detox
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  Detox writes test cases in Javascript, which is an extremely popular language among developers all around the globe. &lt;/li&gt;
&lt;li&gt;  Detox tests the mobile application after running it on the simulator/emulator, which resembles a real user-like testing behavior.&lt;/li&gt;
&lt;li&gt;  The framework brings advanced monitoring techniques into the environment.&lt;/li&gt;
&lt;li&gt;  Detox can run end-to-end tests integrating with CI tools such as Travis very smoothly.&lt;/li&gt;
&lt;li&gt;  Detox is open-source, and hence the community is very active.&lt;/li&gt;
&lt;li&gt;  The framework is test runner independent until you are using Javascript test runners.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Frameworks for iOS And Android
&lt;/h1&gt;

&lt;h1&gt;
  
  
  Appium
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Appium is built on the idea that testing native apps shouldn’t require including an SDK or recompiling your app.” — Appium&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&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%2Fuio8ftg8wgrnksecjci0.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%2Fuio8ftg8wgrnksecjci0.png" alt=" " width="800" height="240"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you are in the testing field, there is a high chance you have already heard of Appium. Appium has been in test automation for the last 8.5 years, and its popularity has only increased since.&lt;/p&gt;

&lt;p&gt;This mobile app testing framework is highly versatile and officially states that it aims to automate any mobile app in any language in any framework. Therefore, it is one of the most recommended frameworks by app testers.&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%2Fazkx5vqkpqyi1uq1eco2.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%2Fazkx5vqkpqyi1uq1eco2.png" alt=" " width="700" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Key Features of Appium
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  Appium supports almost every programming language and every framework. So the app tester need not learn a new framework or language and can start testing right away.&lt;/li&gt;
&lt;li&gt;  Appium mobile app testing framework facilitates reusability of the code by using the same APIs for multiple platforms.&lt;/li&gt;
&lt;li&gt;  The framework has an extremely large and active community that can help you with every problem in no time.&lt;/li&gt;
&lt;li&gt;  Appium works with real devices, emulators and simulators as well.&lt;/li&gt;
&lt;li&gt;  Appium does not let you compile the application in the Appium environment because of the issues it creates later on after shipping in a different environment. Hence, Appium runs its test on the same development framework and language to give confidence around the application development.&lt;/li&gt;
&lt;li&gt;  The framework can be integrated with CI/CD tools very easily.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu96hr6j489nsz7l15qjd.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%2Fu96hr6j489nsz7l15qjd.png" alt="LambdaTest automation screen" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LambdaTest is a cloud based mobile app testing platform. LambdaTest offers a reliable, scalable, secure Appium test execution cloud that helps app testers accelerate their release cycles. You can test using emulators, simulators, and real device cloud. In addition, you can access any device you need directly from your desktop browser. Up your game with free Android automation testing via Appium.&lt;/p&gt;

&lt;h1&gt;
  
  
  LambdaTest
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;“A Boatload of Capabilities with Surprisingly Few Obstacles” — LambdaTest user&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Key Features of LambdaTest&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  LambdaTest is an AI-native test orchestration and execution platform that lets you run manual and automated tests at scale with over 3000+ real devices cloud, browsers and OS combinations.&lt;/li&gt;
&lt;li&gt;  The platform provides unique features such as geolocation testing, localization testing, app test automation etc., that are not available on many other platforms.&lt;/li&gt;
&lt;li&gt;  LambdaTest provides a lot of integrations for the app testers to enhance the platform’s functionality and provide a one-stop solution to app testers.&lt;/li&gt;
&lt;li&gt;  The platform is easy to learn and is faster to launch the applications on their virtual testing platform and real device cloud.&lt;/li&gt;
&lt;li&gt;  Run tests in parallel on Appium mobile device cloud at scale. Run tests at scale across multiple devices at a time and reduce your overall test execution time by more than 10X.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  What’s your favorite tool?
&lt;/h1&gt;

&lt;p&gt;Mobile app testing frameworks are on the rise today due to their software development and delivery needs. While there are many more mobile app testing frameworks, we focused on the top four in each category and gave insights about them. But a framework is good as long as people like us prefer it in our day-to-day testing scenarios. Let us know your personal favorite mobile app testing framework and the reason you prefer them above all else. Please mention your answers and suggestions in the comment section below.&lt;/p&gt;

&lt;p&gt;I hope this post helps you decide your mobile app testing framework if you are new in testing or helps you recalibrate your existing choices. Till then, happy mobile testing!&lt;/p&gt;

</description>
      <category>mobileapptesting</category>
      <category>softwaretesting</category>
      <category>android</category>
      <category>ios</category>
    </item>
    <item>
      <title>What Is AI Unit Test Generation: Key Strategies and Tools</title>
      <dc:creator>Harish Rajora</dc:creator>
      <pubDate>Fri, 20 Jun 2025 07:28:35 +0000</pubDate>
      <link>https://forem.com/testmuai/what-is-ai-unit-test-generation-key-strategies-and-tools-20mk</link>
      <guid>https://forem.com/testmuai/what-is-ai-unit-test-generation-key-strategies-and-tools-20mk</guid>
      <description>&lt;p&gt;Writing test scripts for all unit test cases can be time-consuming and prone to human error. To mitigate this challenge, you can use intelligent techniques such as AI unit test generation.&lt;/p&gt;

&lt;p&gt;With AI unit test generation, you can streamline the process of writing unit test scripts by automating test creation, reducing manual effort, and enhancing your overall testing process.&lt;/p&gt;

&lt;h1&gt;
  
  
  What Is AI Unit Test Generation?
&lt;/h1&gt;

&lt;p&gt;AI unit test generation is the process of using artificial intelligence to automatically create unit test scripts for software applications.&lt;/p&gt;

&lt;p&gt;Instead of manually writing test cases for &lt;a href="https://www.lambdatest.com/learning-hub/unit-testing?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_20&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;unit testing&lt;/a&gt;, AI tools analyze the the logic, structure, and behavior of the code to identify key functions, edge cases, and potential failure points. Based on this analysis, they generate unit tests that include inputs, expected outputs, and assertions.&lt;/p&gt;

&lt;h1&gt;
  
  
  Importance of AI Unit Test Generation
&lt;/h1&gt;

&lt;p&gt;When unit tests are generated through artificial intelligence, the team reaps the following benefits, impacting the method and quality of software development process.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Test cases generated through AI cover a wider range, as the goal of the software is to cover all aspects of the functionality. This includes edge cases as well that testers often overlook.&lt;/li&gt;
&lt;li&gt;  AI unit test generation targets each line of code, even if the tests may become more complex. This results in better test coverage and, therefore, a better unit test suite.&lt;/li&gt;
&lt;li&gt;  AI-based unit testing can automatically modify the unit test scripts when the codebase is changed or updated, so you do not need to maintain these tests.&lt;/li&gt;
&lt;li&gt;  When AI is deployed to generate unit tests, you have more time to invest in code enhancement or work on other functionalities.&lt;/li&gt;
&lt;li&gt;  Since you invest time in other development tasks, this can be directly associated with costs that have a visible ROI. AI unit test generation, therefore, becomes a great way for the team to save costs in unit testing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Framework for AI-Based Unit Test Generation
&lt;/h1&gt;

&lt;p&gt;Generating unit tests using AI requires integration between machine learning models and software testing processes. At a higher level, a framework is designed whose high-level components look as follows:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Large Language Model Configuration and Integration:&lt;/strong&gt; To work on AI technology, an LLM model is required. This model is tuned and fed according to the tasks it will perform. The team and the organization decide which model to choose.
The model automates the generation of unit test scripts in the desired programming language. It can also have additional functionalities, such as prioritizing functions and providing options to regenerate tests if required. However, these are considered enhancements rather than core requirements.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Test Generation:&lt;/strong&gt; The integrated LLM model generates test scripts and saves them in a separate file with extensions that match the targeted programming language.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Test Execution:&lt;/strong&gt; In this stage, the tests generated in the previous stage are executed. This stage also connects with the reporting module, where the test results are documented automatically.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Analysis and Regeneration:&lt;/strong&gt; The final results are presented to the tester, and if regeneration is required, the model has to be run again. Here, there can be multiple modifications according to the tester’s requirements.
For instance, the tester can run a different model to see if it generates better output. If the framework is designed autonomously, all these options can also be chosen automatically.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;This is a generic framework design for AI unit test generation. You can also add other modules to make it more productive and efficient, depending on their requirements. However, the stated modules have to be present as a foundation.&lt;/p&gt;

&lt;h1&gt;
  
  
  Key Strategies for Using AI in Unit Test Generation
&lt;/h1&gt;

&lt;p&gt;To make effective use of AI for unit testing, there are some strategies that you can follow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Use AI to generate realistic synthetic test data. This type of data covers a variety of test cases and may be used to assess how a software application will behave across a variety of conditions.&lt;/li&gt;
&lt;li&gt;  Define specific goals for your AI unit testing efforts. Also, defined objectives to ensure a focused and structured testing approach, targeting key areas effectively.&lt;/li&gt;
&lt;li&gt;  Test individual components in isolation to unearth issues within specific units. It will make your debugging simpler and efficient.&lt;/li&gt;
&lt;li&gt;  Adopt a Test-Driven Development (TDD) approach, where you first write automated tests, then develop the code required to pass those tests.
By doing so, you can have a good understanding of the expected behavior of all the components of the software application, and at the same time, your test scripts will cover all functionality from the beginning. It also makes it easier to find and fix issues quickly during the development process.&lt;/li&gt;
&lt;li&gt;  Besides leveraging AI, integrate your test suites with CI/CD tools. This way, the tests will execute on each code commit, keeping high code quality and ensuring faster bug detection.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Top AI Tools for Unit Test Generation
&lt;/h1&gt;

&lt;p&gt;Unit tests can be generated automatically through AI using the following tools.&lt;/p&gt;

&lt;h1&gt;
  
  
  1. KaneAI
&lt;/h1&gt;

&lt;p&gt;KaneAI is a GenAI native end-to-end test assistant for high-speed quality engineering teams. It is built on modern LLMs, where you can write test steps in natural language command instructions.&lt;/p&gt;

&lt;p&gt;It can be used to generate unit tests using high-level objectives or tags through third-party software such as Jira, Slack, and GitHub, and debug errors automatically. The unit tests generated here can be integrated with the CI/CD pipeline for enhanced testing.&lt;/p&gt;

&lt;p&gt;Once tests are generated, they need to be run and managed regularly. You can look for tools that do more than just basic input-output tasks, and that’s where LambdaTest’s AI-native Test Manager comes in.&lt;/p&gt;

&lt;p&gt;With LambdaTest Test Manager, you get everything in one place — test case creation, management, execution, and reporting. You can create test cases manually or use AI to speed things up.&lt;/p&gt;

&lt;h1&gt;
  
  
  2. ChatGPT
&lt;/h1&gt;

&lt;p&gt;ChatGPT is one of the most popular GenAI tools. It takes English-based prompts (test steps) and generate unit tests.     &lt;/p&gt;

&lt;p&gt;It helps you with code explanation, refactoring, debugging, and optimization. It supports multiple programming paradigms, such as object-oriented and functional programming, tailoring responses based on user requirements.&lt;/p&gt;

&lt;h1&gt;
  
  
  3. Claude
&lt;/h1&gt;

&lt;p&gt;Claude is an AI assistant built by Anthropic, working on Generative AI technology similar to ChatGPT. It takes input from the user and presents the output after analysis. For AI unit test generation, the input can be the instructions to generate unit tests.&lt;/p&gt;

&lt;p&gt;Similar to ChatGPT, it comes in free and paid versions. The free version has limited features and a reduced model performance compared to the paid version. The tool is more inclined towards code generation, which makes it a good choice for automatically generating unit tests.&lt;/p&gt;

&lt;h1&gt;
  
  
  4. GitHub Copilot
&lt;/h1&gt;

&lt;p&gt;GitHub Copilot is an AI unit test generation tool that seamlessly integrates into Visual Studio Code and provides multiple model options for interaction.&lt;/p&gt;

&lt;p&gt;It can take multiple programming files as input and update all of them based on the input provided. Therefore, when unit test generation is required, you need not worry about finding the context of multiple files to edit, which ultimately saves a lot of time.&lt;/p&gt;

&lt;h1&gt;
  
  
  5. Diffblue Cover
&lt;/h1&gt;

&lt;p&gt;Diffblue Cover helps you generate unit tests, specifically in Java. It can be integrated into IntelliJ and CI pipelines, generating automatic unit tests by understanding the code in the files and covering all the edge cases.&lt;/p&gt;

&lt;p&gt;It monitors the code files for which the unit tests were generated, and when any change is found, the unit test cases are automatically adjusted accordingly. In addition, this AI unit test generation tool can provide test coverage details in a visual format.&lt;/p&gt;

&lt;h1&gt;
  
  
  6. Workik
&lt;/h1&gt;

&lt;p&gt;Workik is an AI-powered platform that simplifies the software development process by automating various tasks, including unit test generation. It has an AI-driven unit test case generator that generates test cases for multiple programming languages.&lt;/p&gt;

&lt;p&gt;It provides a VS Code extension that enables effortless test case generation and debugging assistance within the code editor.&lt;/p&gt;

&lt;h1&gt;
  
  
  7. Functionize
&lt;/h1&gt;

&lt;p&gt;Functionize is an AI-powered testing platform that leverages machine learning to automate test creation and reduce the need for manual test creation.&lt;/p&gt;

&lt;p&gt;It can detect and fix issues on its own, so you don’t have to spend time troubleshooting. With Generative AI, Functionize also generates a variety of test cases, making regression testing more thorough and keeping software stable.&lt;/p&gt;

&lt;h1&gt;
  
  
  8. Bito
&lt;/h1&gt;

&lt;p&gt;Bito is an AI-driven coding assistant that streamlines your development process by automating test generation and code reviews. It integrates seamlessly into your development lifecycle, automatically generating and updating unit tests to achieve 100% code coverage.&lt;/p&gt;

&lt;p&gt;Its capabilities extend to generating function/method tests, including boundary and edge cases. This enhances code reliability and reduces the time developers spend writing tests.&lt;/p&gt;

&lt;h1&gt;
  
  
  9. UnitTestBot
&lt;/h1&gt;

&lt;p&gt;UnitTestBot is an IntelliJ plugin that generates tests and human-readable test descriptions. The test cases generated through UTBot do not require manual intervention. They are “ready to use” with valid inputs, method bodies, assertions, and comments.&lt;/p&gt;

&lt;p&gt;The rest of everything is taken care of by the tool. UTBot also claims to find hidden bugs in the source code with a 0 rate of false positives. It means all the hidden bugs it finds are indeed real and would have impacted the application at some time. This is a great feature to increase the test coverage and enhance the application’s quality.&lt;/p&gt;

&lt;h1&gt;
  
  
  10. Windsurf
&lt;/h1&gt;

&lt;p&gt;Windsurf is an AI-powered extension available for popular IDEs such as JetBrains, VS Code, Eclipse, Visual Studio, and Xcode.&lt;/p&gt;

&lt;p&gt;It can be used to interact with the code editor and generate unit tests in simple English. However, instead of automatically generating the tests, the tester has to specify the method name using “@,” and the tool can only generate 60–70% of the tests.&lt;/p&gt;

&lt;h1&gt;
  
  
  Challenges With AI Unit Test Generation
&lt;/h1&gt;

&lt;p&gt;Though AI unit test generation can help optimize your testing process but it comes with a few challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  AI models heavily rely on large volumes of high-quality data for training and decision-making. However, gathering and curating such data is often more difficult than it seems. If the data is insufficient or of low quality, it can result in incorrect predictions and reduce the effectiveness of the AI model.&lt;/li&gt;
&lt;li&gt;  Some AI models — especially those based on deep learning can make it hard to understand how they reach their conclusions. So, this lack of transparency can lead to mistrust, especially when the model makes predictions that turn out to be wrong or unexpected.&lt;/li&gt;
&lt;li&gt;  AI models may sometimes report defects that don’t exist (false positives) or miss real ones (false negatives). These issues can lead to wasted effort or overlooked bugs, reducing the overall testing efficiency.&lt;/li&gt;
&lt;li&gt;  You also need to frequently maintain and update AI models to retain their effectiveness when scaling software applications. Without proper efforts towards updates and maintenance, such models can quickly lose their respective relevance and turn out to be outdated.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Unit tests play an important role in reducing bugs, maintenance time, and all the costs associated with these processes. They can point out bugs at specific locations at the start of the cycle and perfect each module as the code base increases.&lt;/p&gt;

&lt;p&gt;However, with strict deadlines and shorter timelines, unit testing does get sidelined, often completing the test cases for formalities and writing them according to the methods so that they do not fail and consume more time.&lt;/p&gt;

&lt;p&gt;While we cannot shorten the time it takes to write test scripts for the feature, we can leverage AI to generate unit tests automatically, and need not worry about maintaining them in the long run.&lt;/p&gt;

</description>
      <category>aiunittestgeneration</category>
      <category>ai</category>
      <category>aitools</category>
      <category>softwaretesting</category>
    </item>
    <item>
      <title>What Is Machine Learning Automation (AutoML)</title>
      <dc:creator>Harish Rajora</dc:creator>
      <pubDate>Fri, 20 Jun 2025 06:05:04 +0000</pubDate>
      <link>https://forem.com/testmuai/what-is-machine-learning-automation-automl-677</link>
      <guid>https://forem.com/testmuai/what-is-machine-learning-automation-automl-677</guid>
      <description>&lt;p&gt;Machine learning automation, or AutoML, is a technique used to automate the process of design, training, optimization, and deployment of machine learning models.&lt;/p&gt;

&lt;p&gt;AutoML techniques help stakeholders create ML models and deploy them efficiently, even for those without deep expertise. Various tools streamline the machine learning pipeline to implement automation. Some tools focus on specific tasks, such as model selection, while others automate the entire workflow.&lt;/p&gt;

&lt;p&gt;In this blog, let’s look at how to use machine learning automation to automate the process of creating ML models.        &lt;/p&gt;

&lt;h1&gt;
  
  
  What Is Machine Learning in Automation?
&lt;/h1&gt;

&lt;p&gt;Automated machine learning, or machine learning automation, involves automating the process of developing a machine learning model. A machine learning model is the final result of a long chain of sequential processes, where the output from one process goes to another.&lt;/p&gt;

&lt;p&gt;For instance, a machine learning model first preprocesses the data, prepares the data for training, trains on the data, tests on the testing data, uses an algorithm based on the goal of the product (such as a classifier), and then repeats all these steps on different models to check highest compatibility.&lt;/p&gt;

&lt;p&gt;All these steps have to be performed each time a model needs to be developed, and they consume a lot of time. AutoML or machine learning automation automates all these processes and provides a final model ready to be incorporated into the software backend.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why Is Automated Machine Learning Important?
&lt;/h1&gt;

&lt;p&gt;Automated machine learning provides a lot of benefits to the team working on it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Since AutoML automates all the manual work to develop the models, non-experts in machine learning can also use AutoML to achieve the same outputs.&lt;/li&gt;
&lt;li&gt;  Big tech giants use AutoML tools with a dedicated team that works only on machine learning. They constantly tune their machine learning automation process and include high-quality algorithms with greater accuracy.&lt;/li&gt;
&lt;li&gt;  When it comes to time savings, AutoML saves a lot of time, as almost all the work is done by AutoML tools.
Moreover, since human resources are not involved in the machine learning model development process, the time saved can be utilized in other processes, such as model integration, enhancing the team’s productivity. Hence, the software can be built in less time, which means the cost involved will also be less.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  How Does AutoML Work?
&lt;/h1&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%2Faiorfq9hkmhrmyyooiba.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%2Faiorfq9hkmhrmyyooiba.png" alt=" " width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;AutoML works in various steps, the end of which generates a model for implementation in the software application.        &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Collect Data:&lt;/strong&gt; The first step in AutoML is data collection. This step is manual and testers are expected to either search for a dataset or create their own (not recommended as it takes a lot of time).
It is an extremely crucial step as all the AutoML steps are performed after it considers data for their execution. If the data quality is inappropriate, the model will also show anomalies. The collected data is then fed to the AutoML system as input.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Define the Problem:&lt;/strong&gt; In this step, a problem is defined within the AutoML tool, enabling it to understand the context, relate it to the data, and generate the most suitable model. Examples of this are classification and forecasting.
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Preprocess Data:&lt;/strong&gt; The next step is the preprocessing of data which is done by the AutoML tool automatically. In this step, the data is cleaned and transformed according to the requirements of machine learning automation. While this process is done by AutoML tools, it is highly recommended to manually preprocess the data as well for higher quality.
&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Configure Parameters:&lt;/strong&gt; The AutoML tool provides various parameters to tweak during the model development process. Developers can provide the values and alter the default values based on their requirements.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Train the Model:&lt;/strong&gt; In the next step, the AutoML tool trains a model on the submitted data, determining its performance and accuracy based on various parameters.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Identify the Correct Model:&lt;/strong&gt; The data is then trained using various models. This step determines the best model according to the data and the problem defined.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Review the Model:&lt;/strong&gt; The model leaderboard is then generated and presented to the user with results that include parameters like accuracy. The team can review the model, test it using different data, and if satisfied, start using it in their software application.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Except for the data collection and defining the problem, everything is taken care of by the AutoML tool.&lt;/p&gt;

&lt;h1&gt;
  
  
  AutoML for Different Data Types
&lt;/h1&gt;

&lt;p&gt;Machine learning models are created for different purposes and each of those purposes is satisfied by only a certain type of input data.&lt;/p&gt;

&lt;p&gt;For instance, if you want to create a model that can detect fraudulent transactions in a banking system, you have to train that model using financial transaction data where each transaction is labeled as “Fraud” or “Legitimate.”&lt;/p&gt;

&lt;p&gt;Users leveraging AutoML tools can work with various data types, including:&lt;/p&gt;

&lt;h1&gt;
  
  
  Image Data
&lt;/h1&gt;

&lt;p&gt;Computer vision is a discipline of machine learning in which the model can recognize and classify an object according to pre-defined labels based on the training data.&lt;/p&gt;

&lt;p&gt;When machine learning automation is brought into the picture, it takes over the identification tasks of certain features that will guide the model in classifying that particular object without manual intervention.&lt;/p&gt;

&lt;p&gt;The quality of data, however, plays a key role in the training of the model. The images used should be diverse, including the object requiring classification.&lt;/p&gt;

&lt;h1&gt;
  
  
  Video Data
&lt;/h1&gt;

&lt;p&gt;Image-based categorization can be extended to video data, incorporating additional factors for analysis. AutoML tools working on video data can generate models that can identify objects in a video, analyze their actions, and understand voice commands.&lt;/p&gt;

&lt;p&gt;However, it is worth noting that AutoML tools with video support are not currently commonly available due to their higher complexities and low accuracy.&lt;/p&gt;

&lt;h1&gt;
  
  
  Tabular Data
&lt;/h1&gt;

&lt;p&gt;Tabular data provides information in the tabular form, where the identifier is the class to which each data point belongs. The main goal behind training with the tabular data using AutoML is categorizing the new data into pre-defined classes.&lt;/p&gt;

&lt;p&gt;For instance, the team can provide the data based on identifiers that result in declaring an email as spam or not spam. These identifiers can be words used, emails used, etc.&lt;br&gt;
When the same process is done on numerical values, it is called regression. In this data, the final classes are not categories but numerical values.&lt;/p&gt;

&lt;p&gt;Another branch of tabular data is time-series forecasting. In this process, the goal is to forecast a certain value in the future based on current trends and past values.&lt;/p&gt;

&lt;p&gt;Time-series forecasting is kept as a separate discipline because of its dynamicity and involvement of a high number of variables, such as seasonality and changing trends with time.&lt;/p&gt;

&lt;p&gt;Due to such variables, a large number of quality models often fail to work on time-series, and AutoML is often the recommended path to follow.&lt;/p&gt;

&lt;h1&gt;
  
  
  Textual Data
&lt;/h1&gt;

&lt;p&gt;Textual data is used to train machine learning models primarily for natural language processing. In this discipline, AutoML tools aim to understand the text and make sense of it.&lt;/p&gt;

&lt;p&gt;It is done by training the model with appropriate text with pre-defined categorization of information. AutoML tools are expected to include high-quality Bidirectional Encoder Representations from Transformers (BERT)-based models that are finely tuned and work with very high efficiency when it comes to natural language processing.&lt;/p&gt;

&lt;p&gt;The type of data to use depends on the problem the team is trying to solve. The team should take its time collecting data, as the quality and type of this data, will determine the quality and type of subsequent phases, resulting in a better model.&lt;/p&gt;

&lt;h1&gt;
  
  
  Role of Machine Learning in Automation Testing
&lt;/h1&gt;

&lt;p&gt;The inclusion of machine learning in automation testing has played a critical role in revolutionizing how a tester used to perform tasks earlier. It has seeped into almost every task associated with testing, bringing immense benefits to the team.&lt;/p&gt;

&lt;p&gt;Machine learning in test automation includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Supervised Learning:&lt;/strong&gt; It uses labeled datasets to assess risks.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Unsupervised Learning:&lt;/strong&gt; It detects errors and patterns in data.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Reinforcement Learning:&lt;/strong&gt; In this, neural networks improve through a reward-and-punishment system to minimize flaws.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Here are the use cases of using machine learning in test automation:&lt;/p&gt;

&lt;h1&gt;
  
  
  Test Case Generation
&lt;/h1&gt;

&lt;p&gt;Machine learning can also &lt;a href="https://www.lambdatest.com/blog/generate-test-cases-with-ai/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_20&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;generate test cases &lt;/a&gt; automatically when a context is given to it. &lt;/p&gt;

&lt;p&gt;For instance, providing input such as “test login functionality on &lt;a href="http://www.abcwebsite.com/login" rel="noopener noreferrer"&gt;www.abcwebsite.com/login&lt;/a&gt;" can generate all the steps automatically in the English language without any manual interruption.&lt;/p&gt;

&lt;p&gt;Let’s take an example of an AI-native unified Test Manager platform by LambdaTest. It comes with integrated test case authoring and execution capabilities that centralize all test case-related information.&lt;/p&gt;

&lt;h1&gt;
  
  
  Test Data Generation
&lt;/h1&gt;

&lt;p&gt;Many domains of automation testing require extensive, diverse, and boundary-scenario-covering high-quality data. Defining, collecting, and arranging such data takes a lot of time, as the table can sometimes expand to hundreds of rows. However, machine learning can perform all these steps within a few seconds.&lt;/p&gt;

&lt;p&gt;Depending on the model on which the tool is developed using AutoML, generating high-quality data is often just a simple query away as “generate data for login functionality where the password needs to be alphanumeric and contain one special character”.&lt;/p&gt;

&lt;p&gt;It is also essential to know that the better your prompts are structured, the better the model will understand the context. You can learn more about the best &lt;a href="https://www.lambdatest.com/blog/chatgpt-prompts-for-software-testing/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_20&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;AI/ChatGPT prompts for software testing&lt;/a&gt;.&lt;/p&gt;

&lt;h1&gt;
  
  
  Test Generation
&lt;/h1&gt;

&lt;p&gt;Authoring and maintaining tests (especially complex ones) has been one of the most time-consuming tasks of automation testing. They require specific programming skills and tools to conduct testing.&lt;/p&gt;

&lt;p&gt;Machine learning has been a savior and most widely implemented technology when it comes to test authoring or when you have to generate tests. The NLP branch of machine learning can eliminate the use of programming language, take the script input in the English language, and understand the context (or intent) behind it.&lt;/p&gt;

&lt;p&gt;For instance, GenAI native test agents like KaneAI by LambdaTest leverage natural language processing to generate tests effortlessly through natural language command instructions.&lt;/p&gt;

&lt;p&gt;To get started, refer to this getting started guide on KaneAI.&lt;/p&gt;

&lt;p&gt;With the rise of AI in testing, its crucial to stay competitive by upskilling or polishing your skillsets. The KaneAI Certification proves your hands-on AI testing skills and positions you as a future-ready, high-value QA professional.       &lt;/p&gt;

&lt;h1&gt;
  
  
  Visual Testing
&lt;/h1&gt;

&lt;p&gt;Identifying visual anomalies manually on a web page is difficult. The testers have to go through each pixel and match it to the base image to verify the page’s correctness.&lt;/p&gt;

&lt;p&gt;When manual inspection is completed, the pixels are often matched through scripted programming for each web page on the website. This takes a lot of time and if a bug is found, the whole process has to repeat.&lt;/p&gt;

&lt;p&gt;Machine learning automation can identify pixel differences (down to single pixel differences) within a few seconds. They are the most efficient solution to this problem and can also be included in regression test suites and run hundreds of times daily.&lt;/p&gt;

&lt;p&gt;For example, AI-native platforms like SmartUI offer smart visual UI testing to check websites and mobile apps for visual deviations.&lt;/p&gt;

&lt;h1&gt;
  
  
  Defect Prediction
&lt;/h1&gt;

&lt;p&gt;Machine learning automation lets you predict future failures in the current code or infrastructure. This helps identify potential bugs (and defects) in code that have passed regression and functional tests but will raise issues in the future.&lt;/p&gt;

&lt;p&gt;Such bugs have the highest probability of breaking the production and spoiling the user experience. That’s why having models that can predict failures is a valuable asset to the team.&lt;/p&gt;

&lt;h1&gt;
  
  
  What ML Tasks Should You Automate?
&lt;/h1&gt;

&lt;p&gt;Machine learning automation can be used in different domains to accomplish a variety of tasks. Some of the tasks where the users can opt for AutoML are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Text-based content is all over the Internet and serves as a great medium to communicate with the reader. However, when automated tools like chatbots interact with such content, they may not understand the intent and emotion of the text. This results in straightforward, machine-like responses that can be frustrating for the end-user.
Automating intent detection with ML models can improve user interactions. For example, in a custom support tool or system, these models can automatically recognize the intent of the messages (positive, negative, or urgent) and prioritize tickets accordingly for faster resolution.&lt;/li&gt;
&lt;li&gt;  Analyzing images is one of the most common use cases of machine learning. When there is a task where images are to be analyzed, and certain objects are to be identified in them, it is best to automate these tasks with finely tuned models available.&lt;/li&gt;
&lt;li&gt;  Prediction and forecasting help in getting future value based on past data, current trends, and other variables. Such predictions and forecasting are extremely valuable in strategizing before the time and getting a glimpse of the future to evaluate it.&lt;/li&gt;
&lt;li&gt;  Classification is one of the most focused areas of machine learning due to its wide usage across different domains. No matter what field the team is working on, they can easily spot an area where classification can fit perfectly.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Machine Learning Automation Tools
&lt;/h1&gt;

&lt;p&gt;To take advantage of machine learning automation, you need to adapt to the right tool built for building models.&lt;/p&gt;

&lt;p&gt;The most commonly used tools for AutoML are as follows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Google Cloud AutoML:&lt;/strong&gt; It offers tailored machine learning models for different needs such as AutoML Image for image-based tasks, AutoML Translation for language translation, and more. It follows the same process Google uses, making it a reliable and scalable choice for projects of any size.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Amazon SageMaker Autopilot:&lt;/strong&gt; SageMaker Autopilot builds ML models with full transparency, handling tasks like classification, regression, and prediction. It can process incomplete datasets, fill in missing values, and rank models based on key metrics like accuracy.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Azure Machine Learning:&lt;/strong&gt; Azure’s AutoML supports classification, regression, vision, and NLP while integrating with Spark Cluster for scalable cloud-based processing. It also lets users deploy pre-trained models from OpenAI, Hugging Face, Meta, and Cohere.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;IBM AutoAI:&lt;/strong&gt; It extends AutoML by adding features like model testing, scoring, code generation, and risk management. It streamlines AI lifecycle management, embeds ModelOps into workflows and cuts costs by automating the entire process.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;H2O AutoML:&lt;/strong&gt; It supports hyperparameter tuning, iterative modeling, and feature engineering. It works with R, Python, and a no-code GUI and integrates seamlessly with Hadoop, Spark, and Kubernetes for scalable model developon, and a no-code GUI and integrates seamlessly with Hadoop, Spark, and Kubernetes for scalable model development. &lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Conclusion
&lt;/h1&gt;

&lt;p&gt;Artificial intelligence has become a mandatory technology in our software today. It not only brings a lot of benefits, such as cutting down time and costs for each task but also helps in being competitive and ahead of competitors.&lt;/p&gt;

&lt;p&gt;However, the road to this integration is not an easy one. It requires multiple time-consuming steps ranging from data collection, pre-processing, running data on multiple models, feature generation, and many more. Moreover, all this can only be done by an expert in AI who themselves costs a lot of money to the company.&lt;/p&gt;

&lt;p&gt;AutoML is the answer to all these problems, bringing machine learning model development into the automation world where each of the above processes can be completed without any manual intervention or monitoring. These software are designed to compare multiple models and provide the best possible solution to the users.&lt;/p&gt;

</description>
      <category>automl</category>
      <category>machinelearning</category>
      <category>automlbenefits</category>
      <category>softwaretesting</category>
    </item>
    <item>
      <title>February’25 Updates: Accessibility Test Scheduling, Latest Features in SmartUI, Insights, and More! | LambdaTest</title>
      <dc:creator>Salmankhan2389</dc:creator>
      <pubDate>Tue, 17 Jun 2025 08:59:24 +0000</pubDate>
      <link>https://forem.com/testmuai/february25-updates-accessibility-test-scheduling-latest-features-in-smartui-insights-and-more-4ijh</link>
      <guid>https://forem.com/testmuai/february25-updates-accessibility-test-scheduling-latest-features-in-smartui-insights-and-more-4ijh</guid>
      <description>&lt;p&gt;February might be the shortest month, but we made every day count with new features and improvements tailored just for you.&lt;/p&gt;

&lt;p&gt;Check out the below updates that will make your experience smoother, faster, and better than ever.&lt;/p&gt;

&lt;h1&gt;
  
  
  Schedule Scans With Accessibility Scheduling Feature
&lt;/h1&gt;

&lt;p&gt;Ensuring accessibility is an ongoing activity. However, keeping up with regular accessibility testing can be challenging, and you may miss running checks that can lead to compliance risks, and manual testing takes time, as well. That’s where scheduling comes in.&lt;/p&gt;

&lt;p&gt;It helps schedule accessibility scans, allowing you to stay proactive, catch issues early, and maintain compliance without additional manual effort.&lt;/p&gt;

&lt;p&gt;To streamline this process, we have released the Accessibility Scheduling feature. This feature allows you to schedule (or automate) recurring or one-time accessibility scans, reducing your manual effort while ensuring your websites and web applications comply with the Web Content Accessibility Guidelines (WCAG).&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%2F34aunx5eyw6jkqf1fkyt.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%2F34aunx5eyw6jkqf1fkyt.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Other than rolling out this feature, we have also added the following support:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  You can schedule accessibility scans for locally or internally hosted web pages with Tunnel.&lt;/li&gt;
&lt;li&gt;  While running accessibility tests, you can send bug reports straight to bug-tracking tools like Jira without leaving your accessibility testing workflow.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpx81qsrv3mw27tonb2ug.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%2Fpx81qsrv3mw27tonb2ug.png" alt=" " width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Test Websites in Real Time With Self-Signed Certificates
&lt;/h1&gt;

&lt;p&gt;Some web features work only in a secure environment (HTTPS). When testing HTTPS-only features in an internal or staging environment, teams often rely on self-signed certificates instead of certificates issued by trusted authorities.&lt;/p&gt;

&lt;p&gt;To make your testing even more secure, we have added self-signed certificate support in real-time testing to test your locally hosted websites and web applications.&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%2F9hg1ueiaac4yckvh1u5v.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%2F9hg1ueiaac4yckvh1u5v.png" alt=" " width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this update, you can test locally hosted websites and web applications that are in internal, pre-production, or secure environments without interruptions.&lt;/p&gt;

&lt;h1&gt;
  
  
  Debug Flutter Tests on iOS With Console Logs
&lt;/h1&gt;

&lt;p&gt;Debugging Flutter tests on iOS is now more efficient. You can now view console logs directly for debugging. Earlier, you had to go through lengthy instrumentation logs to troubleshoot issues, which made the process time-consuming.&lt;/p&gt;

&lt;p&gt;However, this update makes real Flutter logs available, allowing testers to quickly spot errors and debug without extra hassle.&lt;/p&gt;

&lt;p&gt;Looking to test your Flutter apps on iOS? Check this guide on Flutter Dart testing with iOS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important Update:&lt;/strong&gt; &lt;em&gt;Starting February 26th, the support for iOS 12 devices is no longer available on our real device cloud. We will also deprecate the support for iOS 13 devices soon, with at least two months’ notice before removal.&lt;/em&gt;      &lt;/p&gt;

&lt;h1&gt;
  
  
  Latest Features Roll-Out in SmartUI
&lt;/h1&gt;

&lt;p&gt;In our continuous effort to enhance your visual testing experience, we’ve rolled out several features in SmartUI.        &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Improved UX for Drawing Regions on Screenshots:&lt;/strong&gt; We’ve enhanced our screenshot comparison tool to ignore or select annotated regions. You can now draw directly while zooming, panning, and pinching for seamless navigation.
An enhanced draw cursor improves speed and accuracy and makes it faster and easier for you to highlight differences. &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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0mk6u9a5naha34nhjqfn.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%2F0mk6u9a5naha34nhjqfn.png" alt=" " width="800" height="247"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Bulk Review of Screenshot Variants:&lt;/strong&gt; The new bulk review feature lets you do a &lt;a href="https://www.lambdatest.com/support/docs/smartui-guided-walkthrough/#variants" rel="noopener noreferrer"&gt;bulk review of screenshot variants&lt;/a&gt;. You can accept, reject, or move multiple screenshots variants in a single action.
This will reduce your repetitive work and make the review process more efficient.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftmumf0vjf90dq7hv6hqh.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%2Ftmumf0vjf90dq7hv6hqh.png" alt=" " width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;SmartIgnore Now Works With SmartUI Public APIs and Integrations:&lt;/strong&gt; SmartIgnore now integrates with SmartUI public APIs, giving you more flexibility in visual testing.
You can easily use SmartIgnore with SmartUI fetch APIs to speed up and refine your visual comparison process. It also supports email and Slack, so you get instant updates right where you work.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Move PDFs and Their Individual Pages to the Baseline:&lt;/strong&gt; You can now move entire PDFs or select their individual pages to the baseline.
It provides you a better control over approval workflows and simplifies your document-level and page-level verification.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Execute JavaScript Code on Target URLs With SmartUI CLI:&lt;/strong&gt; The SmartUI CLI now supports executing JavaScript before capturing snapshots.
You can interact with dynamic elements, modify content, and manage loading states.
Refer to the documentation to execute custom JavaScript code with SmartUI.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Enhancements and Features in HyperExecute
&lt;/h1&gt;

&lt;p&gt;We continue our effort to enhance HyperExecute, bringing new capabilities. Here are some of the newly added features:    &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Artifact Extraction on Job Abortion:&lt;/strong&gt; Artifacts will now be extracted even if a test job is aborted midway. Therefore, you can access partial test results and logs to analyze failures, debug more effectively, and review critical test data even if the execution is interrupted.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;&lt;em&gt;afterEachScenario&lt;/em&gt; Flag for Test Cleanup:&lt;/strong&gt; The &lt;em&gt;afterEachScenario&lt;/em&gt; flag in HyperExecute lets you automate post-test scenario tasks, helping maintain test isolation and consistency. This flag executes cleanup activities such as clearing cookies, resetting databases, or capturing logs after each test scenario.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Role-Based Access Control (RBAC) for Projects:&lt;/strong&gt; We have implemented Role-Based Access Control to improve project security and access management. You can now assign specific roles with predefined permissions so that only authorized individuals can access or modify project settings and resources.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;UI/UX Enhancements for Performance Testing Jobs:&lt;/strong&gt; We’ve improved the UI/UX for managing and analyzing performance testing jobs, making navigation smoother and more intuitive.
A new group-wise error view categorizes errors for better readability and faster troubleshooting.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fldsod82po93z7f6ema6z.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%2Fldsod82po93z7f6ema6z.png" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Additionally, we’ve introduced a toggle feature that lets you switch performance metrics between Milliseconds and Seconds, providing more flexibility in analyzing test execution times.&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%2Fv4iq9t940qluhr28fo01.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%2Fv4iq9t940qluhr28fo01.png" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Test on New Browser Versions:&lt;/strong&gt; You can now test on new browser versions for Microsoft Edge — 133.0.3065.31 and 133.0.3065.39.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  New Features in Insights
&lt;/h1&gt;

&lt;p&gt;To provide deeper visibility into your test execution, we have added some new features in Insights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Filter Custom Data for Builds:&lt;/strong&gt; We have added the &lt;em&gt;customData&lt;/em&gt; capability for Build Comparison that allows you to filter and compare web automation builds. You can also analyze specific test scenarios based on the tags or metadata you’ve defined.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftrlj73d3vyob295kw8ps.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%2Ftrlj73d3vyob295kw8ps.png" alt=" " width="800" height="454"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;New Widget for App Automation:&lt;/strong&gt; We have introduced a new widget for App Automation that provides visibility into your test execution metrics.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F02c5gmbbja5qc8ewa8n8.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%2F02c5gmbbja5qc8ewa8n8.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This widget helps you track the total number of unique applications under test and provides valuable insights into test coverage and application performance.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Export Usage Reports in Excel Format:&lt;/strong&gt; You can now export Insights Usage Reports directly to Excel, making it easier to analyze, share, and integrate data into existing workflows.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo7fivpaatd5i2897j75a.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%2Fo7fivpaatd5i2897j75a.png" alt=" " width="800" height="345"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since all data formatting and structure are preserved, you can seamlessly integrate these reports into your existing Excel-based workflows.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;New “Created by” Column for Dashboards:&lt;/strong&gt; The Dashboard list now includes a “Created by” column that indicates who created a dashboard.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lv95jl871ym0tthgk1d.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%2F6lv95jl871ym0tthgk1d.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Sort Insights Data Based on Column:&lt;/strong&gt; The Insights drill-down experience has been improved with column sorting functionality.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgwd9c5mva0dd5b6pf0o1.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%2Fgwd9c5mva0dd5b6pf0o1.png" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Admin Controls for Accessing and Managing Dashboards:&lt;/strong&gt; Admins can now access and manage all Insights dashboards within their organization, irrespective of who created them.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9lkp1k5qg1v6d0k8uz0b.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%2F9lkp1k5qg1v6d0k8uz0b.png" alt=" " width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Filter Deleted/Disabled Test Builds:&lt;/strong&gt; You can now exclude disabled tests from your dashboards for clearer insights. Removing disabled and deleted tests from your data can help you provide a more accurate view of your current testing workflow.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvr5nfkxpo7mxskmq7zfn.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%2Fvr5nfkxpo7mxskmq7zfn.png" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  All in All!
&lt;/h1&gt;

&lt;p&gt;February brought a range of enhancements to make testing more efficient and seamless. With features like accessibility test scheduling, SmartUI improvements, and better debugging for Flutter tests on iOS, these updates will simplify your workflow.&lt;/p&gt;

&lt;p&gt;Make the most of these new capabilities, and keep your feedback coming!&lt;/p&gt;

</description>
      <category>lambdatest</category>
      <category>product</category>
      <category>smartui</category>
      <category>accessibilitytesting</category>
    </item>
    <item>
      <title>March’25 Updates: iOS VoiceOver Support, New KaneAI Features, and More! | LambdaTest</title>
      <dc:creator>Salmankhan2389</dc:creator>
      <pubDate>Tue, 17 Jun 2025 07:05:55 +0000</pubDate>
      <link>https://forem.com/testmuai/march25-updates-ios-voiceover-support-new-kaneai-features-and-more-lambdatest-4mi9</link>
      <guid>https://forem.com/testmuai/march25-updates-ios-voiceover-support-new-kaneai-features-and-more-lambdatest-4mi9</guid>
      <description>&lt;p&gt;What’s new since our last round of updates?&lt;/p&gt;

&lt;p&gt;A whole lot, actually 😀&lt;/p&gt;

&lt;p&gt;Here’s a quick look at some of the latest features we’ve rolled out to elevate your testing experience.&lt;/p&gt;

&lt;h1&gt;
  
  
  VoiceOver Support on Real iOS Devices
&lt;/h1&gt;

&lt;p&gt;You can now use VoiceOver on real iOS devices to manually test the accessibility of your mobile apps.&lt;/p&gt;

&lt;p&gt;This helps you understand how your mobile app works for users who rely on screen readers-especially those with visual impairments. It lets you check if the content is readable, navigation makes sense, and interactive elements are announced correctly.&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%2Fvfgoch6vky4qwg6kojbi.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%2Fvfgoch6vky4qwg6kojbi.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  New Feature Releases in KaneAI
&lt;/h1&gt;

&lt;p&gt;We’ve added a bunch of new features to KaneAI to give you more control, flexibility, and ease during test creation and execution.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Change Your App While Editing Mobile Test Cases&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Now, you can change or update the mobile app you’re testing right in the middle of editing a mobile test case in KaneAI. So, there is no need to start over from scratch for every new mobile app.&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%2Ffaabb7bbb0y03dere6qo.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%2Ffaabb7bbb0y03dere6qo.png" alt=" " width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s say you need to switch to a different version or configuration of your mobile app while working on a test case-you can do that without losing your progress. Your test steps will stay put and adjust to the new mobile app. Therefore, you don’t have to redo everything.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;“Auto login through Google” Feature for Android Native App Automation”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;KaneAI now lets you log into a Google account on Android devices while creating native app 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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7x52btrphloau8b6qjdj.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%2F7x52btrphloau8b6qjdj.png" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using the Play Store login flow, you can sign in with your credentials-no Multi-Factor Authentication (MFA) is needed. This makes it easier to access and test Google-integrated apps during test creation while keeping things secure and efficient.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Debug Web Automated Tests With Network and Console Logs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now capture network and console logs in KaneAI while running web automation tests.&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%2Fgrgj0w79lzwmvqdxguyv.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%2Fgrgj0w79lzwmvqdxguyv.png" alt=" " width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You’ll get detailed info like network requests, responses, browser errors, and JavaScript logs for debugging, checking API calls, and spotting what went wrong in your test.&lt;/p&gt;

&lt;p&gt;These logs are saved and ready for you after the test run, giving you better visibility into performance and failures.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run Web Tests With Chrome Options Support&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now set Chrome browser options before starting a web test in KaneAI. This lets you set things like headless mode, disable extensions, or block pop-ups.&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%2Fg8kmc966b2nxbt2o24vg.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%2Fg8kmc966b2nxbt2o24vg.png" alt=" " width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is useful if you’re testing features that rely on specific browser settings or want to make tests run faster by disabling unnecessary features.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replace URL for Test Runs Across Different Environments&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now run the same test case across staging or production without editing your script. Just set up dynamic URL replacement in KaneAI, and it will update the environment link automatically during test runs.&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%2F4nof2tfy1eyfct8xitjp.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%2F4nof2tfy1eyfct8xitjp.png" alt=" " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This helps avoid mistakes from manual edits and saves time when testing across multiple environments. It’s especially useful when you’re validating the same flow in different builds or need to quickly switch between environments without duplicating or rewriting test cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use Smart Implicit Waits for Managing Network Requests&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;KaneAI now supports smart implicit waits that automatically pause the test for network activity to complete. You don’t need to manually add waits or guess the right delay anymore.&lt;/p&gt;

&lt;p&gt;The test will continue only when the network response is ready. This reduces flakiness and improves overall test speed. It’s helpful when dealing with web pages that load content asynchronously or when network delays are common.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run KaneAI Tests With LambdaTest Tunnel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can now run tests on local or private environments using LambdaTest Tunnel in KaneAI. Just select a tunnel during test execution-whether through the UI or API-and KaneAI will connect to your local setup.&lt;/p&gt;

&lt;p&gt;This means you can test websites or mobile apps that aren’t publicly available without exposing them online. It’s useful for testing development builds, staging servers, or behind a firewall.&lt;/p&gt;

&lt;h1&gt;
  
  
  Test Firebase Mobile Apps on Real Devices
&lt;/h1&gt;

&lt;p&gt;You can now integrate your Firebase App Distribution account directly to LambdaTest and instantly push apps to real Android and iOS devices in the cloud.&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%2F2n9jfqxrw8uz6o1w20u7.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%2F2n9jfqxrw8uz6o1w20u7.png" alt=" " width="800" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No more downloading and re-uploading builds-just link your Firebase project, and your mobile app is ready to test. It’s a faster way to test beta builds, bug fixes, or new features on actual devices without the back-and-forth.&lt;/p&gt;

&lt;p&gt;Also, you can easily share your Firebase apps with teammates so everyone’s testing from the same source.&lt;/p&gt;

&lt;p&gt;Refer to this documentation on &lt;a href="https://www.lambdatest.com/support/docs/install-apps-from-firebase/?utm_source=medium&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_17&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;how to test apps installed via Firebase.&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Latest Releases in SmartUI
&lt;/h1&gt;

&lt;p&gt;SmartUI just got a lot more powerful-now supporting DOM-level controls, XCUITest for iOS, and much more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Draw Regions and Use DOM-Based Ignore/Select in SmartIgnore&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You now have greater control over what parts of your web application get checked during visual testing. With the new region drawing tool in SmartIgnore, you can manually define specific areas to test. It is helpful when only certain sections of the UI are relevant to your test case.&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%2F152lj7ouqggvkibxrjky.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%2F152lj7ouqggvkibxrjky.png" alt=" " width="800" height="279"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can also ignore or select annotated regions by targeting DOM elements. For example, if any specific component, like dynamic banners or rotating ads, is constantly changing, you can exclude them from the comparison. This reduces false positives and helps focus your visual testing on the actual UI changes that matter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SmartUI Capabilities Support for Selenium SDKs&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you run Selenium tests using Java or JavaScript, the SmartUI SDK now supports defining capabilities directly within the SDK itself. You can set browser versions, OS configurations, resolution settings, and more-all from your test script.  &lt;/p&gt;

&lt;p&gt;The SmartUI SDK capabilities remove the need to maintain separate configuration files or override them externally. It streamlines how you set up your Selenium tests and ensures that the visual regression suite runs exactly how you expect in different test environments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Draw Regions and Use DOM-Based Ignore/Select in SmartIgnore&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The SmartUI CLI Exec commands allow you to manage the SmartUI snapshot server more easily. You can now start, stop, and check the status of the snapshot server directly from the command line-no need to manually open a separate process or check logs elsewhere.&lt;/p&gt;

&lt;p&gt;This is useful when you need to control when and how the snapshot server runs in your automation pipeline or during local debugging. It gives you more operational control and helps reduce test flakiness caused by mismanaged server states.    &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Test Native Apps With Appium Using SmartUI App SDK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The SmartUI App SDK now supports running visual regression tests with Appium Java on real devices. You don’t need to rely on screenshots captured manually-this SDK automates the entire process.&lt;/p&gt;

&lt;p&gt;You can also integrate SmartUI App SDK into your CI/CD workflows and test directly on any supported cloud platform, including LambdaTest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run Mobile Visual Tests With XCUITest Framework&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can perform mobile visual testing with XCUITest with SmartUI. It lets you automate visual regression tests for iOS apps using the native iOS test framework. You can capture snapshots during test runs and compare them against baselines to catch unwanted UI changes, all while continuing to work in the XCUITest ecosystem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Run Visual Tests Using SmartUI SDK With Tunnel&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can use SmartUI SDK with Tunnel to test apps running in local, private, or staging environments. This is particularly useful when your application isn’t exposed to the public internet but still needs visual validation.&lt;/p&gt;

&lt;p&gt;Just start a secure tunnel from your local machine or test environment and run your visual regression tests like you normally would. You’ll be able to catch layout issues or broken styles in isolated environments before deploying to production-without compromising security.&lt;/p&gt;

&lt;h1&gt;
  
  
  Latest Enhancements in HyperExecute
&lt;/h1&gt;

&lt;p&gt;We’ve also made some key enhancements to HyperExecute. Here’s a quick look at what’s new:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Parameterize Appium Flag for iOS Simulation on Desktop Browsers:&lt;/strong&gt; You can now control iOS simulation behavior on desktop browsers by setting a parameterized &lt;em&gt;appium&lt;/em&gt; flag. This lets you toggle simulation based on test requirements without altering the script. It brings more flexibility to cross-platform testing setups.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Use the &lt;em&gt;reporterConfigFile&lt;/em&gt; Option in &lt;em&gt;cypressOps&lt;/em&gt; for Custom Reporter Setup:&lt;/strong&gt; Cypress users can now specify a custom reporter configuration file using the &lt;em&gt;reporterConfigFile&lt;/em&gt; option in &lt;em&gt;cypressOps&lt;/em&gt;. This allows you to plug in advanced reporting tools with minimal setup.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Run .NET Tests Using the &lt;em&gt;runtime&lt;/em&gt; Flag With Versions 4.7 and 4.8:&lt;/strong&gt; You can now run .NET tests by specifying the runtime flag for versions 4.7 and 4.8.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Define Project Name and Auto Create Project With &lt;em&gt;projectName&lt;/em&gt; Capability:&lt;/strong&gt; The &lt;em&gt;projectName&lt;/em&gt; capability lets you define and auto-create projects directly from your test configuration. No need for manual project setup each time.
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Generate Consolidated Native Robot Test Reports:&lt;/strong&gt; HyperExecute now supports consolidated reporting for native Robot Framework test runs. Instead of navigating through multiple logs, you get a single, unified report. This makes analysis faster and simplifies reporting for large test suites.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd9zuv0320k2k829runwm.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%2Fd9zuv0320k2k829runwm.png" alt=" " width="800" height="542"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Get Deeper Visibility With Private Desktop Insights
&lt;/h1&gt;

&lt;p&gt;You can now access detailed analytics for your desktop testing with the new Private Desktop insights -now live in beta.  &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%2F3nye1pfmb2albaz1gcdq.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%2F3nye1pfmb2albaz1gcdq.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this feature, you can track exactly how your test devices are being used: how many tests were run, how long devices were active, and which environments were used most.&lt;/p&gt;

&lt;p&gt;You also get usage breakdowns by user, group, or sub-org-so you can easily spot trends, boost adoption, and plan smarter. Use filters like date, browser, OS, hostname, and more to slice the data however you need.&lt;/p&gt;

&lt;h1&gt;
  
  
  View, Schedule, and Download Reports in the Test Manager
&lt;/h1&gt;

&lt;p&gt;We’ve introduced a new Reports feature in Test Manager to help you stay on top of your testing efforts with ease. You can now view, schedule, and download reports-all from one place.&lt;/p&gt;

&lt;p&gt;The Reports feature lets you generate two types of reports: Execution and Traceability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Execution Report&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With this report, you can track your test execution history in detail and see how your test runs are performing over time with data like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Number of passed/failed tests&lt;/li&gt;
&lt;li&gt;  Test durations&lt;/li&gt;
&lt;li&gt;  Execution trends across cycles&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9uhcbkf3lb94wbaju7kc.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%2F9uhcbkf3lb94wbaju7kc.png" alt=" " width="800" height="426"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Traceability Report&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;With this report, you can gain end-to-end visibility by connecting test cases to their related:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Requirements&lt;/li&gt;
&lt;li&gt;  User stories&lt;/li&gt;
&lt;li&gt;  Bugs and defects&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu2kq54dumdzi89tdudhl.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%2Fu2kq54dumdzi89tdudhl.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Summing Up!
&lt;/h1&gt;

&lt;p&gt;Last month, we brought the heat with a fresh batch of features in KaneAI, SmartUI, and HyperExecute to level up your testing game.&lt;/p&gt;

</description>
      <category>kaneai</category>
      <category>productupdate</category>
      <category>lambdatest</category>
      <category>newfeatures</category>
    </item>
    <item>
      <title>April’ 25 Updates: HyperExecute MCP Server, Schedule Tests With Test Manager, and More!</title>
      <dc:creator>Salmankhan2389</dc:creator>
      <pubDate>Tue, 17 Jun 2025 06:31:23 +0000</pubDate>
      <link>https://forem.com/testmuai/april-25-updates-hyperexecute-mcp-server-schedule-tests-with-test-manager-and-more-4nb1</link>
      <guid>https://forem.com/testmuai/april-25-updates-hyperexecute-mcp-server-schedule-tests-with-test-manager-and-more-4nb1</guid>
      <description>&lt;p&gt;Hey there — we’ve rolled out new features across our different product lines to help you test smarter and faster.        &lt;/p&gt;

&lt;p&gt;HyperExecute now comes with an MCP Server to boost performance and control. We’ve added test scheduling feature in KaneAI, and there are more awesome updates.&lt;/p&gt;

&lt;p&gt;Let’s uncover them one by one!&lt;/p&gt;

&lt;h1&gt;
  
  
  Live With HyperExecute MCP Server
&lt;/h1&gt;

&lt;p&gt;When you want to scale your testing, setting up test runners, managing test execution, and dealing with errors can slow things down. That’s why we built the HyperExecute MCP Server. It helps you with test configurations that used to take weeks and gets it done in minutes.&lt;/p&gt;

&lt;p&gt;HyperExecute MCP Server is an AI-native platform that understands your codebase to generate test commands and create YAML config files right inside your IDE.&lt;/p&gt;

&lt;p&gt;It provides real-time insights from Agentic RAG and helps you speed up your test execution by up to 70% faster than with regular cloud grids.&lt;/p&gt;

&lt;p&gt;Other than launching the HyperExecute MCP Server, we have also made some other enhancements in HyperExecute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Validate HyperExecute YAML File With &lt;em&gt;validate&lt;/em&gt; Flag:&lt;/strong&gt; You can now ensure your YAML file is correctly formatted with the -&lt;em&gt;validate&lt;/em&gt; flag. This you can do without running any tests. The -&lt;em&gt;validate&lt;/em&gt; flag allows you to verify the correctness of your YAML configuration before test execution.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Use the failFast Flag at Scenario Level:&lt;/strong&gt; The &lt;em&gt;failFast&lt;/em&gt; flag is now supported for the scenario level. Therefore, instead of stopping the entire test suite, you can now stop specific scenarios after a defined number of failures.
&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Schedule Test Runs With KaneAI
&lt;/h1&gt;

&lt;p&gt;With KaneAI, you can now schedule test runs for specific times. This way, you don’t have to start them manually every time.&lt;/p&gt;

&lt;p&gt;You can set parameters like network logs, console logs, and some other advanced options, too. This will help you manage test runs better, but without needing to check in constantly.&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%2Fx5mhvwl2qr7em5biswq6.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%2Fx5mhvwl2qr7em5biswq6.png" alt=" " width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Check out this video for a complete summary of what’s new in LambdaTest , all the latest product updates in one place.   &lt;/p&gt;

&lt;h1&gt;
  
  
  Test Flutter Apps With Appium on Virtual Devices
&lt;/h1&gt;

&lt;p&gt;You can now test Flutter apps on Android emulators with Appium. This means you can easily test your app on different screen sizes and OS versions without needing to set up your emulators.&lt;/p&gt;

&lt;p&gt;Also, you can plug these Flutter web app tests into your CI/CD pipeline with our APIs, so your tests run automatically. You’ll get detailed logs, screenshots, and videos to help troubleshoot issues.&lt;/p&gt;

&lt;p&gt;To get started, check out this guide on testing Flutter apps on Android with LambdaTest.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; In addition, we have also integrated with Flutter Integration Driver, which allows you to test Flutter apps on Android emulators and iOS simulators.&lt;/p&gt;

&lt;h1&gt;
  
  
  Latest Features in App Automation
&lt;/h1&gt;

&lt;p&gt;We’ve added new capabilities for App Automation. Now you can interact with devices in real time, control Bluetooth, and simulate GPS locations during your test runs.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Interact With Android and iOS Devices in Real-Time:&lt;/strong&gt; You can now interact with real Android and iOS devices in real-time while running web automated tests.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Control Bluetooth Settings During Test Sessions:&lt;/strong&gt; Bluetooth control is now available for real Android and iOS devices.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Set Custom GPS Coordinates:&lt;/strong&gt; You now have the ability to set custom GPS coordinates during your tests.&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Manage iOS Keychain Cleanup and Access Groups:&lt;/strong&gt; Keychain services by Apple provide a secure mechanism for mobile apps to store sensitive info like passwords, certificates, and authentication tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Run Real-Time App Tests With Bluetooth Support
&lt;/h1&gt;

&lt;p&gt;In addition to App Automation, we have also added support for Bluetooth control in real-time mobile app testing.&lt;/p&gt;

&lt;p&gt;During live-interactive test sessions, you can now switch Bluetooth on or off directly from the console and test your app features that rely on Bluetooth connectivity.&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%2Fs4sx37ie9oxup9pzxbk9.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%2Fs4sx37ie9oxup9pzxbk9.png" alt=" " width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  New Features in Insights
&lt;/h1&gt;

&lt;p&gt;We have rolled out three major features in Insights to help you optimize app performance, speed up debugging, and get deeper insights from your test data.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Monitor Performance in Real-Time With App Profiling Dashboard:&lt;/strong&gt; The new App Profiling dashboard gives you a clear view of how your app behaves during tests on real devices.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74entrvpg63qryufkq9m.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%2F74entrvpg63qryufkq9m.png" alt=" " width="800" height="618"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It tracks eight key performance metrics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  CPU usage&lt;/li&gt;
&lt;li&gt;  Frame rate&lt;/li&gt;
&lt;li&gt;  Memory usage&lt;/li&gt;
&lt;li&gt;  Battery consumption&lt;/li&gt;
&lt;li&gt;  Network activity&lt;/li&gt;
&lt;li&gt;  Device temperature&lt;/li&gt;
&lt;li&gt;  Cold start time&lt;/li&gt;
&lt;li&gt;  Hot start time&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this dashboard, you can easily identify bottlenecks, correlate different metrics, set performance benchmarks, and optimize app behavior across real devices. It also provides practical tips to improve each metric.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Categorize Test Failures With AI:&lt;/strong&gt; Manually identifying test failures is time-consuming.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7ccykch6jxjxkzjhsnd.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%2Fl7ccykch6jxjxkzjhsnd.png" alt=" " width="800" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Therefore, we have released the feature, AI-native test failure categorization in Insights, that helps you speed things up by automatically grouping failures based on environment, browser, OS, and error patterns.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Create Your Own Custom Dashboard Widgets:&lt;/strong&gt; You can now build your own custom dashboard widgets in Insights. This feature gives you the flexibility to create the exact visualizations you need.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbfehkmupbebirebf6rkn.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%2Fbfehkmupbebirebf6rkn.png" alt=" " width="800" height="261"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Benefits:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Select any supported values for both X and Y axes.&lt;/li&gt;
&lt;li&gt;  Organize data using your preferred group-by fields.&lt;/li&gt;
&lt;li&gt;  Apply multiple filter conditions to zero in on the right data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Fresh Set of Features in SmartUI
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Test Locally Hosted Websites Automatically With SmartUI SDK and Tunnel:&lt;/strong&gt; The SmartUI SDKs now come with automatic tunneling support to test websites and web applications hosted in local or private environments. Instead of manually setting up tunnels every time, with SmartUI SDK and LambdaTest Tunnel, you can now configure everything directly within your SmartUI configuration file.
You get the flexibility to choose how you want to manage the tunnels. In automatic mode, SmartUI sets up the tunnel for you.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Just add a simple tunnel object in your config file with type: “auto“, and it will pick up your LambdaTest credentials from environment variables to create a secure connection.&lt;/p&gt;

&lt;p&gt;If you prefer more control, you can go with manual mode by specifying the tunnel name using type: “manual“. You can also fine-tune the setup by configuring ports, proxy settings, or local directories.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Compare Layouts With SmartUI SDK:&lt;/strong&gt; You can test layouts with SmartUI SDK to check if the structure of your UI stays consistent, regardless of device, browser, or environment.
Layouts often break when content changes or when the same page is viewed in a different language. This feature helps catch those issues early by focusing only on how elements are arranged, not on how they look.&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jxkxull4lphpuz8ijhs.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%2F0jxkxull4lphpuz8ijhs.png" alt=" " width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It intentionally ignores changes in text, colors, font sizes, margins, and images. Instead, it checks whether UI components maintain their intended positions and relationships.&lt;/p&gt;

&lt;p&gt;This is helpful for localization testing or when maintaining layout reliability across viewports.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;View Coded Regions Directly on SmartUI Dashboard:&lt;/strong&gt; You can now view coded regions areas you’ve defined in your test scripts to be included or ignored directly on the SmartUI dashboard.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With this feature, these regions appear as overlays alongside any manually drawn ones. So, this helps you ensure consistency between coded and drawn regions and reduce misconfigurations.&lt;/p&gt;

&lt;h1&gt;
  
  
  Log Bugs With Assembla Integration
&lt;/h1&gt;

&lt;p&gt;Assembla is a cloud-based platform that provides robust version control capabilities, supporting industry-standard systems like Git and even enterprise-focused options..&lt;/p&gt;

&lt;p&gt;We have now integrated with Assembla to enhance your bug tracking process. With &lt;a href="https://www.lambdatest.com/support/docs/assembla-integration/?utm_source=devto&amp;amp;utm_medium=organic&amp;amp;utm_campaign=june_17&amp;amp;utm_term=pd&amp;amp;utm_content=blog" rel="noopener noreferrer"&gt;Assembla integration with LambdaTest&lt;/a&gt;, you can log issues directly from the LambdaTest platform to the Assembla instance, assign them to team members, and include screenshots during test sessions.&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%2F1a8kfzaq81ixvyt1ei1o.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%2F1a8kfzaq81ixvyt1ei1o.png" alt=" " width="800" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Wrapping Up!
&lt;/h1&gt;

&lt;p&gt;That’s all for this round of updates. You can now schedule test runs with Test Manager, test Flutter apps using Appium on virtual devices, and do much more.&lt;/p&gt;

&lt;p&gt;Real-time app testing now comes with Bluetooth support, and we’ve packed in new features across Insights and SmartUI. You can also log bugs straight into your workflow with the new Assembla integration.&lt;/p&gt;

&lt;p&gt;Go try out these features, see what works for you, and let us know how it goes. We’re not done yet more’s on the way! &lt;/p&gt;

</description>
      <category>hyperexecute</category>
      <category>mcpserver</category>
      <category>kaneai</category>
      <category>softwaretesting</category>
    </item>
    <item>
      <title>How to Handle Dropdowns Using the Cypress .select() Command</title>
      <dc:creator> Alex Anie</dc:creator>
      <pubDate>Tue, 03 Jun 2025 14:49:50 +0000</pubDate>
      <link>https://forem.com/testmuai/how-to-handle-dropdowns-using-the-cypress-select-command-4d4i</link>
      <guid>https://forem.com/testmuai/how-to-handle-dropdowns-using-the-cypress-select-command-4d4i</guid>
      <description>&lt;p&gt;Dropdowns can be challenging to handle due to dynamic options, inconsistent values, or differences between displayed text. In Cypress, you can overcome this challenge using the .select() command.&lt;/p&gt;

&lt;p&gt;It allows you to handle (or select) dropdowns by visible text, value, or index. The Cypress .select() command is a built-in function that interacts with and performs tests on the selected elements in a web application.&lt;/p&gt;

&lt;p&gt;In this blog, you will learn everything you need to know about using the Cypress .select() command.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Cypress .select() Command?
&lt;/h2&gt;

&lt;p&gt;The Cypress .select() command is a built-in function that is used to select a  tag within the  WebElement. It retrieves the selected  tags and performs tests on them.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.select(value)
.select(values)
.select(value, options)
.select(values, options)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Cypress &lt;em&gt;.select()&lt;/em&gt; command takes in two arguments, the first being value, which can be any of the following; &lt;em&gt;value, index, or text content of the  tag.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The second argument is optional but can be specified as a configuration object. For example, &lt;em&gt;(force: true)&lt;/em&gt; can be used to undo the default behavior of the &lt;em&gt;.select()&lt;/em&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;HTML:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;select&amp;gt;
 &amp;lt;option value="one"&amp;gt;apples&amp;lt;/option&amp;gt;
 &amp;lt;option value="two"&amp;gt;oranges&amp;lt;/option&amp;gt;
 &amp;lt;option value="three"&amp;gt;bananas&amp;lt;/option&amp;gt;
&amp;lt;/select&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;JavaScript:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cy.get('select').select(0).should('have.value', 'one')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we get the &lt;em&gt;&lt;/em&gt; WebElement and pass in an integer with a value of zero; then, we assert that the selected WebElement should have a value of “one” as a means of validation before test execution.&lt;/p&gt;

&lt;p&gt;The Cypress &lt;em&gt;.select()&lt;/em&gt; command is used to handle both types of dropdowns: static and dynamic.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Handle Static Dropdowns?
&lt;/h2&gt;

&lt;p&gt;Static dropdowns are a type of select control in which the selection content is loaded in the browser as soon as the page loads. They are usually hard-coded into the HTML of the web page.&lt;/p&gt;

&lt;p&gt;There are different ways to select static dropdown options using the Cypress .select() command, including selecting by index, value, or text.&lt;/p&gt;

&lt;h3&gt;
  
  
  Select by Index
&lt;/h3&gt;

&lt;p&gt;Select by index is one of the methods that can be used to select  tag within the  element. The index refers to an integer that represents the number of  tags within the parent  element. The first element is identified as 0, and then the second as 1, and so on.&lt;/p&gt;

&lt;p&gt;To see this in action, let’s use the LambdaTest eCommerce Playground.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open the LambdaTest eCommerce Playground on your web browser.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Press the Tab with F12 on your keyboard to launch the DevTools.&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#entry_212434 #input-sort-212434
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the above CSS selector and press CTRL + F. Then, paste the CSS selector in the find box indicated by the red box.&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%2Fz7sf9ql87aui14havfyp.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%2Fz7sf9ql87aui14havfyp.png" alt=" " width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This should target and select the right WebElement as highlighted in the yellow color below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxa3yubg8yeeyum0hy5qu.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%2Fxa3yubg8yeeyum0hy5qu.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After identifying the selected element, run the Cypress test script below to execute the test case:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Select the index', () =&amp;gt; {
    it('select the option tag with an of 1', () =&amp;gt; {
      cy.visit('https://ecommerce-playground.lambdatest.io/index.php?route=product/manufacturer/info&amp;amp;manufacturer_id=9')
      cy.get('#entry_212434 #input-sort-212434').select(1)

    // Wait for the page to update or stabilize
    cy.url().should('include', 'sort=order_quantity')

    // Assert the selected option's text is 'Best sellers'
    cy.get('#entry_212434 #input-sort-212434 option:selected')
      .should('have.text', 'Best sellers')
    })
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F7gawm21eavpycms2y3v4.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%2F7gawm21eavpycms2y3v4.png" alt=" " width="198" height="66"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your test run should be indicated as shown below:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovvii2sx312fffb3agy8.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%2Fovvii2sx312fffb3agy8.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the image above, the Best Sellers option is selected in the select control.&lt;/p&gt;

&lt;h3&gt;
  
  
  Select by Value
&lt;/h3&gt;

&lt;p&gt;Selecting a dropdown by value is very similar to selecting an element by index. Instead of passing integers as value to the &lt;em&gt;.select()&lt;/em&gt; command, the value property of the &lt;em&gt;&lt;/em&gt; tag is used instead.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Select web element by value', () =&amp;gt; {
    it('Select the option element by the value attribute', () =&amp;gt; {
      cy.visit('https://ecommerce-playground.lambdatest.io/index.php?route=product/manufacturer/info&amp;amp;manufacturer_id=9')
      cy.get('#entry_212434 #input-sort-212434')
      .select('https://ecommerce-playground.lambdatest.io/index.php?route=product/manufacturer/info&amp;amp;manufacturer_id=9&amp;amp;sort=p.viewed&amp;amp;order=DESC')
    })
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above used the &lt;em&gt;.select()&lt;/em&gt; command to interact with the &lt;em&gt;&lt;/em&gt; WebElement and retrieve the &lt;em&gt;&lt;/em&gt; tag with the value &lt;em&gt;Popular&lt;/em&gt; text.&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%2Fap2rnn197v2913uquod8.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%2Fap2rnn197v2913uquod8.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here, the &lt;em&gt;&lt;/em&gt; WebElement uses the &lt;em&gt;value&lt;/em&gt; to choose the &lt;em&gt;Popular option&lt;/em&gt;, which corresponds to the text displayed in the dropdown. The test simulates selecting the most popular items on the Canon product list by interacting with the dropdown element.&lt;/p&gt;

&lt;h3&gt;
  
  
  Select by Text
&lt;/h3&gt;

&lt;p&gt;To select an element by text, the &lt;em&gt;.select()&lt;/em&gt; command received the text content as an argument.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Select web element by Text', () =&amp;gt; {
    it('Select the option tag with a Newest', () =&amp;gt; {
      cy.visit('https://ecommerce-playground.lambdatest.io/index.php?route=product/manufacturer/info&amp;amp;manufacturer_id=9')
      cy.get('#entry_212434 #input-sort-212434')
      .select('Newest')
    })
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the text content of the &lt;em&gt;&lt;/em&gt; element Newest is passed to the &lt;em&gt;.select()&lt;/em&gt; command. This allows Cypress to retrieve the WebElement associated with &lt;em&gt;Newest&lt;/em&gt; and then perform a test on it.&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%2Ffm472u9w990nkyrylzg2.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%2Ffm472u9w990nkyrylzg2.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From the image above, the select control selected the &lt;em&gt;&lt;/em&gt; element with the text content of the &lt;em&gt;Newest&lt;/em&gt; element.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Handle Dynamic Dropdowns?
&lt;/h2&gt;

&lt;p&gt;Dynamic dropdowns are selection controls in which the options are rendered dynamically depending on the content or user search input.&lt;/p&gt;

&lt;p&gt;Initially, the _ _elements are not present when the page first loads. Instead, the dropdown waits for the user’s input or an event to trigger before it loads the options dynamically into the page.&lt;/p&gt;

&lt;p&gt;Cypress sends requests by passing text into the input control. It then waits for the content to load on the page before interacting with it.&lt;/p&gt;

&lt;p&gt;To handle dynamic dropdowns in Cypress, you can use &lt;em&gt;.contains()&lt;/em&gt; and &lt;em&gt;.each()&lt;/em&gt; commands.&lt;/p&gt;

&lt;h3&gt;
  
  
  .contains() Command
&lt;/h3&gt;

&lt;p&gt;The &lt;em&gt;.contains()&lt;/em&gt; command in Cypress retrieves the DOM element containing the text passed in. It can take more than one argument.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.contains(content)
.contains(content, options)
.contains(selector, content)
.contains(selector, content, options)

// getting web elements that contain
cy.contains(content)
cy.contains(content, options)
cy.contains(selector, content)
cy.contains(selector, content, options)

// usage
cy.get('.nav').contains('About') 
cy.contains('Hello')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To demonstrate, we will leverage the Cypress &lt;em&gt;.contains()&lt;/em&gt; command to dynamically interact with dropdowns on a web page.&lt;/p&gt;

&lt;p&gt;We will use the LambdaTest eCommerce Playground. When a user inputs “iPhone” into the navigation search bar, a list of matching product items is displayed as clickable links within the dropdown.&lt;/p&gt;

&lt;p&gt;The Cypress &lt;em&gt;.contains()&lt;/em&gt; command is used to assert that the search query is present within the returned product list and, if found, triggers a click action on the corresponding item. This approach is particularly useful for automating the testing of dynamic dropdowns and validating that search functionality behaves as expected.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  describe('Dynamic Dropdown Test', () =&amp;gt; {
    it('should select a specific option from a dynamically loaded dropdown', () =&amp;gt; {
      // Step 1: Visit the page  cy.visit('https://ecommerce-playground.lambdatest.io/index.php?route=common/home');  // Replace with your actual page URL

      // Step 2: Click on the dropdown to trigger the loading of dynamic options
      cy.get('#entry_217822 &amp;gt; div input[placeholder="Search For Products"]').click();  // Adjust selector for the dropdown

      // Step 3: Wait for the dropdown options to be visible (if required)
      cy.get('#entry_217822 &amp;gt; div input[placeholder="Search For Products"]') // Selector for the dropdown options container
        .should('be.visible');

      // Step 4: Optionally filter options by typing in the dropdown's input field
      cy.get('#entry_217822 &amp;gt; div input[placeholder="Search For Products"]').type('iPod Touch'); // Adjust if needed for input

      // Step 5: Select an option dynamically
      cy.contains('#search &amp;gt; div.search-input-group.flex-fill &amp;gt; div.dropdown &amp;gt; ul li', 'iPod Touch') // Adjust selector for dropdown item
        .click();

      // Step 6: Assert that the correct option is selected
      cy.get('#entry_217822 &amp;gt; div input[placeholder="Search For Products"]').should('have.value', 'iPod Touch');
    });
  });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8wpkdx0qrbagsvmi4kth.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%2F8wpkdx0qrbagsvmi4kth.png" alt=" " width="800" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  .each() Command
&lt;/h3&gt;

&lt;p&gt;The &lt;em&gt;.each()&lt;/em&gt; command in the dynamic dropdown iterates through the elements that match the specified text and provides an interface to interact with the selected WebElement.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Syntax:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cy.get('ul&amp;gt;li').each(($el, index, $list) =&amp;gt; {
 // $el is a wrapped jQuery element
 if ($el.someMethod() === 'something') {
   //Wrap this element so we can
   // use cypress commands on it
   cy.wrap($el).click()
 } else {
   // do something else
 }
})
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, the below test script loads the specified web address and retrieves the DOM element of the input tag on the navbar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Dynamic Dropdown Test', () =&amp;gt; {
    it('should select a specific option from a dynamically loaded dropdown', () =&amp;gt; {
      // Step 1: Visit the page
      cy.visit('https://ecommerce-playground.lambdatest.io/index.php?route=common/home');  // Replace with your actual page URL

      // Step 2: Click on the dropdown to trigger the loading of dynamic options and type the text "iPod"
      cy.get('#entry_217822 &amp;gt; div input[placeholder="Search For Products"]').click().clear().type('iPod');  

      // Step 4: iterate over the the returned nodelist and check if "Nano" text exit and click it if Yes
      cy.get('#search &amp;gt; div.search-input-group.flex-fill &amp;gt; div.dropdown &amp;gt; ul li').each(($el, index, $list)=&amp;gt;{
        cy.log($el.text())
        if($el.text() === "Nano"){
            cy.wrap($el).click()
        }
      })
    });
  });
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It clicks on the input tag and types the &lt;em&gt;iPod&lt;/em&gt; text. Then it iterates over all the dynamic dropdowns and checks if the element that contains &lt;em&gt;iPod&lt;/em&gt; matches the content &lt;em&gt;Nano&lt;/em&gt;, and if this is true, a click operation is performed.&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%2Faah3ebqdqogw3cxhpo9u.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%2Faah3ebqdqogw3cxhpo9u.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Advanced Use Cases of Cypress .select() Commands
&lt;/h2&gt;

&lt;p&gt;When handling dropdowns, some WebElements are hidden or disabled by default, making them difficult to retrieve with the &lt;em&gt;.select()&lt;/em&gt; command in Cypress.&lt;/p&gt;

&lt;p&gt;Let’s look at how to handle disabled and hidden dropdowns.&lt;/p&gt;

&lt;h3&gt;
  
  
  Disabled Dropdowns
&lt;/h3&gt;

&lt;p&gt;Disabled dropdowns are select controls set to disable using the disabled property in HTML, or :disabled CSS pseudo-class. Disabled elements prevent users from interacting with the specified WebElement.&lt;/p&gt;

&lt;p&gt;When elements are set to disabled, it stops functioning as usual and does not respond to mouse input, keyboard events, or any other user-stimulated interaction. However, when using the Cypress .select() command, disabled elements are, by default, turned off as false. This means it cannot be selected with the Cypress .select() command.&lt;/p&gt;

&lt;p&gt;To bypass this, the Cypress &lt;em&gt;.select()&lt;/em&gt; command provides a second argument called &lt;em&gt;force&lt;/em&gt; object. The force object takes in a boolean value as &lt;em&gt;true&lt;/em&gt; to enable Cypress to select the &lt;em&gt;disabled&lt;/em&gt; element on the DOM.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;section class="iphones" id="iphones"&amp;gt;
&amp;lt;h1&amp;gt;Types of iPhone&amp;lt;/h1&amp;gt;
&amp;lt;section id="iphone-versions"&amp;gt;
    &amp;lt;label for="select-version"&amp;gt;Choose an iPhone:&amp;lt;/label&amp;gt;
            &amp;lt;select name="iPhones" id="select-version" disabled&amp;gt;
                &amp;lt;option value=""&amp;gt;--Please choose an option--&amp;lt;/option&amp;gt;
                &amp;lt;option value="iPhone-8"&amp;gt;iPhone 8&amp;lt;/option&amp;gt;
                &amp;lt;option value="iPhone-XR"&amp;gt;iPhone XR&amp;lt;/option&amp;gt;
                &amp;lt;option value="iPhone-11" &amp;gt;iPhone 11&amp;lt;/option&amp;gt;
                &amp;lt;option value="iPhone-12"&amp;gt;iPhone 12&amp;lt;/option&amp;gt;
                &amp;lt;option value="iPhone-13"&amp;gt;iPhone 13&amp;lt;/option&amp;gt;
                &amp;lt;option value="iPhone-14"&amp;gt;iPhone 14&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
&amp;lt;/section&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here, we have a select WebElement with a specified disabled element to prevent user interactions.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;&lt;/em&gt; WebElements with a &lt;em&gt;disabled&lt;/em&gt; property specified, can not be accessed by Cypress. This is the default behavior in Cypress to fix this.&lt;/p&gt;

&lt;p&gt;The Cypress &lt;em&gt;.select()&lt;/em&gt; command is set to receive a second argument as &lt;em&gt;{force: true}&lt;/em&gt;. When the &lt;em&gt;{force: true}&lt;/em&gt; property is applied to an element, Cypress interacts with the element directly without enabling it or removing the disabled property in order to perform a test on it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Force Select an Element', () =&amp;gt; {
    it('Force select a disabled element', () =&amp;gt; {
      cy.visit('https://cdpn.io/pen/debug/MYgXLQy?authentication_hash=LQkExWmOvBxA')


      cy.get('#iphone-versions #select-version')


      .select('iPhone 11', {force: true})


      .invoke('val').should('eq', 'iPhone-11')
    })
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;From the code above, the &lt;em&gt;.select()&lt;/em&gt; command received a second argument as &lt;em&gt;force&lt;/em&gt; and set its &lt;em&gt;value&lt;/em&gt; to true. This enables the Cypress &lt;em&gt;.select()&lt;/em&gt; command to interact with the disabled element while it’s still disabled or hidden.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Output:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqt0h8knxzgfm227bymr7.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%2Fqt0h8knxzgfm227bymr7.png" alt=" " width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden Dropdowns
&lt;/h2&gt;

&lt;p&gt;Hidden WebElements are HTML elements styled with &lt;em&gt;display: none&lt;/em&gt; in CSS, making them invisible on the web page.&lt;/p&gt;

&lt;p&gt;In Cypress, hidden elements are typically disabled from interaction. However, to interact with a hidden element, you can use the &lt;em&gt;{force: true}&lt;/em&gt; option, allowing Cypress to forcefully interact with the specified element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;section class="mac-book" id="mac-book"&amp;gt;
&amp;lt;h1&amp;gt;Mac Book models released&amp;lt;/h1&amp;gt;
&amp;lt;section id="mac-book-models"&amp;gt;
    &amp;lt;label for="select-version"&amp;gt;Choose a Mac Book:&amp;lt;/label&amp;gt;
            &amp;lt;select name="mac-book" id="select-version" style="display: none;"&amp;gt;
                &amp;lt;option value=""&amp;gt;--Please choose an option--&amp;lt;/option&amp;gt;
                &amp;lt;option value="iMac-Pro"&amp;gt;iMac Pro (27-inch)&amp;lt;/option&amp;gt;
                &amp;lt;option value="MacBook-Air"&amp;gt;MacBook Air (Retina, 13-inch)&amp;lt;/option&amp;gt;
                &amp;lt;option value="Mac-Pro" &amp;gt;Mac Pro&amp;lt;/option&amp;gt;
                &amp;lt;option value="Mac-mini"&amp;gt;MacBook Pro&amp;lt;/option&amp;gt;
                &amp;lt;option value="Mac-Studio"&amp;gt;Mac Studio&amp;lt;/option&amp;gt;
                &amp;lt;option value="MacBook-Air"&amp;gt;MacBook Air&amp;lt;/option&amp;gt;
            &amp;lt;/select&amp;gt;
&amp;lt;/section&amp;gt;
&amp;lt;/section&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The code above demonstrates a &lt;em&gt;&lt;/em&gt; element with its display property set to &lt;em&gt;none&lt;/em&gt;, which hides both the &lt;em&gt;&lt;/em&gt; element and its child &lt;em&gt;&lt;/em&gt; tags, preventing them from appearing on the web page.&lt;/p&gt;

&lt;p&gt;Here, the &lt;em&gt;&lt;/em&gt; element is set to &lt;em&gt;display: none&lt;/em&gt;, which automatically removes the element from the DOM. In this case, the element becomes hidden from users and, as a result, stops Cypress from interacting with it.&lt;/p&gt;

&lt;p&gt;To stop the behavior, &lt;em&gt;{force: true}&lt;/em&gt; option is set to the &lt;em&gt;.select()&lt;/em&gt; command, allowing Cypress to interact with the hidden element.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Force Select an Element', () =&amp;gt; {

    it('Force select a hidden element', () =&amp;gt; {
      cy.visit('https://cdpn.io/pen/debug/dPbjbwK?authentication_hash=nqAwvJdQxbWr')

      cy.get('#mac-book-models #select-version')

      .select('Mac Studio', {force: true})

      .invoke('val').should('eq', 'Mac-Studio')
    })
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Funiahxbbwu3yzsmditpn.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%2Funiahxbbwu3yzsmditpn.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Select Multiple Elements
&lt;/h3&gt;

&lt;p&gt;The Cypress &lt;em&gt;.select()&lt;/em&gt; command can simultaneously select more than one &lt;em&gt;&lt;/em&gt;. This is very useful as it lets you perform multiple test cases on numerous &lt;em&gt;&lt;/em&gt; WebElements.&lt;/p&gt;

&lt;p&gt;To interact with multiple elements at once, the Cypress &lt;em&gt;.select()&lt;/em&gt; command accepts additional arguments in the form of multiple values. These values correspond to the text content of the &lt;em&gt;&lt;/em&gt; tags that Cypress needs to select.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;describe('Select multiple element', () =&amp;gt; {
    it('Select more than one option web element', () =&amp;gt; {
      cy.visit('https://ecommerce-playground.lambdatest.io/index.php?route=product/manufacturer/info&amp;amp;manufacturer_id=9')
      cy.get('#entry_212434 #input-sort-212434')


      .select(['Default'], ['Best sellers'], ['Popular'])

    })
  })
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Output:&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbuwxzcfwno6qodoq4pyd.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%2Fbuwxzcfwno6qodoq4pyd.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Cypress &lt;em&gt;.select()&lt;/em&gt; command selects the options passed as an argument starting from the Default option.&lt;/p&gt;

&lt;p&gt;The above Cypress tests for handling dropdowns are run on the local grid. However, for better scalability and reliability, you can harness the capabilities offered by cloud grids such as LambdaTest.&lt;/p&gt;

&lt;p&gt;LambdaTest is an AI-native test execution platform that lets you run tests on the Cypress cloud grid. It offers scalability, intelligent debugging, and AI-driven optimizations to streamline test automation.&lt;/p&gt;

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

&lt;p&gt;The Cypress &lt;em&gt;.select()&lt;/em&gt; command is a built-in function that interacts and runs tests on the &lt;em&gt;&lt;/em&gt; WebElement and dynamic dropdown in the web application. The &lt;em&gt;&lt;/em&gt; WebElement or dynamic dropdown are web controls that provide a menu or list of options for users on the web.&lt;/p&gt;

&lt;p&gt;The &lt;em&gt;.select()&lt;/em&gt; command can interact with dropdowns by their indexes, values, or text content. It can also run tests on multiple WebElements. However, to perform dynamic selection, more advanced techniques are required, such as &lt;em&gt;.contains()&lt;/em&gt; and &lt;em&gt;.each()&lt;/em&gt; Cypress commands.&lt;/p&gt;

</description>
      <category>cypress</category>
      <category>cypressselectcommand</category>
      <category>dynamicdropdown</category>
      <category>staticdropdown</category>
    </item>
  </channel>
</rss>
