Qu'est-ce que le test de module ? Définition, exemples
⚡ Résumé intelligent
Les tests modulaires vérifient les sous-programmes, les sous-routines, les classes et les procédures individuellement plutôt que le programme assemblé, de sorte que les défauts apparaissent à l'intérieur d'un petit bloc de code bien compris où ils restent faciles et peu coûteux à localiser et à réparer.
Qu’est-ce que le test de modules ?
Tests de modules Le test modulaire est un type de test logiciel qui vérifie les sous-programmes, sous-routines, classes ou procédures individuels d'un programme. Au lieu de tester l'ensemble du logiciel en une seule fois, le test modulaire recommande de tester les plus petits éléments constitutifs du programme.
Les tests de modules sont principalement axés sur le fonctionnement en boîte blanche. Leur objectif n'est pas de démontrer le bon fonctionnement du module, mais de mettre en évidence la présence d'une erreur. Cette inversion est importante : un test qui ne détecte aucune erreur n'a confirmé que très peu de choses, tandis qu'un test qui révèle un défaut a rempli sa fonction.
Les tests au niveau des modules permettent également d'introduire du parallélisme dans le processus de test, car ils offrent la possibilité de tester plusieurs modules simultanément au lieu d'attendre une compilation complète.
Pourquoi faire des tests de modules
Les tests modulaires sont recommandés car ils modifient l'aspect économique de la détection des défauts.
- La probabilité d'identifier des erreurs ou des bogues dans des portions plus petites d'un programme augmente.
- Plusieurs modules peuvent être testés simultanément, et cette approche prend donc en charge les tests parallèles.
- La complexité des tests est facile à gérer, car chaque module est analysé individuellement.
- Un défaut a été constaté à l'intérieur d'un module. traccapable de se limiter à une petite quantité de code, le temps de débogage diminue considérablement.
Comment faire des tests de modules ?
La conception d'un cas de test Il s'agit d'une partie importante des tests de modules. Lors de la conception des cas de test pour un module, un testeur doit prendre en considération deux éléments.
- Spécification du module
- Le code source du module
Analysez la logique du module en utilisant une ou plusieurs des méthodes suivantes : boîte blanche méthodes, puis compléter ces cas de test en appliquant boîte noire méthodes à la spécification du module. Les valeurs réalistes sont aussi importantes que les chemins choisis, alors préparez-vous données de test en même temps que les dossiers, et non après.
Une fois les cas de test conçus, l'étape suivante consiste à combiner les modules à tester. La méthode utilisée est soit une incrémental non incrémental méthode.
- Méthode non incrémentale — Tous les modules sont testés indépendamment. Le programme combine d'abord tous les modules, puis teste l'ensemble du programme.
- Méthode incrémentale Chaque module est d'abord testé, puis ajouté progressivement à la collection de modules testés. Un nouveau test est effectué par étapes.
- Dans le cadre des tests incrémentaux, il existe deux approches : de haut en bas et bas en haut test.
- Pour exécuter le module avec les données sélectionnées, un pilote est nécessaire pour fournir les données de test, surveiller l'exécution et capturer les résultats.
Le choix entre les deux méthodes implique un compromis entre l'effort de mise en place et la facilité de diagnostic.
| Aspect | Méthode incrémentale | Méthode non incrémentale |
| Combinaison | Un module à la fois, ajouté à une collection testée | Tous les modules combinés, puis testés ensemble |
| Échafaudage nécessaire | Plus de conducteurs et de souches, écrits progressivement | Moins de doubles de test, puisque les modules réels sont présents. |
| De défaut d'isolement | Solide — un point de défaillance au niveau du module qui vient d'être ajouté | Faible — une panne peut avoir n'importe quelle origine. |
| Meilleur adapté à | Constructions de grande envergure avec de nombreux modules interagissant | Programmes de petite taille avec peu de modules et un faible couplage |
Pilotes et stubs dans les tests de modules
Le pilote mentionné ci-dessus constitue la moitié d'une paire. Étant donné qu'un module testé se situe rarement en haut ou en bas de la chaîne d'appels, les testeurs le remplacent par du code factice s'il manque de part et d'autre.
- Chauffeur Ce module remplace le module appelant situé au-dessus de celui testé. Il fournit les données de test, invoque le module, surveille son exécution et capture les résultats. Les tests ascendants dépendent des pilotes, car les modules inférieurs sont prêts avant les modules supérieurs.
- Talon — remplace un module appelé situé en dessous de celui testé. Il accepte l'appel et renvoie une réponse fixe et connue afin que le module testé puisse terminer son exécution. Les tests descendants reposent sur des stubs, car les modules de niveau supérieur sont prêts en premier.
Un cas concret rend l'association tangible. Si un module de calcul de paiement est finalisé alors que l'écran de paiement qui l'appelle ne l'est pas, un pilote lui fournit un ensemble de totaux de commande et enregistre le résultat. Si le service de consultation des taxes appelé par le module est également incomplet, un stub renvoie un taux de taxe fixe afin que le calcul puisse tout de même s'exécuter. Aucun de ces éléments de test n'est livré ; ils sont tous deux supprimés une fois les modules définitifs arrivés, ce qui explique pourquoi la mauvaise compréhension des doubles de test est mentionnée plus loin comme un problème récurrent.
Exemples de conseils pour les tests de modules
Voici quelques conseils à prendre en compte avant d'effectuer des tests de modules.
- RevConsultez les cas de test avant de les utiliser.
- Éviter toute confusion quant à l'origine des divergences.
- Utilisez des outils de test automatisés.
- Examinez les variables qui devraient rester inchangées.
- Échanger les modules entre les testeurs pour éviter les autotests.
- Réutilisez les cas de test.
Le cinquième conseil est plus important qu'il n'y paraît. Un développeur qui ne teste que le module qu'il vient d'écrire reproduit les mêmes hypothèses qui ont engendré le défaut ; par conséquent, faire tourner les modules entre les développeurs est l'un des moyens les plus économiques d'améliorer la qualité.
Tests unitaires vs tests de modules
Ces deux termes sont utilisés indifféremment dans de nombreuses équipes, mais l'auteur et la portée diffèrent.
| Test des modules | Tests unitaires |
| Les tests de module sont une collection de tests écrits par un testeur après qu'un code ait été écrit par un développeur. | Tests unitaires sont une collection de tests écrits par un développeur au cours du processus de développement logiciel |
| Les tests de modules peuvent impliquer la combinaison de tests unitaires | Les tests unitaires peuvent tester les unités isolément. |
Tests de modules vs tests de composants vs tests d'intégration
Les tests de modules côtoient deux niveaux voisins avec lesquels il est facile de les confondre. Le tableau les distingue selon l'objet des tests et la personne qui les effectue habituellement.
| Aspect | Tests de modules | Test de composants | Test d'intégration |
| Sous test | Un sous-programme, une classe ou une procédure | Un composant autonome avec ses dépendances immédiates | Les interfaces entre les modules combinés |
| Propriétaire habituel | Testeur, après l'écriture du code | Testeur | testeur d'intégration |
| Andaimes | Conducteurs et souches | Stubs pour les dépendances externes | De moins en moins de doubles en test |
| Défaut révélé | Erreur logique à l'intérieur du module | Erreur de comportement dans le composant | Erreur d'interface et de transmission de données |
Dans l'usage quotidien test de composants Les tests de modules et les tests de modules sont fréquemment considérés comme une seule et même activité, tandis que test d'intégration Cela ne commence qu'une fois que chaque module a été validé individuellement.
Défis liés aux tests de modules
Voici les défis que les équipes rencontrent le plus souvent lors de l'introduction des tests modulaires.
- Les tests non incrémentiels nécessitent plus de travail — tout combiner au préalable signifie qu'une seule défaillance peut obliger les testeurs à reprendre l'intégralité du programme.
- Test d'incompréhension double — un stub qui renvoie une valeur irréaliste produit une exécution réussie qui ne prouve rien.
- Les tests de débogage sont souvent — Le code d'échafaudage comporte ses propres défauts, et le temps passé à corriger un pilote est du temps non consacré au test du module.
- Besoin de comprendre le code — L’orientation « boîte blanche » signifie qu’un testeur qui ne sait pas lire le module ne peut pas concevoir de cas pertinents pour celui-ci.
