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.

9 stars

Best use case

qa-testing-methodology is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

QA test design patterns (equivalence partitioning, boundary analysis, accessibility). Auto-loads when designing test cases, planning test coverage, or writing test procedures.

Teams using qa-testing-methodology should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/qa-testing-methodology/SKILL.md --create-dirs "https://raw.githubusercontent.com/jpoutrin/product-forge/main/plugins/product-design/skills/qa-testing-methodology/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/qa-testing-methodology/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How qa-testing-methodology Compares

Feature / Agentqa-testing-methodologyStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

QA test design patterns (equivalence partitioning, boundary analysis, accessibility). Auto-loads when designing test cases, planning test coverage, or writing test procedures.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 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: test.user@example.com
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: name@example.com" |
| "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 "test@example.com" 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 Skills

zod

9
from jpoutrin/product-forge

Zod schema validation patterns and type inference. Auto-loads when validating schemas, parsing data, validating forms, checking types at runtime, or using z.object/z.string/z.infer in TypeScript.

typescript-import-style

9
from jpoutrin/product-forge

Merge-friendly import formatting (one-per-line, alphabetical). Auto-loads when writing TypeScript/JavaScript imports to minimize merge conflicts in parallel development. Enforces consistent grouping and sorting.

setup-mcp-auth

9
from jpoutrin/product-forge

Configure authentication for an existing FastMCP server

fastmcp

9
from jpoutrin/product-forge

FastMCP TypeScript framework patterns for MCP servers. Auto-loads when building MCP servers, creating tools/resources/prompts, implementing authentication, configuring transports, or working with FastMCP in TypeScript.

add-mcp-tool

9
from jpoutrin/product-forge

Add a new tool to an existing FastMCP server with guided configuration

add-mcp-resource

9
from jpoutrin/product-forge

Add a new resource or resource template to an existing FastMCP server

plan-with-team

9
from jpoutrin/product-forge

Validate plan file ownership

privacy-compliance

9
from jpoutrin/product-forge

GDPR, CCPA, and privacy compliance guidance for data protection. Use when handling personal data, implementing consent management, or ensuring regulatory compliance across jurisdictions.

oauth

9
from jpoutrin/product-forge

OAuth 2.0 and OpenID Connect implementation patterns. Use when implementing authentication, authorization flows, or integrating with OAuth providers like Google, GitHub, or custom identity providers.

mcp-security

9
from jpoutrin/product-forge

Use when securing MCP servers, preventing prompt injection, implementing authorization, validating user input, or building secure multi-agent pipelines. Provides 5-layer defense architecture patterns.

rag-cag-security

9
from jpoutrin/product-forge

Security patterns for RAG and CAG systems with multi-tenant isolation. Use when building retrieval-augmented or cache-augmented generation systems that require tenant isolation, access control, and secure data handling.

chunking-strategies

9
from jpoutrin/product-forge

Document chunking strategies for RAG systems. Use when implementing document processing pipelines to determine optimal chunking approaches based on document type and retrieval requirements.