Was ist Schnittstellentest? Typen und Beispiele
โก Intelligente Zusammenfassung
Schnittstellentests รผberprรผfen, ob zwei verbundene Softwaresysteme korrekt Daten austauschen. Sie umfassen die Verbindungen zwischen Webserver, Anwendungsserver und Datenbankserver, รผber die jede Anfrage einer Anwendung lรคuft, sowie die zugehรถrige Fehlerbehandlung.
Was ist Schnittstellentest?
Schnittstellentests ist definiert als eine Art von Softwaretest, der รผberprรผft, ob die Kommunikation zwischen zwei verschiedenen Softwaresystemen korrekt erfolgt.
Eine Verbindung, die zwei Komponenten integriert, wird als Schnittstelle bezeichnet. In der Computerwelt kann eine solche Schnittstelle beispielsweise eine API oder ein Webdienst sein. Das Testen dieser verbindenden Dienste oder Schnittstellen wird als Schnittstellentest bezeichnet.
Eine Schnittstelle ist eigentlich Software, die aus Befehlssรคtzen, Nachrichten und anderen Attributen besteht, die die Kommunikation zwischen einem Gerรคt und einem Benutzer ermรถglichen.
Der wichtige Punkt ist, dass eine Schnittstelle einen Kontrapunkt hat.tract: ein vereinbartes Anfrageformat, ein vereinbartes Antwortformat, ein vereinbarter Satz von Fehlercodes und ein vereinbartes Timeout. Schnittstellentests, die contract von beiden Seiten, sodass eine รnderung des einen Teams nicht unbemerkt das andere beeintrรคchtigt. Da der grรถรte Teil dieses Datenverkehrs nie einen Bildschirm erreicht, sind die gefundenen Fehler fรผr das andere Team unsichtbar. Black-Box-Test erfolgte ausschlieรlich รผber die Benutzeroberflรคche.
So fรผhren Sie Schnittstellentests durch
Schnittstellentests umfassen das Testen von zwei Hauptsegmenten:
- Webserver- und Anwendungsserverschnittstelle
- Anwendungsserver- und Datenbankserverschnittstelle.
Fรผr die oben genannten Szenarien wird der Schnittstellentest durchgefรผhrt
- รberprรผfen Sie, ob die Server ordnungsgemรคร ausgefรผhrt werden oder nicht
- Fehler werden ordnungsgemรคร behandelt oder es wird eine Fehlermeldung fรผr jede von einer Anwendung gestellte Abfrage zurรผckgegeben
- รberprรผfen Sie die Ergebnisse, wenn die Verbindung zu einem Webserver zwischendurch zurรผckgesetzt wird
Das untenstehende Diagramm zeigt diese beiden Segmente als eine einzige Kette, wobei der Browser mit dem Webserver, der Webserver mit dem Anwendungsserver und der Anwendungsserver mit dem Datenbankserver kommuniziert.
In der Praxis arbeitet sich ein Tester Schritt fรผr Schritt durch diese Kette. Jeder Schritt wird zunรคchst mit einer gรผltigen Anfrage, dann mit einer fehlerhaften Anfrage und schlieรlich mit absichtlich nicht erreichbarem Ziel ausgefรผhrt, sodass sowohl der Erfolgs- als auch der Fehlerpfad fรผr dieselbe Anwendung aufgezeichnet werden. Testfall.
Beispiel fรผr Schnittstellentests
Angenommen, fรผr jede xyz-Anwendung nimmt die Schnittstelle XML Datei als Eingabe und liefert JSON Die Datei wird als Ausgabedatei verwendet. Zum Testen der Benutzeroberflรคche dieser Anwendung werden lediglich die Spezifikationen des XML- und JSON-Dateiformats benรถtigt.
Mithilfe dieser Spezifikationen kรถnnen wir Beispiel-XML-Eingabedateien erstellen und in die Schnittstelle einlesen. Die anschlieรende Validierung der Eingabe- (XML) und Ausgabedatei (JSON) anhand der Anforderungen stellt den Schnittstellentest dar.
Beachten Sie, was das Beispiel nicht benรถtigt: keinen Bildschirm, keine Benutzeroberflรคche und keine Kenntnisse des internen Codes. Zwei Formatvorgaben genรผgen, um die Tests zu schreiben. Daher kann das Testen der Benutzeroberflรคche bereits beginnen, bevor diese รผberhaupt existiert.
Warum Schnittstellentests durchfรผhren?
Der Schnittstellentest ist abgeschlossen
- Um sicherzustellen, dass Endbenutzer oder Kunden bei der Verwendung eines bestimmten Softwareprodukts keine Probleme haben
- Um zu ermitteln, welche Anwendungsbereiche normalerweise von Endbenutzern aufgerufen werden, und um deren Benutzerfreundlichkeit zu รผberprรผfen.
- Zur รberprรผfung der Sicherheitsanforderungen wรคhrend der Kommunikation zwischen den Systemen
- Um zu prรผfen, ob eine Lรถsung Netzwerkausfรคlle zwischen einem Anwendungsserver und einer Website bewรคltigen kann
Auch die Kosten spielen eine Rolle. Ein Fehler im Anfrageformat lรคsst sich gรผnstig beheben, solange die beiden Systeme noch miteinander verbunden werden, wird aber teuer, sobald ein nachgelagertes System die fehlerhaften Daten bereits gespeichert hat.
Arten von Schnittstellentests
Wรคhrend des Schnittstellentests werden verschiedene Arten von Tests an der Schnittstelle durchgefรผhrt, darunter:
- Workflow: Dadurch wird sichergestellt, dass die Schnittstellen-Engine Ihre Standard-Workflows wie erwartet verarbeitet.
- Grenzfรคlle โ unerwartete Werte: Dies wird bei Tests berรผcksichtigt, bei denen Datum, Monat und Tag vertauscht werden.
- Leistungs-, Last- und Netzwerktests: Eine Schnittstelle mit hohem Durchsatz kann mehr erfordern. Load Testing als eine Schnittstelle mit geringem Volumen, abhรคngig von der Schnittstellen-Engine und der Konnektivitรคtsinfrastruktur
- Individuelle Systeme: Hierzu gehรถrt auch, jedes System einzeln zu testen. So sollten beispielsweise Abrechnungssystem und Warenwirtschaftssystem des Einzelhandelsgeschรคfts unabhรคngig voneinander funktionieren.
Der erste Gegenstand ist nahe genug dran Workflow-Test um seine Szenarien wiederzuverwenden, und der letzte Punkt รผberschneidet sich mit ModultestsDenn ein System, das von selbst versagt, wird erneut versagen, sobald es angeschlossen ist.
Schnittstellenteststrategie
Die Interface-Teststrategie ist eine Methode, mit der Schnittstellen unabhรคngig von der Implementierung mit gemeinsamen Tests geprรผft werden kรถnnen. Wir kรถnnen abs verwendentract Testfรคlle erstellen und konkrete Instanzen des Testfalls fรผr jede Implementierung der Schnittstellenteststrategie generieren. Die Basis-/Absolutentract-Testfรคlle fรผhren implementierungsneutrale Tests durch, wรคhrend konkrete Tests sich um die Instanziierung der zu testenden Objekte kรผmmern und implementierungsspezifische Tests durchfรผhren.
Der Vorteil dieser Struktur liegt in der Wiederverwendbarkeit. Wenn eine dritte Implementierung derselben Schnittstelle erscheint, ...tracDie t-Suite lรคuft unverรคndert dagegen, und es muss lediglich der Instanziierungscode geschrieben werden. Dasselbe Prinzip wird in grรถรerem Umfang angewendet in Komponententests, wo eine gemeinsame KontracDie t-Suite wird fรผr jede Komponente ausgefรผhrt, die behauptet, die Anforderungen zu erfรผllen.
Tools zum Testen von Schnittstellen
Da eine Schnittstelle keinen Bildschirm besitzt, mรผssen die Tools Anfragen direkt erstellen und die Rohdaten der Antworten รผberprรผfen. Teams kombinieren รผblicherweise drei Kategorien von Tools.
- API-Clients und Anfragegeneratoren: Werkzeuge wie Postman, SoapUIInsomnia und Hoppscotch senden REST-, SOAP- oder GraphQL-Aufrufe, speichern diese als wiederverwendbare Sammlungen und รผberprรผfen Statuscodes, Header und Antworttexte.
- Code-Level-Testbibliotheken: Bibliotheken, die innerhalb der bestehenden Testsuite ausgefรผhrt werden, ermรถglichen es, Schnittstellenprรผfungen neben Unit-Tests durchzufรผhren und bei jedem Build auszufรผhren, wodurch verhindert wird, dass sie veralten.
- Tools fรผr Ladevorgรคnge und Protokolle: Ein Werkzeug wie beispielsweise JMeter steuert die gleiche Schnittstelle bei der Lautstรคrke an, wodurch eine Funktionsprรผfung in eine Leistungstest der Verbindung.
- Servicevirtualisierung und Mockups: Ein Stub, der als Ersatz fรผr das andere Ende dient, ermรถglicht es, eine Seite zu testen, wรคhrend die andere Seite nicht verfรผgbar, unfertig oder zu teuer ist, um sie wiederholt anzurufen.
Die Auswahl ist weniger wichtig als die Testabdeckung. Unabhรคngig vom gewรคhlten Client muss die Sammlung der Anfragen zusammen mit dem Code in der Versionskontrolle gespeichert werden, damit รnderungen an der Schnittstelle und den zugehรถrigen Tests im selben Commit erfolgen. Details zu dieser รผbergeordneten Kategorie werden in [Referenz einfรผgen] behandelt. API-Tests.
Checkliste und Best Practices fรผr Schnittstellentests
Eine kurze Checkliste gewรคhrleistet eine konsistente Schnittstellenabdeckung รผber verschiedene Releases hinweg. Arbeiten Sie diese fรผr jede Verbindung einzeln ab, anstatt die Anwendung als Ganzes zu betrachten.
- Mittract zuerst: Prรผfen Sie, ob die Anfrage- und Antwortschemata Feld fรผr Feld, einschlieรlich Datentypen und optionaler Felder, mit der verรถffentlichten Spezifikation รผbereinstimmen.
- Grenzwerte: Senden Sie leere Nutzdaten, Felder mit maximaler Lรคnge, unerwartete Zeichensรคtze und umgekehrte Datumsformate.
- Fehlerpfade: Stellen Sie sicher, dass jeder Fehler einen aussagekrรคftigen Code und eine Meldung anstelle eines Stacktrace zurรผckgibt. trace oder ein stiller Erfolg.
- Zeitรผberschreitungen und Wiederholungsversuche: Unterbrechen Sie die Verbindung mitten in der Anfrage und vergewissern Sie sich, dass der Aufrufer die Anfrage sicher wiederholt, ohne die Transaktion zu duplizieren.
- Sicherheit: Prรผfen Sie die Authentifizierung, Autorisierung und Verschlรผsselung der Verbindung und vergewissern Sie sich, dass Fehlermeldungen keine internen Details preisgeben.
- Datenkonsistenz: Lesen Sie die Aufzeichnung von der anderen Seite erneut durch und vergewissern Sie sich, dass wรคhrend der รbertragung nichts abgeschnitten, neu codiert oder neu angeordnet wurde.
- Volumen: Wiederholen Sie den Anruf mit dem hรถchsten Datenverkehr unter gleichzeitiger Last und achten Sie auf eine Erschรถpfung des Verbindungspools.
Drei Vorgehensweisen machen diese Checkliste wiederholbar. Erstens: Automatisieren Sie die Testsuite und fรผhren Sie sie bei jedem Build aus, da sich Benutzeroberflรคchen weniger auffรคllig รคndern als Bildschirminhalte. Zweitens: Protokollieren Sie die vollstรคndige Anfrage und Antwort fรผr jeden Fehler, da ein Fehler in der Benutzeroberflรคche anhand eines Screenshots kaum reproduzierbar ist. Drittens: Halten Sie die Testsuite unabhรคngig von Testdaten anderer Testsuiten, damit ein Fehler auf die Benutzeroberflรคche und nicht auf einen fehlenden Datensatz hinweist.
Diese Kontrollen fรผgen sich nahtlos in den umfassenderen Plan ein, der in Arten von Softwaretestsund sie laufen, bevor dieselben Verbindungen von Ende zu Ende ausgefรผhrt werden wรคhrend Systemtests.
Schnittstellentests vs. Integrationstests
Die beiden Begriffe stehen in einem Zusammenhang, nicht im Gegensatz: Schnittstellentests sind der Teil der Integrationsarbeit, der sich auf die Verbindung selbst konzentriert. Die folgende Tabelle verdeutlicht die jeweiligen Schwerpunkte.
| Schnittstellentests | Integrationstests |
|---|---|
| Ein Integrationstesttyp, der sich mit dem Testen der Schnittstellen zwischen Komponenten oder Systemen befasst | Es werden Tests durchgefรผhrt, um Fehler in den Schnittstellen und in den Interaktionen zwischen integrierten Komponenten oder Systemen aufzudecken. |
| Fokus ist der Betrugtract โ Anfrageformat, Antwortformat, Fehlercodes und Timeouts | Der Fokus liegt auf dem kombinierten Verhalten der Komponenten nach deren Zusammenfรผhrung. |
| Kann ausgefรผhrt werden, sobald die Spezifikation existiert, wobei das entfernte Ende mit einem Stub versehen ist. | Erfordert, dass die beteiligten Komponenten gemeinsam gebaut und eingesetzt werden. |
| Die Fehlerursache liegt an einer Verbindung. | Ein Fehler kann auf jede Komponente der zusammengebauten Gruppe hinweisen. |
Wer sich neu mit diesem breiteren Fachgebiet befasst, wird die darin beschriebenen umliegenden Ebenen als hilfreich empfinden. Integrationstests und im Allgemeinen Softwaretest Einleitung, wobei die oben verwendete Terminologie aus dem Standard stammt. Softwareentwicklung Praxis. Bei browserseitigen Systemen werden dieselben Verbindungen schlieรlich wรคhrend der รbung erneut genutzt. Testen von Webanwendungen.

