Parasoft-Logo

Was ist Service-Virtualisierung? Ein vollständiger Leitfaden

Zum Abschnitt springen

Übersicht

Die Dienste, die Ihre Anwendung aufruft, stehen möglicherweise nicht zum Testen zur Verfügung, wenn Sie sie benötigen. Service-Virtualisierung erstellt stabile virtuelle Dienste, die das Original replizieren.

Was ist Service-Virtualisierung?

Servicevirtualisierung ist eine Funktion des Softwaretests, die die Abhängigkeiten einer Anwendung emulieren kann. DevOps-Teams können computergenerierte Simulationen von Serviceabhängigkeiten anstelle realer Abhängigkeiten verwenden, um häufig und frühzeitig zu testen und in verschiedenen Situationen Kosten zu senken. Dazu gehören fehlende Schlüsselkomponenten des verteilten Systems, beispielsweise wenn abhängige Komponenten nicht zugänglich sind, die Skalierung von Trainingsumgebungen und die Erstellung von Onboarding-Szenarien für Partner.

Die Verwendung virtueller Dienste zu Testzwecken ist kostengünstiger als die Verwendung von Produktionsumgebungen für diese Zwecke. API-Tests mit Endpunktsimulation eliminieren das Risiko von Datenverlusten, vermeiden die Verwendung der teuren Server, die das eigentliche Programm für den Betrieb benötigt, und ermöglicht dem Unternehmen, auf überhöhte Lizenzgebühren zu verzichten. Dies führt zu schnellen, genauen und weniger umständlichen Testverfahren.

Teams können die Servicevirtualisierung in automatisierte Testverfahren für die kontinuierlichen Integrationstests integrieren, die DevOps-Workflows erfordern.

Warum ist Service-Virtualisierung wichtig?

Unternehmen profitieren in vielerlei Hinsicht von der Implementierung der Servicevirtualisierung für Softwaretests.

Abwärtspfeil-Symbol blau

Reduzieren oder eliminieren Sie Testausfallzeiten

Service-Virtualisierung gewährleistet kontinuierliches, unterbrechungsfreies Testen, da sie nicht verfügbare oder instabile Abhängigkeiten simuliert. Fällt ein Live-Service während des Tests aus, läuft die Testautomatisierung weiter, während Testfälle für den virtualisierten Service ausgeführt werden. Dies reduziert Fehler im Spätstadium und verhindert Release-Verzögerungen durch Umgebungsprobleme.

Aufwärtstrend-Pfeilsymbol blau

Steigern Sie die Entwicklungsproduktivität

Service-Virtualisierung ermöglicht parallele Entwicklung und dedizierte virtuelle Testumgebungen. Dadurch können Teams unabhängig von externen Abhängigkeiten arbeiten und Einschränkungen durch gemeinsam genutzte Testumgebungen vermeiden, was die Testzyklen beschleunigt.

Teamwork-Symbol

Beschleunigen Sie die Ressourcenbereitstellung

Teams optimieren Ressourcenmanagement und Testprozesse mit virtuellen Umgebungen, die sich schnell klonen, teilen, bereitstellen und bei Bedarf wieder löschen lassen. Sie sparen Zeit, Aufwand und Kosten, die bei der Einrichtung und Wartung von Live-Testumgebungen entstehen.

Zeit- und Kostensymbol blau

Reduzieren Sie Kapital- und Betriebskosten

Durch die Virtualisierung von Komponenten entfällt der Bedarf an mehreren physischen Umgebungen, was die Infrastruktur- und Testkosten senkt. Außerdem entfallen Gebühren für den Zugriff auf bestimmte Drittanbieter-Abhängigkeiten während des Tests.

Beschleunigen Sie den Stromschlag-Symbol blau

Beschleunigen Sie die Markteinführung

Frühzeitiges und häufiges Testen mit Service-Virtualisierung führt zu einer schnelleren Problemlösung und verkürzten Entwicklungszyklen. Dadurch bringen Unternehmen Produkte schneller auf den Markt..

Lösungen Zahnrad mit Häkchen-Symbol blau

Verbessern Sie die Softwarequalität

Service-Virtualisierung unterstützt häufige und umfassende Tests während der gesamten Entwicklung und verbessert so die Softwarequalität. Die Möglichkeit, Fehlerszenarien in virtuellen Umgebungen zu simulieren, hilft, Probleme frühzeitig zu erkennen und zu beheben und so bessere Software-Releases zu erzielen.

Möglichkeiten zur Nutzung der Service-Virtualisierung

Es gibt mehrere Bereiche, in denen die Servicevirtualisierung zur Verbesserung der Produktivität genutzt werden kann.

Agile/parallele Entwicklung

Bei modernen Softwarepraktiken arbeiten mehrere Betriebsteams getrennt an Teilen der Umgebung und führen sie dann über APIs zusammen, um das Endprodukt zu bilden. Wenn sie auf den Zugriff auf einen Teil der Anwendung warten, können DevOps-Teams Service-Virtualisierung verwenden, um diese fehlenden Teile zu simulieren, damit sie ihre Anwendungsentwicklung fortsetzen können.

Performance Testing

Service-Virtualisierung unterstützt Leistungstests durch die Simulation abhängiger Systeme, die in realen Umgebungen möglicherweise nicht verfügbar, kostspielig oder schwer skalierbar sind. Sie ermöglicht Teams die Erstellung stabiler, vorhersehbarer virtueller Dienste, die verschiedene Leistungsbedingungen wie Latenz, Durchsatz und Fehlerszenarien replizieren können. So können Tester Leistungsengpässe frühzeitig im Entwicklungszyklus identifizieren und das Verhalten der Anwendung unter unterschiedlichen Belastungen validieren.

Testdatenverwaltung

Unternehmen verfügen über riesige Datenmengen, die einen Großteil ihrer Interaktionen mit ihren Kunden, beispielsweise einer Bank, ausmachen. Diese Informationen können PII (persönlich identifizierbare Informationen) wie Sozialversicherungsnummern enthalten. Es ist nicht angemessen, Testern für ihre Zwecke Zugriff auf echte Produktionsdatenquellen zu gewähren. Die Service-Virtualisierung gibt Testteams die Möglichkeit, Daten synthetisch zu generieren, beispielsweise richtig formatierte und maskierte Sozialversicherungsnummern, die sie dann zum Testen von Funktionalitäten verwenden können.

Angestellten Training

Unternehmen können Service-Virtualisierung nutzen, um Mitarbeiter in einer Anwendung zu schulen, die sie täglich verwenden. Dadurch wird verhindert, dass die Auszubildenden in der tatsächlichen Produktionsversion der Software, die mit mehreren komplizierten Anwendungen verbunden sein kann, trainieren müssen, und sie daran hindern, sensible Daten zu ändern oder zu löschen.

Partner-Onboarding

Unternehmen stellen Kunden oder Geschäftspartnern häufig APIs zur Verfügung, einschließlich Testumgebungen, um eine einfache Integration zu ermöglichen. Die Wartung dieser Testumgebungen für Partner ist wie bei jeder anderen Umgebung mit Kosten verbunden. Die Service-Virtualisierung ist eine hervorragende Technik, um Partnern Zugriff auf Sandbox-Umgebungen Ihrer APIs zu bieten, damit sie einfacher und kostengünstiger integriert werden können.

Best Practices für die Service-Virtualisierung

Es gibt mehrere Bereiche, in denen die Servicevirtualisierung zur Verbesserung der Produktivität genutzt werden kann.

  • Virtualisieren Sie nur das, was wichtig ist.
    Sie müssen weder das gesamte noch einen großen Teil des tatsächlichen Systemverhaltens, das Sie virtualisieren, selbst erstellen. Sie müssen nur die wesentlichen Transaktionen implementieren. Versuchen Sie nicht, Ad-hoc-Anfragen zu emulieren. Wenn Sie aufgrund fehlerhafter Eingaben auf einen fehlerhaften Testfall stoßen, können Sie eine virtualisierte Transaktion generieren, die diesen repliziert.
  • Erkennen Sie die Testfälle, die Sie unterstützen.
    Integrieren Sie Verhaltensweisen erst dann in Ihren virtuellen Dienst, wenn Sie verstanden haben, wie die Testfälle mit ihnen interagieren. Ihr Testplan sollte genau beschreiben, welche Transaktionen in die Virtualisierung einbezogen werden sollen. Bestimmen Sie anhand des Testplans, welche Transaktionen Sie virtualisieren.
  • Testen Sie das richtige System.
    Stellen Sie sicher, dass Sie Testszenarien erstellen, die das zu testende System validieren, nicht die Servicevirtualisierung. Simulieren Sie eine ideale Replik der abhängigen Komponente. Gleichzeitig sollte die Virtualisierung intelligent genug sein, um dem Client die Ausführung eines Workflows zu ermöglichen. Beispielsweise muss der virtuelle Dienst bei UI-Tests für eine Bank lediglich die korrekte Darstellung einer Abhebung oder Einzahlung abdecken – eine Überprüfung des Kontostands ist nicht erforderlich.

Beispiel für Datenvirtualisierung

Ein E-Commerce-Unternehmen entwickelt ein neues Auftragsmanagementsystem und integriert mehrere APIs von Drittanbietern für Zahlungsabwicklung, Versand und Bestandsverwaltung. Während des Integrationstests benötigt das QA-Team realistische Testdaten, die verschiedene Auftragsszenarien darstellen, darunter auch Sonderfälle wie nicht vorrätige Artikel, Teillieferungen und fehlgeschlagene Zahlungen. Die Verwendung von Produktionsdaten wirft jedoch Datenschutzbedenken auf. Zudem führt die Abstimmung mit externen Partnern zur Schaffung der richtigen Testbedingungen zu erheblichen Verzögerungen.

Mithilfe der Service-Virtualisierung simuliert das Team die abhängigen Dienste und generiert synthetische Testdaten, die reale Transaktionen widerspiegeln – ohne Zugriff auf vertrauliche Produktionsdaten zu benötigen.

Sie nutzen aufgezeichneten Datenverkehr, um automatisch Datenmodelle und Einschränkungen abzuleiten und generieren anschließend vielfältige Datensätze, die ein breites Spektrum an Szenarien abdecken. JSON-basierte Nachrichten werden mit intuitiven, baumbasierten Ansichten verwaltet, und die Datenmaskierung gewährleistet die Einhaltung des Datenschutzes. Da jedes Team seine eigenen Testdatensätze unabhängig erstellen und verwalten kann, werden Tests nicht mehr durch Datenbereitstellung verzögert oder durch Testdatenverschmutzung beeinträchtigt. Dies beschleunigt die Release-Zyklen und verbessert gleichzeitig die Testabdeckung und -qualität.

Grafik zum Vergleich des Workflows ohne Service-Virtualisierung und mit Service-Virtualisierung

Erste Schritte mit Service-Virtualisierung

Service-Virtualisierung ist ein leistungsstarkes Tool zur Simulation von Abhängigkeiten beim Testen und Entwickeln von Software. So können Sie loslegen:

  1. Verstehen Sie die Grundlagen. Bei der Servicevirtualisierung werden virtuelle Versionen von Komponenten wie APIs, Datenbanken oder Diensten von Drittanbietern erstellt. Dies ermöglicht Ihnen Tests und Entwicklungen, ohne auf die tatsächlichen Systeme angewiesen zu sein.
  2. Wählen Sie das richtige Werkzeug. Es stehen verschiedene Tools mit einzigartigen Funktionen zur Verfügung. Wählen Sie das Tool aus, das den Anforderungen Ihres Teams entspricht.
  3. Richten Sie Ihre Umgebung ein. Installieren Sie das ausgewählte Tool und konfigurieren Sie es so, dass es die benötigten Dienste emuliert. Sie können beispielsweise virtuelle Assets und Responder erstellen, um bestimmte Verhaltensweisen zu simulieren.
  4. Definieren Sie Szenarien. Identifizieren Sie die Szenarien, die Sie testen möchten. Dies können nicht verfügbare Dienste, langsame Reaktionen oder bestimmte Fehlerbedingungen sein.
  5. Integrieren Sie es in Ihren Arbeitsablauf. Integrieren Sie Service-Virtualisierung in Ihre Entwicklungs- und Testprozesse. Dies unterstützt die kontinuierliche Integration und frühzeitige Tests.
  6. Lernen und experimentieren. Viele Tools bieten Tutorials und Anleitungen. Parasoft Virtualize bietet beispielsweise Schritt-für-Schritt-Anleitungen zum Erstellen virtueller Dienste.

Tools zur Dienstvirtualisierung

Es gibt zwei verschiedene Arten von Service-Virtualisierungstools.

  1. Leichte Werkzeuge. Kostenlose Open-Source-Tools wie Traffic Parrot und Mockito bieten Einsteigern eine einfache und spontane Möglichkeit, die Vorteile der Service-Virtualisierung zu erkunden. Teams setzen sie häufig für spezifische Projekte ein. Diese leichtgewichtigen Lösungen bieten jedoch meist nur eingeschränkte Funktionen und sind für nicht-technische Anwender wenig benutzerfreundlich. Obwohl sie zunächst kostenlos sind, werden sie bei langfristiger Nutzung aufgrund des Wartungs- und Anpassungsbedarfs oft teuer.
  2. Unternehmenstools. Virtualisierungstools der Enterprise-Klasse bieten leistungsstarke Funktionen für Power-User und unterstützen die Teamzusammenarbeit sowie die nahtlose Integration in CI/CD-Pipelines. Diese Lösungen bewältigen hohe Datenmengen bei gleichbleibender Leistung und eignen sich daher ideal für DevOps-Umgebungen. Sie sind zwar leistungsfähiger als kostenlose Alternativen, erfordern aber Investitionen. Daher sollten Teams ihre Anforderungen vor der Einführung sorgfältig prüfen.

So wählen Sie das richtige Service-Virtualisierungstool aus

So wählen Sie am besten eine für Ihr Unternehmen geeignete Servicevirtualisierungslösung aus:

  1. Untersuchen Sie die verschiedenen Fähigkeiten, die Ihr Team möglicherweise benötigt.
  2. Identifizieren Sie Lösungen, die diese Funktionen beinhalten.
  3. Denken Sie über zukünftige Leistungsanforderungen nach.
Unser

Skriptlose Funktionen

Ermöglicht die Erstellung virtueller Dienste ohne Programmierkenntnisse oder die automatische Generierung virtueller Dienste aus Verkehrsaufzeichnungen. Tester und andere Nichtentwickler, die mit der Implementierung von Diensten nicht vertraut sind, können virtuelle Dienste leicht verstehen, erstellen und teilen. Dies ermöglicht eine schnellere Einführung, verbessert die Teamzusammenarbeit und ermöglicht eine breitere Nutzung.

Schnelle Erstellung virtueller Dienste, bevor der reale Dienst verfügbar ist

Die Entwicklung virtueller Dienste parallel zu realen Diensten ermöglicht eine parallele Entwicklung und verhindert asynchrone Agile-Prozesse. Um dies zu erreichen, ist es wichtig, nach Lösungen zu suchen, die die Erstellung virtueller Dienste aus Servicedefinitionsdateien unterstützen. Dies ermöglicht Teams, Tests nach links zu verschieben, indem sie einen virtuellen Dienst der noch nicht entwickelten Abhängigkeit erstellen, die in ihrem Test-Workflow benötigt wird.

Intelligente Antwortkorrelation

Ermöglicht virtuellen Diensten, je nach eingehenden Anfragen unterschiedlich zu reagieren. Dadurch wird sichergestellt, dass das Serviceverhalten präzise und dynamisch auf spezifische Anfragen zugeschnitten ist. Zu den verschiedenen Arten der Antwortkorrelation, die berücksichtigt werden müssen, gehören:

  • Bereitstellungskorrelation, um sicherzustellen, dass jeder virtuelle Dienst nur die für ihn bestimmten Nachrichten verarbeitet, indem Nachrichten zwischen verschiedenen Listenern wie HTTP und Kafka unterschieden werden.
  • Nachrichtenkorrelation zum Weiterleiten von Nachrichten an die entsprechende Antwortlogik basierend auf Mustern, z. B. der Unterscheidung zwischen Vorgängen zum Hinzufügen eines Kontos und Aktualisieren eines Kontos.
  • Datenquellenkorrelation zur Generierung dynamischer Antworten abhängig von den Schlüsselinformationen in der Anfrage. Beispielsweise können auf verschiedene Kundenkonten unterschiedliche Antworten gegeben werden.

Entkoppeln Sie Daten von Respondern für dynamische virtuelle Dienste

Erhöhen Sie die Flexibilität der Virtualisierung durch die Abstraktion der Logik von den Daten. Dadurch können virtuelle Dienste eine Verbindung zu verschiedenen Datenquellen wie Excel, CSV und Live-Datenbanken herstellen und Echtzeitabfragen durchführen. Dies ermöglicht dynamische und sich ständig weiterentwickelnde Reaktionen.

Möglichkeit zur Wiederverwendung von Diensten

Fördert die Zusammenarbeit zwischen Teams, fördert den Konsens über wichtige Serviceverhaltensweisen und spart Aufwand, indem gemeinsame Serviceverhaltensweisen einmal simuliert und für mehrere virtuelle Dienste wiederverwendet werden.

Ein benutzerdefiniertes Erweiterungsframework

Unterstützt mehrere Skriptsprachen wie Java, Python, JavaScript und Groovy, um unterschiedlichen Kenntnissen und Präferenzen gerecht zu werden. Darüber hinaus bietet es Erweiterbarkeit für neue Nachrichtenformate und Protokolle, sodass Unternehmen sich effizient an Branchenstandards oder benutzerdefinierte Implementierungen anpassen können.

Unterstützung für Authentifizierung und Sicherheit

Validiert die Sicherheit der Transportschicht, beispielsweise SSL-Zertifikate. Es unterstützt außerdem verschiedene Authentifizierungsmechanismen wie OAuth, Basic Auth und Kerberos. Darüber hinaus verhandelt und emuliert es die Sicherheit der Nachrichtenschicht, einschließlich Nutzlastverschlüsselung, SAML und Signaturen. Diese Funktionen gewährleisten realistische virtuelle Dienste und helfen, Mängel in Authentifizierungs- oder Sicherheitsmechanismen zu identifizieren.

Konfigurierbare Leistungsumgebungen

Ermöglicht präzise Leistungstests durch die Emulation von Abhängigkeiten außerhalb des Anwendungsbereichs. Virtuelle Dienste ermöglichen frühere Leistungstests, ohne sich ausschließlich auf vollständige Umgebungen verlassen zu müssen. Lösungen sollten anpassbare Leistungsverzögerungen unterstützen – sowohl statische als auch dynamische, beispielsweise eine Leistungsverlangsamung bei zunehmender Nutzung.

Unser

Skriptlose Funktionen

Ermöglicht die Erstellung virtueller Dienste ohne Programmierkenntnisse oder die automatische Generierung virtueller Dienste aus Verkehrsaufzeichnungen. Tester und andere Nichtentwickler, die mit der Implementierung von Diensten nicht vertraut sind, können virtuelle Dienste leicht verstehen, erstellen und teilen. Dies ermöglicht eine schnellere Einführung, verbessert die Teamzusammenarbeit und ermöglicht eine breitere Nutzung.

Schnelle Erstellung virtueller Dienste, bevor der reale Dienst verfügbar ist

Die Entwicklung virtueller Dienste parallel zu realen Diensten ermöglicht eine parallele Entwicklung und verhindert asynchrone Agile-Prozesse. Um dies zu erreichen, ist es wichtig, nach Lösungen zu suchen, die die Erstellung virtueller Dienste aus Servicedefinitionsdateien unterstützen. Dies ermöglicht Teams, Tests nach links zu verschieben, indem sie einen virtuellen Dienst der noch nicht entwickelten Abhängigkeit erstellen, die in ihrem Test-Workflow benötigt wird.

Intelligente Antwortkorrelation

Ermöglicht virtuellen Diensten, je nach eingehenden Anfragen unterschiedlich zu reagieren. Dadurch wird sichergestellt, dass das Serviceverhalten präzise und dynamisch auf spezifische Anfragen zugeschnitten ist. Zu den verschiedenen Arten der Antwortkorrelation, die berücksichtigt werden müssen, gehören:

  • Bereitstellungskorrelation, um sicherzustellen, dass jeder virtuelle Dienst nur die für ihn bestimmten Nachrichten verarbeitet, indem Nachrichten zwischen verschiedenen Listenern wie HTTP und Kafka unterschieden werden.
  • Nachrichtenkorrelation zum Weiterleiten von Nachrichten an die entsprechende Antwortlogik basierend auf Mustern, z. B. zur Unterscheidung der Vorgänge „Konto hinzufügen“ und „Konto aktualisieren“.
  • Datenquellenkorrelation zur Generierung dynamischer Antworten abhängig von den Schlüsselinformationen in der Anfrage. Beispielsweise können auf verschiedene Kundenkonten unterschiedliche Antworten gegeben werden.

Entkoppeln Sie Daten von Respondern für dynamische virtuelle Dienste

Erhöhen Sie die Flexibilität der Virtualisierung durch die Abstraktion der Logik von den Daten. Dadurch können virtuelle Dienste eine Verbindung zu verschiedenen Datenquellen wie Excel, CSV und Live-Datenbanken herstellen und Echtzeitabfragen durchführen. Dies ermöglicht dynamische und sich ständig weiterentwickelnde Reaktionen.

Möglichkeit zur Wiederverwendung von Diensten

Fördert die Zusammenarbeit zwischen Teams, fördert den Konsens über wichtige Serviceverhaltensweisen und spart Aufwand, indem gemeinsame Serviceverhaltensweisen einmal simuliert und für mehrere virtuelle Dienste wiederverwendet werden.

Ein benutzerdefiniertes Erweiterungsframework

Unterstützt mehrere Skriptsprachen wie Java, Python, JavaScript und Groovy, um unterschiedlichen Kenntnissen und Präferenzen gerecht zu werden. Darüber hinaus bietet es Erweiterbarkeit für neue Nachrichtenformate und Protokolle, sodass Unternehmen sich effizient an Branchenstandards oder benutzerdefinierte Implementierungen anpassen können.

Unterstützung für Authentifizierung und Sicherheit

Validiert die Sicherheit der Transportschicht, beispielsweise SSL-Zertifikate. Es unterstützt außerdem verschiedene Authentifizierungsmechanismen wie OAuth, Basic Auth und Kerberos. Darüber hinaus verhandelt und emuliert es die Sicherheit der Nachrichtenschicht, einschließlich Nutzlastverschlüsselung, SAML und Signaturen. Diese Funktionen gewährleisten realistische virtuelle Dienste und helfen, Mängel in Authentifizierungs- oder Sicherheitsmechanismen zu identifizieren.

Konfigurierbare Leistungsumgebungen

Ermöglicht präzise Leistungstests durch die Emulation von Abhängigkeiten außerhalb des Anwendungsbereichs. Virtuelle Dienste ermöglichen frühere Leistungstests, ohne sich ausschließlich auf vollständige Umgebungen verlassen zu müssen. Lösungen sollten anpassbare Leistungsverzögerungen unterstützen – sowohl statische als auch dynamische, beispielsweise eine Leistungsverlangsamung bei zunehmender Nutzung.

Zusätzlich zu den oben genannten Funktionen sollten Sie optimierte Arbeitsabläufe und unterstützte Technologien evaluieren.

Optimierte Workflows

  • Automatische Erstellung und Wartung virtueller Dienste
  • KI-gestützte Asset-Erstellung
  • Testdatenverwaltung und -generierung
  • Datenwiederverwendung
  • Failover zum Live-System
  • Emulation von zustandsbehaftetem Verhalten

Angebotene Technologien

  • REST-API-Virtualisierung
  • SOAP-API-Virtualisierung
  • Asynchrones API-Messaging
  • MQ/JMS-Virtualisierung
  • IoT und Microservice-Virtualisierung
  • Datenbankvirtualisierung
  • Webseitenvirtualisierung
  • Dateiübertragungsvirtualisierung
  • Mainframe und feste Länge
  • EDI-Virtualisierung
  • FIX, Swift und andere Protokolle

Siehe den Wert von Parasoft Virtualize

Entdecken Sie den potenziellen ROI, den Ihr Unternehmen mit der Service-Virtualisierungslösung von Parasoft erzielen könnte.

Berechnen Sie Ihre Ersparnisse »

Abstraktes Bild eines Kreisdiagramms und Analysen zur Demonstration von Parasoft Jtest
Rechteckiges Bannerbild mit überwiegend dunkelblauer Farbe und abgewinkelter Ecke in Standardblau. In der oberen rechten Ecke befindet sich eine Collage aus Parasoft-Produktsymbolen für DTP, C/C++test, CTP, Jtest, Selenic, Insure++, C/C++test CT, dotTEST, Virtualize und SOAtest.

Verbessern Sie Ihre Softwaretests mit Parasoft-Lösungen.

Demo anfordern