Historiquement, sur les projets à long terme, l'automatisation des tests devenait souvent un fardeau : les tests étaient écrits à la va-vite, non maintenus, et après des années, il fallait les jeter. Le changement fréquent d'équipe fait que les connaissances se perdent, l'architecture des tests devient floue, et l'automatisation se transforme en "amas de scripts".
Problème : les scénarios de tests deviennent obsolètes, les propriétaires des tests disparaissent, il n'y a pas d'architecture de test documentée, le code review n'est pas appliqué, et une dette technique se crée. Il est difficile pour les nouveaux membres de l'équipe de comprendre comment et quoi couvrir avec les tests, et quel test répond à quelle fonction.
Solution — mettre en œuvre des pratiques GitFlow pour les tests automatisés, écrire un code lisible et bien documenté pour les tests, utiliser des modèles de conception (comme l'Architecture de Test Modulaire), automatiser le maintien de la documentation (README, auto-génération de rapports de couverture et de la validité des tests). Il est obligatoire de réaliser des code reviews pour les tests automatisés, de décrire les scénarios de tests dans la documentation, et d'instaurer une propriétaire à travers la répartition des responsabilités.
Caractéristiques clés :
Y a-t-il un sens à utiliser l'analyse statique du code des tests automatisés ?
Oui ! L'analyse statique (linters, sonarQube, etc.) aide à maintenir la qualité et l'uniformité du code des tests, prévenant l'apparition de "code rapide et sale".
À quelle fréquence faut-il nettoyer les tests automatisés des scénarios obsolètes ?
Il est recommandé de passer en revue la pertinence des scénarios à chaque cycle de release (par exemple, une fois par mois), afin d'éliminer les fonctionnalités non pertinentes et de ne pas dégrader les métriques de stabilité.
Un taux de couverture de 100 % par des tests automatisés permet-il d'éviter l'obsolescence des tests ?
Non. Même avec une couverture "complète", les tests automatisés peuvent devenir obsolètes en raison de changements dans les exigences et l'architecture, s'ils ne sont pas maintenus à jour.
Dans une grande entreprise, tous les tests étaient placés dans un seul dépôt, écrits par n'importe qui et de n'importe quelle manière. Au bout d'un an, presque personne ne pouvait expliquer ce qui était couvert, et ce qui ne l'était pas, la plupart des scénarios étaient obsolètes.
Avantages :
Inconvénients :
Un plan directeur a été créé pour les tests automatisés : chaque module avait son propriétaire ; la structure du code était décrite dans le README, les normes dans le CONTRIBUTING.md. Chaque PR dans le dépôt de tests nécessitait une code review avec une checklist obligatoire.
Avantages :
Inconvénients :