test-design

Design resilient unit, integration, and E2E tests using the Test Desiderata framework.

2|1|Updated Mar 8, 2026
One-click install
npx skills add https://github.com/mattstruble/skills --skill test-design-mattstruble
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: test-design
Source: https://github.com/mattstruble/skills/tree/main/test-design
Command: npx skills add https://github.com/mattstruble/skills --skill test-design-mattstruble

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Test Design Desiderata guides writing focused, resilient tests across languages and test levels (unit, integration, e2e). It helps teams avoid brittle tests by emphasizing tradeoffs between desirable test properties and focusing on observable behavior.

Core Features & Use Cases

  • Establishes a framework to reason about test properties (Isolated, Deterministic, Fast, Writable, Readable, Behavioral, Structure-insensitive, Automated, Specific, Predictive, Inspiring).
  • Guides unit, integration, and end-to-end test design with practical patterns, factory helpers, and clear tradeoffs.
  • Provides actionable guidance for test creation, refactoring, and review to improve coverage while controlling maintenance.

Quick Start

Compose a concise test that verifies observable behavior, using an Arrange-Act-Assert structure and ensuring the test concentrates on a single behavioral concern.

Frequently Asked Questions about test-design

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

FAQPage Schema
How do I design resilient unit and integration tests that avoid brittleness?

Design resilient tests by applying the Test Desiderata framework, which balances properties like isolation, determinism, and speed to prevent brittleness. It guides you to focus on observable behavior, ensuring long-term test maintainability across unit, integration, and e2e levels.

What is the best way to structure test code for readability and maintenance?

Structure test code using the Arrange-Act-Assert pattern to keep tests readable and writable. This organization separates setup, execution, and verification steps clearly, encouraging concise assertions that concentrate on a single behavioral concern.

Does this test design approach work for both unit and end-to-end testing?

Yes, this test design approach works for unit, integration, and end-to-end testing across multiple languages. It provides practical patterns and factory helpers tailored for each test level while enforcing the 12 test properties to ensure appropriate coverage.

How do I refactor existing tests to improve their quality and coverage?

Refactor existing tests by reviewing them against the 12 Test Desiderata properties, focusing on improving readability and structure-insensitivity. This identifies tradeoffs between desirable properties, helping you rewrite tests for better coverage without increasing maintenance burden.

Why are my tests considered brittle and how do I make them more structure-insensitive?

Tests become brittle when they are overly structure-sensitive, breaking on internal implementation changes rather than observable behavior. Make them resilient by applying the Test Desiderata framework, which emphasizes behavioral verification and guides tradeoffs to reduce maintenance overhead.