Erfahren Sie, wie die Continuous Quality Platform von Parasoft dabei hilft, Testumgebungen zu steuern und zu verwalten, um zuverlässig hochwertige Software zu liefern. Für Demo registrieren >>

BLOG

Ein Mikro-Manifest zum API-Testen, um Ihr Unternehmen zu inspirieren und aufzuladen

Ein Mikro-Manifest zum API-Testen, um Ihr Unternehmen zu inspirieren und aufzuladen Lesezeit: 6 Minuten
In diesem Beitrag erklärt Ed Kit, CEO des Gast-Blog-Autors Software Development Technologies, dass es Zeit für alle ist, die Notwendigkeit von API-Tests zu akzeptieren, und gibt uns 13 Tipps zur Inspiration, um die Energie dafür aufzubauen.

Nach 25 Jahren als Leiter vieler Softwareentwicklungsprojekte in kleinen und großen Fortune 200-Unternehmen bin ich zu einer großen Erkenntnis gekommen. API-Tests (Application Program Interface) sind wichtiger als UI-Tests (User Interface). In Manifestbegriffen, API-Tests über UI-Tests. Dies soll den Wert von UI-Tests nicht mindern - ich möchte Sie lediglich dazu inspirieren, das Element auf der linken Seite (API-Tests) mehr zu bewerten!

Wir können endlich die Produktivitätslücke bei API-Tests schließen und Entwicklungs- und Testteams die gleichen oder besseren Funktionen bieten, als sie mit UI- und Unit-Tests erlebt wurden. Es kann ein Vergleich zwischen API-Tests und UI-Tests durchgeführt werden, um zu kritisieren, inwieweit API-Tests innerhalb des gesamten Lebenszyklus produktiv durchgeführt werden. Jede Teststufe bietet einzigartige Herausforderungen, einzigartige Designansätze und einzigartige Tools. Aktuelle Erkenntnisse, Technologien, Schulungen und neue Dienste von Drittanbietern haben dies jedoch für API-Tests geändert.

Wir werden bald auf die wichtigen inspirierenden Fakten und Empfehlungen eingehen, aber zuerst hier ein kurzer Überblick darüber, warum API-Tests jetzt so wichtig sind.

API-Testübersicht

Anwendungen kommunizieren effizient und leistungsstark über eine gemeinsame Sprache oder Anwendungsprogrammschnittstelle miteinander. Das Testen auf API-Ebene ist ein kritischer Bestandteil des Testens technischer Software zwischen dem Testen der Benutzeroberfläche und dem Testen von Einheiten. Beim API-Test werden APIs direkt getestet, um festzustellen, ob sie die Erwartungen an Funktionalität, Zuverlässigkeit, Leistung und Sicherheit erfüllen. Wenn eine API nicht ausreichend getestet wurde und sich nicht wie gewünscht verhält, treten (möglicherweise sehr signifikante) Qualitäts-, Datenschutz- und Sicherheitsmängel auf.

Auf API-Ebene können wir Tests für Folgendes automatisieren:

  • SOA-Webdienste (XML, WSDL, SOAP, GZIP usw.)
  • RESTful-Webdienste (JSON, RAML, Swagger / Open API, WADL)
  • Microservices (Kafka, RabbitMQ, MQTT, WebSockets usw.)
  • Protokolle (HTTP, JMS, MQ, TCP / IP, SMTP, Tibco usw.)
  • SQL (JDBC, ODBC usw.)
  • Nachrichtenformate (Swift, EDI usw.)

Sound überwältigend? APIs testen ist technisch und kann sich daher zunächst etwas beängstigend anfühlen – das heißt, bis wir verstehen, worum es wirklich geht. Ich glaube, dass API-Tests die wichtigste Art von Tests sind, die in den meisten Organisationen routinemäßig unterdurchschnittlich durchgeführt wurden.

Die gute Nachricht ist, dass wir als Branche die API jetzt aus Testsicht betrachten - wir müssen uns nicht für RESTful oder SOAP entscheiden. Wir müssen nur die Informationen zu der zu testenden API aufdecken.

Als CEO eines Testunternehmens, das seit 25 Jahren im Geschäft ist und Trends beobachtet, freue ich mich, Ihnen mitteilen zu können, dass API-Tests jetzt die am häufigsten nachgefragte Testform in meinem Unternehmen, Software Development Technologies (SDT), sind. Dieses Jahr markiert tatsächlich einen Wendepunkt für SDT. Ich habe es nie vorhergesagt, aber nach 25 Jahren Bereitstellung aller möglichen Testdienste ist dies das erste Jahr, in dem wir mehr API-Tests für Kunden durchführen als jede andere Art von Tests.

Es mag offensichtlich klingen, aber da die Anwendungskommunikation auf API-Ebene erfolgt, ist dies die effizienteste Ebene, auf der Tests durchgeführt werden können. Die Tests, die auf API-Ebene entworfen, implementiert und ausgeführt werden, interagieren direkt mit den zugrunde liegenden APIs. Duh. Und doch testen so viele Teams keine APIs - manchmal ist das Ergebnis, dass der Kunde die Tests für uns durchführt, sehr zu ihrem Leidwesen.

Hier sind meine 13 Inspirationspunkte und Empfehlungen zu API-Tests, die ich unten kategorisiert habe.

API-Tests: Kritisch für den Kunden

1. Das Internet der Dinge (Internet of Things, IoT) berührt heute jeden und da die typische Benutzeroberfläche dort nicht existiert, sind API-Tests von entscheidender Bedeutung. API-Tests sind erforderlich, damit der IoT-Test gut ausgeführt werden kann.

2. Hacker greifen anfällige Software auf API-Ebene an, daher müssen Sicherheitstests auf API-Ebene durchgeführt werden. Wir schützen den Kunden, indem wir böswillige Penetrationsangriffstests usw. auf API-Ebene durchführen.

3. Mit Agile schlägt schnelles Feedback langsameres Feedback. API-Tests bieten schnelles Feedback, sodass der Kunde nicht auf eine qualitativ hochwertige Lieferung warten muss.

API-Tests: Entscheidend für die Effizienz des Lebenszyklus

4. API-Tests können früher im Entwicklungsprozess entworfen werden, bevor die Benutzeroberfläche bekannt ist. Das Testen gegen die Benutzeroberfläche dauert länger als das Testen auf API-Ebene. Wer kann sich die Verzögerungen beim Build-Zyklus aufgrund der längeren Ausführungszeit für UI-Tests leisten?

5. Wenn wir API-Testfälle vor den UI-Testfällen ausführen, können wir die nicht benötigten UI-Testfälle überspringen, die keinen Wert hinzufügen.

6. API-Tests sind weniger spröde als UI-Tests und halten daher Softwareänderungen im Laufe der Zeit besser stand.

7. API-Tests sind aufgrund ihres Fokus in der Regel einfacher zu debuggen.

8. Bei einer ausreichenden Anzahl von API-Tests sind weitaus weniger UI-Tests erforderlich. UI-Testfälle haben immer noch ihren wichtigen Platz.

9. API-Tests sind länger haltbar als UI-Tests. Wenn API-Tests eingerichtet wurden, bleiben diese in der Regel länger aktuell als UI-Tests. Dies liegt daran, dass die aktuellen Ansätze und Technologien langfristig zu wartbareren Lösungen führen.

10 Sie können API-Tests mit CI / CD / CT (Continuous Integration / Continuous Delivery / Continuous Testing) in Ihren Entwicklungsprozess integrieren - bei SDT verwenden wir normalerweise Jenkins.

API-Tests: Kritisch und richtig

11 Finden Sie den richtigen Eigentümer für Ihre API-Tests. In einer kürzlich durchgeführten Studie gaben 80% der Entwickler an, dass die Testorganisation für API-Tests verantwortlich ist, und 70% der Tester gaben an, dass die Entwicklungsorganisation für API-Tests verantwortlich ist! Klingt nach einem Witz - ist aber kein Witz.

In den meisten Organisationen ist es nicht realistisch zu erwarten, dass die Entwickler API-Tests besitzen. Wenn Ihre Entwickler dies übernommen haben und einen großartigen Job machen - fantastisch - lassen Sie sie es haben, aber meiner Erfahrung nach tun sie dies in den meisten Organisationen nicht jetzt und werden es nicht in Kürze tun. Ihr Teller ist voll - wenn sie Unit-Tests gut machen, seien Sie dankbar.

Vielleicht sollte das Testteam API-Tests besitzen, aber meine Erfahrung hat gezeigt, dass Tester nicht wissen, wie man APIs testet - technisch gesehen liegt dies weit über den Fähigkeiten und der Bandbreite der durchschnittlichen Person im durchschnittlichen Testteam.

Ziehen Sie eine Partnerschaft mit einem erfahrenen, unabhängigen Drittanbieter in Betracht, der auf API-Tests spezialisiert ist - jemand, der seine Fähigkeiten und Erfahrungen mit API-Tests und verwandten Technologien unter Beweis stellen kann. Ein Partner, der sich leidenschaftlich für API-Tests, den Prozess und die Technologie interessiert, kann das Test-Framework entwerfen und implementieren und Sie schnell einsatzbereit machen. Zumindest lohnt es sich, ein Gespräch mit einem potenziellen Partner zu führen, um den Wert zu ermitteln, den er auf den Tisch bringen kann.

12 Es ist wichtig, die richtigen Tools für API-Tests zu finden. API-Testtools waren in der Vergangenheit schwach, aber das wurde inzwischen behoben.

Mit manuellen Testtools können Sie mit API-Tests beginnen. Unsere SDT-Testdienstteams haben Postman für erste manuelle Tests verwendet, um die API zu erkunden und beim Design von API-Tests zu helfen. Manuelles Testen ohne Automatisierung ist jedoch eine Formel für Fehler. Wenn Sie dieselben Tests wiederholt manuell ausführen, werden die Anforderungen der heutigen agilen Welt nicht erfüllt und die Komplexität der heutigen Software nicht ausreichend abgedeckt.

Viele sind mit der Verwendung von Keyword-Tests für wichtige Testunternehmensherausforderungen vertraut, die mit Cloud, Web, Client / Server, Java, Mainframe, eingebetteten Geräten, Mobilgeräten und Desk verbunden sind. Dieser hervorragende Ansatz eignet sich jedoch auch für API-Tests!

Schlüsselwörter sind die grundlegenden, wiederverwendbaren Bausteine ​​für das schlüsselwortgesteuerte Testdesign. Ein Schlüsselworttestfall ist eine Folge von Schlüsselwörtern mit Parametern, und Schlüsselwörter definieren Aktionen, die Informationen von Anwendungselementen steuern oder abrufen. Ein übergeordnetes Keyword besteht normalerweise aus untergeordneten Keywords. Die Wiederverwendung von Schlüsselwörtern gewährleistet eine schnelle Testentwicklung und eine einfachere Wartung. APIs können ähnlich wie Schlüsselwörter als Bausteine ​​angesehen werden.

Das Open-Source-Tool Robot Framework fügt ein schlüsselwortgesteuertes Testfallparadigma hinzu, um eine signifikante Wiederverwendung von Artefakten (Schlüsselwörter auf niedriger Ebene, Schlüsselwörter auf hoher Ebene, Testfälle und Testsätze) und eine integrierte Bibliothek bereitzustellen, um den Aufwand für die Testentwicklung zu verringern und zu vereinfachen Instandhaltung.

So wie Selenium ein Plug-In für Robot Framework ist, das das Verhalten von Webanwendungen steuert und die Ergebnisse mithilfe einer umfangreichen Methodenbibliothek (Schlüsselwörter auf niedriger Ebene) überprüft, sind HTTPLibrary und die Anforderungsbibliothek Plug-Ins, die API-Tests steuern. Die Python-Sprache wird häufig verwendet, um benutzerdefinierte Schlüsselwörter auf niedriger Ebene zu erstellen.

13 Wenn Sie bereit sind, finden Sie wichtige Treiber, die signalisieren, dass es Zeit ist, eine Unternehmenslösung in Betracht zu ziehen.

In erster Linie geht es darum, eine höhere Testabdeckung für kompliziertere Anwendungsfälle zu erreichen, z. B. Nicht-SOAP- und REST-Schnittstellen, Microservices, ESBs oder Datenbanken. In dieser Reifephase suchen Unternehmen nach Testlösungen für Unternehmens-APIs. Wenn Sie für eine kommerzielle Lösung mit vollem Funktionsumfang für API-Tests bereit sind, lesen Sie SOAtest von Parasoft.  Parasoft SOAtest ist weithin als die führende Unternehmenslösung für API-Tests anerkannt und hilft Ihnen, die nächste Ebene des API-Tests zu erreichen, um über Technologien und Funktionen der nächsten Ebene zu skalieren.

Zusammenfassung

API-Tests erleben einen Anstieg, den UI-Tests bereits durchlaufen haben. Vielleicht ist API-Testen Ihre derzeit größte Chance zur Verbesserung der Softwarequalität. Sie möchten etwas Großartiges für Ihr Unternehmen tun? Nehmen Sie API-Tests in Angriff – seien Sie der Champion – nutzen Sie diesen Blog, um Ihre Argumente vorzubringen – schreiben Sie Ihr eigenes Mikro-Manifest für Ihr Unternehmen und lassen Sie mich wissen, wie es läuft. Ich meine es ernst – mailen Sie mir an kit@sdtcorp.com.

Verwandte Lektüre und Referenzen:

So wählen Sie die richtige API-Testlösung aus

Geschrieben von

Ed-Kit

Als internationaler Softwareführer mit über 25 Jahren Erfahrung in der Softwareentwicklung war Ed für die Einrichtung von Testautomatisierungs- und Kompetenzzentren für UGS / Siemens PLM-Software, Southwest Airlines, PepsiCo, den California State Compensation Insurance Fund, JC Penney, WellPoint und viele verantwortlich andere kleine sowie Fortune 500-Unternehmen. Patentinhaber für Software-Testautomatisierung und leidenschaftlicher Verfechter von API-Tests. Senior Manager einer großen Organisation, die für unabhängige Tests, Leistung, Systemtests, Software-Releases, Tools, Software-Engineering, Metriken, Schulungen und Qualität verantwortlich ist. Gründer und Präsident von Software Development Technologies (SDT), einem Unternehmen, das erstklassige praktische Testservices anbietet.

Erhalten Sie die neuesten Nachrichten und Ressourcen zum Testen von Software sofort.