Qu'est-ce que le harnais de test ? (Exemples)
โก Rรฉsumรฉ intelligent
Le banc d'essai de tests logiciels rassemble les stubs, les pilotes, les donnรฉes de test et les outils d'exรฉcution afin que les รฉquipes valident les modules avant mรชme que chaque dรฉpendance n'existe, transformant ainsi les cycles de test bloquรฉs en une vรฉrification automatisรฉe et reproductible qui fournit des rรฉsultats sans intervention manuelle.

Harnais de test dans les tests de logiciels
Harnais de test dans les tests de logiciels est une collection de stubs, de pilotes et d'autres outils de support nรฉcessaires pour automatiser l'exรฉcution des tests. Test Harness exรฉcute des tests ร lโaide dโune bibliothรจque de tests et gรฉnรจre des rapports de test. Le harnais de test contient toutes les informations nรฉcessaires pour compiler et exรฉcuter un test comme les cas de test, le port de dรฉploiement cible (TDP), le fichier source testรฉ, les stubs, etc.
En rรฉsumรฉ, un harnais isole le composant ร vรฉrifier dans un environnement contrรดlรฉ. Les modules voisins manquants sont remplacรฉs par de petits programmes factices, les entrรฉes proviennent d'un ensemble de donnรฉes fixe et chaque rรฉsultat est consignรฉ dans un journal plutรดt que lu ร l'รฉcran. Les sections suivantes expliquent pourquoi les รฉquipes en crรฉent un, de quoi il est composรฉ, comment il fonctionne et oรน il s'intรจgre.
Pourquoi utiliser le harnais de test ?
Un dispositif permet d'รฉliminer l'attente du cycle de test. Parce qu'il simule ce qui n'est pas encore prรชt, un test logiciel L'รฉquipe peut commencer ร vรฉrifier le comportement dรจs le premier sprint, et non aprรจs l'intรฉgration finale. Le schรฉma ci-dessous illustre l'emplacement du dispositif d'interface entre les scripts de test et l'application testรฉe.
- Automatisez le processus de test
- Exรฉcuter des suites de tests de cas de test
- Gรฉnรฉrer les rapports de tests associรฉs
- Prise en charge du dรฉbogage
- Pour enregistrer les rรฉsultats des tests pour chacun des tests
- Aide les dรฉveloppeurs ร mesurer la couverture du code au niveau du code
- Augmenter la productivitรฉ du systรจme grรขce ร l'automatisation
- Amรฉliorer la qualitรฉ des composants logiciels et des applications
- Pour gรฉrer la condition complexe que les testeurs ont du mal ร simuler
Ces gains sont particuliรจrement importants lors de cycles de publication courts. Lorsque le code est dรฉployรฉ plusieurs fois par semaine, un dรฉfaut qui persiste jusqu'ร la phase d'intรฉgration coรปte beaucoup plus cher ร corriger. tracIl y a plus de chances qu'un mot soit retenu par un moignon le jour mรชme de sa rรฉdaction. Cependant, cette rรฉcompense n'arrive que lorsque le harnais est assemblรฉ avec les piรจces adรฉquates.
Composants clรฉs d'un banc d'essai
Un faisceau de cรขbles n'est pas un programme unique, mais un assemblage de piรจces, chacune รฉliminant un obstacle qui empรชcherait autrement le bon dรฉroulement d'un test sans surveillance.
- Scripts de test : Instructions automatisรฉes indiquant les รฉtapes ร suivre et le rรฉsultat attendu, rรฉdigรฉes conformรฉment aux script de test conventions.
- Moteur d'exรฉcution des tests : Le processus d'exรฉcution qui lit les scripts dans l'ordre, rรฉsout les dรฉpendances et dรฉclenche une exรฉcution sรฉquentielle ou parallรจle.
- Rรฉfรฉrentiel de donnรฉes de test : Les valeurs d'entrรฉe sont stockรฉes en dehors du script, au format CSV, JSON, XML ou dans une base de donnรฉes initialisรฉe, souvent remplie par outils de gรฉnรฉration de donnรฉes de test.
- Pilotes: Modules d'appel factices qui invoquent le composant testรฉ lorsque la couche supรฉrieure rรฉelle, telle qu'une interface utilisateur, n'est pas terminรฉe.
- Bouts: Modules factices renvoyant des rรฉponses prรฉdรฉfinies, par exemple un service de paiement rรฉpondant ยซ Paiement rรฉussi ยป sans contacter de banque.
- Validateur de sortie : Logique d'assertion qui compare la sortie rรฉelle ร la valeur attendue et indique si chaque cas est rรฉussi ou non.
- Couche de journalisation et de rapport : Horodatage, captures d'รฉcran, sortie de la console et un rรฉsumรฉ de l'exรฉcution qui documentent chaque รฉchec tracpossible par la suite.
Retirez une seule piรจce et le harnais cesse d'รชtre automatique, car il faut alors fournir quelque chose manuellement ร chaque utilisation.
Comment fonctionne un banc d'essai ?
Un harnais rรฉpรจte la mรชme boucle ร chaque exรฉcution. Connaรฎtre cette boucle vous indique prรฉcisรฉment oรน se situe votre propre tests d'automatisation Les ressources se branchent, et quelle รฉtape รฉchoue lorsqu'une exรฉcution devient rouge.
- Prรฉparez lโenvironnement : Le faisceau gรจre la configuration de l'environnement, ouvre les connexions et charge les dispositifs, de sorte que chaque exรฉcution dรฉmarre ร partir du mรชme รฉtat connu.
- Charger les scripts de test : Les scripts, les paramรจtres et les rรฉsultats attendus sont lus depuis le dรฉpรดt. Aucune donnรฉe n'est saisie lors de l'exรฉcution, ce qui garantit que deux exรฉcutions sont identiques.
- Remplacez les modules manquants : Les conducteurs reprรฉsentent des appelants qui n'existent pas encore, et les รฉbauches reprรฉsentent des services inachevรฉs, instables ou coรปteux ร appeler.
- Lancez l'application testรฉe : Le moteur d'exรฉcution dรฉclenche le flux de travail dรฉcrit par le script, qu'il s'agisse d'un appel de mรฉthode ou d'un API requรชte ou interaction avec un navigateur.
- Capturez la sortie rรฉelle : Les valeurs de retour, les charges utiles des rรฉponses, les lignes de la base de donnรฉes, les lignes de journalisation et l'รฉtat de l'รฉcran sont tous enregistrรฉs au fur et ร mesure de leur production.
- Comparer aux rรฉsultats attendus : Le validateur de sortie vรฉrifie chaque valeur capturรฉe. Toute diffรฉrence est considรฉrรฉe comme un รฉchec et enregistre la valeur attendue et la valeur observรฉe.
- Consignez et faites un rapport : Le harnais enregistre un horodatage trace de l'exรฉcution et gรฉnรจre un rapport de rรฉussite/รฉchec qu'un dรฉveloppeur peut lire sans avoir ร tout rรฉexรฉcuter.
- Dรฉmolir: Les donnรฉes temporaires, les connexions et l'รฉtat du stub sont effacรฉs afin que le cas suivant ne puisse pas hรฉriter de rรฉsidus de celui-ci.
Astuce : Mettez ร jour vos stubs dรจs que le module rรฉel change. Un stub qui rรฉpond encore avec le format du trimestre prรฉcรฉdent indiquera un fonctionnement normal alors que l'intรฉgration en production est dรฉjร dรฉfaillante.
Un exemple concret permet de visualiser la boucle. Supposons que la page de paiement soit prรชte, mais que la passerelle de paiement ne le soit pas encore. Un pilote envoie la requรชte que l'interface transmettrait normalement ; un stub rรฉpond d'abord par ยซ Paiement rรฉussi ยป, puis par un dรฉlai d'attente ; le validateur confirme la commande dans un cas et propose une nouvelle tentative dans l'autre. Les deux chemins sont vรฉrifiรฉs avant mรชme que l'รฉquipe en charge de la passerelle n'รฉcrive la moindre ligne de code.
Il existe deux contextes dans lesquels Test Harness est utilisรฉ
Ce mรชme mรฉcanisme remplit deux fonctions distinctes, et le vocabulaire varie lรฉgรจrement selon la fonction ou l'autre.
- Tests d'automatisation : Il contient le scripts de test, les paramรจtres nรฉcessaires pour exรฉcuter ces scripts et collecter les rรฉsultats pour les analyser
- Tests d'intรฉgration : Il est utilisรฉ pour assembler deux unitรฉs de code ou module qui interagissent entre elles pour vรฉrifier si le comportement combinรฉ est comme prรฉvu ou non.
Prenons l'exemple d'un module de connexion et d'un module de profil qui doivent รฉchanger un jeton utilisateur. Dans le contexte de l'intรฉgration, un pilote simule une connexion rรฉussie et transmet le jeton ร la logique de profil, de sorte que la carte de donnรฉespingLa vรฉrification des autorisations et le rendu de l'รฉcran peuvent รชtre effectuรฉs avant mรชme la fin du service d'authentification. Dans un contexte d'automatisation, ces deux cas sont ajoutรฉs ร une suite de tests et rรฉexรฉcutรฉs ร chaque compilation sans intervention humaine.
Types de bancs d'essai
Comme les logiciels sont construits en couches, un harnais est gรฉnรฉralement spรฉcialisรฉ pour la couche qu'il vรฉrifie. Quatre types couvrent la quasi-totalitรฉ des projets.
A banc d'essai unitaire Il exรฉcute les plus petits fragments de code, comme une simple fonction ou mรฉthode, chaque dรฉpendance รฉtant remplacรฉe par un stub. C'est la mรฉthode la plus rapide ร exรฉcuter et la moins coรปteuse ร maintenir, et c'est pourquoi tests unitaires Les suites logicielles constituent gรฉnรฉralement le premier outil de dรฉveloppement qu'une รฉquipe met en place. Tester un calcul de taxe sans modifier le module de facturation est un cas d'utilisation typique.
An banc de test d'intรฉgration Ce systรจme vรฉrifie la bonne coopรฉration de deux modules ou plus et constitue la couche oรน les incohรฉrences de donnรฉes et les appels ayant รฉchouรฉ apparaissent. Il s'agit du dispositif dรฉcrit dans le test d'intรฉgration dans le contexte dรฉcrit ci-dessus, par exemple pour vรฉrifier qu'un service de commande transmet la charge utile appropriรฉe ร un service de paiement.
A banc d'essai systรจme assure un flux complet de bout en bout ร travers l'interface, le service et la base de donnรฉes. test du systรจme peut confirmer que les rรจgles mรฉtier sont respectรฉes une fois que chaque couche est prรฉsente. banc de test de rรฉgression puis relance la suite de tests accumulรฉe aprรจs chaque modification, ce qui est ce qui permet les tests de rรฉgression pratique lorsque plusieurs centaines de scรฉnarios doivent รชtre rรฉpรฉtรฉs ร chaque fusion.
Outils de harnais de test
Chacun de ces types est gรฉnรฉralement construit sur un outil existant plutรดt que de partir de zรฉro. Les deux choix classiques restent les frameworks au niveau unitaire :
- Junite: Outil utilisรฉ lors de l'utilisation Java
- Unitรฉ : Outil utilisรฉ pour utiliser Cadre .Net
Outre ces deux รฉlรฉments, la plupart des รฉquipes ajoutent des outils qui รฉtendent le systรจme au navigateur, ร la couche API ou au profil de charge. Le tableau ci-dessous associe les options courantes au rรดle de chacune.
| Outil | Le mieux adaptรฉ pour | Rรดle ร l'intรฉrieur du harnais |
|---|---|---|
| JUnit | Java suites d'unitรฉs et d'intรฉgration | Fournitures, accessoires et affirmations |
| Nunit | Code C# et VB.NET sur la plateforme .NET | Mรชme rรดle que JUnit pour les langages .NET |
| Selenium | Flux de bout en bout basรฉs sur navigateur | Agit comme pilote pour la couche d'interface utilisateur |
| TestNG | Grande Java suites nรฉcessitant un groupeping et des exรฉcutions parallรจles | Sert de moteur d'exรฉcution des tests |
| PyTest | Python services et contrรดles au niveau de l'API | Les installations servent ร la fois de supports et de fournisseurs de donnรฉes |
| Apache JMeter | Scรฉnarios de charge, de contrainte et de performance | Gรฉnรจre du trafic synthรฉtique contre l'application testรฉe |
| Postman | API RESTtracvรฉrification t | Fournit des serveurs factices qui remplacent les points de terminaison inachevรฉs. |
Quelle que soit la combinaison choisie, le faisceau n'est rentable que lorsqu'il fonctionne sans surveillance ; il faut donc le cรขbler ร unโฆ intรฉgration continue emploi rapidement. Un catalogue plus complet d'options est disponible dans le Guru99 outils de test En rรฉsumรฉ, une distinction demeure source de confusion, et il est important de la clarifier avant de faire un choix.
Harnais de test vs cadre de test
On confond souvent harnais et framework d'automatisation, alors qu'ils rรฉpondent ร des questions diffรฉrentes : le harnais exรฉcute les tests, tandis que le framework constitue la structure au sein de laquelle les tests sont conรงus. Le tableau ci-dessous les compare.
| Harnais de test | Cadre d'automatisation des tests |
|---|---|
| Un harnais de test est composรฉ de pilotes et de stubs, qui sont de petits programmes factices qui interagissent avec le logiciel testรฉ. | Il s'agit d'un ensemble de processus, de procรฉdures, d'abstracLe concept t et un environnement dans lequel les tests automatisรฉs sont conรงus et mis en ลuvre |
| Vous ne pouvez pas ยซ Enregistrer et lire ยป le script dans Test Harness | Un testeur peut manuellement ยซ Enregistrer et lire ยป le script dans ce cadre |
| Le harnais de test contient toutes les informations nรฉcessaires pour compiler et exรฉcuter un test comme les cas de test, le port de dรฉploiement cible (TDP), le fichier source testรฉ, les stubs, etc. | Le cadre d'automatisation des tests contient des informations telles que une bibliothรจque de tests, des outils de test, des pratiques de tests automatisรฉs, une plate-forme de test, etc. |
| Un harnais de test est classรฉ en Tests d'automatisation Test d'intรฉgration |
Cadre d'automatisation exemples Tests basรฉs sur les donnรฉes Tests basรฉs sur les mots clรฉs Tests basรฉs sur la modularitรฉ Tests hybrides Test basรฉ sur un modรจle Code essais conduits Tests axรฉs sur le comportement |

