Designing Distributed System Tests

Piani di test basati su asserzioni per sistemi distribuiti e stateful, legati a scenari di fault-injection

di shenli · shenli/distributed-system-testing

Promosso ★ 9.2/10

Designing Distributed System Tests — Piani di test basati su asserzioni per sistemi distribuiti e stateful, legati a scenari di fault-injection

Cosa fa

Guida un agente a progettare un piano di test basato su asserzioni per un sistema distribuito o stateful: estrae le garanzie che il sistema dichiara (durability, linearizability, idempotency, isolation, ordering), genera ipotesi di modalità di fallimento legate a ogni asserzione, sceglie tecniche da un catalogo ed emette un file di piano strutturato con scenari di fault-injection e oracoli verificabili da macchina. Si attiva quando viene chiesto cosa testare per una modifica, per un piano olistico di validazione del rilascio, o come testare durability, partitions, tenant isolation o fairness tra shard o tenant.

Rapporto di test

Recuperato SKILL.md tramite GitHub API/raw; il frontmatter viene parsato con name+description; verificati assets/plan-template.md, references/catalog-index.md, references/common-distributed-systems-pitfalls.md — tutti HTTP 200. Nessun problema di sicurezza (no curl|sh, base64, exfil). Trigger: giudicate 5 frasi, tutte e 5 corrette. Output: progettato un compito con ambito di modifica e scritti due artefatti reali nel blocco note. La baseline ha fornito una checklist piatta di 7 elementi il cui crash test è "kill leader after ack, restart, value still there" con exit criterion "all tests pass in CI"; il piano skill-followed ha nominato le asserzioni C1-C4 più una sezione "missing claims", e lo scenario S1 ha iniettato SIGKILL "between value-WAL-fsync and dedup-WAL-fsync" con oracolo "exactly ONE committed effect ... state comparison against model, not logs fine" — una finestra di doppio commit-on-retry che la baseline non prende mai di mira.

Testato il: 2026-07-31 · Claude Code 2.x (agent harness)

Installazione

git clone --depth 1 https://github.com/shenli/distributed-system-testing.git /tmp/designing-distributed-system-tests-src
mkdir -p ~/.claude/skills
cp -R /tmp/designing-distributed-system-tests-src/skills/designing-distributed-system-tests ~/.claude/skills/designing-distributed-system-tests
# Companion skill in same repo: skills/executing-distributed-system-tests (runs the plan this one emits).
# Plugin marketplace alt: repo ships .claude-plugin/marketplace.json (plugin "distributed-testing-skills").
# No external deps to produce a plan; executing the plan needs docker/netem/etc. per the plan's env section.

Comandi e prompt di esempio

  • /designing-distributed-system-testsPiani di test basati su asserzioni per sistemi distribuiti e stateful, legati a scenari di fault-injection

Gli skill si attivano con richieste in linguaggio naturale, senza comandi da ricordare. Dopo l'installazione, prompt come questi lo attivano (in inglese):

  • Design a test plan for this replicated database
  • Write a fault matrix for this consensus system
  • Create a stability plan for our messaging service