Skip to content

Introduction

TestDog is a desktop test case management tool: generate UI test scripts from natural language or manual recording, then replay them as-written with Playwright to verify (everyday regression costs no model tokens). Built for end-to-end regression testing of web applications.

Core capabilities

  • AI script generation — Describe the test in natural language (attachments and login state supported). The model pre-splits a step plan, then executes it in a real browser via a tool-calling loop, turning each step into a semantic-locator script. Pause/resume, AI repair and manual takeover are all supported.
  • Manual recording — Operate the browser through Playwright codegen; the recording is parsed into editable structured steps.
  • Deterministic replay — Playwright replay consumes no model tokens. UI / API / WebSocket assertions included; broken selectors trigger automatic AI self-healing with one-click write-back.
  • Plugin system — Semantic-action plugins for dropdowns, tree selects and date pickers, dispatched per component-library variant, eliminating "clicked but didn't select" false successes.

Key terms

Don't worry if these are new — each page explains them in context; quick reference:

TermMeaning
AI gatewayThe service endpoint for calling LLMs; anything speaking the OpenAI-compatible protocol works (see Settings)
Pre-split (step plan)Before executing, the model turns your natural-language description into a step-by-step plan for confirmation
Semantic locatorStep locators written the way humans describe elements (e.g. role=button name=Login) — more resilient to page changes than raw CSS/XPath
ReplayRe-executes the script step by step, exactly as written, to verify the result
Self-healingWhen a selector breaks (page redesign), the AI re-finds the element using the step's natural-language instruction and continues
Headless modeReplay runs silently in the background without showing a browser window; off by default so you can watch the process
Login configA login state recorded once, reused by generation and replay — no need to test login in every case
PresetAn execution group of plugins: only projects linked to a preset get its plugins injected during generation/replay
Token usageThe billing unit of model calls made by AI generation/self-healing; cache-hit portions cost far less than normal calls

How it works

Tauri 2 desktop shell (Rust + system webview)
  └ React frontend (Ant Design 5 + Tailwind CSS 4, zh/en)
      · fetch  → backend REST
      · WebSocket → live progress (generate / run / record)
Node backend (Fastify 5 + Prisma 7 + SQLite)
  · LLM tool-calling loop (OpenAI-compatible gateway)
  · Stagehand 4 (generation execution / self-healing relocation)
  · Playwright (replay / recording / precise verification)

The LLM only participates in generation and self-healing relocation; everyday regression replay is fully deterministic and offline.

UI map

MenuPurposeDocumentation
ProjectsManage projects, test cases and script versionsGetting started
Run recordsReplay results, failure screenshots and diagnosticsReplay
Generation logsStep-level logs and token accountingAI generation
PluginsBuilt-in/custom plugins and preset orchestrationPlugin system
SettingsAI gateway, model, browser path, etc.Settings

When to use TestDog

  • Regression testing: capture repetitive smoke/regression flows as scripts and replay them on demand.
  • Component-heavy apps: dropdowns, cascaders and date pickers on Ant Design / Element UI / Element Plus.
  • Team collaboration: share cases as .testcase files, or have coding agents generate them from the bundled skill.

TestDog Test Case Management Tool