Aller au contenu

TDD avec l'IA

L’IA facilite la production rapide de code. Le TDD rend cette vitesse fiable.

Boucle TDD avec IA

  • L’IA sait produire du code plausible, pas du code garanti correct.
  • Un test qui échoue transforme une intention vague en contrat exécutable.
  • De petites boucles red/green/refactor empêchent l’IA de dériver vers de larges réécritures.
  • Le refactoring devient plus sûr, car le comportement est verrouillé avant que le modèle ne réorganise le code.
ZonePertinence du TDDPourquoi
Services et règles métierÉlevéeLa logique est compacte, déterministe et facile à vérifier
Routers, loaders et actionsÉlevéeLes contrats publics comptent plus que l’implémentation interne
Validation, parsing et mappersÉlevéeLes cas limites sont faciles à manquer sans exemples
Parcours UI critiquesMoyenneSe concentrer sur le comportement utilisateur, pas sur les détails internes des composants
UI purement présentationnelleFaibleLa revue manuelle coûte souvent moins cher que des tests de style excessifs

Partez du comportement voulu, pas de l’implémentation attendue.

2. Demander à l’IA le plus petit changement qui le fait passer

Section intitulée « 2. Demander à l’IA le plus petit changement qui le fait passer »

Ne demandez pas un nettoyage, une optimisation et une réécriture d’architecture dans la même étape.

Lancez d’abord le test ciblé. Élargissez ensuite la surface de vérification si le changement touche plusieurs couches.

Une fois le comportement protégé, utilisez l’IA pour simplifier les noms, extraire les duplications ou vous aligner sur les patterns existants.

Faites progresser la couverture par comportement : cas limites, chemins d’erreur, règles d’auth, états nuls et retries.

Add one failing test that describes this behavior.
Keep the test focused on the public contract.
Do not change the implementation yet.
Make the smallest code change that makes the new test pass.
Avoid unrelated refactors and preserve existing behavior.
Run the targeted test after the edit.
Refactor for clarity without changing behavior.
Keep all tests green and preserve the current API.
  • Utiliser Vitest pour les services, utilitaires, validations et logique métier par slice.
  • Ajouter des tests d’intégration autour des routers, loaders et actions quand les contrats comptent.
  • Garder Playwright pour des parcours end-to-end fins et critiques.
  • Éviter de s’appuyer sur les snapshots comme source principale de confiance.

Pour une configuration concrète et des exemples, consultez le Guide de tests.

  • écrire les tests après l’implémentation et appeler cela du TDD
  • demander une large réécriture au lieu du prochain tout petit pas
  • accepter des assertions qui ne font que refléter l’implémentation actuelle
  • s’appuyer sur des snapshots quand des assertions de comportement seraient plus claires
  • sauter la revue humaine du premier test qui échoue
  • le comportement a été exprimé dans un test avant ou pendant l’implémentation
  • les tests ciblés sont passés après le changement
  • le code final est plus simple que le chemin utilisé pour atteindre le vert
  • le test protège un comportement visible par l’utilisateur ou un contrat public