Qu'est-ce que le test d'interface ? Types et exemple
โก Rรฉsumรฉ intelligent
Les tests d'interface vรฉrifient que deux systรจmes logiciels connectรฉs รฉchangent correctement des donnรฉes. Ils couvrent les liaisons entre le serveur web, le serveur d'applications et le serveur de base de donnรฉes qui acheminent chaque requรชte d'une application, ainsi que la gestion des erreurs associรฉes.
Quโest-ce que le test dโinterface ?
Test d'interface est dรฉfini comme un type de test logiciel qui vรฉrifie si la communication entre deux systรจmes logiciels diffรฉrents est effectuรฉe correctement.
Une connexion qui intรจgre deux composants est appelรฉe interface. Dans le monde informatique, cette interface peut prendre diverses formes, comme des API, des services web, etc. Tester ces services de connexion ou interfaces est appelรฉ test d'interface.
Une interface est en fait un logiciel composรฉ d'ensembles de commandes, de messages et d'autres attributs permettant la communication entre un appareil et un utilisateur.
Le point important est qu'une interface a un contract : un format de requรชte convenu, un format de rรฉponse convenu, un ensemble convenu de codes d'erreur et un dรฉlai d'attente convenu. Exercices de test d'interface qui contracde part et d'autre, une modification apportรฉe par une รฉquipe n'affecte pas silencieusement l'autre. Comme la majeure partie de ce trafic n'atteint jamais un รฉcran, les dรฉfauts dรฉtectรฉs sont invisibles pour l'utilisateur. test de la boรฎte noire effectuรฉ uniquement via l'interface utilisateur.
Comment faire des tests d'interface
Les tests d'interface comprennent les tests de deux segments principaux :
- Interface du serveur Web et du serveur d'applications
- Interface du serveur d'applications et du serveur de base de donnรฉes.
Pour les scรฉnarios mentionnรฉs ci-dessus, les tests d'interface sont effectuรฉs pour
- Vรฉrifier que les serveurs sont exรฉcutรฉs correctement ou non
- Les erreurs sont gรฉrรฉes correctement ou renvoient un message d'erreur pour toute requรชte effectuรฉe par une application
- Vรฉrifiez les rรฉsultats lorsque la connexion ร un serveur Web est rรฉinitialisรฉe entre les deux
Le schรฉma ci-dessous reprรฉsente ces deux segments comme une seule chaรฎne, le navigateur communiquant avec le serveur web, le serveur web communiquant avec le serveur d'applications et le serveur d'applications communiquant avec le serveur de base de donnรฉes.
En pratique, un testeur parcourt cette chaรฎne รฉtape par รฉtape. Chaque รฉtape est d'abord testรฉe avec une requรชte valide, puis avec une requรชte malformรฉe, et enfin avec l'extrรฉmitรฉ distante dรฉlibรฉrรฉment indisponible, de sorte que le chemin de rรฉussite et le chemin d'รฉchec soient enregistrรฉs de la mรชme maniรจre. cas de test.
Exemple de test d'interface
Supposons que pour toute application xyz, l'interface prenne XML fichier en entrรฉe et fournit JSON Le fichier de sortie est requis. Pour tester l'interface de cette application, seules les spรฉcifications des formats de fichiers XML et JSON sont nรฉcessaires.
Grรขce ร ces spรฉcifications, nous pouvons crรฉer des exemples de fichiers XML d'entrรฉe et les intรฉgrer ร l'interface. La validation des fichiers d'entrรฉe (XML) et de sortie (JSON) par rapport aux exigences constitue ensuite un test d'interface.
Remarquez ce dont cet exemple n'a pas besoin : ni รฉcran, ni interface utilisateur, ni connaissance du code interne. Deux spรฉcifications de format suffisent pour รฉcrire les tests ; c'est pourquoi les tests d'interface peuvent commencer bien avant mรชme que l'interface utilisateur ne soit disponible.
Pourquoi faire des tests d'interface
Les tests d'interface sont effectuรฉs
- Pour garantir que les utilisateurs finaux ou le client ne rencontrent aucun problรจme lors de l'utilisation d'un produit logiciel particulier
- Identifier les domaines d'application habituellement consultรฉs par les utilisateurs finaux et vรฉrifier รฉgalement leur convivialitรฉ.
- Pour vรฉrifier les exigences de sรฉcuritรฉ pendant que la communication se propage entre les systรจmes
- Pour vรฉrifier si une solution est capable de gรฉrer les pannes de rรฉseau entre un serveur d'applications et un site Web
Il y a aussi la question du coรปt. Corriger un dรฉfaut de format de requรชte est peu coรปteux tant que les deux systรจmes sont en cours de connexion, mais onรฉreux une fois que le systรจme en aval a dรฉjร stockรฉ les donnรฉes malformรฉes.
Types de tests d'interface
Pendant les tests d'interface, divers types de tests sont effectuรฉs sur l'interface, qui peuvent inclure
- Workflow: Il garantit que le moteur d'interface gรจre vos flux de travail standard comme prรฉvu.
- Cas limites - valeurs inattendues : Ceci est pris en compte lors des tests incluant la date, le mois et le jour inversรฉs.
- Tests de performance, de charge et de rรฉseau : Une interface ร haut volume peut nรฉcessiter davantage test de charge qu'une interface ร faible volume, en fonction du moteur d'interface et de l'infrastructure de connectivitรฉ
- Systรจmes individuels : Cela inclut le test de chaque systรจme individuellement. Par exemple, le systรจme de facturation et le systรจme de gestion des stocks du magasin de dรฉtail devraient pouvoir fonctionner sรฉparรฉment.
Le premier รฉlรฉment est assez proche de tests de flux de travail rรฉutiliser ses scรฉnarios, et le dernier รฉlรฉment recoupe avec test de modulecar un systรจme qui tombe en panne de lui-mรชme tombera de nouveau en panne une fois connectรฉ.
Stratรฉgie de test d'interface
La stratรฉgie de test d'interface est une mรฉthode utilisรฉe pour tester les interfaces avec des tests communs, indรฉpendamment de leur implรฉmentation. Nous pouvons utiliser des tests absolus.tracCrรฉez des cas de test et des instances concrรจtes pour chaque implรฉmentation de la stratรฉgie de test d'interface. La base/abstracLes cas de test t effectuent des tests indรฉpendants de l'implรฉmentation, tandis que les tests concrets prennent en charge l'instanciation des objets ร tester et effectuent des tests spรฉcifiques ร l'implรฉmentation.
L'avantage de cette structure est la rรฉutilisation. Lorsqu'une troisiรจme implรฉmentation de la mรชme interface apparaรฎt, l'abstracLa suite t s'exรฉcute sans modification, et seul le code d'instanciation doit รชtre รฉcrit. La mรชme idรฉe est appliquรฉe ร plus grande รฉchelle dans test de composants, oรน un contrat partagรฉtract suite est exรฉcutรฉ sur chaque composant qui prรฉtend le satisfaire.
Outils de test d'interface
Puisqu'une interface n'a pas d'รฉcran, les outils doivent construire directement les requรชtes et traiter les rรฉponses brutes. Les รฉquipes combinent gรฉnรฉralement trois catรฉgories d'outils.
- Clients API et gรฉnรฉrateurs de requรชtes : Des outils tels que Postman, SoapUIInsomnia et Hoppscotch envoient des requรชtes REST, SOAP ou GraphQL, les stockent sous forme de collections rรฉutilisables et vรฉrifient les codes d'รฉtat, les en-tรชtes et les corps de rรฉponse.
- Code- bibliothรจques de test de niveau : Les bibliothรจques qui s'exรฉcutent au sein de la suite de tests existante permettent aux vรฉrifications d'interface de coexister avec les tests unitaires et de s'exรฉcuter ร chaque compilation, ce qui les empรชche de devenir obsolรจtes.
- Outils de chargement et de protocole : Un outil tel que JMeter pilote la mรชme interface ร volume รฉlevรฉ, ce qui transforme un contrรดle fonctionnel en Test de performance de la connexion.
- Virtualisation des services et simulations : Un cรขble de test faisant office d'extrรฉmitรฉ permet de tester un cรดtรฉ pendant que l'autre est indisponible, inachevรฉ ou trop coรปteux ร appeler ร plusieurs reprises.
Le choix du client importe moins que la couverture. Quel que soit le client choisi, l'ensemble des requรชtes doit รชtre stockรฉ dans un systรจme de contrรดle de version avec le code, afin qu'une modification de l'interface et une modification de ses tests soient incluses dans le mรชme commit. Les dรฉtails de cette catรฉgorie plus large sont traitรฉs dans [rรฉfรฉrence manquante]. Test d'API.
Liste de contrรดle et meilleures pratiques pour les tests d'interface
Une courte liste de vรฉrification permet de garantir une couverture d'interface cohรฉrente entre les versions. Il convient de la suivre pour chaque connexion plutรดt que pour l'application dans son ensemble.
- Avectract premier : Vรฉrifiez que les schรฉmas de requรชte et de rรฉponse correspondent ร la spรฉcification publiรฉe, champ par champ, y compris les types de donnรฉes et les champs optionnels.
- Valeurs limites : Envoyer des charges utiles vides, des champs de longueur maximale, des jeux de caractรจres inattendus et des formats de date inversรฉs.
- Chemins d'erreur : Vรฉrifiez que chaque รฉchec renvoie un code et un message explicites plutรดt qu'une pile d'erreurs. trace ou un succรจs silencieux.
- Dรฉlais d'attente et nouvelles tentatives : Interrompre la connexion en cours de requรชte et vรฉrifier que l'appelant rรฉessaie en toute sรฉcuritรฉ sans dupliquer la transaction.
- Sรฉcuritรฉ : Vรฉrifiez l'authentification, l'autorisation et le chiffrement du lien, et assurez-vous que les messages d'erreur ne divulguent pas d'informations internes.
- La cohรฉrence des donnรฉes: Relisez l'enregistrement depuis l'autre cรดtรฉ et vรฉrifiez qu'aucun รฉlรฉment n'a รฉtรฉ tronquรฉ, rรฉencodรฉ ou rรฉorganisรฉ pendant le transport.
- Volume: Rรฉpรฉtez l'appel le plus sollicitรฉ en cas de charge simultanรฉe et surveillez l'รฉpuisement du pool de connexions.
Trois pratiques permettent de garantir la reproductibilitรฉ de cette liste de contrรดle. Premiรจrement, automatisez la suite de tests et exรฉcutez-la ร chaque compilation, car les interfaces รฉvoluent plus discrรจtement que les รฉcrans. Deuxiรจmement, consignez l'intรฉgralitรฉ de la requรชte et de la rรฉponse pour chaque รฉchec, car un dรฉfaut d'interface est quasiment impossible ร reproduire ร partir d'une capture d'รฉcran. Troisiรจmement, assurez-vous que la suite de tests soit indรฉpendante des donnรฉes de test crรฉรฉes par d'autres suites, afin qu'un รฉchec pointe vers l'interface et non vers un enregistrement manquant.
Ces contrรดles s'inscrivent naturellement dans le plan plus large dรฉcrit dans types de tests logicielset elles s'exรฉcutent avant que les mรชmes connexions ne soient exercรฉes de bout en bout pendant test du systรจme.
Tests d'interface et tests d'intรฉgration
Ces deux termes sont liรฉs plutรดt qu'opposรฉs : les tests d'interface dรฉsignent la partie du travail d'intรฉgration qui se concentre sur la connexion elle-mรชme. Le tableau ci-dessous met en รฉvidence les points communs et les diffรฉrences.
| Test d'interface | Test d'intรฉgration |
|---|---|
| Un type de test d'intรฉgration qui consiste ร tester les interfaces entre les composants ou les systรจmes | Tests effectuรฉs pour exposer les dรฉfauts dans les interfaces et dans les interactions entre composants ou systรจmes intรฉgrรฉs. |
| La concentration est le point faibletract โ format de requรชte, format de rรฉponse, codes d'erreur et dรฉlais d'attente | Le focus est le comportement combinรฉ des composants une fois qu'ils sont assemblรฉs. |
| Peut รชtre exรฉcutรฉ dรจs que la spรฉcification existe, l'extrรฉmitรฉ distante รฉtant stubรฉe. | Nรฉcessite que les composants participants soient construits et dรฉployรฉs ensemble. |
| Une dรฉfaillance indique un point de connexion | Une dรฉfaillance peut indiquer n'importe quel composant du groupe assemblรฉ. |
Toute personne dรฉcouvrant cette discipline plus vaste trouvera les niveaux environnants dรฉcrits dans test d'intรฉgration et en gรฉnรฉral test logiciel Dans l'introduction, la terminologie utilisรฉe ci-dessus provient de la norme. gรฉnie logiciel En pratique, pour les systรจmes accessibles via un navigateur, les mรชmes connexions sont finalement rรฉutilisรฉes lors de la phase d'entraรฎnement. tests d'applications Web.

