🤖 Agents IA

agent-testing-framework

Framework de test complet pour agents IA — tests unitaires, d'intégration, de bout en bout et adversariaux.

⚡ Installation & lancement en 1 commande

Copiez-collez dans votre terminal : le skill s'installe dans ~/.claude/skills et Claude Code se lance directement dessus.

macOS / Linux
curl -fsSL https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.sh | sh -s -- agent-testing-framework --launch
Windows (PowerShell)
iex "& { $(iwr -useb https://raw.githubusercontent.com/khalilbenaz/claude-skills-collection/main/install.ps1) } agent-testing-framework -Launch"

🚀 Déjà installé ?

claude "/agent-testing-framework"

Ou tapez /agent-testing-framework dans une session Claude Code, ou décrivez simplement votre besoin — le skill se déclenche automatiquement via le skill-router.

🔑 Déclencheurs automatiques

Le skill s'active automatiquement quand votre demande contient :

tester agentagent testingtest agent IAagent CI/CDagent regressionquality assurance agentagent test suite

📦 Installation manuelle

git clone https://github.com/khalilbenaz/claude-skills-collection.git cp -r claude-skills-collection/agent-skills/testing-framework ~/.claude/skills/

Source : agent-skills/testing-framework

📖 Manuel

Agent Testing Framework

Quand utiliser ce skill

Utilise ce skill lorsque tu dois mettre en place une stratégie de test pour un agent IA, détecter des régressions après modification de prompts ou de logique, ou intégrer la qualité agent dans une pipeline CI/CD. Il s'applique aussi bien aux agents simples qu'aux architectures multi-agents complexes.

Workflow

  1. Stratégie de test — Construire la pyramide de tests adaptée aux agents : unit (fonctions isolées) → integration (chaînes d'outils) → E2E (conversations complètes) → adversarial (robustesse). Définir les objectifs de couverture, les seuils de qualité et les métriques clés (précision, latence, coût par appel).
  1. Tests unitaires — Tester chaque composant isolément : fonctions de parsing, templates de prompts, transitions d'état, logique de routing. Utiliser pytest ou jest avec des entrées/sorties déterministes. Exemple : vérifier que parse_tool_call(raw_output) extrait correctement les arguments sans appel LLM réel.
  1. Tests d'intégration — Valider les chaînes d'outils, la persistance d'état et les flux multi-étapes. Mocker le LLM pour injecter des réponses contrôlées. Tester la combinaison retrieval → LLM → action en vérifiant que chaque maillon passe correctement l'information au suivant.
  1. Tests E2E — Exécuter des scénarios de conversation complets sur des golden datasets : paires (input utilisateur → output attendu). Évaluer les sorties avec des métriques sémantiques (BLEU, BERTScore, LLM-as-judge). Couvrir les happy paths, les cas limites et les flux de récupération d'erreur.
  1. Snapshot testing — Enregistrer les sorties de référence pour chaque scénario critique. À chaque modification, comparer les nouvelles sorties aux snapshots via diff sémantique plutôt que textuel. Alerter si la divergence dépasse un seuil configurable. Utiliser des outils comme pytest-snapshot ou Braintrust.
  1. Tests adversariaux — Tester la robustesse face aux prompt injections, aux entrées inattendues, aux requêtes hors-domaine et aux tentatives de manipulation. Construire un corpus d'attaques connues. Mesurer le taux de résistance et les comportements de fallback. Documenter les vulnérabilités identifiées.
  1. Mocking LLM — Implémenter un système de cassettes (record/replay) pour capturer les vraies réponses LLM en mode "record", puis les rejouer en mode "replay" pour des tests déterministes et économiques. Bibliothèques utiles : VCR.py, respx, ou un mock custom via unittest.mock. Gérer le versionnage des cassettes.
  1. Intégration CI/CD — Configurer les quality gates dans GitHub Actions, GitLab CI ou Jenkins : tests unitaires bloquants, tests d'intégration sur PR, tests E2E en nightly. Définir des seuils : score de qualité minimum 85 %, latence P95 < 3 s, coût par test < 0,01 $. Bloquer le merge si un gate échoue.
  1. Gestion de la flakiness — Traiter le non-déterminisme LLM avec des comparaisons sémantiques plutôt qu'exactes. Définir des tolérances par dimension (exactitude factuelle stricte vs style libre). Implémenter des retries avec backoff pour les appels LLM réels. Identifier et isoler les tests structurellement instables.
  1. Reporting — Générer des rapports de test avec score de qualité agrégé, tendances dans le temps, analyse des échecs et couverture des scénarios. Intégrer dans le dashboard de monitoring (Grafana, Datadog). Envoyer des alertes de régression à l'équipe. Maintenir un changelog des évolutions de qualité.

Règles