Aller au contenu
Tous les articles

Tech

Tests de non-régression : les automatiser sans y passer un sprint

Par où commencer quand une base de code n'a presque pas de tests : les parcours critiques d'abord, des tests rapides en CI, et une méthode pour ne pas bloquer l'équipe.

Une régression, c'est une fonctionnalité qui marchait et qui ne marche plus après un changement. Les tests de non-régression servent à le voir avant vos clients. Le problème, dans beaucoup de jeunes équipes : la base de code a grandi plus vite que les tests, et rattraper le retard semble demander un sprint entier que personne n'a.

Voici une méthode pour avancer par petites livraisons.

1. Commencez par les parcours qui coûtent cher

Listez les cinq parcours dont la panne vous coûterait le plus : inscription, connexion, action principale du produit, export des données, envoi des notifications. Un test de bout en bout par parcours protège déjà l'essentiel.

2. Figez le comportement actuel avant de le changer

Sur du code ancien, écrivez d'abord des tests de caractérisation : ils décrivent ce que le code fait aujourd'hui, pas ce qu'il devrait faire. Vous pouvez ensuite modifier le code en sachant tout de suite si un comportement a changé.

3. Gardez la suite rapide

Une suite lente finit désactivée. Visez quelques minutes en intégration continue :

  • des tests unitaires pour la logique métier ;
  • quelques tests d'intégration pour les échanges avec la base et les API ;
  • peu de tests de bout en bout, réservés aux parcours critiques.

4. Lancez-la à chaque pull request

Un test qui ne tourne pas automatiquement ne protège rien. Branchez la suite sur la CI, et bloquez la fusion quand elle échoue.

5. Traitez les tests instables tout de suite

Un test qui échoue au hasard apprend à l'équipe à ignorer les échecs. Mettez-le en quarantaine, corrigez sa cause (attente, ordre d'exécution, données partagées), puis remettez-le dans la suite.

Et l'IA dans tout ça ?

L'IA est utile pour écrire un premier jet de tests à partir du code existant et des tickets : cas limites, données de test, tests de caractérisation. Elle ne remplace pas la relecture : un test faux qui passe est pire qu'un test absent. La bonne pratique reste la même que pour du code humain : chaque test arrive en pull request, et votre équipe relit avant de fusionner.

Ce qu'il faut retenir

  • Cinq parcours critiques couverts valent mieux qu'un taux de couverture élevé et sans valeur.
  • Des tests rapides, lancés à chaque pull request.
  • Zéro tolérance pour les tests instables.

Nous livrons des tests et des migrations sous forme de pull requests, relues et fusionnées par votre équipe : voir ce que nous faisons pour les équipes tech.