blackbox-partition

Derives test cases from input-output specifications using equivalence partitioning, boundary value analysis, domain analysis, and decision tables.

Updated Jun 24, 2026
One-click install
npx skills add https://github.com/Hakkadaikon/hymme --skill blackbox-partition-hakkadaikon
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: blackbox-partition
Source: https://github.com/Hakkadaikon/hymme/tree/main/skills/blackbox-partition
Command: npx skills add https://github.com/Hakkadaikon/hymme --skill blackbox-partition-hakkadaikon

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Designing test cases from specifications alone is error-prone: testers miss invalid input classes, off-by-one boundary defects, and untested condition combinations. This Skill provides systematic black-box techniques that mechanically derive test cases from input-output specifications without reading implementation code, making it usable even before implementation exists (e.g., for TDD test lists). ## Core Features & Use Cases - Equivalence Partitioning: Divide input domains into valid and invalid equivalence classes and pick one representative per class to compress case counts while preserving coverage. - Boundary Value Analysis: Target values just before, on, and after each boundary to catch < vs <= mistakes and off-by-one errors, with guidance on floating-point boundaries and sharing boundary constants with production code. - Domain Analysis: Extend boundary analysis to multiple variables using on/off/in/out points with the one-point-one-test principle for multi-variable region judgments. - Decision Tables: Enumerate condition combinations as rules and fold impossible combinations with don't-care entries to test business logic like discount or credit rules. - Use Case: Given a function that validates a score in range 0-100, apply boundary value analysis to produce cases at -1, 0, 1, 99, 100, 101, then layer equivalence classes for invalid types, yielding a complete specification-based test suite. ## Quick Start Ask the AI to apply equivalence partitioning and boundary value analysis to derive test cases for your function's input specification.

Frequently Asked Questions about blackbox-partition

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I design test cases using equivalence partitioning?

Equivalence partitioning divides the input domain into classes that should be treated identically, then picks one representative value per class. Cover every valid class and every invalid class (out of range, wrong type, empty) with at least one representative each.

What is boundary value analysis in software testing?

Boundary value analysis targets values just before, on, and just after each equivalence class boundary, where defects like off-by-one errors concentrate. For a range of 0-100, test -1, 0, 1, 99, 100, and 101, always covering both ends.

When should I use a decision table instead of boundary value analysis?

Use a decision table when business rules branch on combinations of multiple boolean conditions, such as discount or credit rules. Boundary value analysis fits ordered numeric ranges; decision tables fit condition combinations, folding impossible combinations as don't-care entries.

How do I test functions with multiple input variables at boundaries?

Use domain analysis: attack one variable's boundary with on/off points while holding all other variables at in (interior) values, following the one-point-one-test principle. Add representative in and out points for the whole region, and respect constraints between correlated variables.

Why do boundary tests pass in test but fail in production?

A common cause is re-writing boundary constants (buffer sizes, limits, timeouts) as literals in tests with different values than production. Import or reference the production constant in tests, or add one test asserting both definitions match.

What are the limitations of equivalence partitioning?

Equivalence partitioning fails when values assumed equivalent actually follow different code paths, since one representative then misses defects. It also does not address history- or state-dependent behavior; use state transition testing or decision tables for those cases.