Service-Virtualisierung und Testmanagement · ein Continuous Testing ermöglicht. Die Motivation,...

3
Service-Virtualisierung und Testmanagement Service-Virtualisierung ist ein Verfahren, welches das Verhalten von Services und Applikationen mit Hilfe von Stubs simuliert und ein Continuous Testing ermöglicht. Die Motivation, Services zu virtualisieren, ist vor allem in den typischen Herausforderungen zu finden, die beim Testen von heterogenen IT-Landschaften auftreten. das Verhalten einer realen Applikation nachbilden können. Ziel ist es daher, das Verhalten soweit nachzustellen, dass zum einen die technische Schnittstelle dem rea- len System entspricht (und getestet werden kann), und zum anderen die „Intelligenz“ des virtualisierten Systems ausreicht, um erste aussagekräftige Integrationstests durchführen zu können. Umsetzung eines exemplari- schen Testprozesses mit virtualisierten Services Besonders wichtig bei der Verwendung von Service-Virtualisierung ist es zu verstehen, was genau das „System Under Test“ (SUT) ist und welche vorhandenen Systeme Schnittstellen zum SUT haben. Testarchi- tekt/Testmanager sowie der IT-Architekt müssen gemeinsam ein Verständnis für die Architektur der Anwendung und die ver- wendeten Schnittstellen und Protokolle aufbauen, bevor festgelegt wird, ob und wo Systeme virtualisiert werden können. Eine Antwort auf die Frage „Wann wird mit Service-Virtualisierung begonnen?“ scheint einfach. Idealerweise erstellen schon die Entwickler von Services und Applikationen die erste Version der virtua- lisierten Services. Dies ist auf zwei verschie- denen Wegen möglich: Durch das Aufzeichnen von Datenverkehr von vor- handenen (produktiven) Umgebungen oder oder Anwendungen zu simulieren. Bei der Service-Virtualisierung geht es nicht darum, Hardware, Server oder Systeme z. B. in Cloud-Umgebungen oder in virtuellen Images zu virtualisieren, sondern es wird „lediglich“ das Verhalten einer Anwendung simuliert. Dieser Unterschied lässt sich gut dadurch erklären, dass mit der Service- Virtualisierung auch eine noch nicht ent- wickelte Anwendung simuliert werden kann (wenn die Schnittstellenbeschreibung verfügbar ist) – eine noch nicht implemen- tierte Anwendung kann jedoch niemals, z. B. in eine Cloud-Umgebung, ausgelagert werden. Vorteil dieser simulierten Systeme – auch Stubs genannt – ist, dass sie meist sehr ein- fach erstellt werden können und sich zudem leicht vervielfältigen lassen. Dadurch wird es möglich, frühzeitig im Testprozess Testumgebungen bereitzustel- len, die einen vollständigen Ende-zu-Ende- Test erlauben und „Big Bang“-Szenarien vermeiden. Dabei bemerkt der Tester von Applika- tionen einer IT-Landschaft idealerweise nicht, dass einige Komponenten und Systeme virtualisiert sind. Dies gilt sowohl für den manuellen Test als auch für auto- matisierte Integrations- oder Oberflächen- tests. Es ist noch wichtig zu erwähnen, dass virtualisierte Services nicht zu 100 Prozent Diese Herausforderungen sind: n Hohe Kosten, die für Bereitstellung und Pflege von Testumgebungen sowie die Einbindung von kostenpflichtigen Systemen von Drittanbietern anfallen. n Zeitverluste im Testzyklus, da viel Zeit benötigt wird, um die Testumgebungen bereitzustellen beziehungsweise zu war- ten. Zudem gibt es für kostenintensive und komplexe Systeme (z. B. Main- frame oder SAP) meist nur eine Testumgebung im Unternehmen, bei deren Nutzung mit Wartezeiten gerech- net werden muss. n Im traditionellen Testprozess entsteht ein hohes Risko, da ein Ende-zu-Ende- Test erst spät durchgeführt wird. Dieses Vorgehen wird auch „Big Bang“- Szenario genannt, da zum Ende des Testprozesses noch einmal viele Ab- weichungen identifiziert werden und viele Fragen, z. B. nach Zuständigkeiten oder den richtigen Schnittstellenbe- schreibungen, auftauchen. Was ist Service- Virtualisierung? Die Virtualisierung von Services stellt ein probates Mittel dar, um die beschriebenen Herausforderungen zu adressieren. Dabei ist die Service-Virtualisierung ein Ver- fahren, um das Verhalten von Systemen der autor Oliver Lucht ([email protected]) ist Teamleiter im Bereich IBM Rational Client Technical Professional in Deutschland. Er ist seit 2008 bei der IBM Deutschland GmbH für die Einführung werkzeuggestützter innovativer Technologien und Softwareprozesse bei Kunden verantwortlich. Thomas Südbröcker ([email protected]) von der IBM Deutschland GmbH ist als Community of Practise Leader in Deutschland für den Client Technical Professional Bereich Quality Management Rational seit 2009 verantwortlich. Er ist seit August 1999 als Technical Engagement Manager für die Einführung werkzeuggestützter inno- vativer Technologien und Softwareprozesse bei Kunden verantwortlich. 1 www.objektspektrum.de advertorial

Transcript of Service-Virtualisierung und Testmanagement · ein Continuous Testing ermöglicht. Die Motivation,...

Page 1: Service-Virtualisierung und Testmanagement · ein Continuous Testing ermöglicht. Die Motivation, Services zu virtualisieren, ist vor allem in den typischen Herausforderungen zu finden,

Service-Virtualisierung und TestmanagementService-Virtualisierung ist ein Verfahren, welches das Verhalten von Services und Applikationen mit Hilfe von Stubs simuliert undein Continuous Testing ermöglicht. Die Motivation, Services zu virtualisieren, ist vor allem in den typischen Herausforderungen zufinden, die beim Testen von heterogenen IT-Landschaften auftreten.

das Verhalten einer realen Applikationnachbilden können. Ziel ist es daher, dasVerhalten soweit nachzustellen, dass zumeinen die technische Schnittstelle dem rea-len System entspricht (und getestet werdenkann), und zum anderen die „Intelligenz“des virtualisierten Systems ausreicht, umerste aussagekräftige Integrationstestsdurchführen zu können.

Umsetzung eines exemplari-schen Testprozesses mitvirtualisierten Services Besonders wichtig bei der Verwendung vonService-Virtualisierung ist es zu verstehen,was genau das „System Under Test“ (SUT)ist und welche vorhandenen SystemeSchnittstellen zum SUT haben. Test archi -tekt/Testmanager sowie der IT-Architektmüssen gemeinsam ein Ver ständnis für dieArchitektur der An wen dung und die ver-wendeten Schnittstellen und Protokolleaufbauen, bevor festgelegt wird, ob und woSysteme virtualisiert werden können.

Eine Antwort auf die Frage „Wann wirdmit Service-Virtualisierung begonnen?“scheint einfach. Idealerweise erstellenschon die Entwickler von Services undApplikationen die erste Version der virtua-lisierten Services. Dies ist auf zwei verschie-denen Wegen möglich: Durch dasAufzeichnen von Datenverkehr von vor-handenen (produktiven) Umgebungen oder

oder Anwendungen zu simulieren. Bei derService-Virtualisierung geht es nichtdarum, Hardware, Server oder Systeme z.B. in Cloud-Umgebungen oder in virtuellenImages zu virtualisieren, sondern es wird„lediglich“ das Verhalten einer Anwendungsimuliert. Dieser Unterschied lässt sich gutdadurch erklären, dass mit der Service-Virtualisierung auch eine noch nicht ent-wickelte Anwendung simuliert werdenkann (wenn die Schnittstellenbeschreibungverfügbar ist) – eine noch nicht implemen-tierte Anwendung kann jedoch niemals,z. B. in eine Cloud-Umgebung, ausgelagertwerden.

Vorteil dieser simulierten Systeme – auchStubs genannt – ist, dass sie meist sehr ein-fach erstellt werden können und sichzudem leicht vervielfältigen lassen.Dadurch wird es möglich, frühzeitig imTestprozess Testumgebungen bereitzustel-len, die einen vollständigen Ende-zu-Ende-Test erlauben und „Big Bang“-Szenarienvermeiden.

Dabei bemerkt der Tester von Applika -tio nen einer IT-Landschaft idealerweisenicht, dass einige Komponenten undSysteme virtualisiert sind. Dies gilt sowohlfür den manuellen Test als auch für auto-matisierte Integrations- oder Oberflächen -tests.

Es ist noch wichtig zu erwähnen, dassvirtualisierte Services nicht zu 100 Prozent

Diese Herausforderungen sind:

n Hohe Kosten, die für Bereitstellung undPflege von Testumgebungen sowie dieEinbindung von kostenpflichtigenSystemen von Drittanbietern anfallen.

n Zeitverluste im Testzyklus, da viel Zeitbenötigt wird, um die Testumgebungenbereitzustellen beziehungsweise zu war-ten. Zudem gibt es für kostenintensiveund komplexe Systeme (z. B. Main -frame oder SAP) meist nur eineTestumgebung im Unternehmen, beideren Nutzung mit Wartezeiten gerech-net werden muss.

n Im traditionellen Testprozess entstehtein hohes Risko, da ein Ende-zu-Ende-Test erst spät durchgeführt wird. DiesesVorgehen wird auch „Big Bang“-Szenario genannt, da zum Ende desTestprozesses noch einmal viele Ab -weichungen identifiziert werden undviele Fragen, z. B. nach Zuständigkeitenoder den richtigen Schnittstellen be -schreibungen, auftauchen.

Was ist Service-Virtualisierung?Die Virtualisierung von Services stellt einprobates Mittel dar, um die beschriebenenHerausforderungen zu adressieren. Dabeiist die Service-Virtualisierung ein Ver -fahren, um das Verhalten von Systemen

der au tor

Oliver Lucht

([email protected])ist Teamleiter im Bereich IBM Rational Client Technical Professionalin Deutschland. Er ist seit 2008 bei der IBM Deutschland GmbH fürdie Einführung werkzeuggestützter innovativer Technologien undSoftwareprozesse bei Kunden verantwortlich.

Thomas Südbröcker

([email protected])von der IBM Deutschland GmbH ist als Community of Practise Leader inDeutschland für den Client Technical Professional Bereich QualityManagement Rational seit 2009 verantwortlich. Er ist seit August 1999 alsTechnical Engagement Manager für die Einführung werkzeuggestützter inno-vativer Technologien und Softwareprozesse bei Kunden verantwortlich.

1 www.objektspektrum.de

advertorial

Page 2: Service-Virtualisierung und Testmanagement · ein Continuous Testing ermöglicht. Die Motivation, Services zu virtualisieren, ist vor allem in den typischen Herausforderungen zu finden,

durch den Import der Schnittstellen be -schreibung (z. B. wenn die Anwendung erstnoch entwickelt werden muss oder wenneine Aufzeichnung nicht möglich ist). Indanach folgenden Schritten, die auf ver-schiedene Testphasen aufgeteilt werdenkönnen, wird der Stub um fachliche„Intelligenz“ erweitert, sodass er z. B. aufbestimmte Anfragen mit dediziertenWerten antwortet. An dieser Stelle kann einStub auch so konfiguriert werden, dass erauf Anfragen mit festgelegten Fehler mel -dungen antwortet oder z. B. immer erst miteiner Verzögerung reagiert. So lassen sichsehr gut die Auswirkungen auf ein Fehl -verhalten einer Applikation in einer kom-plexen Applikationslandschaft testen – vielbesser als dies häufig mit einer realenApplikation möglich ist.

Diese erste Version der Stubs nutzt derEntwickler um sicherzustellen, dass die vonihm implementierte Komponente mit denangebundenen Systemen (virtualisiertdurch den Stub) kommunizieren kann, dasheißt, die Schnittstellen und Nachrichten -formate korrekt umgesetzt wurden.Typisch für diese Phase ist der Einsatz vonvielen Stubs, die jedoch nur über sehrwenig Logik verfügen und auch nur mitwenig Datenvielfalt antworten.

In späteren Testphasen werden die initialerzeugten Stubs von den technischenNutzern an die fachlichen Nutzer überge-ben. Nun steht der fachliche Prozess imMittelpunkt, was bedeutet, dass die Stubs„intelligenter“ gemacht werden müssen.Zusätzlich kann jetzt auch die Datenvielfaltbeziehungsweise die Datenmenge eineRolle spielen, sodass die Stubs auch mitgrößeren Datenvolumen versehen werdenmüssen.

In diesen späteren Testphasen ist dieAnzahl der eingesetzten Stubs geringer alszu Beginn. In diesen späten Testphasen,z. B. im Anwendertest, soll ein möglichstrealistisches Verhalten in der Testumge -bung erreicht werden, was oft nur durchdie reale Anwendung möglich ist. Stubswerden hier für nicht verfügbare Systemez. B. von Drittanwendern oder für nochnicht fertiggestellte Systeme verwendet.

Der Einsatz von virtualisierten Systemenermöglicht also ein frühzeitiges und durch-gängiges Testen, beginnend in der Ent wick -lung, bis hin zur Produktivsetzung derAnwendung. Daher wird hier auch vom„Continuous Testing“ gesprochen.

Abbildung 2 verdeutlicht, wie die Ser -vice-Virtualisierung das „ContinuousTesting“ unterstützt. An diesem Beispiel

wird ein System, das aus drei Modulen(Mx) besteht, entwickelt und getestet. Umdas „System Under Test“ betreiben zu kön-nen, werden ein ERP, verschiedeneWebservices, 3rd Party-Applikationen undeine Datenbank benötigt. Wir legen dasAugenmerk bei der Betrachtung auf dasModul M1 und verfolgen die Verwendungder Service-Virtualisierung.

Abbildung 1 zeigt zunächst die Legendeder verwendeten Symbole. In Abbildung 2wird nun verdeutlicht, wie in einerTestumgebung virtualisierte und realeModule und Systeme zusammenspielenund einen frühzeitigen Ende-zu-Ende-Testermöglichen.

Es ist gut zu erkennen, dass über die Test -phasen hinweg immer mehr Funktio -nalitäten des Moduls getestet und in denverschiedenen Stufen immer mehrSchnittstellen zu weiteren Modulen undSystemen berücksichtigt werden – auchwenn diese als reales System nicht zurVerfügung stehen. Dadurch können Fehlerschon vor der Einbindung der realenKomponenten entdeckt und behoben wer-den. Es kommt in der letzten Testphasenicht zum „Big Bang“. Wie schon zuvorerwähnt, werden in der letzten Testphasedie realen Systeme verwendet, um ein reali-stisches Verhalten testen zu können.

Umsetzung mit WerkzeugenIBM Rational bietet verschiedene integrier-te Werkzeuge an, um die zuvor beschriebe-nen Herausforderungen zu adressieren.Dies sind insbesondere:

n Rational Quality Manager (RQM) alsWerkzeug zum Testmanagement undzentrale Plattform für die Steuerung derTestausführung.

n Rational Integration Tester (RIT) alsWerkzeug zur Erstellung von virtuellenServices und Schnittstellentests.

n Rational Test Virtualization Server(RTVS) als Laufzeitumgebung der vir-tuellen Services.

Die Integration vom RTVS mit dem RQMermöglicht es, dass ein virtualisierterService automatisch gestartet wird, wenndieser für eine (manuelle oder automati-sierte) Testausführung notwendig ist. AlleInformationen der Testausführung, wieTestschritte, Testumgebung, Anforderungusw., werden automatisch im Testergebnisprotokolliert.

Ein großer Vorteil bei der Verwendungder IBM Rational Werkzeuge für die Er -stellung von virtuellen Services ist die sehrgute Unterstützung von über 80 Tech -nologien, Protokollen und Nachrichten for -

2Online-Themenspecial Testing 2014

Online-Themenspecial Testing 2014 advertorial

Abb. 1: Legende der Symbole für Abbildung 2

Abb. 2: Beispiel der Verwendung von Service-Virtualisierung

Page 3: Service-Virtualisierung und Testmanagement · ein Continuous Testing ermöglicht. Die Motivation, Services zu virtualisieren, ist vor allem in den typischen Herausforderungen zu finden,

Verwendung von virtualisierten Services, z.B. Entwickler, Architekten, Testteams, aberauch das Management, das das Budget fürein Testprojekt stellt und das sich für eineAblieferung in Zeit, Qualität und Budgetverantworten muss.

Wie sich die Einführung der Service-Virtualisierung auf Projektkennzahlen aus-wirkt, zeigt Abbildung 3. In diesem Kun -den projekt wurde im Jahr 2011 mit derService-Virtualisierung und dem automati-sierten Testen von Schnittstellen begonnen,wodurch unter anderem die Projektkostendeutlich gesenkt werden konnten. Durchdie Service-Virtualisierung wurde zudemein paralleler Zugriff auf die Testumge -bungen möglich, was dazu geführt hat,dass deutlich mehr Projekte im Jahr abge-schlossen werden konnten.

Eine ausführliche Darstellung vonKosten und Einsparungen durch dieService-Virtualisierung wird in der Studie„Total Economic Impact Study on Service-Virtualization and Test AutomationSolutions“ [Forrester] gegeben. n

Testprozess gefunden und das Risikofür Verzögerungen und hohe Kosten fürdie Fehlerfindung und -beseitigungwerden verringert.

Durch die integrierten Werkzeuge von IBMRational werden diese Vorteile noch einmalverstärkt. Von technischen Einstellungenwird weitestgehend abstrahiert und vieleTechnologien werden out-of-the-box unter-stützt.

Bei aktuellen Themen wie „DevOps“und „Continuous Integration“, die einenagilen Entwicklungsprozess propagierenund auf immer kürze Release-Zyklen set-zen, spielt die Service-Virtualisierung aucheine entscheidende Rolle (siehe Quellen).Die Integration von Service-Virtualisierungund Testmanagement erlaubt es zudem,eine zentrale Plattform für die Steuerungund Protokollierung des gesamtenTestvorhabens zu haben.

Letztendlich haben fast alle Mitwirken -den in der Softwareentwicklung und in IT-Operations einen konkreten Vorteil bei der

maten. Diese erlauben es, dass vieleArbeitsschritte schnell und einfach ausge-führt werden können – ohne tiefeDetailkenntnisse. Zudem sind durch denEinsatz der IBM Rational-Werkzeuge nurminimale Änderungen in der IT-Landschaftund Testumgebung nötig, um eine Auf -zeichnung des Datenverkehrs zu ermög-lichen beziehungsweise die virtuellenServices einzubinden. Aktuell werden unteranderem diese Technologien unterstützt:Websphere MQ, Websphere Mes -sageBroker, WSDL, CICS, IMS Connect,diverse SAP-Protokolle und -Schnittstellen,HTTP(S), TIBCO, COBOL Copybooks,SOAP, JSON und noch viele mehr.

Diese gute technische Unterstützung hältauch den Aufwand für eine Einführunggering (siehe auch [Forrester]). Die eleganteMöglichkeit, Stubs durch Aufzeichnung vonDatenverkehr zu erzeugen, führt zudemdazu, schnell einen ersten Prototyp zu erstel-len. In der Regel werden hierfür nurMinuten benötigt. Da bei den Rational-Werkzeugen die Logik von den Datengetrennt wird, ist es auch im Nachhineinleicht, die Fachlichkeit eines Stubs zu erwei-tern oder weitere Testdaten zur Verfügungzu stellen, z. B. durch Excel-Dateien oderDatenbanken mit Testdaten. Die initialeArbeit, die ein Entwickler in die Erstellungeines Stubs steckt, wird somit in späterenTestphasen wiederverwendet, was noch ein-mal die Produktivität steigert. Ist die Service-Virtualisierung im Unterneh men etabliert,wird häufig ein Mitarbeiter beauftragt, dieStubs zu verwalten und für verschiedeneTestumgebungen freizuschalten.

ZusammenfassungDer Einsatz von Service-Virtualisierungbietet insbesondere in heterogenen undkomplexen IT-Landschaften viele Vorteile.Diese sind zusammengefasst:

n Verringerung der Kosten für Test um -gebungen, da Kosten für die Bereit -stellung und Pflege von Testumge -bungen stark reduziert werden. Zudemwird der Zugriff auf kostenpflichtigeApplikationen von Drittanbietern mini-miert.

n Verkürzung des Testzyklus, da sichTestumgebungen schneller bereitstellenund warten lassen.

n Verringerung des Risikos von Projekt -verzögerungen und Kosten durch späteFehlerbehebung, durch frühzeitige unddurchgängige Ende-zu-Ende-Tests.Somit werden Fehler früher im

advertorial

3 www.objektspektrum.de

Literatur & Links

[CT] Monica Luke, Continuous Testing and the Pipeline, 2013,

https://www.ibm.com/developerworks/community/blogs/rqtm/entry/continuous_testing_and_the_pipeline?lang=en

[DevOps] IBM-Studie belegt: „DevOps-Ansatz“ schafft engere Zusammenarbeit, 2013

http://www.it-business.de/networking/administration-und-design/articles/428393

[Forrester] Analyst Briefing: “Forrester Research Total Economic Impact Study on Service-

Virtualization and Test Automation Solutions“, 2013,

https://www.ibm.com/services/forms/signup.do?source=swg-rtl-sd-ar&S_PKG=ov16778

[Schulz] Blogs von Dennis Schulz, IBM Software Group, Rational, Sr. IT Specialist. http://dennis-

schultz.wordpress.com/, ab 2014

[Wagn14] Präsentation “Achieve competitive advantage through Continuous Testing“ von Al

Wagner, Technical Marketing Manager (IBM), 2013,

http://rational-ug.org/events/webcasts/c/e/477.aspx

Abb. 3: Kennzahlen aus einem Kundenprojekt