Empfohlenes Webinar: MISRA C++ 2023: Alles, was Sie wissen müssen | Zum Video

API-Tests zum Erreichen von Qualitäts- und Abdeckungszielen

Die verteilten Softwareumgebungen von heute enthalten eine Vielzahl von APIs mit jeder Schnittstelle, die Ihre Software berührt, von Mobilgeräten bis hin zu Microservices. Jede API muss kontinuierlich getestet und verifiziert werden, um sicherzustellen, dass Ihre Software so funktioniert, wie sie sollte. Die API-Testplattform von Parasoft macht solche Anforderungen schnell, effizient und intelligent.

Was ist eine API?

API steht für Application Programming Interface. Eine API ist ein Software-Vermittler oder Vermittler, der es zwei Apps ermöglicht, miteinander zu kommunizieren. Jedes Mal, wenn Sie beispielsweise auf Facebook interagieren, ein Produkt bei Amazon kaufen oder die Nachrichten auf Ihrem Telefon abrufen, sind APIs im Einsatz.

Eine API funktioniert wie folgt: Wenn Sie eine Anwendung auf Ihrem Computer oder Telefon verwenden, verbindet sich die App mit dem Internet und sendet Ihre Daten an den Server. Der Server lädt die Informationen herunter, interpretiert sie nach Bedarf für die App und sendet dann eine Antwort an das Telefon oder den Computer so zurück, dass Sie sie verstehen und verwenden können.

 

Was ist API-Test?

Tester testen APIs, um herauszufinden, ob die APIs die Erwartungen an Funktionalität, Sicherheit, Leistung und Zuverlässigkeit erfüllen. API-Funktionstests sind unerlässlich, da APIs die primäre Schnittstelle in der Anwendungslogik sind und weil Tester festgestellt haben, dass GUI-Tests (Tests der grafischen Benutzeroberfläche) schwierig zu warten sind und nur eine begrenzte Abdeckung bieten, wenn man die wiederkehrenden Änderungen in DevOps- und Agile-Software berücksichtigt und verkürzt Freigabezyklen. Unternehmen haben festgestellt, dass das Hinzufügen von API-Tests die Abdeckung ihrer Anwendungstests erheblich erweitert.

Tester testen APIs direkt, also isoliert, als Bestandteil von End-to-End-Tests im Integrationstest. Außerhalb von RESTful APIs umfassen Transaktionen verschiedene Endpunkte, zum Beispiel:

  • Web-UIs
  • Großrechner
  • ESBs
  • Web-Services
  • ERP

Tester testen APIs, die ein Entwicklungsteam erstellt. Darüber hinaus testen sie die APIs, die das Team in der Anwendung verwendet, einschließlich aller APIs von Drittanbietern. Die Tests stellen fest, ob die APIs für eine Vielzahl denkbarer Anfragen die passenden Antworten im richtigen Format zurückliefern und ob die APIs bei ungewöhnlichen oder extremen Eingaben und bei Fehlern angemessen reagieren. Das Testen umfasst normalerweise SOAP-Webdienste oder REST-APIs mit XML- oder JSON-Nachrichtenladungen, wobei das System über JMS, HTTP, HTTPS und MQ sendet. Andere Nachrichtenformate, die Tester während der Tests verwenden, sind EDI, FIX und SWIFT.

Typische automatisierte API-Tests umfassen Folgendes:

  • Unit-Test
  • Lastprüfung
  • Funktionsprüfung
  • Sicherheitstests
  • Erkennung von Laufzeitfehlern
  • Testen der Web-Benutzeroberfläche
  • Penetrationstests
  • Fuzz-Tests

Ausführliche Informationen zu den spezifischen Tests, die Entwickler zum Testen von APIs verwenden, finden Sie unten im Abschnitt Typen.

Warum sind API-Tests wichtig?

Um eine angenehme und erfolgreiche Benutzererfahrung mit Ihrer Softwareanwendung zu gewährleisten, ist es wichtig, sie gründlich zu testen. Dies bedeutet, dass die zugrunde liegende Funktionsweise des Codes und seine Interaktionen mit anderen Systemen und Diensten überprüft werden.

UI-Tests allein können nicht garantieren, dass die Software wie erwartet funktioniert. API-Tests bewerten die Funktionalität, Zuverlässigkeit und Leistung der Anwendung, damit Sie sicher sein können, dass Sie qualitativ hochwertige Software liefern.

API-Tests konzentrieren sich auf

  • Validierung der Geschäftslogik.
  • Gewährleistung genauer Datenantworten.
  • Bewertung von Leistungsproblemen.
  • Identifizieren potenzieller Sicherheitsrisiken.

Alle diese Bereiche sind entscheidend für den korrekten Betrieb Ihrer Anwendung.

Wenn keine ausreichenden API-Tests durchgeführt werden, kann dies dazu führen

  • Freigabeverzögerungen
  • Produktionsausfallzeiten
  • Hohe Nacharbeitskosten
  • Umsatzeinbußen und mehr

Proaktive und umfangreiche API-Tests führen zu besserer Software.

Die Vorteile von API-Tests

Machine-to-Machine- und Headless-Kommunikation sind in modernen Softwarearchitekturen ebenso Standard wie zugehörige Anwendungsprogrammierschnittstellen. Dies bedeutet, dass praktisch jede Branche, die mit Software arbeitet, von der Verwendung von API-Softwaretests profitiert, um die Funktionalität sicherzustellen, um den korrekten Betrieb zu überprüfen.

API-Automatisierungstests sparen Zeit – und Kopfschmerzen

Die heutigen agilen DevOps-Umgebungen mit hohem Druck bedeuten, dass Sie sich nicht auf die manuelle Ausführung verlassen können API-Testwerkzeuge. Parasoft automatisiert das kontinuierliche Testen des komplexen Netzwerks verteilter Systeme, die Ihre APIs aufrufen. Das Event-Monitoring-Framework ermöglicht eine End-to-End-Validierung von Testszenarien, die auf API-Formate und -Protokolle ausgerichtet sind. Es ist alles in Ihre CI/CD-Pipeline integriert.

Reduzieren Sie die Testkomplexität

APIs sind kompliziert. Das bedeutet, dass auch deren Test kompliziert werden kann und oft umfangreiches technisches Know-how erfordert. Aber Sie möchten, dass Ihre Entwickler entwickeln und keine Zeit damit verbringen, Testfälle zu erstellen. Die automatisierte API-Testplattform von Parasoft verfügt über eine benutzerfreundliche, GUI-gesteuerte Oberfläche, die keine Skripterstellung erfordert, sodass weniger erfahrene Tester umfassende Testfallszenarien erstellen können.

Zugriff auf die Gesamtabdeckung

Einige Tools testen nur APIs. Andere testen nur Benutzeroberflächen. Sie benötigen keinen schrittweisen Ansatz mehr, um sicherzustellen, dass jeder Aspekt Ihres Softwareentwicklungsprozesses abgedeckt wird. Die Parasoft Continuous Quality Testing Platform testet von Anfang bis Ende – von Unit-Tests bis hin zu API, UI und mehr. Sie erhalten umfassende Abdeckung und nahtlose Zusammenarbeit.

Nicht nur testen - intelligent testen

Angesichts der enormen Anzahl beweglicher Teile, die API-Tests umfassen, möchten Sie wissen, welche Änderungen die größten Auswirkungen haben und an welchen Sie zuerst arbeiten müssen. Parasofts Auf KI und maschinellem Lernen basierende API-Tests Die Plattform generiert aussagekräftige und umfassende Testszenarien, die mit dem Anwendungscode korreliert sind. Wenn Änderungen auftreten, identifiziert Parasoft, welche Tests ausgeführt werden müssen, um nur den geänderten Code zu validieren, um unnötigen Zeit- und Arbeitsaufwand zu vermeiden.

Änderungen proaktiv verwalten

APIs ändern sich. Wenn solche Änderungen nicht getestet werden, verhalten sich Ihre Anwendungen auf unerwartete Weise. Sie verbringen zu viel Zeit damit, das Problem zu lokalisieren und Ihre Bibliothek abhängiger Testfallszenarien zu aktualisieren. Die API-Testplattform von Parasoft überwacht kontinuierlich und intelligent Änderungen, sodass Ihre Anwendung immer verifiziert und Ihre Testsuite immer auf dem neuesten Stand ist. Smart Test Execution identifiziert, welche Tests mit den Codeänderungen übereinstimmen, damit Sie Testworkflows optimieren können.

Ein Test-Tool deckt alle Ihre APIs ab

Ja, Sie müssen jede API-Schnittstelle testen. Das Problem: Jede API hat ihre eigene einzigartige Art der Kommunikation mit einer schwindelerregenden Reihe von Messaging-Formaten und -Protokollen. Die Sicherstellung der Funktionalität für jede Permutation und Kombination kann eine enorme Zeitersparnis bedeuten. Die automatisierte API-Testplattform von Parasoft deckt die breiteste Palette von Messaging-Protokollen und -Formaten in der Branche ab. Sie sind vollständig erweiterbar, um proprietäre Formate oder benutzerdefinierte Protokolle abzudecken.

Screenshot von Parasoft SOAtest und Virtualize API-Tests.

Mit der API-Testplattform von Parasoft können Sie Änderungen proaktiv verwalten, indem Sie APIs und Dienste automatisch überwachen und visuell hervorheben, wo Aktualisierungen aufgetreten sind.

Arten von API-Tests

Um alle Grundlagen abzudecken, verwenden Tester eine Reihe von Tests zum Testen von APIs. Hier sind die wichtigsten.

Funktionsprüfung

API-Funktionstests verifizieren, dass die API wie erwartet funktioniert und angemessen auf alle Anfragen reagiert, die sie erhält.

Penetrationstests

Während dieses Tests entdecken Tester, ob Benutzer mit geringen API-Kenntnissen Zugriff auf die vollständige API erhalten, einschließlich Informationen zu Prozessen, Funktionen und Ressourcen.

UI-Tests

UI-Tests testet die Benutzeroberflächen der API. Es konzentriert sich hauptsächlich auf die Schnittstelle, die mit der API verbunden ist, im Gegensatz zum API-Testen selbst.

Load Testing

Diese Art von Test überprüft, ob die App sowohl bei Spitzen- als auch bei normalen Dateneingaben ordnungsgemäß funktioniert.

Laufzeit und Fehlererkennung

Dieser Test bezieht sich auf den tatsächlichen Betrieb der API und konzentriert sich insbesondere auf das Ergebnis, wenn die APIs die API-Codebasis verwenden. Es konzentriert sich auf eines oder mehrere davon: Ausführungsfehler, Überwachung, Fehlererkennung, Ressourcenlecks.

Validierungstests

Dieses Testen ist unerlässlich und findet in den letzten Schritten der Entwicklung statt. Es bestätigt verschiedene Eigenschaften und das korrekte Verhalten des Produkts sowie die Effizienz.

Sicherheitstests

Diese Prüfung dient z API-Schutz und bestätigt, dass die API-Anwendung vor externen Bedrohungen sicher ist. Es umfasst das Testen der Struktur der Zugriffskontrolle, der Benutzerrechteverwaltung, der Validierung von Verschlüsselungsmethoden und der Autorisierungsvalidierung.

Fuzz-Tests

Dies ist ein weiterer Sicherheitstest. Tester geben eine große Menge verschiedener Daten (Fuzz oder Rauschen) in das System ein, um negatives Verhalten oder Programmabstürze zu erzwingen. Diese Tests belasten APIs für Worst-Case-Situationen.

Verwenden Sie dynamische Anwendungssicherheitstests (DAST), um Penetrationstests als Teil des Entwicklungsworkflows durchzuführen, um potenzielle Sicherheitsrisiken früher zu erkennen.

Screenshot von Parasoft SOAtest API-Sicherheitstests

Die 5 besten Best Practices für API-Tests

Damit APIs zuverlässig funktionieren, einschließlich der Behebung von Sicherheitsbedenken, stellen wir fünf Top-Testpraktiken vor.

1) Testen Sie eine Vielzahl von Eckfällen und Bedingungen und nutzen Sie die automatisierte Validierung umfassend.

Ein hoher Automatisierungsgrad bietet eine Reihe von funktionalen Testszenarien, die Sie systematisch nachbilden können.

Verwenden Sie eine intuitive Benutzeroberfläche, um komplizierte Fälle über Datenbanken, Microservices, die Messaging-Schicht usw. zu automatisieren. Dazu gehören:

  • Angeben automatisierter Testfälle entlang einer Vielzahl von Testtypen und Protokollen, die Entwickler für APIs wie HTTP/REST, Swagger, Kafka, MQ, JSON, EDI, JMS und Nachrichten fester Länge verwenden.
  • Parametrisierung von Validierungen, Testlasten und Konfigurationen aus Testfällen, Datenquellen oder Variablen.
  • Definition von High-Level-Testlogik aber ohne Scripting.
  • Visualisierung, wie sich Ereignisse und Nachrichten durch Architekturen bewegen, während Tests ausgeführt werden.
  • Automatisierung der vollständigen Omnichannel-Validierung entlang zahlreicher Endpunkte und Schnittstellen, die in End-to-End-Testfällen enthalten sind.

2) APIs ändern sich ständig, was Sicherheits- und Qualitätsrisiken für Unternehmen birgt, die nicht Schritt halten.

Daher ist es wichtig, zu erkennen, wann API-Änderungen auftreten, und Testassets einfach, schnell und genau zu aktualisieren, um sie auszurichten.

Der Schlüssel ist, ein System zu entwickeln, das notwendige Änderungen für aktuelle Tests bewertet und diese dann aktualisiert oder sogar neue Tests erstellt. Dies kann den Zeit- und Arbeitsaufwand erheblich reduzieren, um sicherzustellen, dass Ihre Tests nicht an unerwarteten Änderungen scheitern und neue Funktionalitäten nicht ignorieren.

3) Nutzen Sie Service-Virtualisierung für simulierte Testszenarien.

Auf diese Weise können Sie simulierte Testfälle erstellen, wodurch Sie wiederum das Verhalten abhängiger Ressourcen anzeigen können, auf die Sie möglicherweise nur schwer zugreifen können, auf die Sie möglicherweise Schwierigkeiten bei der Konfiguration zum Testen haben oder die noch nicht verfügbar sind.

Diese Ressourcen können unter anderem Webdienste, Datenbanken, Mainframes oder Anwendungen von Drittanbietern sein. Sie können verwenden Virtualisierung von Webdiensten zusammen mit Betriebssystem- und Hardwarevirtualisierung, um Zugriff auf die erforderlichen Umgebungen zu erhalten. In Kombination ermöglicht dies Ihnen, schneller, früher und gründlicher zu testen.

Sie können die Dienstvirtualisierung in Bezug auf API-Tests auf zwei Arten anwenden:

  • Simulieren Sie den Zugriff auf das Verhalten der abhängigen Ressource, z. B. einer Datenbank, einer mobilen App, eines Drittanbieterdienstes oder eines Legacy-Systems.
  • Simulieren Sie das Verhalten Ihrer API, indem Sie ein Testszenario entwickeln, das API-Benutzer erstellen und testen können, das sich nicht auf das Produktionsprodukt auswirkt. Dies ermöglicht auch die Entwicklung und das anschließende Testen, selbst wenn APIs noch nicht vollständig sind.

4) Nutzen Sie Service-Virtualisierung für umfangreiche Leistungstests.

APIs sind stark exponiert. Somit besteht ein großes Potenzial für volatilen und unvorhersehbaren Verkehr. Es ist ratsam, umfassende Leistungstests durchzuführen, um festzustellen, ob Ihre API die Erwartungen erfüllt, wenn sie auf eine steigende Nachfrage oder ein unregelmäßiges Verhalten stößt. Hier sind einige Beispiele.

Mit der Servicevirtualisierung können Sie simulierte Testszenarien erstellen, die Sie beim Testen verschiedener Leistungsumgebungen unterstützen, deren Erstellung in einer Testsituation normalerweise problematisch ist. Sie können Bedingungen wie Timing, Verzögerung und Latenz testen, um typische, Spitzen- und langsame Leistung zu replizieren, um einen Cloud-Burst oder jemanden zu planen, der von einem Remote-Standort auf einem anderen Kontinent aus auf die API zugreift.

Darüber hinaus können Sie verschiedene Fehler- und Fehlersituationen erstellen, die Tester im eigentlichen Programm oft nur schwer reproduzieren können – wenn Ihre APIs beispielsweise Amazon Web Services verwenden, können Sie ein Szenario erstellen, das eine Situation simuliert, in der AWS offline ist.

Sie können auch eine Vielzahl von Situationen in abhängigen Systemen konfigurieren, um herauszufinden, ob Ihre APIs unter ungewöhnlichen Bedingungen richtige Antworten liefern und auch, ob sie einigermaßen fehlschlagen.

Sie können Links zu Anwendungen von Drittanbietern replizieren, wodurch jedes Risiko, das Ihre Tests für Dienste haben können, die Sie normalerweise nicht mit Testdaten angreifen dürfen oder für die Sie kein Budget haben, negiert werden können.

5) Testen Sie mithilfe der Dienstvirtualisierung umfassend auf Sicherheitsprobleme.

APIs bieten leider eine große Angriffsfläche. Verwenden Sie einen vielschichtigen Testansatz, um Angreifer und größere Sicherheitsprobleme zu stoppen. Dadurch wird sichergestellt, dass Sie die erforderliche Sicherheitsmaßnahme in die Anwendung geschrieben haben. Der Ansatz umfasst:

  • Erstellen einer Vielzahl von Penetrations- und Angriffssituationen, die Injektionen, Parameter-Fuzzing, große Nutzlasten usw. beinhalten.
  • Implementierung komplexer Verschlüsselungs-, Authentifizierungs- und Zugriffskontroll-Testsituationen.
  • Durchführen von Penetrationsangriffen, die auf bestehende operative Testsituationen abzielen.
  • Überwachen des Back-Ends während des Tests, um festzustellen, ob die Sicherheit kompromittiert wurde.

Um Geld zu sparen, ermöglicht die Servicevirtualisierung Nicht-Sicherheitsexperten die Durchführung von Tests, da sie keinen Code schreiben, sondern lediglich bewährte Tests in einer Vielzahl von Szenarien ausführen. Und die Dienstvirtualisierung ermöglicht es Ihnen, die Reaktionen Ihrer API auf eine Vielzahl von Abhängigkeitssicherheitsverhalten und in zahlreichen Angriffssituationen auszurichten.

Beispiele für die Durchführung von API-Tests

Hier sind zwei Beispiele für Situationen, in denen Sie API-Tests durchführen möchten.

Beispiel für eine Social-Media-App

Wenn eine Person eine App wie Instagram oder Twitter öffnet, fordert die App sie auf, sich anzumelden. Sie kann dies in der App selbst oder über Facebook oder Google tun.

Wenn der Benutzer eine dieser beiden Webquellen verwendet, hat die App eine Vereinbarung mit Facebook und Google, sodass die App auf einige der Informationen über den Benutzer zugreifen kann, die sie zuvor an die Quellen geliefert hat.

Tester können die APIs testen, die der App den Zugriff auf die benötigten Informationen ermöglichen. Der Tester kann auch testen, ob die Social-Media-App erfolgreich mit Facebook und Google zusammenarbeitet, um dem Benutzer Zugriff auf die App zu gewähren.

Beispiel für eine Reisebuchungs-App

Wenn eine Person einen Webservice wie Kayak oder Expedia verwendet, um Flugtickets zu buchen, erwartet sie, dass sie günstige Flüge für das gewünschte Datum sieht.

Die Reise-App muss mit den teilnehmenden Fluggesellschaften kommunizieren, um dem Reisenden die besten Flugzeiten und Preise anzuzeigen. APIs machen dies möglich.

Tester können testen, um sicherzustellen, dass die APIs, die der Reise-App die Möglichkeit geben, mit den Fluggesellschaften zu kommunizieren, korrekt funktionieren und dass die App dem Benutzer die richtigen Informationen liefert.

Die Tester können testen, um sicherzustellen, dass die APIs, die bei der Buchung des Fluges helfen, wie erwartet funktionieren, und die Zahlungskomponente überprüfen – der Tester kann die APIs testen, die es der App ermöglichen, mit Kreditkartenunternehmen zu kommunizieren und Zahlungen ordnungsgemäß abzuwickeln, und die APIs, die beibehalten werden die persönlichen und finanziellen Daten des Benutzers sicher.

Erste Schritte beim Testen von APIs

Das Testen von APIs konzentriert sich darauf, sicherzustellen, dass ein Entwicklungs- und QA-Team das tut, was es tun soll, und sicherzustellen, dass Anwendungen ordnungsgemäß funktionieren und funktionieren sowie zuverlässig und sicher sind.

Automatisierte API-Tests vermeiden menschliche Fehler und Plackerei und sind daher manuellen Tests weit überlegen. Um Fehler zu einem frühen Zeitpunkt im Softwareentwicklungslebenszyklus zu vermeiden, empfehlen wir, automatisierte API-Tests in Ihre Continuous Integration-Testpipelines zu integrieren.

Erhalten Sie Details und Anleitungen zur Auswahl der richtigen API-Testlösung für Ihr Unternehmen.

Schwarze Frau lächelt, als sie API-Tests auf ihrem Laptop durchführt.

Warum Parasoft?

Die API-Testplattform von Parasoft ist weithin als die beste ihrer Klasse anerkannt, mit innovativen Tools und breiter Unterstützung für über 120 Nachrichtenformate und -protokolle. Mit visuellen Drag-and-Drop-Tools können Benutzer die komplexesten Testszenarien erstellen, ohne eine einzige Codezeile schreiben zu müssen. Dinge wie Testablauflogik, komplexe Assertionen, Schleifen, Datensteuerung und Schlüsselwortzuordnung, wie BDD mit Cucumber, können alle mit minimaler technischer Erfahrung einfach erstellt werden.

Darüber hinaus können API-Testsuiten für nicht funktionale Validierungen wiederverwendet werden, einschließlich Last-, Leistungs- und API-Sicherheitstests. Dies erhöht die Anwendungsabdeckung und -qualität bei minimalem Nacharbeits- und Aufwand.

Arbeiten Sie mit Parasoft zusammen, um Ihre API-Tests zu verbessern.

Häufig gestellte Fragen