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.
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.
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.
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:
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.
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:
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.