Test de régression

{{#ifeq:||Un article de Ziki, l'encyclopédie libre.|Une page de Ziki, l'encyclopédie libre.}}
Révision datée du 22 avril 2023 à 20:20 par >Limfjord69 (Wikification, reformulations)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Modèle:SourcesModèle:Voir homonymes

Un test de régression, ou test de non-régression<ref>Modèle:Ouvrage</ref>, est un test ayant pour but de détecter les régressions introduites dans un logiciel après un changement effectué dans celui-ci.

Une régression est un défaut qui se produit après une modification d'un logiciel lorsque des fonctionnalités existantes ne sont plus réalisées aussi bien qu'avant. Les régressions peuvent apparaitre à l'occasion de n'importe quel changement établi dans un logiciel : corrections de bogues, ajout de nouvelles fonctionnalités, modification de fonctionnalités existantes ou modification d'un composant externe au logiciel lui-même (nouvelle version du système, de l'interface graphique, d'un compilateur ou d'une bibliothèque tierce qui interviennent dans son fonctionnement). Il est donc intéressant d'être en mesure de repérer les régressions, par le biais de tests automatisés ou non, avant la mise à disposition de la nouvelle version du logiciel auprès des utilisateurs.

Définition

Un test de régression est un ensemble de tests d’un programme préalablement testé, après une modification, pour s’assurer que des défauts n’ont pas été introduits ou découverts dans des parties non modifiées du logiciel. Ces tests sont effectués quand le logiciel ou son environnement est modifié<ref>CFTL (Comité Français des Tests Logiciels) + ISTQB.</ref>,<ref>{{#invoke:Langue|indicationDeLangue}} Standard IEEE 610.12:1990.</ref>.

Modèle:Référence souhaitée.

Intérêt

L'intérêt principal de ces tests est de limiter les anomalies relevées lors de la recette de l'application, voire, ce qui est pire, une fois l'application mise à disposition des utilisateurs. Ils viennent compléter les tests unitaires et les tests d'intégration en amont des tests de recette.

Difficultés

Les tests de régression sont longs à exécuter

Même si le changement effectué sur le système est mineur, il est prudent de couvrir le plus de cas possibles, afin d'assurer que le reste du logiciel fonctionne toujours de la même manière. Les tests de régression représentent de nombreux scénarios et peuvent donc être fastidieux à rejouer<ref>« Test de régression | Visual Studio .NET 2003 », Modèle:Langue.</ref>.

Aucun test ne garantit l'absence de défauts

Comme l'a rappelé Edsger Dijkstra, Modèle:Citation bilingue bloc

Solutions

Automatisation des tests

Des programmes spécialisés permettent d'automatiser ces tests. Nommés robots de tests, ils simulent généralement l'activité d'un utilisateur en rejouant un scénario prédéfini, parfois enregistré depuis des sessions réelles, et contrôlent que le résultat nouvellement obtenu est conforme au résultat de la version antérieure. Parfois, ce programme est directement inclus dans le logiciel lui-même, comme Simpletests pour Drupal depuis sa version 7Modèle:Référence nécessaire.

Sélection réfléchie des cas de test à exécuter

Automatiser les tests de régression n’est pas toujours possible, ou pas toujours économiquement valable au regard des coûts de maintenance des tests automatisés. Une autre possibilité consiste à limiter le nombre de tests à réaliser à la suite d'une modification :

  • soit en se basant sur des statistiques ;
  • soit en limitant les tests à certaines catégories de fonctionnalités, en fonction de leur criticité, ou de leur interaction probable avec les fonctionnalités testées ;
  • soit en définissant une stratégie de test de régression basée sur les risques.

L'enjeu est donc d’identifier les tests pertinents à jouer manuellement pour minimiser l'effort de test tout en maximisant la couverture des risques de régressions. Cependant pour éviter de laisser passer des régressions il faut établir sa stratégie sur des faits.

Modèle:Référence souhaitée

Même si les tests de non-régression ne sont pas une nouveauté, Modèle:Référence souhaitée.

Notes et références

Modèle:Références

Voir aussi

Articles connexes

Modèle:Palette

Modèle:Portail