Skip to content
Skillv1.0.0

qe-test-design-techniques

Systematic test design with boundary value analysis, equivalence partitioning, decision tables, state transition testing, and combinatorial testing. Use when designing comprehensive test cases, reduci

by proffesor-for-testing(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from proffesor-for-testing/agentic-qe (.kiro/skills/qe-test-design-techniques/SKILL.md). Install upstream with npx skills add proffesor-for-testing/agentic-qe --skill qe-test-design-techniques. Copyright stays with the author.

Test Design Techniques

<default_to_action> When designing test cases systematically:

  1. APPLY Boundary Value Analysis (test at min, max, edges)
  2. USE Equivalence Partitioning (one test per partition)
  3. CREATE Decision Tables (for complex business rules)
  4. MODEL State Transitions (for stateful behavior)
  5. REDUCE with Pairwise Testing (for combinations)

Quick Design Selection:

  • Numeric ranges → BVA + EP
  • Multiple conditions → Decision Tables
  • Workflows → State Transition
  • Many parameters → Pairwise Testing

Critical Success Factors:

  • Systematic design finds more bugs with fewer tests
  • Random testing is inefficient
  • 40+ years of research backs these techniques </default_to_action>

Quick Reference Card

When to Use

  • Designing new test suites
  • Optimizing existing tests
  • Complex business rules
  • Reducing test redundancy

Technique Selection Guide

Scenario Technique
Numeric input ranges BVA + EP
Multiple conditions Decision Tables
Stateful workflows State Transition
Many parameter combinations Pairwise
All combinations critical Full Factorial

Boundary Value Analysis (BVA)

Principle: Bugs cluster at boundaries.

Test at boundaries:

  • Minimum valid value
  • Just below minimum (invalid)
  • Just above minimum (valid)
  • Maximum valid value
  • Just above maximum (invalid)
// Age field: 18-120 valid
const boundaryTests = [
  { input: 17, expected: 'invalid' },  // Below min
  { input: 18, expected: 'valid' },    // Min boundary
  { input: 19, expected: 'valid' },    // Above min
  { input: 119, expected: 'valid' },   // Below max
  { input: 120, expected: 'valid' },   // Max boundary
  { input: 121, expected: 'invalid' }  // Above max
];

Equivalence Partitioning (EP)

Principle: One test per equivalent class.

// Discount rules:
// 1-10:  No discount
// 11-100: 10% discount
// 101+:   20% discount

const partitionTests = [
  { quantity: -1, expected: 'invalid' },  // Invalid partition
  { quantity: 5, expected: 0 },           // Partition 1: 1-10
  { quantity: 50, expected: 0.10 },       // Partition 2: 11-100
  { quantity: 200, expected: 0.20 }       // Partition 3: 101+
];

// 4 tests cover all behavior (vs 200+ if testing every value)

Decision Tables

Use for: Complex business rules with multiple conditions.

Loan Approval Rules:
┌──────────────┬───────┬───────┬───────┬───────┬───────┐
│ Conditions   │ R1    │ R2    │ R3    │ R4    │ R5    │
├──────────────┼───────┼───────┼───────┼───────┼───────┤
│ Age ≥ 18     │ Yes   │ Yes   │ Yes   │ No    │ Yes   │
│ Credit ≥ 700 │ Yes   │ Yes   │ No    │ Yes   │ No    │
│ Income ≥ 50k │ Yes   │ No    │ Yes   │ Yes   │ Yes   │
├──────────────┼───────┼───────┼───────┼───────┼───────┤
│ Result       │Approve│Approve│Reject │Reject │Reject │
└──────────────┴───────┴───────┴───────┴───────┴───────┘

// 5 tests cover all decision combinations

State Transition Testing

Model state changes:

States: Logged Out → Logged In → Premium → Suspended

Valid 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)
test('cannot upgrade without login', async () => {
  const result = await user.upgrade(); // While logged out
  expect(result.error).toBe('Login required');
});

Pairwise (Combinatorial) Testing

Problem: All combinations explode exponentially.

// Parameters:
// 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

const pairwiseTests = [
  { browser: 'Chrome', os: 'Windows', screen: 'Desktop' },
  { browser: 'Chrome', os: 'Mac', screen: 'Tablet' },
  { browser: 'Chrome', os: 'Linux', screen: 'Mobile' },
  { browser: 'Firefox', os: 'Windows', screen: 'Tablet' },
  { browser: 'Firefox', os: 'Mac', screen: 'Mobile' },
  { browser: 'Firefox', os: 'Linux', screen: 'Desktop' },
  { browser: 'Safari', os: 'Windows', screen: 'Mobile' },
  { browser: 'Safari', os: 'Mac', screen: 'Desktop' },
  { browser: 'Safari', os: 'Linux', screen: 'Tablet' }
];
// Each pair appears at least once

Agent-Driven Test Design

// Auto-generate BVA tests
await Task("Generate BVA Tests", {
  field: 'age',
  dataType: 'integer',
  constraints: { min: 18, max: 120 }
}, "qe-test-generator");
// Returns: 6 boundary test cases

// Auto-generate pairwise tests
await Task("Generate Pairwise Tests", {
  parameters: {
    browser: ['Chrome', 'Firefox', 'Safari'],
    os: ['Windows', 'Mac', 'Linux'],
    screen: ['Desktop', 'Tablet', 'Mobile']
  }
}, "qe-test-generator");
// Returns: 9-12 tests (vs 27 full combination)

Agent Coordination Hints

Memory Namespace

aqe/test-design/
├── bva-analysis/*       - Boundary value tests
├── partitions/*         - Equivalence partitions
├── decision-tables/*    - Decision table tests
└── pairwise/*           - Combinatorial reduction

Fleet Coordination

const designFleet = await FleetManager.coordinate({
  strategy: 'systematic-test-design',
  agents: [
    'qe-test-generator',    // Apply design techniques
    'qe-coverage-analyzer', // Analyze coverage
    'qe-quality-analyzer'   // Assess test quality
  ],
  topology: 'sequential'
});

Related Skills


Remember

Systematic design > Random testing. 40+ years of research shows these techniques find more bugs with fewer tests than ad-hoc approaches.

Combine techniques for comprehensive coverage. BVA for boundaries, EP for partitions, decision tables for rules, pairwise for combinations.

With Agents: qe-test-generator applies these techniques automatically, generating optimal test suites with maximum coverage and minimum redundancy. Agents identify boundaries, partitions, and combinations from code analysis.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/proffesor-for-testing-agentic-qe-qe-test-design-techniques/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

proffesor-for-testing-agentic-qe-qe-test-design-techniques.ocm.jsonjson
{
  "ocm": "1",
  "id": "proffesor-for-testing-agentic-qe-qe-test-design-techniques",
  "kind": "skill",
  "name": "qe-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.",
  "publisher": "proffesor-for-testing",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "test-design",
      "bva",
      "equivalence-partitioning",
      "decision-tables",
      "pairwise",
      "state-transition",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "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."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/proffesor-for-testing/agentic-qe",
      "path": ".kiro/skills/qe-test-design-techniques/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/proffesor-for-testing/agentic-qe/blob/HEAD/.kiro/skills/qe-test-design-techniques/SKILL.md",
      "key": "proffesor-for-testing/agentic-qe/.kiro/skills/qe-test-design-techniques/SKILL.md"
    }
  },
  "instructions": "# Test Design Techniques\n\n<default_to_action>\nWhen designing test cases systematically:\n1. APPLY Boundary Value Analysis (test at min, max, edges)\n2. USE Equivalence Partitioning (one test per partition)\n3. CREATE Decision Tables (for complex business rules)\n4. MODEL State Transitions (for stateful behavior)\n5. REDUCE with Pairwise Testing (for combinations)\n\n**Quick Design Selection:**\n- Numeric ranges → BVA + EP\n- Multiple conditions → Decision Tables\n- Workflows → State Transition\n- Many parameters → Pairwise Testing\n\n**Critical Success Factors:**\n- Systematic design finds more bugs with fe",
  "cost": {
    "context_tokens": 1602
  }
}

Fetch it by URL: GET /api/v1/registry/proffesor-for-testing-agentic-qe-qe-test-design-techniques/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.