<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: MG-Duan</title>
    <description>The latest articles on DEV Community by MG-Duan (@mduan).</description>
    <link>https://dev.to/mduan</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4206809%2F97baef27-c367-4418-bcad-26d7ddfc5c92.png</url>
      <title>DEV Community: MG-Duan</title>
      <link>https://dev.to/mduan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mduan"/>
    <language>en</language>
    <item>
      <title>We Open-Sourced Our AI Testing Platform: From Requirement Docs to Executable Test Cases</title>
      <dc:creator>MG-Duan</dc:creator>
      <pubDate>Sun, 25 Oct 2026 15:17:34 +0000</pubDate>
      <link>https://dev.to/mduan/we-open-sourced-our-ai-testing-platform-from-requirement-docs-to-executable-test-cases-4m8g</link>
      <guid>https://dev.to/mduan/we-open-sourced-our-ai-testing-platform-from-requirement-docs-to-executable-test-cases-4m8g</guid>
      <description>&lt;p&gt;Every tester knows the drill: a requirement document lands, and you spend the next few days manually translating it into test case tables — preconditions, steps, expected results. Then the API/UI automation scripts you wrote last quarter break because one page changed.&lt;/p&gt;

&lt;p&gt;We got tired of it, so we built &lt;strong&gt;WHartTest&lt;/strong&gt; and open-sourced it: an AI-driven test automation platform that turns requirement documents into executable test cases — and helps fix them when they fail.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it does
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Functional test case generation.&lt;/strong&gt; Upload requirement documents (with an online editor built in). AI generates complete cases — preconditions, steps, expected results — grounded in your project knowledge base. Cases are managed in list or mindmap view, with drag &amp;amp; drop, P0–P3 tags, and export to PNG/JSON.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API automation.&lt;/strong&gt; From an API definition, AI generates request steps, assertions, variable extraction, and pre/post scripts. When a run fails, AI reads the logs and responses to locate the problem and proposes fixes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;UI automation.&lt;/strong&gt; AI generates page operation steps and element locators. Runs capture logs, screenshots, video, and Playwright traces. When a locator breaks or an assertion fails, AI analyzes the evidence and suggests repairs. Since v2.8.0 there is a frame-stream Playwright recorder: you record interactively and create elements/steps as you go — no more hand-writing scripts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Under the hood
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Django 5.2 + DRF backend, Vue frontend, monorepo architecture&lt;/li&gt;
&lt;li&gt;LangChain/LangGraph orchestration for multi-turn reasoning&lt;/li&gt;
&lt;li&gt;RAG knowledge base: document chunking, vectorization, reranking&lt;/li&gt;
&lt;li&gt;MCP (Model Context Protocol) tool calling&lt;/li&gt;
&lt;li&gt;A Skills system: &lt;strong&gt;WHart-SkillHub&lt;/strong&gt; (new in v2.8.1) is an open skill center — install skills with natural language or one CLI command; Skills management is natively integrated in both desktop and web clients&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Other recent highlights: smart dual-mode execution (script / pure-AI / dual), AI self-healing failure diagnosis, multi-format API doc import &amp;amp; export (OpenAPI, Swagger, Postman, HAR, curl, Apifox, YApi...), and operation audit logs.&lt;/p&gt;

&lt;h2&gt;
  
  
  Facts &amp;amp; links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/MGdaasLab/WHartTest" rel="noopener noreferrer"&gt;https://github.com/MGdaasLab/WHartTest&lt;/a&gt; (1.1k+ stars, 940+ commits)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://wharttest.mgdaas.com/" rel="noopener noreferrer"&gt;https://wharttest.mgdaas.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.wharttest.mgdaas.com/" rel="noopener noreferrer"&gt;https://docs.wharttest.mgdaas.com/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Self-hostable; strong security note: the Skills module has elevated system permissions — deploy in trusted/internal networks&lt;/li&gt;
&lt;li&gt;License: Apache 2.0 with additional conditions (see the LICENSE file; versions up to v2.6.0 were MIT)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We'd love feedback from QA engineers: how is AI-generated test case generation working out in your teams? What would you want next?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>automation</category>
      <category>opensource</category>
      <category>testing</category>
    </item>
  </channel>
</rss>
