AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Test Plan

skill-kazdenc-builder-skills-test-plan · by kazdenc

Write a test strategy covering what to test, coverage targets, and testing pyramid distribution. Use when user says "test plan", "testing strategy", "what should I test", "test coverage", "how to test this", or needs to plan testing for a feature or project before writing tests.

No reviews yet
0 installs
36 views
0.0% view→install

Install

$ agentstack add skill-kazdenc-builder-skills-test-plan

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-kazdenc-builder-skills-test-plan)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
6mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Test Plan? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Test Plan

Write a test strategy that answers two questions clearly: what deserves testing and how much testing is enough. Everything else is execution detail.

Step 1: Understand What's Being Tested

Before planning any tests, nail down what you're working with. Read the code or requirements. If the user hasn't provided enough context, ask.

| Input | Question | Watch out for | |-------|----------|---------------| | Code / Feature | What does this do? What are the inputs and outputs? | Planning tests for code you haven't read | | Critical paths | Which flows would break the product if they failed? | Treating all code paths as equally important | | Dependencies | What external systems, APIs, or services does it touch? | Ignoring side effects and integrations | | Edge cases | What unusual inputs or states could occur? | Only testing the happy path |

If existing tests, specs, or prior conversations exist, pull from them. Don't invent context.

Step 2: Apply the Testing Pyramid

Distribute test effort deliberately. The pyramid exists because fast feedback loops matter more than exhaustive simulation.

| Layer | Share | What to test | Characteristics | |-------|-------|-------------|-----------------| | Unit tests | ~70% | Pure functions, utilities, hooks, reducers, transformers | Fast, isolated, many. Test one thing per test. Mock nothing or mock only external I/O. | | Integration tests | ~20% | Component interactions, API routes, database queries, service boundaries | Test contracts between units. Verify that pieces work together correctly. Slower, fewer. | | E2E tests | ~10% | Critical user flows only: signup, checkout, core CRUD | Slow, flaky-prone, expensive. Reserve for flows where failure = revenue loss or user churn. |

These ratios are targets, not rules. A utility library might be 95% unit tests. A UI-heavy app might lean harder on integration tests. Adjust with intent.

Step 3: Decide What to Test

Map each piece of functionality to the right test type. Use this decision table.

| What you're testing | Test type | Why | |---------------------|-----------|-----| | Business logic, calculations, data transforms | Unit test | Fast feedback, easy to cover all branches | | User-facing flows (form submit, navigation) | Integration or E2E | Need to verify real DOM and event behavior | | Edge cases (null inputs, empty arrays, boundaries) | Unit test | Cheap to write, high defect-prevention value | | Visual appearance and layout | Snapshot test (use sparingly) | Brittle; prefer visual regression tools for critical UI | | API request/response contracts | Integration test | Verify serialization, status codes, error shapes | | Error handling and failure modes | Unit + integration | Unit for thrown errors, integration for error boundaries and fallback UI | | State management (stores, reducers) | Unit test | Pure logic, deterministic, fast to test | | Third-party integrations | Integration test with mocks | Verify your code handles their API correctly |

Step 4: Define Coverage Targets

Aim for meaningful coverage, not 100%. Chasing full coverage leads to brittle tests that test implementation details.

| Coverage target | When it makes sense | |-----------------|---------------------| | 90%+ | Shared libraries, payment logic, auth flows — code where bugs have outsized impact | | 70-80% | Application code, feature modules — good balance of safety and velocity | | 50-70% | Rapidly prototyping, exploratory features — cover critical paths, skip the rest | | Skip coverage metrics | One-off scripts, throwaway prototypes, generated code |

Focus coverage on:

  • Code with high cyclomatic complexity (many branches)
  • Code that handles money, auth, or user data
  • Code that's changed frequently (high churn = high risk)

Step 5: Choose Tools

Pick tools that match your stack. Don't over-engineer the test setup.

| Purpose | Tool | Notes | |---------|------|-------| | Unit tests | Vitest | Fast, ESM-native, Jest-compatible API. Preferred for modern projects. | | Component tests | Testing Library (@testing-library/react) | Test behavior, not implementation. Queries by role, text, label. | | User interaction | @testing-library/user-event | Simulates real user events (click, type, tab). Prefer over fireEvent. | | API mocking | msw (Mock Service Worker) | Intercepts at the network level. Works in tests and browser dev. | | E2E tests | Playwright | Cross-browser, reliable, good DX. Prefer over Cypress for new projects. | | Visual regression | Playwright screenshots or Chromatic | Use only for design-critical UI. Not a substitute for functional tests. |

Output Format

Deliver the test plan as a prioritized list of test cases grouped by type.

# Test Plan: [Feature / Component Name]

## Unit Tests (priority order)
- [ ] [function/module] — [what behavior to verify]
- [ ] [function/module] — [edge case to cover]

## Integration Tests (priority order)
- [ ] [interaction/flow] — [what contract to verify]
- [ ] [API route] — [request/response shape to verify]

## E2E Tests (priority order)
- [ ] [critical user flow] — [what end-to-end behavior to verify]

## Coverage Notes
- Target: [X%] for [reason]
- Skip: [what's deliberately not tested and why]

## Open Questions
- [Anything unresolved about test approach]

Anti-Patterns to Avoid

| Anti-pattern | Problem | Instead | |-------------|---------|---------| | Testing implementation details | Tests break on every refactor, provide no confidence | Test inputs/outputs and observable behavior | | Mocking everything | Tests pass but nothing actually works together | Mock only external I/O; let units collaborate | | Snapshot overuse | Giant snapshots nobody reviews, approved blindly | Use snapshots only for small, stable structures | | Testing the framework | Verifying that React renders or that Vitest asserts | Test your logic, not the tool's behavior | | 100% coverage as a goal | Diminishing returns, brittle tests, wasted time | Cover critical paths thoroughly, accept gaps in trivial code | | Copy-paste test cases | Hard to maintain, masks missing abstractions | Use test.each() or parameterized tests for repetitive cases |

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.