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

Testen, wenn die API nicht bereit ist

Testen, wenn die API nicht bereit ist Lesezeit: 4 Minuten

Angesichts der Komplexität heutiger Anwendungen ist es leicht, in eine Situation zu geraten, in der nicht alle Teile Ihres Codes gleichzeitig bereit sind. Als Entwickler warten Sie möglicherweise darauf, dass eine API eines Drittanbieters aktualisiert wird, eine Partnerorganisation ihren Code fertigstellt oder andere Teams in Ihrer Organisation eine Komponente bereit haben, mit der Tests gestartet werden können. Dies kann den gesamten Release-Zeitplan Ihres Unternehmens beeinträchtigen, da die Tests gesichert werden und darauf gewartet wird, dass alle Teile fertig sind.

Die Service-Virtualisierung wurde unter diesem Gesichtspunkt entwickelt. Es bietet Entwicklungs- und Testteams uneingeschränkten Zugriff auf vollständige Testumgebungen, indem es die abhängigen Komponenten simuliert, die Ihnen sonst fehlen oder auf die Sie warten würden.

Das Schuldspiel

In einer agilen Umgebung können Entwickler gleichzeitig in der gesamten Codebasis an miteinander verbundenen Systemkomponenten arbeiten. Jeder Entwickler muss auf die Komponenten anderer Entwickler zugreifen, um seine eigenen Aufgaben zu erledigen. Oft stoßen wir auf eine Situation, in der ein Entwickler zu Beginn des Projekts Antworten von der Komponente oder API eines anderen Entwicklers benötigt - manchmal so früh, dass der andere Entwickler nicht einmal den Code erstellt hat, der aufgerufen wird. Dies bedeutet, dass einer oder beide Entwickler stecken bleiben, bis beide Codeteile fertig sind. In der Software nennen wir dies einen Deadlock.

Ich stehe häufig vor dieser Herausforderung, wenn ich Code schreibe. Mein Team arbeitet möglicherweise an einer Webanwendung, die kundenorientiert ist, und jeder Sprint enthält eine Reihe neuer User Stories, um Funktionen basierend auf Daten zu implementieren, die ich von einer REST-API erhalte. Und fast täglich stecke ich fest und kann meinen Anwendungscode nicht bearbeiten, da eine der APIs, auf die ich angewiesen bin, nicht funktioniert. Dies kann verschiedene Gründe haben, hat aber normalerweise damit zu tun, dass einer meiner Kollegen irgendwo in seinem Code einen Fehler einführt, während er an der API arbeitet.

Das große Problem dabei ist, dass ich mich an einer Frist befinde und mein Manager erwartet, dass ich diesen Code bis zum Ende des Sprints einhalte. Also muss ich normalerweise zum Schreibtisch meines Kollegen gehen und mit ihm den Code durchgehen, um die Herausforderung zu lösen, vor der er steht. (Das ist großartig ... wir arbeiten mit Entwicklern zusammen ... was für ein seltenes Ereignis!) Aber leider passiert tatsächlich, dass ich den größten Teil meiner Zeit damit verbringe, ihre Probleme zu debuggen, um mich selbst zu entsperren. Dies bedeutet, dass sie ihren Code pünktlich beenden, während ich dies nicht tue.

Das Warten auf den Zugriff auf abhängige Funktionen drosselt die Agilität. Wie soll ich unter diesen Bedingungen arbeiten? Die Antwort ist zu simulieren. Ich kann Service Virtualization verwenden, um mich von diesen Deadlocks zu befreien und schnell ein virtuelles Asset zu erstellen, das praktisch jedes erwartete Verhalten simuliert.

Verwenden der Service-Virtualisierung

ich werde benützen Parasoft Virtualisieren um Ihnen zu zeigen, wie das geht (was Sie jetzt mit der neuen Community Edition kostenlos nutzen können). Sie können die Simulation erstellen, ohne Skripte erstellen zu müssen - entweder in der GUI oder aus einer Definitionsdatei wie WSDL. In den frühen Phasen der API-Entwicklung ist die WSDL oder das Schema möglicherweise nicht verfügbar, und dem Entwickler steht möglicherweise nur eine Beispielantwort zur Verfügung. Mit Virtualize ist dies mehr als genug, um loszulegen. Ich nehme einfach das Antwortobjekt und füge es in einen Responder ein. Ich kann dann einen Schalter umlegen und das Tool erstellt im laufenden Betrieb ein Schema. Dies ist sehr nützlich, da ich mich nicht um das Senden der richtigen Nutzdaten kümmern muss. Wenn sich die Daten ändern, stellt Virtualize sicher, dass die Nutzdatenstruktur bei jedem Senden einer Antwort konsistent bleibt. Dies macht die Simulation der Reaktion sehr einfach. Der Endpunkt wird automatisch eingerichtet und ist immer verfügbar. Ich muss mich nur darauf konzentrieren, welche Daten die neue Antwort senden soll. Mit Virtualize können Sie auch verschiedene Nachrichtenformate wie XML, JSON und verschiedene Legacy-, Finanz-, Gesundheits- und andere domänenspezifische Formate visuell modellieren.

Es hat große Vorteile, auf diese Weise mit einer simulierten Antwort zu arbeiten, von denen die wichtigste die Zeit ist. Eine einfache Serviceantwort kann in wenigen Minuten eingerichtet werden, anstatt tagelang darauf zu warten, dass der eigentliche Service verfügbar ist. Auf diese Weise kann ich sofort mit der Arbeit beginnen, Antworten zur Entwicklung entwickeln und sofort die Auswirkungen auf den neuen Code erkennen. Dies hilft mir, intelligenter und schneller zu codieren, da Bedingungen, die normalerweise nicht vorhersehbar sind, sofort getestet werden können und die Funktion in Echtzeit angepasst werden kann.

Das ist genau das, was ich tue, um mich aus diesem Wartezyklus zu befreien. Wenn eine der Back-End-APIs ausfällt, verwende ich die Dienstvirtualisierung, um die Reaktion zu simulieren. Ich kann jede beliebige Nutzlast einfügen, und ich weiß, dass sie korrekt ist, weil ich eine Definition verwendet habe. Ich bin auch zuversichtlich, dass es mir die richtigen Daten liefern wird, weil ich die Kontrolle habe. Mit dieser Technologie kann ich meine Fristen einhalten.

 

Geschrieben von

Chris Colosimo

Als Produktmanager bei Parasoft strategisiert Chris die Produktentwicklung der Funktionstestlösungen von Parasoft. Seine Expertise in der SDLC-Beschleunigung durch Automatisierung hat ihn zu wichtigen Unternehmensbereitstellungen wie Capital One und CareFirst geführt.

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