Designing Distributed System Tests

Plans de test basés sur les assertions pour les systèmes distribués et à état, liés à des scénarios d'injection de fautes

par shenli · shenli/distributed-system-testing

Testé · Fonctionne ★ 9.2/10

Designing Distributed System Tests — Plans de test basés sur les assertions pour les systèmes distribués et à état, liés à des scénarios d'injection de fautes

Ce que fait

Guide un agent à concevoir un plan de test basé sur les assertions pour un système distribué ou à état : il extrait les garanties que le système revendique (durabilité, linéarisabilité, idempotence, isolation, ordonnancement), génère des hypothèses de modes de défaillance liées à chaque assertion, choisit des techniques dans un catalogue, et émet un fichier de plan structuré avec des scénarios d'injection de fautes et des oracles vérifiables par machine. Se déclenche lorsqu'on demande quoi tester pour un changement, pour un plan de validation de version holistique, ou comment tester la durabilité, les partitions, l'isolation des tenants, ou l'équité entre les shards ou les tenants.

Rapport de test

SKILL.md récupéré via GitHub API/raw ; le frontmatter est parsé avec name+description ; vérification ponctuelle de assets/plan-template.md, references/catalog-index.md, references/common-distributed-systems-pitfalls.md — tous HTTP 200. Pas de failles de sécurité (pas de curl|sh, base64, exfil). Déclenchement : 5 formulations jugées, toutes 5 correctes. Sortie : une tâche à portée de changement conçue et deux artefacts réels écrits dans le bloc-notes. La référence a donné une liste de contrôle plate de 7 éléments dont le test de crash est "kill leader after ack, restart, value still there" avec critère de sortie "all tests pass in CI" ; le plan suivant la compétence a nommé les assertions C1-C4 plus une section "missing claims", et le scénario S1 a injecté SIGKILL "between value-WAL-fsync and dedup-WAL-fsync" avec l'oracle "exactly ONE committed effect ... state comparison against model, not logs fine" — une fenêtre de double-commit-on-retry que la référence ne cible jamais.

Testé le: 2026-07-31 · Claude Code 2.x (agent harness)

Installation

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.

Commandes et exemples de prompts

  • /designing-distributed-system-testsPlans de test basés sur les assertions pour les systèmes distribués et à état, liés à des scénarios d'injection de fautes

Les skills se déclenchent sur des demandes en langage courant — aucune commande à retenir. Après installation, des prompts comme ceux-ci l'activent (en anglais) :

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