Test de non régression

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

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

 

Une régression peut avoir lieu dès qu’on modifie un code déjà existant. Le code ayant déjà été testé, il est très important d’effectuer de nouveaux contrôles après chaque modification pour s’assurer qu’il n’y a eu aucune répercussion négative sur l’application ou le site web. Autrement dit, on surveille que la partie non modifiée est restée intacte. Il sera donc possible de passer à la prochaine étape de développement du projet après chaque test de non régression. 

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. 

 

Les étapes d'un test de non régression

Ce test de non régression a révélé deux éléments : 

  • Le filtre “Matière” a bien été pris en compte dans l’application 
  • L’ajout d’une nouvelle fonctionnalité a engendré des bugs au niveau du codage des fonctionnalités “Filtre Couleur” et “Filtre Type”.

 

A quelle étape du processus de développement exécuter un TNR ? 

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 : 

  • a la fin du codage d’une fonctionnalité qui pourrait avoir un impact sur des fonctionnalités “primaires”. 
  • a la fin de chaque sprint pour vérifier les modifications apportées au sprint précédent
  • a la fin du projet, avant la livraison 

 

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. 

 

Qui effectue les tests de non régression ? 

Ces tests de non régression peuvent se faire de deux façons : 

  • Manuellement 
  • Automatiquement

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. 

 

Comment faire un bon test de non régression ?

Il y a certaines étapes à suivre avant de lancer le TNR

  • Déterminer un périmètre de test
  • Définir le point de départ et d’arrivée 
  • Reconstituer le cheminement à suivre. Par exemple : j’arrive sur la page d’accueil, je veux me connecter, je renseigne mes identifiants, je sélectionne mot de passe oublié, j’obtiens un lien pour réinitialiser mon mot de passe, etc. En résumé, un scénario va être mis en place. 
  • Effectuer le test

 

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. 

 

Les avantages à automatiser les tests de non régression 

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 : 

  • Gain de productivité. Le fait d’automatiser ces tests qui sont assez longs et complexes permet un gain de temps considérable. 
  • Possibilité d’exécuter plus de scénarios utilisateurs et anticiper un maximum d’erreurs
  • Diminution de la durée de développement du projet grâce à la rapidité des tests effectués ce qui va permettre d’identifier et résoudre les erreurs plus rapidement.

 

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 : 

  • Selenium
  • Appium
  • Testcomplete
  • TestDrive