🎯

test-design-techniques

🎯Skill

from proffesor-for-testing/agentic-qe

VibeIndex|
What it does

Systematically designs comprehensive test cases using boundary value analysis, equivalence partitioning, and other techniques to reduce redundant tests and ensure systematic test coverage.

test-design-techniques

Installation

Install skill:
npx skills add https://github.com/proffesor-for-testing/agentic-qe --skill test-design-techniques
4
Last UpdatedJan 26, 2026

Skill Details

SKILL.md

"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."

Overview

# Test Design Techniques

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

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)

```javascript

// 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.

```javascript

// 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)

```

```javascript

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.

```javascript

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

```typescript

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

```typescript

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

  • [agentic-quality-engineering](../agentic-quality-engineering/) - Agent-driven testing
  • [risk-based-testing](../risk-based-testing/) - Prioritize by risk
  • [mutation-testing](../mutation-testing/) - Validate test effectiveness

---

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.

More from this repository10

🎯
n8n-security-testing🎯Skill

Automates security vulnerability scanning and penetration testing for n8n workflows, identifying potential risks and misconfigurations.

🎯
database-testing🎯Skill

Validates database schemas, tests data integrity, verifies migrations, checks transaction isolation, and measures query performance.

🎯
brutal-honesty-review🎯Skill

Delivers unvarnished technical criticism with surgical precision, combining expert-level BS detection and zero-tolerance for low-quality work.

🎯
n8n-expression-testing🎯Skill

n8n-expression-testing skill from proffesor-for-testing/agentic-qe

🎯
n8n-trigger-testing-strategies🎯Skill

Validates n8n workflow triggers by comprehensively testing webhook, schedule, polling, and event-driven mechanisms with robust payload and authentication checks.

🎯
n8n-integration-testing-patterns🎯Skill

Validates n8n integration connectivity, authentication flows, and error handling across external service APIs through comprehensive testing patterns.

🎯
six-thinking-hats🎯Skill

Applies Six Thinking Hats methodology to systematically analyze software testing challenges from multiple perspectives, enhancing decision-making and test strategy development.

🎯
risk-based-testing🎯Skill

Prioritizes testing efforts by systematically assessing and ranking risks based on probability and potential impact across software components.

🎯
shift-left-testing🎯Skill

Accelerates software quality by moving testing earlier in development, reducing defect costs through proactive validation, automated testing, and continuous improvement practices.

🎯
chaos-engineering-resilience🎯Skill

chaos-engineering-resilience skill from proffesor-for-testing/agentic-qe