qa-testing-methodology
QA test design patterns (equivalence partitioning, boundary analysis, accessibility). Auto-loads when designing test cases, planning test coverage, or writing test procedures.
What this skill does
# QA Testing Methodology Skill
Apply proven test design patterns for comprehensive test coverage.
## Test Case Design Order
Always design tests in this order:
1. **Happy Path** - Main success scenarios
2. **Validation Tests** - Required fields, format validation
3. **Edge Cases** - Boundary conditions, limits
4. **Error Scenarios** - Invalid inputs, system errors
5. **Permission Tests** - Access control, authorization
## Equivalence Partitioning
Divide input data into partitions where all values should behave identically.
### Example: Age Input Field (18-65)
| Partition | Values | Expected Behavior |
|-----------|--------|-------------------|
| Below minimum | 0-17 | Reject with "Must be 18+" |
| Valid range | 18-65 | Accept |
| Above maximum | 66+ | Reject with "Maximum age is 65" |
| Invalid | -1, "abc", empty | Reject with validation error |
**Test Strategy**: Test ONE value from each partition, not every value.
## Boundary Value Analysis
Focus testing on boundaries where behavior changes.
### Example: Password (8-20 characters)
| Boundary | Test Values | Expected |
|----------|-------------|----------|
| Just below minimum | 7 chars | Reject |
| At minimum | 8 chars | Accept |
| Just above minimum | 9 chars | Accept |
| Just below maximum | 19 chars | Accept |
| At maximum | 20 chars | Accept |
| Just above maximum | 21 chars | Reject |
## Test Prioritization Matrix
Prioritize tests based on risk and frequency:
| Priority | Risk | User Impact | Test Frequency |
|----------|------|-------------|----------------|
| **Critical** | Data loss, security breach | All users blocked | Every build |
| **High** | Feature broken | Major workflow impacted | Every release |
| **Medium** | Inconvenient | Workaround available | Weekly |
| **Low** | Minor annoyance | Cosmetic issues | Monthly |
## Accessibility Testing Checklist
Include in every test procedure:
### Keyboard Navigation
- [ ] All interactive elements focusable with Tab
- [ ] Focus order is logical (left-to-right, top-to-bottom)
- [ ] Focus indicator is visible
- [ ] No keyboard traps
### Screen Reader
- [ ] All images have alt text
- [ ] Form fields have labels
- [ ] Error messages announced
- [ ] Headings structured correctly (h1 → h2 → h3)
### Visual
- [ ] Color contrast meets WCAG AA (4.5:1 for text)
- [ ] Information not conveyed by color alone
- [ ] Text resizable to 200% without loss
- [ ] No content flashes more than 3 times/second
## Performance Considerations
Note performance during manual testing:
| Metric | Acceptable | Needs Investigation |
|--------|------------|---------------------|
| Page load | < 3 seconds | > 3 seconds |
| Button response | < 100ms | > 300ms |
| Form submission | < 2 seconds | > 5 seconds |
| Search results | < 1 second | > 2 seconds |
## Test Data Guidelines
### DO
- Use realistic but fake data
- Document exact test data in test cases
- Use consistent test accounts
- Reset test data between runs when needed
### DON'T
- Use production data
- Use generic placeholders ("enter something")
- Share test credentials in plain text
- Assume data from previous tests exists
### Test Data Examples
```
Email: [email protected]
Password: Test@1234! (in password manager)
Phone: +1-555-0100 (test range)
Credit Card: 4111-1111-1111-1111 (test card)
Address: 123 Test Street, Test City, TS 12345
```
## Regression Testing
When to run regression tests:
| Trigger | Regression Scope |
|---------|------------------|
| Bug fix | Related feature + integration points |
| New feature | All features that share data/UI |
| Dependency update | Full regression |
| Release candidate | Critical + High priority tests |
## State-Based Testing
Test all valid state transitions:
```
Example: Order Status
┌─────────┐ ┌─────────┐ ┌─────────┐ ┌───────────┐
│ Created │ ──▶ │ Pending │ ──▶ │ Shipped │ ──▶ │ Delivered │
└─────────┘ └─────────┘ └─────────┘ └───────────┘
│ │
▼ ▼
┌───────────┐ ┌────────────┐
│ Cancelled │ │ Returned │
└───────────┘ └────────────┘
```
Test:
- Valid transitions (Created → Pending)
- Invalid transitions (Delivered → Created)
- Edge cases (Cancel while shipping)
## Error Message Verification
Check error messages for:
1. **Clarity**: User understands what went wrong
2. **Actionability**: User knows how to fix it
3. **Tone**: Professional, not blaming
4. **Security**: No sensitive information exposed
### Good vs Bad Error Messages
| Bad | Good |
|-----|------|
| "Error 500" | "Something went wrong. Please try again." |
| "Invalid input" | "Email must be in format: [email protected]" |
| "User not found in database" | "No account found with this email" |
| "Password must match regex..." | "Password needs 8+ characters with a number" |
## Cross-Browser Testing Matrix
Minimum browser coverage:
| Browser | Desktop | Mobile |
|---------|---------|--------|
| Chrome | Latest, Latest-1 | Android |
| Safari | Latest | iOS |
| Firefox | Latest | - |
| Edge | Latest | - |
## Test Documentation Patterns
### When to Screenshot
- Initial state before test
- After critical actions
- Error states
- Final/success state
- Any unexpected behavior
### Writing Clear Steps
**Bad**: Click the button
**Good**: Click the blue "Submit" button in the bottom-right of the form
**Bad**: Enter your details
**Good**: Enter "[email protected]" in the Email field
**Bad**: Verify it works
**Good**: Verify success message "Order placed successfully" appears
## Mobile Testing Considerations
- Test touch targets (minimum 44x44 pixels)
- Test swipe gestures where applicable
- Test orientation changes (portrait ↔ landscape)
- Test with on-screen keyboard visible
- Test with poor network (3G simulation)
Related in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.