Un test de non régression, ou TNR permet de vérifier qu’il n’y a pas eu de régressions sur une application ou un site web. Il va vérifier que l’ajout de fonctionnalités ou tout autres modifications n’auront pas impacté les fonctionnalités codées en amont.
Prenons un exemple de test de non régression sur une application mobile qui commercialise des chaussures. Dans la rubrique “Chaussures homme”, il y a plusieurs filtres : couleur, taille, type, etc. On souhaite rajouter un filtre “matière”. Il faut alors vérifier que le nouveau filtre fonctionne, que les résultats attendus s’affichent correctement et le plus important, que les autres filtres n’ont pas été endommagés et que ces derniers fonctionnent simultanément.
Ce test de non régression a révélé deux éléments :
Les TNR sont effectués lors des phases de recettage en supplément d’autres types de tests. On peut alors les appliquer à différents stades du développement :
Le TNR est définie comme l’étape ultime du recettage informatique. Le plus souvent, on n’exécute pas de test sur une seule fonctionnalité mais sur un ensemble de fonctionnalités correspondant à un scénario utilisateur pour contrôler que toutes les actions fonctionnent correctement. On vérifie également certaines fonctionnalités dîtes “primaires” afin d’assurer que la partie préalablement testée est toujours opérationnelle après la modification du code.
Ces tests de non régression peuvent se faire de deux façons :
Manuellement, ce sont les équipes de développeurs ainsi que le product owner qui vont appliquer ces tests. L’automatisation des tests de non régression est assez fréquente.
Il y a certaines étapes à suivre avant de lancer le TNR :
Il faut faire attention au fait que des modifications peuvent également apparaître à la suite de modifications telles que des mises à jour logiciel le type de navigateur utilisé. Il est donc très important de tester les scénarios sur différents navigateurs pour être certain d’obtenir de bons résultats sur chacun d’eux. Plus le projet évolue, plus il y aura d’éléments à contrôler et donc de tests à lancer.
C’est alors une période de temps supplémentaire qu’il ne faut pas oublier d’intégrer dans la gestion de projet.
Vous avez vu précédemment que les tests de non régression peuvent se faire manuellement ou alors ils peuvent être automatisés. L’automatisation de ces tests est assez fréquente car elle apporte un gain de temps considérable. En effet, selon la difficulté et la longueur du projet, le nombre de tests à effectuer sera différent. De plus, plus le projet évolue, plus il y aura d’éléments à contrôler.
Il existe de nombreux avantages à automatiser ces tests :
Des logiciels d’automatisation de tests existent et vont effectuer des tests après chaque modification. Ces logiciels vont simuler des interactions utilisateurs et générer des résultats de tests. Ces résultats seront ensuite analysés par l’équipe de développeurs. Voici une liste non exhaustive de logiciels disponibles :