{"id":1955,"date":"2025-07-08T20:45:00","date_gmt":"2025-07-08T20:45:00","guid":{"rendered":"https:\/\/www.rainforestqa.com\/blog\/?p=1955"},"modified":"2026-03-03T17:34:55","modified_gmt":"2026-03-03T17:34:55","slug":"ai-test-automation","status":"publish","type":"post","link":"https:\/\/www.rainforestqa.com\/blog\/ai-test-automation","title":{"rendered":"Watch: Using generative AI for test automation in Rainforest [Video]"},"content":{"rendered":"\n<p>We\u2019ve integrated generative AI features deeply into our no-code test automation platform, Rainforest QA.&nbsp;<\/p>\n\n\n\n<p>Each of these features is designed to help you avoid the time-consuming and otherwise annoying work of keeping automated test suites up to date \u2014 so your software development team can stay focused on shipping, fast.<\/p>\n\n\n\n<p>In this video, our CEO, Fred Stevens-Smith, walks through what some of these genAI features look like in action.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Rainforest AI QA Walkthrough\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/Wwzu4D3qrcw?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rainforestqa.com\/blog\/ai-test-automation\/#What_is_Generative_AI_for_Test_Automation\" >What is Generative AI for Test Automation?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rainforestqa.com\/blog\/ai-test-automation\/#Create_automated_test_cases_with_simple_plain-English_prompts\" >Create automated test cases with simple, plain-English prompts<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rainforestqa.com\/blog\/ai-test-automation\/#Tests_update_themselves_with_self_healing\" >Tests update themselves with self healing<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rainforestqa.com\/blog\/ai-test-automation\/#Avoid_flaky_automated_tests_with_reliable_element_locators\" >Avoid flaky automated tests with reliable element locators<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rainforestqa.com\/blog\/ai-test-automation\/#What_makes_Rainforests_generative_AI_different\" >What makes Rainforest&#8217;s generative AI different?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_is_Generative_AI_for_Test_Automation\"><\/span>What is Generative AI for Test Automation?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Benefits of Generative AI for Test Automation<\/h3>\n\n\n\n<p>If you prefer to read instead of watching the video, we\u2019ve detailed below the various ways we\u2019re using generative AI for test automation. Plus, we\u2019ve provided a short explainer on how we optimize our <a href=\"https:\/\/www.rainforestqa.com\/blog\/ai-testing-tools\">AI tool for software testing<\/a> and what makes it different from any other AI solution in the quality assurance market.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Create_automated_test_cases_with_simple_plain-English_prompts\"><\/span>Create automated test cases with simple, plain-English prompts<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>There are a number of test automation tools that allow you to create automated test steps using plain-English prompts. The natural language processing capabilities of genAI models make them ideal for this use case.<\/p>\n\n\n\n<p>But in many cases, test case generation requires a separate prompt for every step you want the test to execute. So, for example, for your web app\u2019s signup flow, you\u2019d have to write step-by-step instructions with prompts like these:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Click on the Sign Up button<\/li>\n\n\n\n<li>Fill the email field with tester@test.com<\/li>\n\n\n\n<li>Fill the password field with 12345<\/li>\n\n\n\n<li>Click the Continue button<\/li>\n<\/ol>\n\n\n\n<p>That\u2019s more manual effort than necessary.<\/p>\n\n\n\n<p>We\u2019re focused on helping you save time and move faster, especially in your testing workflow. <strong>For test case creation in Rainforest, you can create a whole <\/strong><strong><em>series<\/em><\/strong><strong> of steps with just a single prompt.<\/strong>&nbsp;<\/p>\n\n\n\n<p>In the test scenario above, you could simply enter the prompt \u201cCreate an account using dummy data\u201d and Rainforest\u2019s generative AI model would create comprehensive test coverage for your signup flow.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"459\" src=\"https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/06\/ai-prompt-rf-2.jpg\" alt=\"\" class=\"wp-image-2317\" style=\"width:600px\" srcset=\"https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/06\/ai-prompt-rf-2.jpg 800w, https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/06\/ai-prompt-rf-2-300x172.jpg 300w, https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/06\/ai-prompt-rf-2-768x441.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/><figcaption class=\"wp-element-caption\">Rainforest\u2019s AI creates a series of steps based on a single prompt, even including test data generation<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Tests_update_themselves_with_self_healing\"><\/span>Tests update themselves with self healing<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Engineering leaders consistently tell us that maintaining automated test scripts is a time-consuming and tedious part of the testing process for their teams. It distracts them from their primary goal: shipping code.<\/p>\n\n\n\n<p>We\u2019re using generative AI to shift the burden of test maintenance from your team to our specialized AI agents.&nbsp;<\/p>\n\n\n\n<p><strong>When a test fails during execution due to an intended change in your app (and <\/strong><strong><em>not<\/em><\/strong><strong> due to a bug), Rainforest\u2019s artificial intelligence will automatically update \u2014 or \u201cheal\u201d \u2014 the relevant test steps to reflect your intended changes.<\/strong><\/p>\n\n\n\n<p>When the failing test steps are from an AI-generated test based on one of your plain-English prompts, the AI will proactively update and save the test steps since it understands your intent. For failing test steps that were created manually with no-code (and not with a prompt), the AI will suggest a fix for you to approve or deny.&nbsp;<\/p>\n\n\n\n<p>This AI-powered self-healing functionality means you\u2019ll spend a lot less time investigating and addressing false-positive test results stemming from intended changes to your app. When Rainforest does report test failures, it\u2019ll be more likely to represent actual bugs or potential issues you\u2019ll want to fix to keep your app high-quality.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"590\" height=\"554\" src=\"https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/04\/self-healed-test.jpg\" alt=\"\" class=\"wp-image-2067\" style=\"object-fit:cover\" srcset=\"https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/04\/self-healed-test.jpg 590w, https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/04\/self-healed-test-300x282.jpg 300w\" sizes=\"(max-width: 590px) 100vw, 590px\" \/><figcaption class=\"wp-element-caption\">A test in Rainforest automatically healed itself using genAI in response to a change in the tested app<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Our goal is to find the ideal balance between helping your software development team move quickly while giving you confidence in your test suite and software quality.&nbsp;<\/p>\n\n\n\n<p><strong>Any changes the AI makes are completely transparent to you, and you have final control over your tests.<\/strong> The system also records version histories of your tests if you ever want to revert.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Avoid_flaky_automated_tests_with_reliable_element_locators\"><\/span>Avoid flaky automated tests with reliable element locators<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Self-healing isn\u2019t the only way Rainforest uses generative AI to help you avoid false-positive failures in your automated tests. Rainforest also uses genAI to create fallback methods for finding the app elements \u2014 like buttons, form fields, and more \u2014 indicated in your tests.&nbsp;<\/p>\n\n\n\n<p>When a test automation tool only uses a single method \u2014 like a DOM selector \u2014 to locate elements in your app, its tests can be quite brittle. That is, they can fail easily due to minor changes that aren\u2019t even apparent to users.&nbsp;<\/p>\n\n\n\n<p>For example, if a button\u2019s ID changes from \u201csignup-button\u201d to \u201csign-up-button,\u201d a test looking for the \u201csignup-button\u201d ID would fail, even if the button\u2019s appearance and functionality hadn\u2019t changed. Someone would need to diagnose the test failure, identify the underlying issue, and update the test to use the correct element ID. It\u2019s not rocket science, but it definitely interrupts workflows and is a low-value use of time.<\/p>\n\n\n\n<p><strong>Rainforest uses up to three different methods to identify elements in your app, which makes its tests a lot more robust.&nbsp;<\/strong><\/p>\n\n\n\n<p>These three methods include screenshots, DOM selectors, and AI-generated descriptions. When you or the AI first identify a target element by taking a screenshot, the system automatically captures the element\u2019s DOM selector and generates a description of the element.<\/p>\n\n\n\n<p>During test execution, if the system can\u2019t locate an element based on its screenshot or DOM selector, the AI will search for the element based on the element\u2019s description (e.g., &#8220;Pricing&#8221; located near the top middle of the screen).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"688\" height=\"906\" src=\"https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/04\/ai-generated-description.jpg\" alt=\"\" class=\"wp-image-2066\" style=\"width:500px\" srcset=\"https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/04\/ai-generated-description.jpg 688w, https:\/\/www.rainforestqa.com\/blog\/wp-content\/uploads\/2024\/04\/ai-generated-description-228x300.jpg 228w\" sizes=\"(max-width: 688px) 100vw, 688px\" \/><figcaption class=\"wp-element-caption\">Rainforest uses up to three different methods to identify elements in your app, including an AI-generated description<\/figcaption><\/figure>\n<\/div>\n\n\n<p>Having these fallbacks means avoiding brittle tests that interrupt your team with false-positive test failures every time you make minor changes to your app.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"What_makes_Rainforests_generative_AI_different\"><\/span>What makes Rainforest&#8217;s generative AI different?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The unreliable outputs of generative AI tools like Copilot have made many software developers understandably skeptical.&nbsp;<\/p>\n\n\n\n<p>We\u2019ve implemented several unique methodologies to make Rainforest\u2019s generative AI more reliable, and especially well-suited for software test automation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Complementary agents can work out the big picture and the details<\/h3>\n\n\n\n<p>It\u2019s difficult to teach a single AI agent to adopt multiple approaches \u2014 this is a common challenge in artificial intelligence. For example, it\u2019s difficult for an agent to be both good at broad, high-level planning and narrow, detailed, execution.<\/p>\n\n\n\n<p>Instead, we\u2019ve developed different agents that each specialize in specific things and give feedback to each other. During their collaboration, when they disagree, they start talking to each other iteratively until they reach an optimal decision.<\/p>\n\n\n\n<p>You can read about our novel (patent-pending) \u201ccomplementary agents\u201d approach <a href=\"https:\/\/www.rainforestqa.com\/blog\/building-reliable-systems-out-of-unreliable-agents#Use_complementary_agents\" target=\"_blank\" rel=\"noreferrer noopener\">in this blog post<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Multi-modal data means testing the actual user experience&nbsp;<\/h3>\n\n\n\n<p>Rainforest\u2019s AI agents use different types of data \u2014 including, and notably, visual data \u2014 from the app under test to make decisions.<\/p>\n\n\n\n<p>This approach follows the same philosophy that led us to focus on testing the visual layer in our no-code automation platform instead of the DOM (the behind-the-scenes code) \u2014 tests should evaluate what users will experience, not what computers see in the code behind the experience.<\/p>\n\n\n\n<p>In that spirit, our visual-processing algorithms have been trained using machine learning to simulate human judgment: when visual changes in the app under test are so small that a human software tester wouldn\u2019t notice or care, the system will ignore those changes. (Though you can toggle on a \u201cstrict matching\u201d option.)<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The AI works inside and outside the browser<\/h3>\n\n\n\n<p>Unlike other generative AI tools for test automation, Rainforest\u2019s AI isn\u2019t limited to testing what\u2019s in the browser window \u2014 it can evaluate and interact with anything you see on the screen in one of our Windows or macOS virtual machines, like the start menu, task bar, or file explorer.&nbsp;<\/p>\n\n\n\n<p>So, while we\u2019ve optimized the platform to test web apps, it can accommodate testing other types of software products related to web apps, like browser extensions and downloadable files. These are often the edge-case scenarios that other AI testing tools can\u2019t handle.&nbsp;<\/p>\n\n\n<div id=\"highlight-block_36ad54ff192f18b1e07f40be3de74512\" class=\"highlight\">\r\n    <p>If you\u2019re a growing SaaS startup ready to automate your manual testing efforts and level-up your testing strategy, <a href=\"https:\/\/www.rainforestqa.com\/talk-to-sales\">talk to us<\/a> about checking out a live demo of our AI testing tool.<\/p>\n<\/div>","protected":false},"excerpt":{"rendered":"<p>See how Rainforest uses generative AI for automated test creation and maintenance.<\/p>\n","protected":false},"author":28,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"categories":[2],"tags":[15],"class_list":["post-1955","post","type-post","status-publish","format-standard","hentry","category-test-automation","tag-ai"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/1955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/comments?post=1955"}],"version-history":[{"count":30,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/1955\/revisions"}],"predecessor-version":[{"id":3590,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/posts\/1955\/revisions\/3590"}],"wp:attachment":[{"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/media?parent=1955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/categories?post=1955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rainforestqa.com\/blog\/wp-json\/wp\/v2\/tags?post=1955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}