Eine Programmierschnittstelle (engl. Application Programming Interface, API) ist ein Programmteil eines Softwaresystems, mithilfe dessen Dienste und Anwendungen miteinander interagieren können. Die API bildet die Schnittstelle, die den Datenverkehr zwischen verschiedenen Hardware- und Softwaresystemen ermöglicht.
Eine App für mobiles Banking verwendet beispielsweise eine API, um auf die Kamera Ihres Telefons zuzugreifen, sodass Sie ein Foto von einem Scheck machen und diesen per Fernzugriff auf Ihr Konto einzahlen können.
Ohne APIs wären die nahtlosen digitalen Interaktionen, von denen wir jeden Tag auf unseren Computern, Smartphones, Fernsehern und anderen Geräten profitieren, nicht möglich.
Was sind API-Tests?
Mit einem API-Test können Entwickler bestimmen, ob APIs die Anforderungen in Sachen Funktionalität, Leistung, Zuverlässigkeit und Sicherheit erfüllen. Ziel ist es, Fehler und andere unerwartete Verhaltensweisen zu finden, damit Ihre Benutzer kein mangelhaftes oder unsicheres Produkt erhalten. Sie müssen sicherstellen, dass Sie APIs veröffentlichen, die effizient und effektiv funktionieren, sonst werden sie nicht eingesetzt.
Allerdings sind API-Tests meist nicht so einfach, wie es sich anhört. APIs nutzen üblicherweise Protokolle und Standards, mit denen Sie im Normalfall nicht arbeiten. Diese Protokolle und Standards sind nötig, damit verschiedene Plattformen, Anwendungen und Systeme miteinander kommunizieren können. Sie müssen also nicht nur die Funktionalität einer API testen, sondern auch ihre Leistung, Sicherheit und das Zusammenspiel aller Komponenten, um eine zuverlässige Schnittstelle zu schaffen.
Warum sollten Sie Schnittstellen Testen?
APIs helfen uns, unsere tägliche Arbeit zu erledigen, wichtige Informationen zu finden und vieles mehr. API-Aufrufe machen 83 % des gesamten Datenverkehrs im Internet aus, so der State of the Internet Report von Akamai. Da APIs für den Alltag Ihrer Benutzer so wichtig sind, sollte das Testen aus den folgenden Gründen hohe Priorität haben:
- Sprachunabhängigkeit: APIs nutzen Formate wie XML und JSON für den Datenaustausch. Dadurch sind sie sprachunabhängig, sodass Sie jede beliebige Sprache zur Erstellung von Testautomatisierungen verwenden können.
- GUI-Unabhängigkeit: APIs können ohne Benutzeroberfläche getestet werden, um die Kernfunktionen der Anwendung zu überprüfen und Fehler zu finden.
- Verbesserte Testabdeckung: Die APIs enthalten Funktionen, mit denen Sie Automatisierungsskripte mit größerer Abdeckung erstellen können.
- Geringere Testkosten: Das Testen von APIs hilft Ihnen, kleine Fehler in den Kernfunktionen zu finden, bevor sie in der GUI getestet werden. Diese kleinen Fehler können während des GUI-Tests zu großen Problemen führen. Wenn Sie diese Fehler also schon beim API-Test finden und beheben können, sparen Sie dadurch Zeit und Geld.
- Schnellere Produktfreigabe: API-Tests benötigen in der Regel nur einen Bruchteil der Zeit, die für vollständige UI-Regressionstests erforderlich ist. So können Fehler schneller und effizienter gefunden und behoben und neue Builds schneller veröffentlicht werden.
- Feststellung der ordnungsgemäßen Funktion der APIs: Durch den Test können Sie sicherstellen, dass die API das tut, was Sie von ihr erwarten.
- Gewährleistung der Kapazität der APIs: Führen Sie die Tests mit dem Datenverkehr durch, den Ihre APIs voraussichtlich bewältigen können. Auf diese Weise können Sie simulieren, dass mehrere Benutzer gleichzeitig Anfragen stellen, um zu sehen, wie robust Ihre Anwendung ist.
- Überprüfung der Kompatibilität: Ihr Test sollte sicherstellen, dass Ihre API mit allen Geräten, Browsern und Betriebssystemen funktioniert.
- Antizipation von Benutzerfehlern: Durch das Testen können Sie mögliche Fehlerquellen vonseiten Ihrer Benutzer aufdecken. Mithilfe dieser Informationen können Sie diesen Fehlern vorbeugen und Ihren Entwurf verbessern.
Sie möchten mehr über die Entwicklung einer API erfahren? Dann lesen Sie „So bauen Sie eine API.“
So führen Sie einen API-test durch
Wie bei den meisten Technologieprojekten gilt: Kein API-Test ohne Plan. Ein Plan hilft Ihnen, Ihre Ziele festzulegen und zu bestimmen, wie Sie diese erreichen können. Hier haben wir ein paar Tipps für Sie, wie Sie am besten in den Testprozess einsteigen:
- Machen Sie sich die Anforderungen bewusst: Dokumentieren Sie die Anforderungen an die API und beantworten Sie die folgenden Fragen:
- Was ist der Zweck der API?
- Welches Zielpublikum wollen Sie erreichen?
- Auf welche Probleme testen Sie?
- Was ist das gewünschte Ergebnis?
- Was sind die Features und Funktionen der API?
- Wie sieht der Workflow der Anwendung aus?
- Welche Integrationen unterstützt die API?
- Welche Testprioritäten gibt es?
- Richten Sie Ihre Testumgebung ein: Richten Sie auf der Grundlage der Anforderungen an die API Ihre Testumgebung ein. Konfigurieren Sie den Server und die Datenbank, um die Anforderungen der Anwendung zu erfüllen. Rufen Sie dann die API auf, um sicherzustellen, dass alles richtig konfiguriert ist und kein Fehler auftritt, bevor Sie mit den eigentlichen Tests beginnen.
- Wählen Sie die Testtools für Ihre Api aus: Sofern Sie nicht vorhaben, alles manuell zu testen, brauchen Sie ein Testtool, das Sie bei der Strukturierung und Verwaltung Ihrer Testfälle unterstützt.
- Entscheiden Sie, welche Arten von Tests Sie durchführen wollen: Wenn Sie Ihre Testumgebung eingerichtet haben und sicher sind, dass alles funktioniert, müssen Sie entscheiden, worauf Sie Ihre API testen wollen.
Welche Arten von Tests können Sie an Ihrer API durchführen?
Die Art des Tests hängt davon ab, was Sie testen wollen. Wenn Sie beispielsweise Features und Funktionen testen möchten, können Sie einen Funktionstest durchführen.
Es gibt eine Vielzahl an verschiedenen Arten von Tests, aus denen Sie wählen können:
- Funktionstest: Testet verschiedene Funktionen in der Codebasis. Die Tests stellen bestimmte Szenarien dar, um zu gewährleisten, dass die Funktionen der API innerhalb der geplanten und erwarteten Parameter funktionieren.
- Zuverlässigkeitstest: Bei dieser Art von Test wird überprüft, ob die API während einer bestimmten Zeitspanne in einer bestimmten Umgebung ohne Ausfälle funktioniert.
- Lasttest: Mit diesem Test wird die Leistung der API unter normalen und Spitzenbedingungen überprüft.
- Sicherheitstest: Wird verwendet, um sicherzustellen, dass die API vor externen Bedrohungen geschützt ist. Die Tests umfassen Verschlüsselungsmethoden, Zugriffskontrolle der API, Benutzerrechteverwaltung und Autorisierungsvalidierung.
- Test der UI: Testet die Benutzeroberfläche der API. Der Fokus liegt hierbei mehr auf der Schnittstelle, die an die API gebunden ist, als auf dem Test der API selbst. Tests der UI geben Ihnen einen Überblick über den Zustand und die Benutzerfreundlichkeit im Front- und Backend.
- Negativtest: Der Zweck des Negativtests ist es, zu sehen, was passiert, wenn die App ungültige oder unbeabsichtigte Eingaben erhält. Dabei versuchen Sie herauszufinden, was das System zum Zusammenbrechen bringt, damit Sie angemessenere Antworten entwickeln können. Die Eingabe eines Buchstabens in ein Zahlenfeld beispielsweise sollte eine Warnmeldung auslösen und nicht zum Absturz der Anwendung führen.
- Validierungstest: Mit dieser Art von Tests wird überprüft, ob die API korrekt entwickelt wurde und ob alles funktioniert.
Manueller API-Test vs. automatisierter API-Test
Das manuelle Testen ist ein sehr aktiver Prozess, bei dem ein Profi für QS jeden einzelnen Test der Reihe nach durchführt. Die Tester sind an jedem Teil des Prozesses beteiligt, von der Erstellung der Testfälle bis zur Durchführung. Sie validieren Features, suchen nach Fehlern und schreiben Fehlerberichte ohne Automatisierungstools.
Das manuelle API-Testen ist zeitaufwändiger und kann mühsam sein. Die Automatisierung erlaubt dagegen mehr Testfälle, verbessert die Testabdeckung und ist generell effizienter.
Warum sollten Sie manuell testen?
Beim manuellen Testen liegt ein stärkerer Fokus auf dem Testprozess. Indem Sie Ihre Tests manuell erstellen und durchführen, haben Sie eine differenziertere Kontrolle über den Test. Außerdem sinkt das Risiko für falsch negative Testergebnisse, die zu einer Menge an zusätzlicher Arbeit führen können, bis die gemeldeten Fehler als wahr oder falsch identifiziert sind.
Folgende Arten von Tests sollten Sie manuell durchführen:
- Explorative Tests
- Benutzerfreundlichkeitstests
- Tests der UI
- Ad-hoc Tests
Außerdem sollten Sie manuell testen, wenn Sie kleine Veränderungen untersuchen wollen. Schon die kleinste Veränderung macht es erforderlich, für einen automatisierten Test einen neuen Code zu schreiben, was am Ende zeitaufwändiger sein kann als ein schneller manueller Test.
Warum sollten Sie automatisiert testen?
Der größte Vorteil von automatisierten API-Tests, dass Sie in kürzerer Zeit mehr Tests durchführen können. So lässt sich die Produktivität steigern und das Testen wird effizienter. Schnellere Tests führen zu schnelleren Korrekturen, was wiederum zu einer schnelleren Produktfreigabe führt.
Folgende Arten von Tests sollten Sie manuell durchführen:
- Funktionstests
- Lasttest
- Leistungstests
- Validierungstests
- Dynamische Tests
- Datengesteuerte Tests
- Fehlertests
- Mehrsprachige Tests
- Regressionstests
Welche Best Practices gibt es für API-Tests?
Während Sie explorative und Tests der UI manuell durchführen sollten, empfiehlt sich für die meisten API-Tests eine Automatisierung. Hier haben wir einige der Best Practices für automatisierte Tests. Diese können Ihnen helfen, die Tests zu optimieren, mehr Tests in kürzerer Zeit durchzuführen, Geld zu sparen und ein qualitativ hochwertigeres Produkt zu veröffentlichen.
Dokumentieren Sie alles
Der Erfolg Ihrer Tests kann davon abhängen, wie gut Sie Ihre Geschäftsanforderungen und Testfälle definieren. Die meisten Ihrer APIs haben keine grafische Benutzeroberfläche, auf die Sie verweisen können. Daher ist eine Dokumentation, in der jedes Feld und die zugehörigen Parameter klar beschrieben sind, unerlässlich. Tester verweisen auf die Dokumentation, um sicherzustellen, dass alle erforderlichen Anwendungsfälle abgedeckt sind.
Außerdem müssen Sie detaillierte, umfassende Testberichte erstellen, in denen die Gründe für das Scheitern von Tests dokumentiert sind. Diese Berichte erleichtern es den Entwicklern, präzise die Bereiche zu bestimmen, die behoben werden müssen.
Nutzen Sie den Ansatz „DRY“
Der Ansatz „Don't repeat yourself“ (DRY) soll Wiederholungen im Code vermeiden. Wenn der Code für Komponenten und Aktionen in mehreren APIs genutzt werden kann, legen Sie ihn in einer gemeinsamen Bibliothek ab, wo er von allen Elementen, die ihn benötigen, problemlos abgerufen werden kann.
Fangen Sie mit den kleinen APIs an
Gehen Sie den Aufbau einer Testroutine in aller Ruhe an, indem Sie mit einfachen APIs anfangen, die nur einen oder zwei Eingaben haben (z. B. eine API für dS Login). Indem Sie sich zunächst auf die kleinen APIs konzentrieren, können Sie langsam Vertrauen entwickeln und sicherstellen, dass Ihre Testumgebung funktioniert, bevor Sie die größeren Schnittstellen testen.
UML-Diagramme können bei der Visualisierung des Informationsflusses in Ihrer API hilfreich sein.
Mehr erfahrenÜber Lucidchart
Lucidchart, eine Cloud-basierte Anwendung für intelligente Diagrammerstellung, ist eine Kernkomponente der visuellen Kollaborationssuite von Lucid Software. Mit dieser intuitiven, Cloud-basierten Lösung können Teams in Echtzeit zusammenarbeiten, um Flussdiagramme, Mockups, UML-Diagramme, Customer Journey Maps und mehr zu erstellen. Lucidchart unterstützt Teams dabei, die Zukunft schneller zu gestalten. Lucid ist stolz darauf, dass Spitzenunternehmen auf der ganzen Welt seine Produkte nutzen, darunter Kunden wie Google, GE und NBC Universal sowie 99 % der Fortune 500. Lucid arbeitet mit branchenführenden Partnern wie Google, Atlassian und Microsoft zusammen. Seit seiner Gründung wurde Lucid mit zahlreichen Preisen für seine Produkte, Geschäftspraktiken und Unternehmenskultur gewürdigt. Weitere Informationen finden Sie unter lucidchart.com.