Exploratory QA of web apps: find bugs, evidence, reports.
Installation
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
This skill guides you through systematic exploratory QA testing of web applications using the browser toolset. You will navigate the application, interact with elements, capture evidence of issues, and produce a structured bug report.
Prerequisites
Browser toolset must be available (browser_navigate, browser_snapshot, browser_click, browser_type, browser_vision, browser_console, browser_scroll, browser_back, browser_press)
A target URL and testing scope from the user
Inputs
The user provides:
Target URL — the entry point for testing
Scope — what areas/features to focus on (or "full site" for comprehensive testing)
Output directory (optional) — where to save screenshots and the report (default: ./dogfood-output)
Workflow
Follow this 5-phase systematic workflow:
Phase 1: Plan
Create the output directory structure:
{output_dir}/
├── screenshots/ # Evidence screenshots
└── report.md # Final report (generated in Phase 5)
Identify the testing scope based on user input.
Build a rough sitemap by planning which pages and features to test:
Landing/home page
Navigation links (header, footer, sidebar)
Key user flows (sign up, login, search, checkout, etc.)
Forms and interactive elements
Edge cases (empty states, error pages, 404s)
Phase 2: Explore
For each page or feature in your plan:
Navigate to the page:
browser_navigate(url="https://example.com/page")
Take a snapshot to understand the DOM structure:
browser_snapshot()
Check the console for JavaScript errors:
browser_console(clear=true)
Do this after every navigation and after every significant interaction. Silent JS errors are high-value findings.
Take an annotated screenshot to visually assess the page and identify interactive elements:
browser_vision(question="Describe the page layout, identify any visual issues, broken elements, or accessibility concerns", annotate=true)
The annotate=true flag overlays numbered [N] labels on interactive elements. Each [N] maps to ref @eN for subsequent browser commands.
Test interactive elements systematically:
Click buttons and links: browser_click(ref="@eN")
Fill forms: browser_type(ref="@eN", text="test input")
Test keyboard navigation: browser_press(key="Tab"), browser_press(key="Enter")
Scroll through content: browser_scroll(direction="down")
Test form validation with invalid inputs
Test empty submissions
After each interaction, check for:
Console errors: browser_console()
Visual changes: browser_vision(question="What changed after the interaction?")
Expected vs actual behavior
Phase 3: Collect Evidence
For every issue found:
Take a screenshot showing the issue:
browser_vision(question="Capture and describe the issue visible on this page", annotate=false)
Save the screenshot_path from the response — you will reference it in the report.
Record the details:
URL where the issue occurs
Steps to reproduce
Expected behavior
Actual behavior
Console errors (if any)
Screenshot path
Classify the issue using the issue taxonomy (see references/issue-taxonomy.md):