Tout savoir sur les tests de non régression (TNR)

Test non régression - Guide complet

Les logiciels ont atteint un point où ils sont devenus de plus en plus complexes et coûteux.  La mise en place de certaines stratégies de développement, de frameworks en open source et des services basés sur le cloud était censée réduire le temps de développement et son coût.
Paradoxalement, cela débouche parfois sur des résultats opposés. La probabilité que quelque chose se passe mal augmente à mesure que l’on ajoute des éléments au processus.

Les tests de non régression (TNR) permettent aux ingénieurs QA de garantir que le système ne tombe pas en panne lors d’une mise à jour logicielle, même si celle-ci est mineure.

Qu’est-ce qu’un test de régression (test de non régression ou encore TNR) ?

C’est quoi le test de non régression ? L’origine du mot “régression” signifie “retourner à un stade antérieur de quelque chose“. Le TNR est donc une pratique de test logiciel qui permet de vérifier qu’une application fonctionne toujours comme prévu après toute modification, mise à jour ou encore amélioration du code.

Les modifications apportées au code peuvent entraîner des problèmes, des anomalies ou des dysfonctionnements. Les tests de non régression ont pour objectif de limiter ces risques, afin que le code préalablement conçu et testé reste opérationnel après de nouvelles modifications.

En principe, une application passe par plusieurs tests avant que les modifications ne soient mises en place dans la principale version de développement. Le test de non régression est la dernière étape, car il permet de vérifier le comportement du produit dans son ensemble.

Quand faut-il appliquer les tests de non régression ?

Généralement, les TNR sont utilisés dans les cas suivants :

  • Une nouvelle requête est ajoutée à une fonctionnalité existante
  • Des corrections sont apportées au code pour résoudre des défauts
  • Ajout d’une nouvelle option ou fonctionnalité
  • Optimisation du code source afin d’améliorer les performances
  • Des mises à jour sont effectuées
  • Modifications de la structure

Quels sont les différents types de tests de non régression (TNR) ?

Les tests de non régression se présentent sous plusieurs formes. Comment choisir le TNR qui vous convient le mieux ? Réfléchissez au processus de développement de votre logiciel (le développement et le test des logiciels sont étroitement liés) et aux mises à jour que vous envisagez d’introduire.

Ci-dessous, vous trouverez un aperçu des techniques les plus courantes de test de non régression.

Test de non régression correctif

Le test de correction des performances est apprécié pour sa simplicité, car il nécessite moins d’efforts. Il réutilise les tests existants, dans la mesure où aucun changement majeur n’a été apporté aux fonctionnalités du produit (pas de changement du scénario de test).

Test de non régression complet

Comme son nom l’indique, il s’agit d’une procédure de test relativement complexe qui nécessite de tester à nouveau tous les éléments du produit à partir de zéro. Ce test contrôle de manière rétrospective toutes les petites modifications qui ont été apportées depuis le début. Cette approche est parfois utilisée lorsque l’on soupçonne que quelque chose a été oublié (ou n’a pas été fait correctement) au cours des phases de test réalisées précédemment. Dans de telles circonstances, il peut être plus efficace de tout retester depuis le début plutôt que de tenter d’identifier ce qui n’a pas fonctionné.

Ce n’est pas une méthode très courante, compte tenu des problèmes de budget, mais elle vous permet d’être plus rassuré quant à la qualité de votre projet.

Test de non régression sélective

Ce type de test peut être vu comme un juste milieu entre le test de régression correctif et le test de régression complet. Il n’est pas aussi simple que le premier, mais pas aussi complet que le second. Le test de régression sélectif permet de choisir certains tests dans un ensemble pour inspecter les parties du code qui ont été affectées.

Test de non régression progressive

Quand les tests établis ne sont plus utiles, de nouveaux tests sont créés. C’est souvent le cas lorsque les caractéristiques du produit sont modifiées, de nouveaux scénarios de test sont alors créés pour répondre à ces changements.

Test de non régression partielle

Vous pouvez voir le développement de logiciels comme la construction d’une maison LEGO : vous créez d’abord des blocs séparés, puis vous les combinez, et vous obtenez une maison entière.

Vos différents modules peuvent être en cours de développement depuis un certain temps. Lorsque vous êtes sur le point de les fusionner avec une version principale du code, des tests partiels sont effectués, en se basant essentiellement sur les scénarios de test existants.

Test de non régression unitaire

Il s’agit d’une approche directe qui vise à tester le code en tant que bloc individuel, sans tenir compte de toutes les contraintes, intégrations et autres éléments qui peuvent s’y rattacher.

Comment réaliser un test de non régression ?

Comment réaliser un test de non régression ?

Les méthodes de TNR peuvent varier d’une organisation à l’autre. Cependant, il y a quelques étapes de référence :

  • Détectez les modifications du code source

Détectez la modification et son optimisation dans le code source ; puis identifiez les composants ou modules qui ont été modifiés, ainsi que leurs impacts sur les fonctionnalités existantes.

  • Classez par ordre de priorité les changements et les besoins du produit

Il convient ensuite de hiérarchiser ces modifications ainsi que les besoins du produit afin de structurer le processus de test avec les cas de test et les outils de test appropriés. 

  • Déterminez le point de départ 

Assurez-vous que votre application respecte les critères prédéfinis de conformité avant de procéder à l’exécution du test de régression.

  • Déterminez le point de sortie 

Déterminez un point de sortie pour les critères de qualification requis ou les critères minimaux fixés à l’étape 3.

  • Programmez des tests

Pour finir, identifiez tous les éléments des tests et planifiez le moment voulu pour l’exécution

Comment améliorer la qualité des TNR ?

Pour améliorer la qualité des tests de non régression (TNR), il s’agira d’utiliser des outils adaptés et de mettre en place les meilleures pratiques. Nous allons essayer de vous éclairer sur ces deux aspects.

Utiliser des outils d’automatisation pour exécuter les TNR

Après avoir défini le périmètre des TNR, il faut les exécuter. Sachant que cela peut être chronophage, il faut définir lesquels automatiser et avec quels outils. C’est le rôle de la stratégie d’automatisation des tests. Il faut prendre en compte la durée d’exécution manuel, la fréquence de réalisation des tests et leur criticité métier.

L’automatisation est la solution idéale pour les tests de non régression. Découvrez les outils les plus utilisés pour réaliser ces tests (TNR) :

  • Selenium

C’est un outil open source, il offre un large panel d’avantages, notamment des ressources, des frameworks open-source et la possibilité de prendre en charge C#, Java, Ruby et Python. Il est adapté au test IHM WEB. L’extension Appium permet de traiter les tests d’application mobile.

  • Testcomplete

Outil payant, c’est une option intéressante pour les tests effectués en parallèle : Testcomplete utilise des builds automatisés, de sorte qu’aucune intervention manuelle n’est nécessaire. Il est idéal pour le Web, les applications mobiles et les applications de bureau.

  • Robotframework

Le Robot Framework est un framework de test automatique en python pour concevoir et exécuter des tests de validation et donc des test de non régression.

  • Cypress

C’est un outil open source permettant de mettre facilement en place ces tests d’applications utilisant React ou des frameworks JavaScript comme Vue, Angular, Elm et bien d’autres.

  • TestDrive

Cet outil génial est axé sur la rapidité et la simplicité : il est flexible, facile à déployer et rapide. Il offre un niveau élevé d’automatisation, mais fournit également quelques possibilités de tests manuels.

  • TimeshiftX

Cette application est littéralement votre machine à remonter le temps, elle vous permet de faire des tests dans le temps. Vous pouvez inspecter et tester toutes les modifications de l’application de façon rétrospective.

Meilleures pratiques pour les tests de non régression

Pour se lancer dans les TNR, il faut non seulement utiliser les bons outils, mais aussi un peu de pratique. Nous vous présentons donc ce que nous avons appris de nos propres expériences :

  • Adoptez une nouvelle approche.

Assurez-vous de maintenir à jour vos scénarios de test afin qu’ils reflètent l’état actuel de votre application. Cela inclut également les nouvelles fonctionnalités ajoutées et les évolutions des caractéristiques.
Réaliser des tests pour valider des éléments de produit qui n’existent plus n’est pas du tout optimisé !

  • Sachez ce qui marche pour vous.

Les tests qui vous donnent des résultats cohérents  sur une période régulière, assurez-vous de les maintenir en activité de façon régulière.

  • Définissez vos priorités.

Il y a tellement de choses qui peuvent être testées en ce qui concerne votre stratégie de test. Les éléments à forte utilisation nécessitent des tests plus poussés, car ils intègrent des fonctionnalités essentielles au fonctionnement du système.

  • Ne réalisez pas de tests de performance complets, sauf si cela est absolument indispensable.

Ne mettez pas en place un nouveau test à chaque fois qu’une nouvelle version est déployée : les changements mineurs ne requièrent généralement pas de tests de performance complets.

Questions fréquemment posées sur les tests de non régression (FAQ)

Pourquoi les tests de régression sont-ils nécessaires ?

Les tests de régression sont essentiels car ils permettent de garantir que les modifications apportées au code actuel n’ont pas de répercussions négatives sur les fonctionnalités de l’application.

Quelles sont les erreurs les plus courantes lors de la réalisation de tests de régression ?

Parmi les erreurs les plus courantes commises lors de la réalisation de tests de non régression, on peut citer le fait de ne pas avoir défini un plan de test de non régression, de ne pas s’en tenir à une seule approche de TNR et de ne pas opter pour l’automatisation des tests.

Quelle est la différence entre les tests fonctionnels et les tests de régression ?

Les tests fonctionnels sont effectués pour garantir que toutes les fonctionnalités du logiciel ou de l’application soumis au test continuent de fonctionner comme prévu et sont conformes aux besoins exprimés. Tandis que des tests de régression sont effectués une fois qu’une version est publiée pour vérifier que la nouvelle fonctionnalité ne provoque aucun problème sur la fonctionnalité actuelle du logiciel.

Conclusion

Pour que vos tests de régression soient efficaces, vous devez respecter trois règles. Premièrement, vous devez savoir quand utiliser le bon type de test de non régression. Deuxièmement, profitez de la puissance de l’automatisation des tests. Et enfin, adoptez les meilleures pratiques de TNR mentionnées ci-dessus !

Vous aimeriez être accompagné pour mettre en place cette stratégie de test sur votre projet ? Contactez-nous, en tant que pure player du Test logiciel, All4test vous fera gagner un temps précieux.

Contactez-nous

source : https://u-tor.com/topic/types-of-regression-testing 

Par |2022-05-04T18:33:01+02:00mai 3rd, 2022|Blog du testeur|
5 1 voter
Évaluation de l'article
S’abonner
Notifier de
0 Commentaires
Inline Feedbacks
View all comments