Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
distributed-system-testing — Compétences d'agents IA pour les tests de systèmes distribués | Kitploit
Outils/GitHubGitHub/shenli/distributed-system-testing
FuzzingArticles et RechercheApprentissage et ÉducationRessources OrganiséesIngénierie du ChaosSécurité de l'IALabs et Pratique
GitHubshenli/distributed-system-testing

distributed-system-testing

Compétences d'agents IA pour les tests de systèmes distribués

Voir le dépôt
2271242il y a 2 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Compétences de test des systèmes distribués

Deux compétences pour les agents de codage IA qui conçoivent et exécutent des tests pilotés par les revendications (claim-driven) pour les systèmes distribués et avec état. Ensemble, elles produisent un plan de test Markdown structuré et un rapport de résultats avec des verdicts à 10 états et une classification explicite de la responsabilité SUT / harnais / vérificateur / environnement. Un relecteur lit les deux artefacts et décide s'il faut livrer ; rien d'autre n'a besoin d'être réexécuté.

Fonctionne avec Claude Code, Codex, Copilot CLI, Cursor, Gemini ou tout agent qui lit le Markdown et exécute des commandes shell. Les compétences sont de simples fichiers SKILL.md. L'agent les exécute ; le plan et le rapport de résultats sont la sortie.

Une compétence conçoit le plan. L'autre l'exécute. Un plan part des revendications du produit, génère des hypothèses liées à ces revendications et écrit des scénarios nommés d'après la revendication que chacun tente de falsifier. Pour les scénarios critiques en matière de cohérence, chaque scénario associe également un modèle abstrait (register | queue | log | lock | lease | ledger | …) à un schéma d'historique d'opérations, un vérificateur nommé et un nemesis avec des preuves d'atterrissage observables. Le plan se termine par un argument d'adéquation de la couverture et une déclaration de confiance prudente.

Pourquoi

L'approche par défaut pour tester les systèmes distribués et avec état — écrire quelques tests d'intégration et considérer le travail terminé — ne détecte qu'une petite fraction des bugs qui cassent réellement ces systèmes en production : partitions réseau partielles, concurrence non déterministe, reprise après crash, mise à niveau / retour arrière, idempotence sous rejeu, ordonnancement sensible au temps.

Ces compétences imposent un workflow affirmé qui s'appuie sur les connaissances durement acquises du domaine :

  • Piloté par les revendications, pas par les tests. Partez de ce que le produit promet. Chaque scénario falsifie une revendication sous une panne. Un test nommé d'après sa revendication est plus difficile à affaiblir qu'un test nommé d'après sa configuration.
  • L'adéquation de la couverture est un livrable. Le plan se termine par un argument démontrant que les scénarios choisis sont suffisants pour livrer, ainsi qu'une liste honnête de ce qui reste non vérifié.
  • Réutilisez la boîte à outils du SUT lui-même. La compétence d'exécution découvre les tests existants, les runbooks et l'infrastructure d'injection de pannes avant d'inventer quoi que ce soit de nouveau.
  • Modèle + historique + vérificateur, pas seulement le chaos. Pour les revendications de sécurité, de durabilité, d'idempotence, d'isolation, d'ordonnancement ou d'appartenance, chaque scénario déclare un modèle abstrait, un schéma d'historique d'opérations, un vérificateur nommé (linéarisabilité, sérialisabilité, cohérence de session, no-lost-ack, exactly-once, …) et la manière dont il traite les résultats ambigus (timeouts, commits inconnus, nouvelles tentatives). Le chaos plus un modèle et un vérificateur, pas le chaos seul.
  • Aucun PASS silencieux. Chaque PASS cite les preuves d'exécution de l'oracle et le signal prouvant que la panne s'est réellement déclenchée. Les verdicts proviennent d'un ensemble de 10 états, de sorte que « le script de chaos s'est exécuté proprement » ne peut pas être lu comme « la revendication a survécu à la panne ». Chaque FAIL porte une étiquette de responsabilité SUT / harnais / vérificateur / environnement afin que les reproducteurs atteignent la bonne file d'attente.

Ce que vous obtenez

De bout en bout, les deux compétences produisent :

docs/testing-plans/<slug>.md        ← plan with §0–§9 (see below)
test-sessions/<slug>/<UTC>/
  ├── session-log.md                 ← timeline + toolbox + env probe
  ├── logs/                          ← per-scenario stdout/stderr
  ├── metrics/                       ← metric snapshots
  ├── artifacts/                     ← ephemeral harnesses, dumps
  └── findings/
      ├── <scenario>.md              ← per-scenario verdict (written as run proceeds)
      └── report.md                  ← summary + adequacy + confidence delta

La structure du plan (un relecteur peut la lire et décider de livrer sans réexécuter les tests) :

0. Architectural summary       — system as it actually exists
1. Scope
1b. Claims under test          — the spine
1c. Missing claims discovered  — docs ↔ code drift
2. SUT model
3. Existing test inventory     — what's already covered
4. Failure-mode hypotheses     — tied to claim IDs
5. Coverage matrix             — claim × hypothesis
6. Technique selection         — from the catalog
6b. Environment requirements
7. Scenarios                   — each named after the claim, with
                                  Target test file + Skeleton
   7.M Model / history /       — mandatory when the scenario falsifies
       checker discipline        a claim in {safety, durability,
                                  idempotency, isolation, ordering,
                                  membership}: model under test,
                                  operation-history schema, named
                                  checker, nemesis + landing evidence,
                                  ambiguous-outcome handling, reduction
                                  plan (SUT/harness/checker/env blame)
7b. Coverage adequacy argument — why these tests are enough
7c. Residual uncertainty       — what stays unverified, and why ok
7d. Confidence statement       — the reviewer's verdict
8. What this plan does NOT cover
9. Open questions / followups

Exemple de bloc §7.M (extrait d'un plan)

### Scenario S3: linearizable_append_under_partition
- Falsifies if it FAILs: C1 (every acknowledged append is durable
  and linearisable), C5 (leader election completes within 5s)
- Workload: 8 clients, 70% append / 30% read, 5min, key-skew zipf
- Faults: asymmetric partition isolating current leader at T+60s
  for 30s
- Oracle: linearizability via Porcupine over per-key histories

§7.M (model / history / checker discipline)
- Model under test:    log
- Operation history:   default 11-field schema (op id, process id,
                       invoke/complete ts, op type, key, input,
                       output, error, timeout marker, node seen,
                       fault epoch). Recorded in-process + server-
                       side audit.
- Checker:             linearizability (Porcupine) per-key, then
                       no-lost-ack against final state
- Nemesis + landing:   asymmetric-partition (iptables drop one
                       direction). Landing evidence = iptables drop
                       counter goes 0 → 14,712 over the 30s window
                       AND raft log emits "leader-lost; starting
                       election" within 2s of injection.
- Ambiguous outcomes:  timeouts → timeout_marker=true, complete_ts
                       =null, treated as could-have-succeeded;
                       retries are separate ops sharing input
- Reduction plan:      if FAIL, bisect fault window + fix seed, then
                       classify SUT / harness / checker / environment
                       per references/test-case-reduction.md

Exemple de ligne du rapport de résultats

Télécharger l’outil