À retenir
- Assure que les anciennes fonctionnalités restent opérationnelles.
- Évite l'apparition d'effets de bord imprévus.
- Indispensable pour maintenir la confiance des utilisateurs lors des mises à jour.
La non-régression est une pratique qui consiste à vérifier que les modifications apportées à un logiciel (comme l'ajout d'une fonction ou la correction d'une erreur) n'ont pas altéré les fonctionnalités qui marchaient déjà. C'est l'équivalent de tester toutes les prises d'une maison après avoir refait le tableau électrique pour s'assurer que rien n'a sauté.
Étymologie
Le terme vient du préfixe latin non- (négation) et de regressio (retour en arrière). En informatique, on parle de régression quand un logiciel perd une aptitude qu'il maîtrisait auparavant. La non-régression est donc l'effort pour empêcher ce recul qualitatif.
Exemples d'usage
- Après avoir modifié la couleur du menu, relancer un test automatique pour vérifier que le bouton de déconnexion fonctionne toujours.
- Exécuter une batterie de tests complets sur une application mobile avant de la publier sur un magasin d'applications suite à une mise à jour mineure.
Cas d'usage
Ce concept est omniprésent dans le développement de logiciels modernes, particulièrement lors des phases de maintenance et d'évolution. Il est le pilier de l'intégration continue (CI/CD), où des scripts vérifient automatiquement le code à chaque changement.
Bonnes pratiques
L'idéal est d'automatiser ces vérifications. Chaque fois qu'un bug est corrigé, il est conseillé d'écrire un test spécifique pour ce bug : cela garantit qu'il ne réapparaîtra pas lors d'une future modification. On appelle cela enrichir la suite de tests de non-régression.
Synonymes
Antonymes
Conseil
Quand vous développez, ne voyez pas les tests de non-régression comme une contrainte, mais comme une assurance vie. Ils vous permettent de modifier votre code avec audace, sachant que vos tests vous alerteront immédiatement si vous faites une erreur de logique.
Questions fréquentes
Une régression est-elle toujours un bug ?
Oui, une régression est par définition un bug qui apparaît dans une fonction qui était auparavant stable.
Qu'est-ce qu'un TNR ?
TNR signifie Test de Non-Régression. C'est l'action concrète de vérifier que les changements n'ont rien cassé.
Est-ce que cela prend beaucoup de temps ?
Manuellement, oui. C'est pour cela que les développeurs utilisent des outils d'automatisation pour lancer des centaines de tests en quelques secondes.