Guide méthode

Test de non-régression (TNR) : définition, méthode et quand l'automatiser

Ce qu'est vraiment un TNR, ce qui le distingue d'un retest, la méthode en 5 étapes pour bâtir un référentiel qui tient dans la durée, et un calcul simple pour savoir si l'automatiser sera rentable chez vous.

Par Reda Ennasr, CEO d'In Value Publié le 03/11/2026 Mis à jour le 03/11/2026
L'essentiel

Un test de non-régression (TNR) vérifie qu'une modification du logiciel n'a rien cassé dans ce qui fonctionnait déjà. Il se lance après chaque correction, nouvelle fonctionnalité, mise à jour de dépendance ou changement d'environnement, et c'est le premier candidat à l'automatisation parce qu'il se rejoue à chaque livraison.

  • TNR et retest ne sont pas la même chose : le retest vérifie qu'un bug est corrigé, le TNR vérifie que la correction n'a rien cassé ailleurs.
  • La méthode tient en 5 étapes : cartographier les parcours critiques, constituer le référentiel, choisir la stratégie d'exécution, automatiser par paliers, mesurer.
  • Tout automatiser n'est pas rentable : les parcours critiques rejoués à chaque livraison passent en premier, les scénarios rares restent manuels.
  • L'IA rend le TNR plus sélectif : chez Meta, la sélection prédictive des tests détecte plus de 99,9 % des régressions en exécutant un tiers des tests concernés.
Outil interactif

En combien de mois l'automatisation de votre TNR serait-elle rentabilisée ?

Cinq chiffres que vous connaissez déjà. Le calcul compare le coût de vos campagnes manuelles à celui de l'automatisation, maintenance comprise.

Coût manuel par an
-
Économie nette par mois
-
Seuil de rentabilité
-

Je mesure la maturité de mon automatisation

Calcul indicatif : il ne compte que le temps de test économisé. Les gains sur les incidents évités et la fréquence de livraison viennent en plus.

Test de non-régression : la définition

Le glossaire ISTQB, référence internationale des testeurs, définit le test de régression comme un test lié aux changements, qui vérifie si des défauts ont été introduits ou révélés dans les parties non modifiées du logiciel. La norme ISO/IEC/IEEE 29119 retient la même idée.

En France, l'usage a imposé « test de non-régression » et son sigle TNR : on teste pour prouver l'absence de régression. Les deux expressions désignent exactement la même pratique. Une régression, c'est une fonctionnalité qui marchait dans la version précédente et qui ne marche plus dans la nouvelle.

Le TNR n'est pas un niveau de test, c'est un objectif. Il peut s'appuyer sur des tests unitaires, d'API ou d'interface. Leur bonne répartition est détaillée dans notre guide sur la pyramide des tests.

Ingénieure logiciel vérifiant du code sur deux écrans dans un bureau

Retest, smoke test, TNR : quatre vérifications qui ne se remplacent pas

Le retest prouve qu'un bug est corrigé ; le TNR prouve que la correction n'a rien cassé ailleurs. Une équipe qui ne fait que des retests laisse passer exactement les défauts qui surprennent le plus ses utilisateurs.

Vérification Question posée Périmètre Moment
Retest (test de confirmation) Le bug signalé est-il bien corrigé ? Le seul scénario qui a révélé le défaut Après chaque correction
Smoke test L'application démarre-t-elle et ses fonctions vitales répondent-elles ? Une poignée de vérifications rapides À chaque déploiement, en quelques minutes
TNR ciblé Les zones touchées par la modification fonctionnent-elles toujours ? Les tests liés au code modifié et à ses dépendances À chaque demande de fusion (pull request)
TNR complet Tout ce qui marchait avant marche-t-il encore ? L'ensemble du référentiel de non-régression Chaque nuit ou avant une mise en production

Six modifications qui doivent déclencher un TNR

Une régression ne vient pas seulement du code de l'équipe. Trois déclencheurs sur six n'impliquent aucune ligne modifiée dans votre application.

01

Une correction de bug

Corriger un défaut modifie du code partagé. Le retest vérifie la correction, le TNR vérifie qu'elle n'a rien cassé ailleurs.

02

Une nouvelle fonctionnalité

Elle s'appuie presque toujours sur des composants existants : formulaires, règles de calcul, droits d'accès.

03

Une mise à jour de dépendance

Framework, bibliothèque, navigateur ou version de langage : le code de l'équipe n'a pas bougé, son comportement si.

04

Un changement d'environnement

Nouvelle configuration, migration de base de données, changement d'hébergeur ou de version de système.

05

Un refactoring

Par définition, il ne doit rien changer au comportement visible. Seul un TNR permet de le prouver.

06

Une intégration externe modifiée

Une API de paiement, d'identification ou de logistique qui évolue peut casser un parcours sans aucune ligne modifiée chez vous.

La méthode en 5 étapes pour un TNR qui tient dans la durée

Un bon référentiel de non-régression se construit à partir du risque métier, pas à partir de la liste des fonctionnalités. Tester tout avec le même soin revient à ne rien prioriser.

  1. 1

    Cartographier les parcours critiques

    Listez les parcours dont la panne coûte de l'argent ou de la confiance : inscription, paiement, calculs réglementaires, exports. Notez pour chacun l'impact d'une panne et la fréquence d'usage. C'est cette note de risque qui fixe l'ordre de tout le reste.

  2. 2

    Constituer le référentiel de non-régression

    Pour chaque parcours retenu, gardez les scénarios qui couvrent le cas nominal et les cas limites qui ont déjà cassé. Ajoutez systématiquement un test à chaque défaut trouvé en production : le référentiel apprend de vos incidents.

  3. 3

    Choisir la stratégie d'exécution

    Tout relancer, sélectionner, prioriser ou réduire : la littérature de référence distingue ces quatre options (voir le tableau ci-dessous). Une équipe qui livre souvent combine en général une sélection à chaque modification et un passage complet la nuit.

  4. 4

    Automatiser par paliers et brancher la CI

    Automatisez d'abord les parcours les mieux notés, au niveau le plus bas possible de la pyramide (unitaire et API avant l'interface). Branchez chaque palier au pipeline : smoke test à chaque déploiement, TNR ciblé à chaque pull request, TNR complet chaque nuit.

  5. 5

    Maintenir et mesurer

    Un référentiel qui n'est pas entretenu se dégrade à chaque livraison. Suivez trois indicateurs : la durée d'exécution, la part de tests instables et le nombre de régressions qui atteignent malgré tout la production.

Quatre stratégies d'exécution, quatre compromis

La revue de référence de Shin Yoo et Mark Harman sur le test de régression classe les approches en trois familles (minimisation, sélection, priorisation), auxquelles s'ajoute la solution par défaut : tout relancer.

Stratégie Principe Quand l'utiliser Limite
Tout relancer (retest all) Exécuter l'intégralité du référentiel à chaque modification Petit référentiel rapide, ou avant une mise en production majeure Le temps d'exécution croît avec chaque test ajouté
Sélection N'exécuter que les tests liés au code modifié Intégration continue avec des modifications fréquentes Une dépendance mal tracée laisse passer une régression
Priorisation Tout exécuter, mais dans l'ordre du risque, pour obtenir les échecs importants en premier Référentiel long dont on veut un retour rapide Ne réduit pas la durée totale
Minimisation Supprimer les tests redondants qui couvrent la même chose Référentiel ancien, gonflé au fil des années Risque de retirer un test qui détectait un cas rare

Brancher ces paliers au pipeline est le cœur du continuous testing. Pour le séquencement mois par mois, voyez notre stratégie pour passer de 0 à 80 % de tests automatisés.

Checklist : votre TNR est-il fiable ?

Cochez ce qui est vrai aujourd'hui dans votre équipe. En dessous de 7 sur 10, votre référentiel protège moins qu'il n'y paraît.

0 sur 10

Quand automatiser le TNR : d'abord ce qui se rejoue à chaque livraison

Un test automatisé est rentable quand le temps qu'il fait gagner à chaque exécution dépasse ce qu'il coûte à écrire et à maintenir. La fréquence d'exécution est donc le premier critère, avant même la complexité du scénario.

Cas Choix Pourquoi
Parcours critique exécuté à chaque livraison Automatiser en priorité C'est là que le coût de la campagne manuelle se répète le plus
Règles de calcul, contrôles de données, API Automatiser Résultats déterministes, tests rapides et stables
Fonctionnalité dont l'interface change chaque sprint Attendre qu'elle se stabilise Le script coûterait plus en maintenance qu'il ne ferait gagner
Ergonomie, rendu visuel, ressenti utilisateur Garder une part manuelle ou exploratoire Un script vérifie ce qu'on lui dit de vérifier, pas ce qui gêne un humain
Scénario rare, joué une fois par an Garder en manuel, avec un mode opératoire écrit L'automatisation ne serait jamais amortie

Ce que coûte une non-régression restée manuelle ne se limite pas aux heures de campagne : incidents en production, livraisons repoussées, équipes en mode pompier. Nous détaillons ces postes dans combien coûte le manque d'automatisation des tests, et la formule complète, maintenance comprise, dans le guide pour calculer le ROI de l'automatisation des tests.

Ce que l'IA change au TNR : exécuter moins de tests, mais les bons

Le principal apport de l'apprentissage automatique au TNR n'est pas d'écrire des tests, c'est de choisir lesquels exécuter. Les grands éditeurs de logiciels l'ont publié en premier, parce que leurs référentiels sont trop volumineux pour être relancés en entier à chaque modification.

99,9 %

des régressions détectées par la sélection prédictive de Meta avant d'atteindre les autres ingénieurs

Meta Engineering, 2018

1 sur 3

seulement des tests dépendant du code modifié sont exécutés pour obtenir ce résultat

Meta Engineering, 2018

1,5 %

des exécutions de tests chez Google donnent un résultat instable

Google Testing Blog, 2016

84 %

des passages de « réussi » à « échoué » observés chez Google impliquent un test instable

Google Testing Blog, 2016

Ce que l'IA apporte au TNR

  • Sélectionner les tests les plus susceptibles d'échouer pour une modification donnée, à partir de l'historique des exécutions.
  • Prioriser l'ordre d'exécution pour obtenir les échecs importants dans les premières minutes.
  • Repérer les tests instables et distinguer un faux échec d'une vraie régression.
  • Réparer des sélecteurs cassés après une modification de l'interface, ce qui allège la maintenance.

Ce qui reste une décision humaine

  • Définir les parcours critiques : l'historique des tests ne dit pas quel parcours fait perdre de l'argent quand il tombe.
  • Accepter le risque résiduel : une sélection qui rate 0,1 % des régressions est un choix, à assumer pour les parcours les plus sensibles.
  • Qualifier un échec et décider de bloquer ou non une mise en production.
  • Vérifier qu'une réparation automatique n'a pas masqué un vrai changement de comportement.

C'est ce que nous appelons l'automatisation intelligente des tests : protéger en priorité ce qui porte la valeur, s'appuyer sur l'IA là où elle est fiable, et mesurer l'effet sur la livraison. Les autres usages de l'IA qui tiennent leurs promesses sont détaillés dans IA générative dans les tests : ce qui marche vraiment. Côté outillage, le guide Playwright 2026 montre comment paralléliser une suite de non-régression en CI.

Cinq erreurs qui rendent un TNR inutile

Un référentiel de non-régression peut tourner tous les jours et ne protéger presque rien. Ces erreurs en sont les causes les plus fréquentes.

  • Rejouer tout le référentiel à la main avant chaque mise en production : la campagne s'allonge à chaque version, jusqu'à devenir le goulot de la livraison.
  • Confondre retest et non-régression : vérifier que le bug est corrigé ne dit rien de ce que la correction a pu casser ailleurs.
  • Automatiser le TNR uniquement par l'interface : la suite devient lente et fragile, alors qu'une grande partie des régressions se détecte plus bas, sur les API et les règles métier.
  • Laisser les tests instables en place et relancer jusqu'au vert : l'équipe apprend à ignorer les échecs, y compris les vrais.
  • Ne jamais retirer de tests : un référentiel qui ne fait que grossir finit par prendre plus de temps qu'il n'en fait gagner.

La protection contre la régression est l'une des six missions du testeur, détaillées dans notre guide QA : définition, rôle du testeur et Quality Engineering.

Questions fréquentes sur le test de non-régression

Qu'est-ce qu'un test de non-régression ?

Un test de non-régression (TNR) vérifie qu'une modification du logiciel n'a pas introduit de défaut dans les parties qui n'ont pas été modifiées. Le glossaire ISTQB le classe parmi les tests liés aux changements. En français, on dit indifféremment test de régression ou test de non-régression : les deux désignent la même pratique.

Quelle est la différence entre un retest et un test de non-régression ?

Le retest, ou test de confirmation, rejoue le scénario qui a révélé un bug pour vérifier qu'il est corrigé. Le test de non-régression vérifie que cette correction, ou toute autre modification, n'a rien cassé ailleurs. Une correction validée par un retest peut parfaitement provoquer une régression sur un autre parcours.

Quand faut-il lancer des tests de non-régression ?

Après toute modification susceptible de changer le comportement du logiciel : correction de bug, nouvelle fonctionnalité, mise à jour d'une dépendance, changement d'environnement, refactoring ou évolution d'une API externe. Dans une équipe qui pratique l'intégration continue, un TNR ciblé tourne à chaque pull request et un TNR complet chaque nuit.

Faut-il automatiser tous les tests de non-régression ?

Non. Il faut automatiser en priorité les parcours critiques rejoués à chaque livraison, les règles de calcul et les API, dont les résultats sont stables. Les vérifications d'ergonomie, les fonctionnalités dont l'interface change encore chaque sprint et les scénarios joués une fois par an restent souvent plus rentables en manuel.

Comment réduire la durée d'une campagne de non-régression ?

Quatre leviers existent : sélectionner les tests liés au code modifié, prioriser les tests les plus risqués pour obtenir les échecs importants en premier, supprimer les tests redondants, et paralléliser l'exécution sur plusieurs machines. Descendre les vérifications au niveau API ou unitaire, plus rapide que l'interface, est souvent le gain le plus important.

Que faire des tests instables dans un référentiel de non-régression ?

Les isoler rapidement, en chercher la cause (attente mal gérée, données partagées, dépendance externe) et les corriger. Chez Google, environ 1,5 % des exécutions de tests donnent un résultat instable et près de 16 % des tests présentent une forme d'instabilité. Un test instable laissé en place apprend à l'équipe à ignorer les échecs.

L'IA peut-elle gérer les tests de non-régression ?

Elle aide sur des tâches précises : choisir les tests à exécuter selon la modification, réparer des sélecteurs cassés, trier les échecs. Meta indique que son système de sélection prédictive détecte plus de 99,9 % des régressions en n'exécutant qu'un tiers des tests concernés. Le choix des parcours critiques et la décision de bloquer une livraison restent humains.

Votre TNR protège-t-il vraiment vos livraisons ?

Automate Score évalue la maturité de votre automatisation des tests sur cinq dimensions et vous indique les chantiers qui auront le plus d'impact sur vos livraisons.

Des recommandations priorisées, exprimées en langage business

Échangeons