Empfohlenes Webinar: MISRA C++ 2023: Alles, was Sie wissen müssen | Zum Video

Kontinuierlich testen mit Service-Virtualisierung

Die Dienste, die Ihre Anwendung aufruft, stehen möglicherweise nicht für Lasttests zur Verfügung, wenn Sie sie benötigen. Die Dienstvirtualisierung erstellt stabile virtuelle Dienste, die die Realität nachbilden.

Was ist Service-Virtualisierung?

Dienstvirtualisierung ist eine Funktion von Softwaretests, die die Abhängigkeiten einer Anwendung emulieren kann. Es ermöglicht DevOps-Teams, computergenerierte virtuelle Dienste anstelle von echten zu verwenden, sodass sie häufig und frühzeitig testen und die Kosten in verschiedenen Situationen senken können. Dazu gehören wichtige Teile des verteilten Systems, die fehlen: zum Beispiel, wenn auf abhängige Komponenten nicht zugegriffen werden kann, die Skalierung von Schulungsumgebungen und das Erstellen von Partner-Onboarding-Szenarien.

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.

Integrieren Sie Service-Virtualisierung in automatisierte Testverfahren für die Continuous Integration-Tests, die DevOps-Workflows erfordern.

Die Vorteile der Service-Virtualisierung

Um die Vorteile von Agile- und DevOps-Initiativen zu nutzen, benötigen Teams sofortigen und uneingeschränkten Zugriff auf ihre Testumgebung. Von Anwendung von Service-Virtualisierung In Testumgebungen können Organisationen die Abhängigkeit von nicht verfügbaren, instabilen oder kostspieligen Abhängigkeiten wie Drittanbieterdiensten, Datenbanken und Mainframes reduzieren oder eliminieren.

Erhalten Sie jederzeit Zugriff

Greifen Sie auf die abhängigen Dienste zu, mit denen Ihre Anwendung interagieren muss, um genaue und gründliche Tests durchzuführen, auch wenn diese zum Testzeitpunkt nicht verfügbar oder unvollständig sind.

Service-Abhängigkeiten isolieren

Wenn Sie nicht auf den entsprechenden Dienst zugreifen können, sind die zugehörigen Abhängigkeiten ebenfalls eine Blackbox. Die Dienstvirtualisierung untersucht das tatsächliche Verhalten und repliziert solche gegenseitigen Abhängigkeiten im virtuellen Äquivalent, um genaue Antworten zu liefern.

Stellen Sie die Teststabilität sicher

Unvollständige oder instabile Dienste können zu Fehlern und Verzögerungen beim Testen führen. Ein virtuelles Äquivalent ist stabiler und bietet zuverlässige Automatisierung und Sicherheit beim Testen.

Nutzen Sie skriptfreie Tools

Tester müssen keine komplizierten Skripte schreiben. Skript- und codelose Tools ermöglichen auch unerfahrenen Testern die Teilnahme. Für den gelegentlichen Fall, in dem Skripterstellung erforderlich ist, unterstützt Parasoft eine Vielzahl von Programmiersprachen.

Reproduzieren Sie das Verhalten in der realen Welt genau

Die Dienstvirtualisierung von Parasoft untersucht die tatsächlichen Aufrufe der Anwendung an Live-Dienste, um Anforderungen und Antworten in der virtuellen Version genau zu modellieren. Zur besseren Korrelation kann auch eine Dienstdefinition angewendet werden.

Führen Sie Negativ- und Kantenfalltests effektiv durch

Es ist schwierig, einen abhängigen Dienst absichtlich schlecht zu verhalten, aber diese Extreme müssen für genaue Tests berücksichtigt werden. Parasoft stellt sicher, dass der virtuelle Dienst eine Vielzahl von Testbedingungen für gründlichere Tests erfüllt.

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

Verwenden Sie Service-Virtualisierung, um sicherzustellen, dass Ihre Anwendung die volle Kapazität verarbeiten kann, die für Reaktionszeiten mit hoher Nachfrage, wie z. B. Weihnachtsverkäufe, benötigt wird. Oftmals entsprechen die Kosten für die Aufrechterhaltung einer Live-Performance-Umgebung fast denen der Produktionsumgebung eines Unternehmens. Durch den Einsatz von Service-Virtualisierung können Unternehmen die Abhängigkeiten der getesteten APIs simulieren und die Kosten für Leistungstests erheblich senken.

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

Beachten Sie die erforderliche Dienstvirtualisierung.

Sie müssen nicht das gesamte oder auch nur einen Großteil des tatsächlichen Systemverhaltens erstellen, das Sie virtualisieren; Sie müssen nur die wesentlichen Transaktionen durchführen. Versuchen Sie nicht, Ad-hoc-Anfragen zu emulieren. Wenn Sie aufgrund einer fehlerhaften Eingabe auf einen fehlerhaften Testfall stoßen, können Sie eine virtualisierte Transaktion generieren, die ihn repliziert.

Erkennen Sie die Testfälle, die Sie unterstützen.

Nehmen Sie Verhaltensweisen nur in Ihren virtuellen Dienst auf, nachdem Sie verstanden haben, wie die Fälle mit ihnen interagieren. Ihr Testplan sollte genau beschreiben, welche Transaktionen in die Virtualisierung einbezogen werden sollen. Lassen Sie den Testplan steuern, welche Transaktionen Sie virtualisieren werden.

Testen Sie das richtige System.

Stellen Sie sicher, dass Sie Testszenarien erstellen, die das zu testende System validieren, nicht die Dienstvirtualisierung. Simulieren Sie eine ideale Nachbildung der abhängigen Komponente. Gleichzeitig sollte die Virtualisierung intelligent genug sein, um den Client einen Workflow finalisieren zu lassen. Beispielsweise muss der virtuelle Dienst beim UI-Testen für eine Bank nur die korrekte Darstellung einer Auszahlung oder Einzahlung abdecken; keine Notwendigkeit, den Kontostand zu überprüfen.

Jedes Team sollte seine eigenen virtuellen Dienste entwickeln.

Jedes Team hat seine individuellen Anforderungen und wenn es seine eigenen Versionen von virtuellen Assets erstellt, entsteht kein Schaden, wenn eine gewisse Redundanz auftritt. Der Versuch, Dienstvirtualisierungen zu erstellen, die mehrere Teams verwenden müssen, erzeugt nur einen weiteren eingeschränkten Dienst. Best Practice besteht darin, dass das Team, das den realen Service entwickelt hat, auch den virtuellen Service erstellt, da es über die lokale Expertise verfügt.

Verwenden Sie keine zufälligen Antworten.

Zufällige Antworten führen nicht zu einem duplizierbaren Funktionstest. Wenn Sie die von einer bestimmten Anfrage erhaltenen Daten variieren müssen, erstellen Sie am besten einen sich nicht ändernden Antwortsatz für eine Gruppe vergleichbarer Eingaben. Variieren Sie stattdessen die Verkehrsverteilung mit zufälligen Eingaben.

Vermeiden Sie Datenüberlastungen.

Das Abgleichen mehrerer Transaktionsanforderungen mit exakt derselben Antwort bedeutet einen hohen Wartungsaufwand. Passen Sie beispielsweise nur die letzte Ziffer einer Kontonummer an. Das Zuordnen mehrerer eindeutiger Kontonummern zu einer einzelnen Transaktion behebt das Problem des Cachings von Datenbanken für Leistungstests.

Stellen Sie sicher, dass Ihre Anwendung Fehler behebt.

Die meisten Testpläne haben weniger positive Testabdeckungsszenarien und mehr negative. Dies hilft, wenn Entwickler Ausnahmen erkennen. Sie können Fehlersituationen in einem engen Testfall leichter erkennen als in systemweiten Situationen.

Lassen Sie den Verbraucher die virtuellen Dienste erstellen.

Verbraucher verstehen die Verhaltensweisen, auf die sie sich verlassen. In einer normalen SOA-Umgebung (serviceorientierte Architektur) ist sich der Servicebesitzer nicht bewusst. Daher ist eine enge Beziehung zum Eigentümer des Dienstes nach wie vor unerlässlich, da, wie erwähnt, lokales Know-how intelligentere, skalierbarere Dienste ermöglichen kann.

Beispiel für Datenvirtualisierung

Die meisten Unternehmen speichern Daten an vielen verschiedenen Orten, von der Hardware in ihren Räumlichkeiten bis hin zur Cloud. Diese Informationen werden aus mehreren Anwendungen und Dateiformaten angepasst. Die Servicevirtualisierung ermöglicht es jeder Anwendung, unabhängig von Format, Quelle oder Standort auf relevante Daten zuzugreifen.

Servicevirtualisierung ist in diesem Fall eine Softwareschicht zwischen Anwendungen, die auf Speichersysteme und die darin enthaltenen Daten zugreifen. Die Schicht interpretiert die Abfrage oder Datenanforderung einer App nach Bedarf und liefert Ergebnisse, die mehrere Systeme abdecken.

Hinweis: Fertigungstestdaten können aufgrund all der Softwarekomponenten, die auf ihre Gültigkeit angewiesen sind, schwierig sein. Sobald Testdaten verbraucht sind, können sie nicht wiederverwendet werden, bis der Systemstatus zurückgesetzt wird. Mit der Servicevirtualisierung können virtuelle Testdaten basierend auf einer kleinen Stichprobe und abgeleiteten Einschränkungen „gezüchtet“ werden. Diese Daten können bei Bedarf wiederverwendet und neu generiert werden.

Screenshot von Parasoft Virtualize in CTP

Erste Schritte mit Service-Virtualisierung

Screenshot von Parasoft Service Virtualization Deployments und Benachrichtigungen zu Ereignissen.

Zu Beginn ist es am besten, mit einem Parasoft-Experten zu besprechen, wie Sie die Anforderungen Ihres Unternehmens mit der Service-Virtualisierungsexpertise, die Parasoft zu bieten hat, in Einklang bringen können. Nachdem wir Ihre Anforderungen ermittelt haben, weisen wir ein Service-Virtualisierungsteam zu, um diese Anforderungen zu erfüllen. Das Team arbeitet mit Ihrem Unternehmen zusammen, um einen Gesamtplan und den besten Ansatz zu entwickeln, der Testfälle umfasst, um die Daten zu erhalten, die zur Lösung von Problemen erforderlich sind, bevor sie auftreten, was einer der wichtigsten ist Vorteile der Service-Virtualisierung.

Möchten Sie mehr erfahren? Lesen Sie unseren hilfreichen Leitfaden, um den idealen Ausgangspunkt für die Service-Virtualisierung Ihres Teams zu finden und das beste Bereitstellungsmodell für Ihre Anforderungen zu ermitteln. Und sehen Sie sich unsere Bereitstellungsoptionen an.

Wie hilft Parasoft?

Machen Sie kontinuierliches Testen einfacher und schneller mit Service-Virtualisierung. Die Service-Virtualisierungsplattform von Parasoft ermöglicht es Entwicklern oder Testern, automatisierte Tests frühzeitig in die Softwareentwicklung einzubeziehen und gleichzeitig virtuelle und stabile Dienste bei Bedarf bereitzustellen.

Skalieren Sie mühelos von einem einzelnen Benutzer zu einer vollständigen DevOps-Bereitstellung über Teams hinweg. Reduzieren Sie den Aufwand für Softwareentwicklung und Tests, indem Sie Integrationen früher erstellen und Abhängigkeiten stabilisieren.

Vermeiden Sie den Aufwand für Tests mit Produktionsumgebungen. Simulieren Sie Dienste, die ansonsten in agilen DevOps-Umgebungen nicht zugänglich oder instabil sind.

Siehe den Wert der Service-Virtualisierung

Möchten Sie sehen, wie sehr Ihre Testprozesse von der Service-Virtualisierung profitieren können?

Verwenden Sie diesen praktischen Rechner, um einzuschätzen, wie Parasoft Ihnen helfen kann, den Zeit- und Kostenaufwand für Anwendungstests zu verringern, indem Einschränkungen in der Umgebung reduziert werden.

Geben Sie einfach die Anzahl der Personen in Ihren Entwicklungs- und Testteams zusammen mit Angaben zu Testumgebungen, Fehlern und Lieferverzögerungen ein. Sie erhalten eine Berechnung, die den Wert der potenziellen Vorteile projiziert, die Sie durch die Implementierung der Service-Virtualisierungslösung von Parasoft in Ihrem Unternehmen erfahren könnten.

Abstrakte Grafik mit Tortendiagramm links und Legende rechts.

Häufig gestellte Fragen