Automatisation

Cette page s'adresse aux développeurs. Elle explique, au niveau fonctionnel, comment capTests se branche sur l'intégration continue et sur l'agent IA pour remplir et tenir à jour la liste des points et leur couverture. capTests n'exécute pas les tests : il en ingère les résultats.

Le principe : un repère par test

Le lien entre un point de test et un test automatique repose sur la référence du point (par exemple TC-SI-001, voir Cas de test). Le développeur pose sur le test automatique un repère dérivé de cette référence :

  • côté Playwright, un tag de la forme @TC-SI-001 ;
  • côté PHPUnit, un groupe de la forme TC-SI-001.

Ce repère est non invasif : il s'ajoute aux tests existants sans en refondre la structure. Lors de l'exécution, un composant dédié (un reporter Playwright ou une extension PHPUnit) lit ces repères et envoie les résultats à capTests, avec le numéro de version testée.

La couverture se calcule à l'ingestion

À chaque remarque de résultats, capTests rapproche chaque résultat du bon point (grâce au repère) et recalcule la couverture de la version (voir Couverture automatique). Un test qui passe fait apparaître le badge Couvert ; un test qui échoue fait apparaître Régression ; un test désactivé fait apparaître Ignoré.

Un développeur peut aussi déclarer explicitement qu'un test couvre un point, en précisant le niveau :

  • full : le test couvre entièrement le point.
  • partial : seule la mécanique de fond est testée, le détail reste à vérifier à la main (badge Partiel).

Ces déclarations apparaissent dans le bloc Tests automatiques liés de la fiche d'un point.

Vidéos de référence et d'échec

Les tests automatiques peuvent aussi publier des vidéos sur un point, pour que le développeur ou le testeur humain compare le comportement attendu et le comportement observé :

  • Vidéo de référence (le comportement attendu, "golden") : envoyée une seule fois par point et par plateforme. Tant que le test passe, elle n'est jamais réenvoyée. Une nouvelle référence n'est captée qu'après suppression de l'ancienne (voir ci-dessous).
  • Vidéo d'échec : envoyée quand le test échoue, rattachée à la version concernée. La dernière vidéo d'échec remplace la précédente pour un même point, une même version et une même plateforme.

Côté reporter, le geste type est : si le test passe et qu'aucune référence n'existe encore, envoyer la vidéo de référence ; si le test échoue, envoyer la vidéo d'échec avec le numéro de version. Les deux séquences se retrouvent ensuite côte à côte dans le bloc Vidéos de test de la fiche du point (voir Cas de test).

Les vidéos acceptées sont au format WebM ou MP4, dans la limite de taille configurée pour la plate-forme (20 Mo par défaut). Le binaire transite par l'interface de programmation (API) ; il ne passe pas par l'agent IA. L'agent peut en revanche lister les vidéos d'un point, supprimer la vidéo de référence, et demander la marche à suivre pour l'envoi : un outil dédié lui renvoie l'adresse exacte, les champs à fournir et un exemple de commande, qu'il exécute ensuite lui-même pour téléverser le fichier.

Piloter la liste depuis l'agent IA

capTests expose ses fonctions aux développeurs de deux façons complémentaires : une interface de programmation (API) et un serveur d'outils pour agent IA (MCP). Le geste habituel du développeur ("implémente cette liste", puis "vérifie que cette liste est couverte par des tests automatiques") devient une suite d'actions de l'agent IA, sans copier-coller manuel. L'agent peut notamment :

  • lister les points et leur couverture, consulter le détail d'un point ;
  • créer ou modifier des points, faire évoluer leur cycle de vie ;
  • relier un test automatique à un point ;
  • créer une version (mettre une livraison en ligne) ;
  • remonter les résultats d'une exécution de tests ;
  • promouvoir une remarque en point de test ;
  • lister les vidéos d'un point et, pour un chef de projet, supprimer la vidéo de référence ;
  • exporter la todolist au format Markdown.

Le format Markdown reste un format de premier rang : la todolist s'exporte et s'importe en texte, ce qui reste pratique pour la lecture, le copier-coller ou le pilotage par agent. Les pièces jointes et les liens additionnels ne sont pas représentables en texte et restent accessibles via l'interface et l'API.

Note : la configuration technique des reporters CI, des jetons de service et de la connexion de l'agent IA relève du dépôt du projet testé et de son environnement de développement. Elle sort du périmètre de cette documentation utilisateur.