Agent skill
software-testing
Software testing guidance with decision tree. Use when: (1) Writing or improving tests, (2) User asks about testing approaches, (3) Need guidance on test scope or assertions, (4) Working with specific test frameworks. Routes to specialized testing strategies via reference files.
Install this agent skill to your Project
npx add-skill https://github.com/moogah/claude_skills/tree/main/software-testing
SKILL.md
Software Testing
Testing Decision Tree
Need to write tests?
↓
Legacy/undocumented code needing refactoring?
├─ YES → Use characterization-testing skill
└─ NO → Continue
↓
What type of testing guidance needed?
│
├─ Unit testing principles?
│ └─→ See references/unit-testing.md
│
├─ Using Jest?
│ └─→ See references/jest-testing.md
│
├─ Using Vitest?
│ └─→ See references/vitest-testing.md
│
├─ Testing React components?
│ └─→ See references/react-testing.md
│
└─ Testing Node.js code?
└─→ See references/node-testing.md
Core Testing Principles
Apply these principles across all testing approaches:
Keep Test Scope Small
Run only the tests you need. Prefer narrow scope over full test suites.
Good:
npm test src/auth/login.test.js
npm test -- --testNamePattern="login validation"
Avoid:
npm test # Running entire suite unnecessarily
Use Specific Assertion Values
Write assertions with actual expected values, not generic placeholders.
Good:
expect(user.name).toBe('Alice')
expect(getUserById).toHaveBeenCalledWith('user-123')
Avoid:
expect(users.length).toBe(2)
expect(getUserById).toHaveBeenCalledWith(expect.any(String))
Check Repo-Specific Skills First
Before running tests:
- Check what Project skills are available for testing guidance
- Check test configuration files
- Ask user if uncertain
Reference Guide
- references/unit-testing.md - Unit testing principles (SRP, isolation, mocking, what to test)
- references/jest-testing.md - Jest commands, matchers, and patterns
- references/vitest-testing.md - Vitest commands and differences from Jest
- references/react-testing.md - React Testing Library query priorities and patterns
- references/node-testing.md - Node.js-specific testing (async, streams, file system)
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
characterization-testing
Guide for characterization testing - capturing current system behavior to enable safe refactoring. Use when working with legacy code, undocumented systems, or code that needs modification but lacks tests. Helps create a safety net before making changes by testing what the code actually does (not what it should do).
bead-implementation
Execute on a Beads issue with proper discovery workflow and mandatory session close protocol. Use when starting work on a bead, during implementation when discovering new work that should be externalized, or when completing a session to ensure all work is properly committed.
architecture-analyzer
Perform in-depth architectural analysis of codebases through iterative dialog and visual diagrams. Use when users want to understand their software architecture, explore design patterns and anti-patterns, evaluate potential architectural changes, or gain deep insights into code structure and relationships. Particularly valuable for onboarding to unfamiliar codebases, assessing technical debt, planning refactoring efforts, or understanding how components interact across system boundaries.
openspec-to-beads
Convert OpenSpec artifacts (proposal.md, design.md, tasks.md, specs/) into self-contained Beads issues for implementation tracking. Use when you have completed OpenSpec planning artifacts and need to create trackable implementation tasks, or when converting any specification or design document into actionable Beads issues.
github-actions-troubleshooting
Troubleshoot and fix failing GitHub Actions pipeline steps. Use when user reports a failing pipeline with error output.
skill-learner
Reviews conversation context to identify learnings and patterns that should be captured in skills. Use when the user asks to review the session for skill creation or updates.
Didn't find tool you were looking for?