Softwaretest

Die besten API-Testtools

23. Mai 2022, 6:00 Uhr | Grigori Trofimov
putilov_denis/stock.adobe.com
Über eine kontinuierliche Überwachung lassen sich Probleme frühzeitig erkennen.
© putilov_denis/stock.adobe.com

Testtools für Application Programming Interfaces (APIs) beinhalten alles von Sicherheitstests bis zu Funktionstests. Da die Softwareentwicklung immer mehr APIs einbezieht, ist die Automatisierung der Tests entscheidend. Die auf dem Markt befindlichen Testtools sollten die Anforderungen erfüllen.

Um ein möglichst breites Spektrum an Daten zu erfassen, ist der Einsatz von Tools oder einem integrierten Tool für den Test von APIs (Application Programming Interfaces), das alle verschiedenen Anforderungen des Entwicklungsteams erfüllt, am besten. Zudem sollten die Testtools über eine CI/CD-Integration (Continuous Integration/Continuous Delivery) verfü- gen, den Testern effektives Arbeiten ermöglichen und in verschiedene Testszenarien passen. Die Wiederverwendbarkeit der Testtools für verschiedene Aspekte eines Projekts ist nicht nur kosteneffizient, sondern rationalisiert den Testprozess.

Anbieter zum Thema

zu Matchmaker+

APIs versus Plug-ins

Eine API ist eine Schnittstelle zur Programmierung von Applikationen, über die Anwendungen miteinander kommunizieren und interagieren können, indem sie definierte Regelsätze verwenden (Bild 1). Sie bearbeiten bestimmte Anfragetypen und definieren drei Teile dieser Anfragen und ihre erwarteten Antworten.

Parasoft
Bild 1: Eine API definiert als Schnittstelle zwischen Anwender und Applikation oder zwischen zwei Applikationen, wie Daten ausgetauscht und welche Funktionen ausgeführt werden können.
© Parasoft

Datenformate.

Die Art und Weise, wie Anfragen von Benutzern oder der Anwendung gestellt werden.

Regeln oder Prozesse, denen die Antworten folgen müssen.

APIs unterscheiden sich von Plug-ins in ihrer Funktionsweise. APIs definieren eher, wie Komponenten mit Systemen interagieren können, als dass sie als Zusatz zu bestehendem Code fungieren, der eine Funktion oder ein Merkmal verändern kann.

REST, SOAP und mehr

Die API-Standards für den Informationsaustausch REST (Representational State Transfer) und SOAP (Single Object Access Protocol) haben verschiedene Zwecke (Tabelle 1), aber bei den API-Arten gibt es noch mehr Unterschiede:

  • Offene/öffentliche APIs sind von jedem Unternehmen oder Entwickler nutzbar, verlangen in der Regel eine Autorisierung und/oder Authentifizierung und können eine Monetarisierung beinhalten.
  • Interne APIs sind private Programme, die in der Regel Daten und Systeme innerhalb eines Unternehmens verbinden, z. B. Personalwesen oder Lohnbuchhaltung.
  • Partner-APIs sind lizenzierte APIs, die in bestimmten Fällen verwendet werden müssen, etwa in B2B-Systemen.
  • Zusammengesetzte APIs kombinieren mehrere APIs, um voneinander ab-hängige Vorgänge zu erstellen und so die Leistung oder Geschwindigkeit zu verbessern.

 

Parasoft
Vergleich der wichtigsten Eigenschaften von SOAP und REST
© Parasoft

Zusätzlich gibt es die Protokolle JSON-RPC (JavaScript Object Notation – Re-mote Procedure Call) und XML-RPC (Extensible Markup Language – Remote Procedure Call), die eine andere Codierung verwenden, was durch das Sprachpräfix angezeigt wird. Beide erfordern unterschiedliche Testkataloge, aber auch unterschiedliche Toolsets.

Begriffe wie »Testing Restful«, »Rest Client«, »SOAP APIs« oder »REST API Testing« beziehen sich alle auf diese. Allerdings reichen REST-Tests und grundlegende API-Funktionen nicht aus, wenn es um API-Entwicklung und API-Verwaltung geht. Datengesteuerte Tests sind ein Muss, ebenso wie Automatisierungstests.

Bevor festlegt wird, welche API-Testtools benötigt werden, sollte geklärt sein, welche Tests Priorität brauchen. Dies kann von Team zu Team unterschiedlich sein, da sich das Testen von Webanwendungen vom Testen mobiler Geräte und anderen unterscheidet.

Arten von API-Tests

HTTP-Anfragen als ein Schlüsselsegment der Tests sollte jeder Entwickler kennen. Da jedoch offene APIs weit verbreitet sind und viele Systeme auch Partner-APIs verwenden, sind Sicherheitstests bei den gängigen Arten von API-Tests von größter Bedeutung.

Mit Testtools können Entwickler Dutzende von API-Aspekten überprüfen, von einfachen Funktionen bis hin zu den wichtigsten Sicherheitsmaßnahmen. API-Tests müssen variantenreich sein und kontinuierlich durchgeführt werden, damit sie effektiv funktionieren – von Syntaxfehlern und anderen Javascript-Problemen bis hin zur Verfeinerung von firmeneigenen Codes. Für APIs eignen sich viele verschiedene Tests, beispielsweise:

  • Statische API-Sicherheitstests überprüfen den Quellcode von Anwendungen, um in der statischen Analyse potenzielle Bedrohungsvektoren zu finden. Diese Tests suchen nach Mustern im Code, die zu Sicherheitsverletzungen führen könnten. Sie erfordern statische Testtools, die sprachabhängig sind.
  • Validierungstests finden in den letzten Phasen des Arbeitsablaufs statt und prüfen, ob eine API in Bezug auf Effizienz, Produkt und Verhalten wie erwartet funktioniert.
  • Dynamische API-Sicherheitstests sind Testabläufe, bei denen ein realer Angriff simuliert wird, um Risiken zu ermitteln. Diese können von Open-Source-Elementen oder von internem Code ausgehen.
  • User-Interface-Tests bieten Einblicke in die Endnutzerperspektive, um die Kohärenz von Backend und Frontend sicherzustellen.
  • Funktionstests überprüfen API-Funktionen in bestimmten Situationen, um die erwarteten Ergebnisse sicher zu erzielen.
  • Penetrationstests finden zu einem späteren Zeitpunkt des Arbeitsablaufs statt, wenn Nicht-Experten eine API überprüfen, um Schwachstellen zu entdecken.
  • Belastungstests finden statt, nachdem die gesamte oder ein Teil der Codebasis ausgeführt wurde. Dabei werden Funktionsumfang und Leistung der Anwendung unter idealen und nicht idealen Bedingungen überprüft.
  • Fuzz-Testing prüft, wie ein System mit übermäßig vielen, zufällig generierten Daten umgehen kann, um den schlimmsten Fall zu testen.
  • Fehler- und Laufzeittests prüfen die Funktion einer API anhand einer universellen Codebasis, um Fehler und Ressourcenlecks zu finden oder für das Monitoring.
  • Sicherheitstests prüfen, wie eine API vor Bedrohungen von außen geschützt ist, wie die Zugriffskontrolle gestaltet ist, welche Verschlüsselungsstrategien es gibt und wie die Autorisierung/Authentifizierung erfolgt.
  • Software Composition Analysis (SCA) überprüft den Abhängigkeitsbaum einer Anwendung und gleicht ihn mit einer Datenbank für Sicherheitsrisiken ab. Werden Sicherheitsrisiken gefunden, erfolgt ein Alarm an das Entwicklerteam, damit sie das Problem beheben.

Es ist lohnenswert alle verfügbaren Testarten zu nutzen, um eine robuste API zu gewährleisten. Schließlich müssen die Testwerkzeuge mehr können als nur Debugging oder Standardleistungstests.


  1. Die besten API-Testtools
  2. Allgemeine Merkmale der API-Testtools

Verwandte Artikel

Parasoft, Parasoft Corp.