Kabel Kabel Kabel Kabel
API-Integrationen | API-Verwaltung

Überwindung häufiger Herausforderungen beim API-Testen

Herausforderungen beim API-Testen

Von Manoj Chaudhary, CTO und SVP of Engineering


Um die Funktionalität, Zuverlässigkeit und Sicherheit ihrer Anwendungsprogrammierschnittstellen (APIs) zu überprüfen, führen IT-Teams eine Reihe verschiedener Tests durch, darunter Funktions-, Governance-, Chaos-, Penetrations-, Leistungs-, Belastungs- und Langlebigkeitsbewertungen. Im Folgenden skizzieren wir häufige Herausforderungen, mit denen Teams bei der Durchführung dieser Tests konfrontiert sind, und bieten unsere Empfehlungen zu deren Bewältigung an.

Herausforderung: Durch die Ersteinrichtung kommen

Das Erstellen, Entwickeln und Einrichten einer Testinfrastruktur kann ein zeitaufwändiges Unterfangen sein, und es kann schwierig sein, Ihr Team während des gesamten Prozesses zu motivieren.

Unsere Empfehlung

Zu erklären, wie sich der Testprozess langfristig auszahlt, kann der Schlüssel zur Motivation eines Testteams sein. Es ist auch wichtig zu beachten, wie kritisch diese Phase beim API-Testen insgesamt ist. Denken Sie bei der Ersteinrichtung sorgfältig darüber nach, wie Sie die API testen und was diese Tests in Ihrem Infrastrukturdesign erfordern.

Herausforderung: Generierung und Verwaltung großer Testdatenmengen

APIs mit vielen Parametern erfordern eine erhebliche Datenmenge (und in einigen Fällen Daten mit hoher Kardinalität) für effektives Testen. Das Erstellen, Pflegen und Sicherstellen, dass diese Daten wiederverwendbar sind, kann für Tester eine Herausforderung darstellen.

Unsere Empfehlung

Der Schlüssel zum Generieren und Einrichten von Testdaten ist das Verständnis der Anforderungs- und Antwortstrukturen und der zugehörigen API-Aufrufe. Verwenden Sie Datenverwaltungstools, mit denen Sie diese Zusammenhänge verstehen können, und maskieren, generieren und unterteilen Sie dann neue Daten, die Ihren Testanforderungen entsprechen.

Herausforderung: Ziele für Governance-Tests klar verstehen

Entscheidend für APIs, die für Multi-Tenant-Cloud-Anwendungen entwickelt wurden, werden Governance-Tests durchgeführt, um die Infrastruktur vor Überbeanspruchung, lauten Nachbarn und Angriffen zu schützen. APIs haben in der Regel Governance-Regeln für ihre Verwendung (z. B. Speicherrichtlinien, Ratenbegrenzungen und Nutzlastgröße), aber ein Mangel an Wissen und Verständnis sowohl in Bezug auf die Logik der API-Architektur als auch auf diese Regeln führt häufig zu Unsicherheit über die Testziele.

Unsere Empfehlung

Erstellen Sie klar definierte und gut geschriebene Governance-Regeln; Erstellen Sie Dienstprogramme für Ihr Team, um sie nach Bedarf zu optimieren, um das Testen einfacher und effizienter zu gestalten.

Herausforderung: Chaostests effektiv durchführen

Im Jahr 2010 entwickelten die Entwicklungs- und Betriebsteams von Netflix diese Form des Testens, als sie damit begannen, die traditionelle Infrastruktur auf die Cloud-Infrastruktur von Amazon Web Services (AWS) zu verlagern. Chaostest, bzw Chaos-Engineering, ist ein hochgradig disziplinierter Ansatz, der die Systemintegrität testet, indem Fehler proaktiv simuliert und identifiziert werden, bevor sie zu ungeplanten Ausfallzeiten oder einer schlechten Benutzererfahrung führen. Der Prozess beinhaltet:

  • Testen, ob ein System in einem definierten stationären Zustand arbeitet. Zunächst müssen Tester eine messbare Systemausgabe identifizieren, die auf ein normales Arbeitsverhalten hinweist. Das Erstellen der Infrastruktur und der Tools zum Definieren und Messen eines stationären Zustands kann je nach Architektur und Umfang der beteiligten Anwendungen komplex sein.
  • Testen, um festzustellen, ob der stationäre Zustand eines Systems erhalten bleibt. Nachdem ein stationärer Zustand hergestellt wurde, bestimmen die Tester, ob er unter kontrollierten, experimentellen und realen Bedingungen fortgesetzt wird.
  • Testen auf minimale Auswirkungen auf Benutzer. Tester unterbrechen oder unterbrechen den Dienst, um negative Auswirkungen auf Benutzer zu ermitteln.
  • Chaos einführen. Nachdem festgestellt wurde, dass ein System in einem definierten stationären Zustand arbeitet, dass der stationäre Zustand hält und dass der „Explosionsradius“ begrenzt ist, führen Tester ihre Chaos-Testanwendungen aus, um zu sehen, wie sich das System unter bestimmten Stressbedingungen oder Umständen verhält (z. B. Serverabstürze, fehlerhafte Hardware oder unterbrochene Netzwerkverbindungen).

Unsere Empfehlung

Erstellen Sie Hooks in Ihrer Anwendung und Infrastruktur, die es Ihrem Testteam ermöglichen, Chaos zu stiften und auf einfache Weise relevante Metriken für den Explosionsradius zu erhalten.

Herausforderung: Engagieren des richtigen Teams für Penetrationstests

Beim Penetrationstest greift ein Tester mit begrenztem Arbeitswissen über die spezifische API diese an, um den Bedrohungsvektor aus einer externen Perspektive zu bewerten. Angriffe können auf die gesamte API oder bestimmte Funktionen und Prozesse abzielen.

Unsere Empfehlung

Ein internes Team kann anfängliche Penetrationstests durchführen, aber ein Penetrationstester eines Drittanbieters sollte die anschließenden tiefen Penetrationstests durchführen.

Habe Fragen? Wir sind hier um zu helfen.

Kontakt