jank.ai
All test types Pricing Sign up free
Agentic · LLM-driven exploration 0.45 credits × step count

Exploratory Agent.

An LLM-driven browser session that picks one action at a time and watches what happens. Eight selectable test types (smoke → adversarial) crossed with eight focuses (forms, security, perf, …) gives 64 possible exploration modes. Catches the interactive bugs that static analysis and scripted flows both miss.

What it does exploratory.js → runExploratoryAgent()

Launches a fresh Playwright browser context. Each step:

  1. Snapshot the page — interactive elements (capped at 40), recent console messages, network activity, URL, title
  2. Ask the LLM for the next action: click, type, scroll, hover, navigate, or done
  3. Execute the action via Playwright
  4. Wait for navigation / network settle
  5. Ask the LLM to verify: "did the expected outcome happen? Did you see anything broken or unexpected?"
  6. If something's broken, emit a structured finding (title, severity, category, repro steps, fix suggestion)
  7. Loop until maxSteps (default 7) or the LLM emits done: true

Findings are deduplicated by (title, category, severity) so the same bug surfacing on steps 3 and 5 lands as one entry with both pieces of evidence.

Modes — how the agent thinks

Types — what the agent looks for

Focuses — what part of the app

What it finds

Real findings from production runs:

Coverage

Step budget
Default 7 steps, configurable 1–40. Each step is one LLM call + one Playwright action.
Configurability
8 types × 8 focuses × 3 modes = 192 distinct exploration profiles. Add a customPrompt for further steering.
Where it goes
Single starting URL, then wherever the agent decides to navigate within the same site.
Output
Step-by-step audit trail (action + reasoning + screenshot + verdict) plus a deduplicated finding list with risk level.

Sample finding

// One entry from report.exploratory.findings[]
{
  "title":    "Add-to-cart double-counts on rapid clicks",
  "severity": "medium",
  "category": "reliability",
  "steps_to_reproduce": [
    "Navigate to any product detail page",
    "Click 'Add to cart' twice within 300ms",
    "Open cart drawer",
    "Observe: quantity is 3 (expected 2: 1 from each click)"
  ],
  "evidence": [
    "step 4: screenshot exploratory-step-04.jpg shows cart-count=3",
    "step 5: console log: 'POST /api/cart 200' fired 3 times"
  ],
  "fix_suggestion": "Add a 'pending' flag to the cart-add handler; disable the button until\nthe server response returns. OR debounce the click handler to 500ms.",
  "discovered_at_step": 4
}

See also

Functional
Test Flows →
Scripted, deterministic replays. Use flows for the regression suite, exploratory for finding what flows missed.
UX perspective
Persona Feedback →
Exploratory finds bugs; personas surface perception issues (trust, clarity, vibe).
Run a free exploratory → All seven test types