Tests de régression vs tests fonctionnels

Définitions

La première chose à faire lorsque l’on veut comparer des termes c’est de connaitre leur définitions.

Les tests de régression sont les tests exécutés sur un programme préalablement testé mais qui a subit une ou plusieurs modifications (définition ISTQB).

Les tests fonctionnels quant à eux sont l’ensemble des tests permettant de s’assurer que le logiciel couvre l’ensemble des besoins qu’il doit assurer (complétude), que ces résultats sont corrects (exactitude) et qu’il est possible de l’utiliser (aptitude à l’usage). (voir mon article sur les tests fonctionnels selon la norme ISO-25 010)

Les définitions sont bien différentes et permettent de définir différents buts à ces tests.

Buts des tests de régression

En lisant et comprenant les définition on s’aperçoit que le but des tests de régression est de vérifier que la modification d’un logiciel n’a pas engendré d’effets de bord indésirables, que cette (ou ces) modifications n’ont pas introduit des régressions majeurs dans le logiciels (je teste s’il y a des régressions sur es tests).

Les tests de régression peuvent donc viser autant du fonctionnel que du non fonctionnel. En effet, si le temps de réponse d’un logiciel est fortement dégradé (ex: 2 secondes de temps de réponse au lieu de 0,2 seconde) il y a alors une régression importante. En fait, il peut y avoir des régressions, et donc des tests de régression, sur l’ensemble des familles de tests définies dans la norme ISO-25010 qui définit 8 axes de qualité pour mesurer la qualité d’une application.

Plus d’informations sur le rôle des campagnes de test de régression dans cet article.

Buts des tests fonctionnels

Le but des tests fonctionnel est, comme son nom l’indique, de vérifier que le logiciel fait tout ce qu’on veut qu’il fasse et qu’il le fait correctement. Concrètement, pour une application mail, les fonctions minimales sont la visualisation de la liste des mails dans les différents dossiers, la visualisation des mails et des PJ, l’écriture des mails, l’envoi des mails (auxquelles ont peu ajouter de nombreuses autres comme la gestion des option, de plusieurs messageries, des notifications…).

Ces tests peuvent (et doivent) donc être fait lors de la régression mais aussi lors de la validation.

Il y a donc des tests fonctionnels de régression et des tests fonctionnels de validations qui ne feront jamais parti de la régression. Cela donne ce schéma:

Analogie comparative

En cuisine on pourrait l’imaginer comme cela:

Si les tests fonctionnels (une famille de test) sont les légumes, et en allant plus loin, les tests de performances la viande, les tests d’adaptabilité les épices…

Les tests de régressions sont un plat dans lequel on utilise différents ingrédients (et donc familles de test). Par exemple, on n’utilisera jamais tous les légumes disponibles pour un pot au feu. On y ajoutera par contre de la viande et des épices dans sa préparation. Arriver à faire un bon pot au feu demande donc du doigté avec un savant mélange des différents ingrédients. Il en va de même avec les tests de régressions!

Conclusion

Les tests de régression et les tests fonctionnels sont 2 notions totalement distinctes et qui ont des buts différents.

Si je devais résumer cet article en une image cela serait celle-ci:

Pensez à laisser un commentaire si vous souhaitez d’autres articles de ce type permettant de différencier différentes notions du test.

N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances

Pensez à rejoindre le groupe « Le métier du test » si vous souhaitez échanger sur le test

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

N’hésitez pas à faire vos propres retours d’expérience en commentaire.

Publié par

4 commentaires sur « Tests de régression vs tests fonctionnels »

    1. Bonjour Bernard,
      il y a peut être un moyen de les télécharger mais je ne le connais pas :s
      Un copier/coller reste possible mais il faut le faire manuellement.
      Dans tous les cas, la réutilisation des articles de la taverne est encouragée, il faut juste penser à citer la source.

      J'aime

  1. Bonjour Marc,
    Je découvre le site. Très intéressant pour moi qui ne suis pas du domaine du test. Les choses paraissent naturelles mais c’est évidemment plus clair quand elles sont énoncées.
    Dans le cadre de test avec une machine d’intégration continue que nous mettons en place, nous avons prévu d’exécuter la totalité des tests (fonctionnels, structurels,…) dans la nuit. Et ceci toutes les nuits pour suivre les évolutions du projet.
    La notion de test de régression n’existe plus vraiment. Dans ce cas là les 2 cercles de votre conclusion sont confondus.
    Doit on garder cette notion de test de régression?

    Aimé par 1 personne

    1. Bonjour,
      tout d’abord merci pour ce retour.
      Par rapport à la question, cela va dépendre du contexte!
      Je tiens néanmoins à insister sur le fait qu’exécuter la totalité des tests peut devenir très coûteux. De même, certains tests peuvent être faits manuellement. Sur un projet récent, les seuls tests « scriptés » étaient les tests de régression mais nous faisions des phases de tests exploratoires pour valider les fonctionnalités.
      Enfin il me semble pertinent (dans la majorité des cas) de garder la notion de régression, les tests exécutés étant là pour vérifier que ce qui fonctionnait avant fonctionne toujours

      J'aime

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s