Autonomous QA agent that tests user flows and identifies edge-case bugs in web apps.
Install
mkdir -p .claude/skills/test-and-break && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6212" && unzip -o skill.zip -d .claude/skills/test-and-break && rm skill.zipInstalls to .claude/skills/test-and-break
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Autonomous testing skill that opens a deployed app, goes through user flows, tries to break things, and writes detailed bug reports. Use after deploying to staging. Triggers on: test the app, find bugs, QA the deployment, break the app, test staging.Key capabilities
- →Execute user flows in a deployed application
- →Perform edge case testing on inputs and interactions
- →Generate structured bug reports with severity levels
- →Convert identified bugs into actionable user stories
- →Integrate bug fixes into existing project configurations
How it works
The skill uses agent-browser to navigate the application, simulating user interactions and edge cases to identify functional or UI failures. Findings are documented in a standardized report format and converted into prioritized JSON tasks.
Inputs & outputs
When to use test-and-break
- →Regression testing staging deployments
- →Finding edge-case crashes
- →Verifying user journey workflows
- →Generating bug reports for developers
About this skill
Test and Break
Systematically test a deployed application by going through user flows, trying edge cases, and attempting to break things. Outputs structured bug reports that can be converted to user stories for autonomous fixing.
Prerequisites
- agent-browser installed (
npm install -g agent-browser && agent-browser install) - App deployed to a URL (staging/preview)
- Basic understanding of what the app should do (read the PRD)
The Job
- Read the PRD to understand what the app should do
- Open the deployed app in agent-browser
- Go through each major user flow
- Try to break things at each step
- Document all bugs and issues found
- Output structured bug reports
Testing Process
Step 1: Understand the App
Read tasks/prd.md and tasks/architecture.md to understand:
- What user flows exist
- What the app should do
- What the expected behavior is
Step 2: Open the App
agent-browser open [DEPLOYMENT_URL]
agent-browser snapshot -i
Step 3: Test Each User Flow
For each major feature/flow in the PRD:
A. Happy Path Testing
- Go through the flow as a normal user would
- Verify each step works as expected
- Check that success states appear correctly
B. Edge Case Testing
Try these at each input/interaction point:
Input Edge Cases:
- Empty inputs (submit with nothing)
- Very long text (500+ characters)
- Special characters (
<script>alert('xss')</script>,'; DROP TABLE users;--) - Unicode/emojis (🎉, 中文, العربية)
- Negative numbers where positive expected
- Zero where non-zero expected
- Future dates, past dates, invalid dates
- Invalid email formats
- Spaces only
- Leading/trailing whitespace
Interaction Edge Cases:
- Double-click buttons rapidly
- Click back button during operations
- Refresh page mid-flow
- Open same page in multiple tabs
- Submit form twice quickly
State Edge Cases:
- Log out mid-operation (if auth exists)
- Let session expire
- Navigate directly to URLs that require prior steps
- Use browser back/forward buttons
Visual/UX Issues:
- Check mobile responsiveness (resize browser)
- Look for overlapping elements
- Check loading states exist
- Verify error messages are helpful
- Look for console errors
Step 4: Document Each Bug
For each issue found, document:
## BUG-XXX: [Short descriptive title]
**Severity:** Critical | High | Medium | Low
**Type:** Functional | UI/UX | Security | Performance | Accessibility
**Steps to Reproduce:**
1. Go to [URL]
2. Do [action]
3. Enter [input]
4. Click [button]
**Expected Behavior:**
[What should happen]
**Actual Behavior:**
[What actually happens]
**Screenshot:** [if applicable]
**Console Errors:** [if any]
**Notes:** [any additional context]
Severity Guidelines
| Severity | Definition | Examples |
|---|---|---|
| Critical | App broken, data loss, security issue | Crash, XSS vulnerability, data not saving |
| High | Major feature broken, bad UX | Can't complete main flow, confusing errors |
| Medium | Feature works but has issues | Minor validation missing, UI glitches |
| Low | Polish/minor issues | Typos, slight misalignment, minor UX |
Output Format
Save bug report to tasks/bug-report-[date].md:
# Bug Report: [App Name]
**Tested:** [Date]
**URL:** [Deployment URL]
**Tester:** Claude (Automated)
## Summary
- Total bugs found: X
- Critical: X
- High: X
- Medium: X
- Low: X
## Critical Bugs
[List critical bugs first]
## High Priority Bugs
[List high bugs]
## Medium Priority Bugs
[List medium bugs]
## Low Priority Bugs
[List low bugs]
## Positive Findings
[List things that worked well - important for context]
## Recommendations
[Overall suggestions for improvement]
Converting Bugs to User Stories
After generating the bug report, convert each bug to a user story format:
{
"id": "BUG-001",
"title": "Fix: [Bug title]",
"description": "As a user, I expect [expected behavior] but currently [actual behavior].",
"acceptanceCriteria": [
"Specific fix criterion 1",
"Specific fix criterion 2",
"Regression test: [original bug steps] no longer reproduces",
"Typecheck passes"
],
"priority": 1,
"passes": false,
"notes": "Original bug: [reference]"
}
Priority mapping:
- Critical bugs → priority 1-2
- High bugs → priority 3-5
- Medium bugs → priority 6-10
- Low bugs → priority 11+
Integration with Ralph
After generating bug stories, they can be:
- Added to existing prd.json - Append bug fixes to current project
- Create new prd.json - Start a bug-fix-only Ralph run
To add to existing prd.json:
# Read current max priority
MAX_PRIORITY=$(cat prd.json | jq '[.userStories[].priority] | max')
# Add bug stories starting after max priority
# (Claude should do this programmatically)
Example Testing Session
# 1. Open the app
agent-browser open https://my-app-staging.vercel.app
# 2. Take initial snapshot
agent-browser snapshot -i
# 3. Test login flow
agent-browser fill @e1 "[email protected]"
agent-browser fill @e2 "password123"
agent-browser click @e3
agent-browser wait --load networkidle
agent-browser snapshot -i
# 4. Try to break it
agent-browser fill @e1 "" # empty email
agent-browser click @e3 # submit anyway
agent-browser snapshot -i # check error handling
# 5. Try XSS
agent-browser fill @e1 "<script>alert('xss')</script>"
agent-browser snapshot -i
# Continue testing other flows...
Checklist
Before finishing testing:
- Tested all user flows from PRD
- Tried empty inputs on all forms
- Tried special characters/XSS on all inputs
- Checked mobile responsiveness
- Looked for console errors
- Verified error messages are helpful
- Documented all bugs with reproduction steps
- Assigned severity to each bug
- Saved bug report to tasks/bug-report-[date].md
When not to use it
- →Testing applications not yet deployed to staging
- →Manual testing without access to the PRD
Prerequisites
Limitations
- →Limited to testing flows defined in the PRD
- →Requires a functional staging environment
- →Depends on the accuracy of the provided PRD for expected behavior
How it compares
It automates the repetitive process of manual regression testing and bug documentation by programmatically interacting with the browser and generating structured output.
Compared to similar skills
test-and-break side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| test-and-break (this skill) | 1 | 6mo | Review | Intermediate |
| webapp-testing | 353 | 3mo | Review | Intermediate |
| dev-browser | 53 | 4mo | Review | Intermediate |
| playwright-browser-automation | 29 | 7mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by rohunj
View all by rohunj →You might also like
webapp-testing
anthropics
Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.
dev-browser
SawyerHood
Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.
playwright-browser-automation
lackeyjb
Complete browser automation with Playwright. Auto-detects dev servers, writes clean test scripts to /tmp. Test pages, fill forms, take screenshots, check responsive design, validate UX, test login flows, check links, automate any browser task. Use when user wants to test websites, automate browser interactions, validate web functionality, or perform any browser-based testing.
windows-ui-automation
martinholovsky
Expert in Windows UI Automation (UIA) and Win32 APIs for desktop automation. Specializes in accessible, secure automation of Windows applications including element discovery, input simulation, and process interaction. HIGH-RISK skill requiring strict security controls for system access.
unity-mcp-orchestrator
CoplayDev
Orchestrate Unity Editor via MCP (Model Context Protocol) tools and resources. Use when working with Unity projects through MCP for Unity - creating/modifying GameObjects, editing scripts, managing scenes, running tests, or any Unity Editor automation. Provides best practices, tool schemas, and workflow patterns for effective Unity-MCP integration.
agent-browser
vercel-labs
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.