Mit Service-Virtualisierung jederzeit und überall testen
Entwicklungs- und Testteams stehen bei der Validierung ihrer Anwendungen vor Herausforderungen, da ihre nachgelagerten Abhängigkeiten instabil sind. Fehlende Testdaten, Einschränkungen durch Drittanbieter und Infrastrukturkosten können dazu führen, dass externe Dienste für Tests nicht mehr zur Verfügung stehen. Nicht erreichte Testabdeckungsziele verursachen Engpässe, die die Anwendungsqualität beeinträchtigen und zu Defekten im Spätzyklus oder Produktionsausfällen führen.
Durch die Erweiterung Ihrer Testumgebung mit simulierten Diensten können Teams schneller entwickeln und früher testen – umfassender. Wenn Evaluieren von Service-Virtualisierungslösungenist es wichtig, mehrere Faktoren für eine erfolgreiche Bereitstellung und einen ROI zu berücksichtigen. In dieser Sitzung besprechen wir wichtige Funktionen und Fähigkeiten, die sich bei virtuellen Bereitstellungen als erfolgreich erwiesen haben.
Der Engpass instabiler Testumgebungen
Softwaretests sind komplex. Denken Sie an das Testen eines einfachen Wasserhahns – Sie benötigen Wasser, Rohre und ein komplettes Sanitärsystem. Auch das Testen einer einzigen API erfordert oft die Einrichtung des gesamten Systems, einschließlich interner und externer Dienste, Datenbanken und Altsysteme. Dies kann kostspielig und zeitaufwändig sein.
Stellen Sie sich vor, Sie versuchen, einen Wasserhahn ohne Wasser zu testen. Das geht nicht. In der Software bedeutet dies, dass Ihr Test abgebrochen wird, wenn ein abhängiger Dienst nicht verfügbar oder instabil ist. Dies ist ein häufiges Problem, insbesondere bei Microservices, bei denen verschiedene Teams unterschiedliche Komponenten verwalten. Wenn diese Dienste nicht verfügbar oder aktuell sind, stößt Ihr End-to-End-Test an seine Grenzen.
Häufige Probleme sind:
Nichtverfügbarkeit von Diensten von Drittanbietern: Verlassen Sie sich auf externe Dienste (wie Zahlungsabwickler oder Validierungsdienste), die möglicherweise keine zuverlässigen Sandboxen haben oder von vielen Teams gemeinsam genutzt werden, was zu Ausfallzeiten führt.
Probleme mit der Datenkontrolle: Selbst wenn Sie Dienste simulieren können, kann die Kontrolle der Testdaten und die Simulation von Randfällen schwierig sein. Die Daten werden möglicherweise nicht mit Ihrer Testautomatisierung synchronisiert.
Nichtübereinstimmung der Abhängigkeitskadenz: In Microservices-Architekturen arbeiten verschiedene Teams in unterschiedlichem Tempo. Wenn Sie nicht auf die neuesten Versionen abhängiger Dienste zugreifen können, werden Ihre Tests blockiert.
Bereitschaft zum Leistungstesten: In Testumgebungen fehlen möglicherweise ausreichend Daten oder eine realistische Latenz, was Leistungstests behindert.
Die Servicevirtualisierung behebt diese Probleme, indem sie Ihnen die Erstellung simulierter Versionen dieser Abhängigkeiten ermöglicht und Ihnen so die Kontrolle über deren Verhalten und Daten gibt.
Cox Automotive und DealerTrack standen aufgrund des enormen Umfangs ihrer angebotenen Dienstleistungen vor einer Vielzahl von Herausforderungen. Ihr System unterstützt das gesamte Autohändlernetzwerk vom ersten Kundenkontakt bis zur Fahrzeugauslieferung. Aufgrund der Komplexität hatten selbst kleine Änderungen erhebliche Auswirkungen, beeinträchtigten die Testmöglichkeiten und führten zu Produktionsfehlern.
Ihr Ziel war es, die Anzahl der entgangenen Defekte auf weniger als 5 % zu reduzieren. Sie arbeiteten mit Parasoft zusammen, um Implementieren Sie Service-VirtualisierungDer Ansatz umfasste:
Steigerung der Testproduktivität: Erstellen Sie virtuelle Dienste, um Abhängigkeiten zu simulieren, ihnen mehr Kontrolle zu geben und Verfügbarkeitsbeschränkungen zu beseitigen.
Testautomatisierung aktivieren: Sicherstellen, dass Tests jederzeit ausgeführt werden können, indem bei Instabilität der Live-Dienste automatisch auf virtuelle Dienste umgeschaltet wird.
Ausfallzeiten reduzieren: Minimieren von Testverzögerungen durch Abhängigkeitsausfälle.
Die Ergebnisse waren signifikant: Die Testgründlichkeit wurde gesteigert, das Ziel der Reduzierung von versteckten Defekten wurde erreicht, die Systemverfügbarkeit für Tests erreichte 99.97 % und die Testausfallzeiten wurden um über 50 % reduziert.
Bei der Auswahl einer Service-Virtualisierungslösung ist es wichtig, sowohl aktuelle Anforderungen als auch zukünftiges Wachstum zu berücksichtigen. Lösungen lassen sich im Allgemeinen in zwei Kategorien einteilen:
Leichte Werkzeuge: Diese sind oft Open Source (wie WireMock oder Traffic Parrot) und eignen sich gut für einfache Anwendungsfälle und einen schnellen Einstieg. Ihre Wartung und Skalierung kann jedoch kostspielig werden, da sie häufig erhebliche interne Anpassungen erfordern und es an Anbieterunterstützung mangelt.
Unternehmenstools: Diese bieten Herstellersupport, verarbeiten ein breiteres Spektrum an Protokollen und komplexen Anwendungsfällen und sind für groß angelegte Bereitstellungen konzipiert. Parasoft fällt in diese Kategorie.
Schnelle Erstellung virtueller Dienste: Die Möglichkeit, schnell virtuelle Assets zu erstellen, idealerweise durch Importieren von Definitionsdateien (Swagger, OpenAPI) oder durch Aufzeichnen des Datenverkehrs, ist für die anfängliche Einführung von entscheidender Bedeutung.
Umfang der Technologieunterstützung: Suchen Sie nach Unterstützung, die über das grundlegende HTTP/REST hinausgeht, einschließlich verschiedener Protokolle (MQ, TCP), Nachrichtenformate (JSON, XML, Copybook) und neuer Technologien (IoT, Microservices).
Allgemein zugängliche Architektur: Für die unternehmensweite Einführung benötigen Sie eine Möglichkeit, virtuelle Dienste konsistent zu verwalten, zu orchestrieren und bereitzustellen. Dazu gehören Funktionen wie zentrale Verwaltung, rollenbasierter Zugriff und die Integration in CI/CD-Pipelines.
Änderungsmanagement: APIs und Daten ändern sich. Eine gute Lösung sollte dabei helfen, diese Änderungen effizient zu verwalten, beispielsweise durch automatisiertes Refactoring auf Basis aktualisierter Definitionen oder indem Teams ihre eigenen Testdaten unabhängig verwalten können.
Key Take Away
Die Servicevirtualisierung hilft dabei, Herausforderungen im Zusammenhang mit instabilen, nicht verfügbaren oder unkontrollierbaren Testumgebungen zu bewältigen.
Es behebt Probleme mit Abhängigkeiten von Drittanbietern, Datenkontrolle und nicht übereinstimmenden Entwicklungsrhythmen.
Cox Automotive konnte die Testeffizienz mithilfe der Servicevirtualisierung von Parasoft deutlich verbessern und Fehler reduzieren.
Berücksichtigen Sie bei der Auswahl einer Lösung die einfache Erstellung, die Technologiebreite, die Architektur für den Zugriff und die Änderungsverwaltungsfunktionen.
Konzentrieren Sie sich sowohl auf die aktuellen Anforderungen als auch auf die zukünftige Skalierbarkeit, um den Return on Investment zu maximieren.
Erste Schritte mit der Service-Virtualisierung
Um Ihre Servicevirtualisierungspraxis effektiv zu skalieren und ihren Wert zu maximieren, sollten Sie diese vier Bereiche berücksichtigen:
Erstellung virtueller Vermögenswerte: Ermöglichen Sie Ihrem Team, schnell und einfach virtuelle Dienste zu erstellen.
Breite der Technologie: Wählen Sie eine Lösung, die Ihren aktuellen und zukünftigen Technologie-Stack unterstützt.
Architektur für Zugriff und Bereitstellung: Stellen Sie sicher, dass virtuelle Dienste in Ihrem gesamten Unternehmen problemlos abgerufen und bereitgestellt werden können.
Änderungsmanagement: Implementieren Sie Prozesse, um virtuelle Dienste auf dem neuesten Stand zu halten, ohne Ihre Teams zu belasten.
Letztendlich hilft die Servicevirtualisierung, indem sie die Verfügbarkeit und Verhaltenssimulation (einschließlich Leistung) verbessert, die Kosten senkt und die Kontrolle über die Daten ermöglicht.