Agent Skills: 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.

UncategorizedID: moogah/claude_skills/software-testing

Install this agent skill to your local

pnpm dlx add-skill https://github.com/moogah/claude_skills/tree/HEAD/software-testing

Skill Files

Browse the full folder contents for software-testing.

Download Skill

Loading file tree…

software-testing/SKILL.md

Skill Metadata

Name
software-testing
Description
"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."

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:

  1. Check what Project skills are available for testing guidance
  2. Check test configuration files
  3. 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)