Claude Code Plugins

Community-maintained marketplace

Feedback

Systematic test design with boundary value analysis, equivalence partitioning, decision tables, state transition testing, and combinatorial testing. Use when designing comprehensive test cases, reducing redundant tests, or ensuring systematic coverage.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name test-design-techniques
description Systematic test design with boundary value analysis, equivalence partitioning, decision tables, state transition testing, and combinatorial testing. Use when designing comprehensive test cases, reducing redundant tests, or ensuring systematic coverage.
version 1.0.0
category testing-methodologies
tags test-design, bva, equivalence-partitioning, decision-tables, combinatorial-testing, pairwise
difficulty intermediate
estimated_time 75 minutes
author agentic-qe

Test Design Techniques

Core Principle

Systematic test design finds more bugs with fewer tests.

Random testing is inefficient. Proven test design techniques (40+ years of research) systematically identify high-value test cases, reduce redundancy, and maximize bug detection.

Boundary Value Analysis (BVA)

Principle: Bugs cluster at boundaries of valid input ranges.

Test at:

  • Minimum valid value
  • Just below minimum (invalid)
  • Just above minimum (valid)
  • Maximum valid value
  • Just above maximum (invalid)
  • Just below maximum (valid)

Example: Age field (18-120)

Test Cases:
✓ 17  - Just below min (invalid, reject)
✓ 18  - Minimum valid (accept)
✓ 19  - Just above min (accept)
✓ 119 - Just below max (accept)
✓ 120 - Maximum valid (accept)
✓ 121 - Just above max (invalid, reject)

With Agents:

// qe-test-generator automatically identifies boundaries
const tests = await agent.generateBVATests({
  field: 'age',
  dataType: 'integer',
  constraints: { min: 18, max: 120 }
});
// Returns: 6 boundary test cases

Equivalence Partitioning (EP)

Principle: Divide input into partitions where all values behave the same.

Example: Discount based on quantity

Quantity Rules:
1-10:    No discount
11-100:  10% discount
101+:    20% discount

Partitions:
1. Invalid: quantity ≤ 0
2. Valid, no discount: 1-10
3. Valid, 10% discount: 11-100
4. Valid, 20% discount: 101+

Test Cases (1 per partition):
✓ -1   → Reject
✓ 5    → 0% discount
✓ 50   → 10% discount
✓ 200  → 20% discount

Decision Tables

Use for: Complex business rules with multiple conditions.

Example: Loan Approval

Conditions:
- Age ≥ 18
- Credit Score ≥ 700
- Income ≥ $50k

Rule 1 | Rule 2 | Rule 3 | Rule 4 | Rule 5
-------|--------|--------|--------|-------
Yes    | Yes    | Yes    | No     | Yes
Yes    | Yes    | No     | Yes    | No
Yes    | No     | Yes    | Yes    | Yes
-------+--------+--------+--------+-------
Approve| Approve| Reject | Reject | Reject

Test Cases: 5 tests cover all decision combinations.

State Transition Testing

Model state changes:

States: Logged Out → Logged In → Premium → Suspended

Transitions:
Login: Logged Out → Logged In
Upgrade: Logged In → Premium
Payment Fail: Premium → Suspended
Logout: Any → Logged Out

Invalid Transitions to Test:
Logged Out → Premium (should reject)
Suspended → Premium (should reject)

Pairwise (Combinatorial) Testing

Problem: Testing all combinations explodes.

Example: Cross-browser testing

Browser: Chrome, Firefox, Safari (3)
OS: Windows, Mac, Linux (3)
Screen: Desktop, Tablet, Mobile (3)

All combinations: 3 × 3 × 3 = 27 tests

Pairwise: 9 tests cover all pairs

With Agents:

// qe-test-generator does pairwise reduction
const tests = await agent.generatePairwiseTests({
  parameters: {
    browser: ['Chrome', 'Firefox', 'Safari'],
    os: ['Windows', 'Mac', 'Linux'],
    screen: ['Desktop', 'Tablet', 'Mobile']
  }
});
// Returns: 9-12 tests (vs 27 full combination)

Related Skills

Remember

Systematic design > Random testing

  • BVA finds boundary bugs
  • EP reduces redundant tests
  • Decision tables handle complexity
  • Pairwise reduces combinatorial explosion

With Agents: qe-test-generator applies these techniques automatically, generating optimal test suites with maximum coverage and minimum redundancy.