Le problème de la dette technique dans les tests automatisés a été reconnu pour la première fois avec la montée de l'automatisation — lorsque le nombre de tests a commencé à se compter par centaines et milliers, leur maintenance s'est souvent révélée plus coûteuse que le développement lui-même, et les erreurs architecturales se sont multipliées.
À l'aube de l'automatisation, les tests étaient écrits rapidement, souvent sans modèles, sans normes et sans refactoring ultérieur. En conséquence, les dépôts de tests automatisés deviennent obsolètes, se cassent à cause des changements d'application, et leur maintenance nécessite de plus en plus d'efforts.
Caractéristiques clés :
Un fort pourcentage de couverture du code par les tests est-il un indicateur de l'absence de dette technique ?
Non, une couverture formelle du code ne garantit pas la qualité et la viabilité de la base de tests : il peut y avoir des tests obsolètes ou "inutiles".
Est-il suffisant de rédiger une fois des gabarits de tests automatisés pour éliminer la dette technique ?
Non, l'infrastructure et les modèles nécessitent toujours révision et développement avec la croissance du projet.
Peut-on se passer complètement des tests manuels si les tests automatisés sont bien structurés ?
Non, des tests smoke/régression/niche seront toujours nécessaires manuellement, et les tests automatisés sont indispensables pour le "suivi" régulier de la fonctionnalité stable.
Les tests automatisés étaient écrits sans revue, la structure changeait au cours du projet, certains tests devenaient obsolètes — 40 % des tests échouaient à cause des changements dans l'application.
Avantages :
Inconvénients :
Dans l'équipe, une revue des tests automatisés et un refactoring ont lieu toutes les deux semaines, l'architecture est maintenue selon les normes acceptées, les tests sont étroitement liés aux user stories actuelles.
Avantages :
Inconvénients :