Skip to content
Back to skills

Improving Tests

ASecurity

Make tests catch real behavior regressions without blocking safe changes. Suite latency is a quality attribute; coverage is a signal, not the goal. Without write access, return proposed changes (file, change, reason) instead of applying them. Read the reference for each language in scope; it covers test patterns and suite speed. Use the matching `writing-<lang>` skill for toolchain commands. - C#: `references/csharp.md` - Go: `references/go.md` - Java/Kotlin: `references/java-kotlin.md` - Pyt...

  • 36 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 6, 2026
ai-agentsjavascripttypescriptpythonrustgojavakotlinc#refactoringgit

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 11 files and shows the line behind each finding

Scanned September 29, 2026

npx -y skills add alexei-led/cc-thingz --skill improving-tests --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Improving Tests?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Improving Tests
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alexei-led-improving-tests-a31c7d3a/badge)](https://www.skillsdirectory.com/skills/alexei-led-improving-tests-a31c7d3a)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
{"description":"Improve test design, speed, and coverage with behavior-focused tests, useful seams, characterization tests, TDD, and test refactoring. Use when improving tests, optimizing slow suites, adding coverage, refactoring brittle tests, removing test waste, or working test-first. NOT for fixing production bugs (use fixing-code), or reviewing non-test code quality (use reviewing-code).","name":"improving-tests"}
---

# Test Improvement

Make tests catch real behavior regressions without blocking safe changes. Suite
latency is a quality attribute; coverage is a signal, not the goal.

Without write access, return proposed changes (file, change, reason) instead of
applying them.

Read the reference for each language in scope; it covers test patterns and
suite speed. Use the matching `writing-<lang>` skill for toolchain commands.

- C#: `references/csharp.md`
- Go: `references/go.md`
- Java/Kotlin: `references/java-kotlin.md`
- Python: `references/python.md`
- Rust: `references/rust.md`
- TypeScript/JavaScript: `references/typescript.md`
- Browser, Playwright, HTMX: `references/web.md`

## Modes

If the mode is missing, ask which one:

- `review`: find weak, duplicate, brittle, missing, slow, or flaky tests.
- `refactor`: simplify tests without changing covered behavior.
- `coverage`: add tests for uncovered business behavior and error paths.
- `tdd`: one red-green-refactor slice at a time.
- `performance`: cut suite latency without weakening behavior.
- `full`: all of the above.

## Rules

- Ask before adding a test framework, runner plugin, or tool. Learn the framework, helpers, and conventions from nearby tests and follow them first.
- Change production code only inside an approved TDD slice. If no safe behavior seam exists, stop and report what production change would create one.
- Test through the contract users or adjacent modules rely on: public module, API, CLI, component, or service. Use an integration seam when behavior depends on real wiring (database, filesystem, HTTP, serialization, config); a unit seam when behavior is pure and cheap.
- Mock only system boundaries (network, clock, randomness, filesystem, subprocesses, external services). Prefer real collaborators or in-memory fakes for domain code.
- Assert behavior, not private helpers, call counts, or layout. Business-critical arguments get exact matches.
- Parameterize cases that share setup and assertions; keep separate tests when that reads clearer.
- Delete shallow or duplicate tests once stronger boundary tests cover the behavior.
- Characterization tests before risky changes to legacy code capture current visible behavior, quirks included, at the public boundary.
- TDD: each slice has one test that failed for the expected reason before the smallest passing code, and refactoring happens only while green. No bulk suites for imagined behavior.
- If a code-graph tool (GitNexus, codegraph) is installed and fresh, use it to find affected flows and high fan-in code that needs regression coverage.

## Speed

Performance work records the same command's wall time before and after, names
the bottleneck (discovery, import or compile, setup, test body, external
boundary, runner config, or parallel balance), and leaves a guard against
regression (durations output, per-test ceiling, slow marker, or focused command).

- Remove waste before removing checks: real sleeps, real external I/O, repeated setup, expensive imports, broad discovery, coverage-on-default.
- Keep coverage, race, mutation, browser, live, and end-to-end modes off the default loop; run them in their own tier.
- Parallelism needs isolated state: per-test or per-worker ports, temp dirs, databases, and filenames. Treat parallel-only failures as isolation bugs.
- Never make a number look better by hiding failures, deleting edge cases, or skipping fast tests.

Done when the relevant build/test/lint checks pass on what you changed, or you
name each check that did not run and why.

## Report

Mode, tests changed, key changes (`path:line — change`), coverage and timing
before → after when measured, and each check with pass, fail, or skipped and why.

## Platform additions

No target-specific additions.

Files in this skill

  • SKILL.md7.8 KB
  • references/csharp.md2.3 KB
  • references/go-performance.md2.8 KB
  • references/go.md3.5 KB
  • references/java-kotlin.md3.5 KB
  • references/python-performance.md3.7 KB
  • references/python.md4.1 KB
  • references/rust.md3.5 KB
  • references/typescript-performance.md3.2 KB
  • references/typescript.md3.3 KB
  • references/web.md1.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.