Testautomatisierung mit CodedUI für Fortgeschrittende
Kürzere Testvorbereitungsphasen durch integrierte Testlabore
1. advertorial der autor
Nico Orschel
(E-Mail: nico.orschel@aitgmbh.de)
ISTQB zertifizierter Software-Tester und Berater des AIT TeamSystemPro
Teams. Hat sich u. a. anderem auf das automatische Testen mit dem Visual
Studio Lab Management spezialisiert. Berät Unternehmen bei der Einführung
und Anpassung des Visual Studio Team Foundation Server. Seine Erfahrungen
vermittelt er zudem als Autor des TFS-Blogs, in Magazinen und in Vorträgen.
Kürzere Testvorbereitungsphasen
durch integrierte Testlabore
Die aktuellen Release-Zyklen von Software-Projekten haben sich in den letzten Jahren eher verkürzt, u. a. weil agile
Vorgehensmodelle sich in dieser Zeit rapide verbreitet haben und damit einhergehend Entwicklungs- und Testzyklen kürzer
wurden. Dies stellt alle Projektbeteiligte vor neue Herausforderungen, wie z. B. viele Zwischen-Softwareversionen in
Testumgebungen effizient bereitzustellen sowie die Sicherstellung der Lauffähigkeit von bereits implementierten
Funktionalitäten durch automatisierte Tests. Im Vorjahresartikel (siehe [1]) konnte bereits der Austausch von Informationen
zwischen Tester und Entwickler durch den Einsatz vom Team Foundation Server (kurz TFS) und dem Microsoft Testmanager
(kurz MTM) optimiert werden. Der Fokus lag hierbei primär darauf, die Bereiche Testmanagement und Bugtracking über die
gemeinsame Entwicklungsplattform Team Foundation Server zu integrieren und Bug-Reports, mit automatisch im Hintergrund
erfassten Diagnoseinformationen, für eine bessere Reproduzierbarkeit zu erstellen. Ein unscheinbarer Bereich mit massivem
Einsparpotenzial ist nach unserer Erfahrung der Betrieb und das Management von Testumgebungen. In der Testvorbereitungs-
phase schlummert zusätzlich noch eine Menge ungenutztes Potenzial bei der automatischen Bereitstellung der Testobjekte in
die Testumgebungen. In diesem Artikel zeigen wir Ihnen Wege, wie Sie diese Herausforderungen effizient und effektiv mit dem
Visual Studio 2010 Lab Management meistern können.
Einfache Bereitstellung von schon zu spät ist. An diesem Punkt kann Funktionalität kann die Testabteilung vir-
Testumgebungen das TFS 2010 Lab Management sowohl tuelle und physische Testumgebungen ein-
Bei vielen unserer Kunden beginnen die den Tester als auch den IT-Administrator facher verwalten. Bei virtuellen Umgebugen
Testvorbereitungen mit der Bereitstellung entlasten. Mit der TFS-Lab-Management- bedeutet dies, dass man in Eigenregie ein-
von Testumgebungen durch eine dedizierte
interne IT-Abteilung, die für die Bereit -
stellung und den Betrieb zuständig ist. Eine
solche „einfache“ Bereitstellung von
Testumgebungen kann aufgrund von eta-
blierten IT-Betriebs- und Bereitstellungs -
prozessen gerade bei mittleren bis großen
Unternehmen mitunter mehrere Wochen in
Anspruch nehmen. Die Bearbeitungsdauer
steht damit in direktem Widerspruch zu
den Testzyklen bei agilen Entwicklungs -
prozessen. Für agile Teams ist eine poten-
zielle Dauer von drei bis vier Sprints
schlichtweg untragbar. Unterstellt man
dann noch die für einen agilen Prozess typi-
schen sich verändernden Rahmenbedingun-
gen und Anforderungen, dann bekommt
ein Team die Testumgebung immer dann
zur Verfügung gestellt, wenn es eigentlich Abb. 1: TFS 2010 Lab Management Infrastruktur
1 www.objektspektrum.de
2. Online-Themenspecial Testing 2011 advertorial
Microsoft Virtualisierungslösung Hyper-V
(siehe Hyper-V Host in Abbildung 1).
Ein oder mehrere dieser Server werden
über die Managementlösung System Center
Virtual Machine Manager 2008 R2 (kurz
SCVMM) an den TFS angebunden. Alle
Hyper-V-Hosts aus Abbildung 1 werden
zentral über SCVMM Library Shares mit
Software und Vorlagen von virtuellen
Maschinen und vorkonfigurierten Testum-
gebungen versorgt. Der SCVMM ist bereits
ohne zusätzliche Lizenzkosten Teil der Lab-
Management-Lizenz (Lizenzierungsdetails
siehe [3]). Diese wiederum ist Teil der
Abb. 2: Microsoft Testmanager 2010 Lab Center Programmpakete Test Professional (Micro-
soft Testmanager) und Visual Studio 2010
Ultimate.
fach und schnell virtuelle Maschinen erstel- zur Verfügung stellen. Über Unterschiede Als Tester sehen Sie von diesen techni-
len, ändern und löschen kann. Im zwischen beiden Testumgebungstypen schen Details im Hintergrund nichts, denn
Folgenden werden wir uns auf den Typ der informiert das Whitepaper unter [2]. Sie verwalten diese Testumgebungen nur
virtuellen Testumgebungen beschränken, Die technische Basis für den Betrieb von über ihren MTM in der Lab-Center-
weil nur diese den vollen Leistungsumfang virtuellen Umgebungen bilden Server mit der Perspektive (siehe Abbildung 2). Die zwei-
Abb. 3: Anlegen einer Testumgebung im MTM
Online-Themenspecial Testing 2011 2
3. advertorial
stellen, so als würden sie mit Legosteinen einem IT-Administrator diese Frage stellt,
bauen. Abbildung 3 zeigt diesen sehr einfa- dann wird man sicherlich die Antwort
chen Prozess, wie die Tester mit nur vier erhalten, dass dies technisch nicht möglich
Schritten Testumgebungen bereitstellen ist. Man hört in dieser Situation techni-
können. In der Abbildung wird in Schritt schen Ausführungen wie u. a., dass Rech-
1. zunächst der Umgebungstyp „Virtual nername und IP Adresse im Netzwerk stets
Environment“ ausgewählt, um die zuvor eindeutig sein müssen (siehe Abbildung 4).
beschriebenen Vorlagen als Basis für eine Genau für diesen Anwendungsfall wurde
neue Testumgebung auszuwählen. In beim TFS 2010 Lab Management die
Schritt 2 hat die Auswahl der Vorlagen Funktion „Network Isolation“ eingeführt.
dann stattgefunden. Danach müssen im 3. Mit Hilfe eines Dienstes – dem sogenann-
Schritt noch die notwendigen Eigenschaf- ten Lab Agent – in den virtuellen
ten der Testumgebung, wie Workflow-, Maschinen (siehe Abbildung 1 und
Testing- und Network-Isolation-Unterstüt- Abbildung 5) können diese voneinander
zung aktiviert werden. Die Eigenschaften isoliert betrieben werden, obwohl es sich
sind notwendig, um Deployment-Skripte um Klone handelt. Das Duplizieren ist
auszuführen, sowie für automatische Tests dank dieser Funktion so einfach wie das
und das Sammeln von Diagnosedaten. In Kopieren einer CD.
Schritt 4 können Sie die Erstellung mit Ein weiterer positiver Nebeneffekt dieser
Abb. 4: Duplizieren einer Testumgebung
Finish starten. Funktion besteht darin, dass Sie somit der
ohne Network Isolation
Wichtig bei der Testausführung ist die Entwicklungsabteilung Duplikate ihrer
Isolation unterschiedlicher Tester, um Umgebungen zur Verfügung stellen kön-
te Perspektive des MTM ist das bekannte gegenseitige Auswirkungen von Tests zu nen. Im vorherigen Artikel wurde bereits
Test-Center für das Testmanagement und minimieren. Diese Anforderung macht es das Konzept der Rich-Bugs, d. h. Bugs mit
die Testausführung (siehe [1]). notwendig, Testumgebungen für jeden zusätzlichen Diagnoseinformationen vorge-
Jetzt stellt sich hier natürlich die Frage: beteiligten Tester zur Verfügung zu stellen. stellt. Trotz dieser vielen Informationen las-
Welche Schritte sind für die Bereitstellung Unter normalen Umständen bedeutet dies, sen sich Fehler in Entwicklungsumge-
einer virtuellen Testumgebung mit dem dass Sie den Prozess aus Abbildung 3 für bungen nicht immer nachvollziehen und
MTM notwendig? Der Bereitstellungs - jeden Tester x-mal wiederholen. Der man benötigt als Entwickler besser die
prozess beginnt damit, dass die interne IT- Nachteil dieser Vorgehensweise ist gerade ursprüngliche Testumgebung des Testers.
Abteilung Vorlagen von virtuellen Ma- bei komplexen Testumgebungen der hohe Mit der Duplizierungsfunktion kann man
schinen nur einmalig erstellt (siehe Library Zeitaufwand und die Fehleranfälligkeit bei als Tester einfach die Umgebung duplizie-
Share in Abbildung 1). In diesen Vorlagen der Konfiguration und zusätzlichen Instal- ren und dem Entwickler zur Verfügung stel-
werden dabei Software-Agenten der TFS lationen. Wäre es nicht schön, wenn Sie len. Ein Beispiel für dieses Szenario im Falle
Plattform (Build Agent, Test Agent und Lab den Aufwand der Testumgebungsvor- eines Fehlers zeigt Abbildung 6. Mehr
Agent) zur Fernsteuerung und weitere bereitung nur einmal tätigen müssten und noch, es lässt sich ein Link auf den
Software (in Abhängigkeit vom Testszena- anschließend einfach für jeden Tester ein Snapshot der virtuellen Maschine zum
rio) vorinstalliert. Anschließend werden exaktes Duplikat anzufertigen? Wenn man Zeitpunkt des Fehlereintritts anhängen und
diese generalisiert (Fachwort: syspreping) dem Entwickler somit die gesamte „einge-
und dann über den SCVMM Library Share frorene“ Testumgebung übermitteln.
den MTM-Clients zur Verfügung gestellt,
so dass später auf ihrer Basis nach Bedarf Kompilieren, Ausliefern und
neue Maschinen erzeugt werden können. Testen
Nachdem man eine Vorlage in die Libary Nachdem die Testumgebungen durch den
Share kopiert hat, müssen diese einmalig MTM und Lab Management bereitgestellt
im Lab Center registriert werden. Bei die- wurden, bleibt noch der Punkt der
sem Registrierungsprozess werden Bereitstellung von Testobjekten durch die
Standardwerte für Computereinstellungen, Entwicklung offen. Bei der Bereitstellung
wie z. B. Rechnername, Speicher, Admi - von Testobjekten folgt das aktuelle Kapitel
nistrator-Konto, Administrator-Passwort der Methodik „Continous Delivery“.
und Lizenzschlüssel hinterlegt, damit Continous-Delivery-Prozesse (im Folgen-
Anwender diese Daten nicht bei jedem den kurz CD genannt) bestehen aus drei
Anlegen von Testumgebungen bei der IT- Phasen: Übersetzen der Lösung, Ausliefern
Abteilung erfragen bzw. doppelt und drei- oder Installieren der Lösung in einer
fach eintragen müssen. Ist die Vorlage Zielumgebung und abschließend die
erfolgreich im Lab-Center registriert, dann Ausführung von automatisierten Tests. An
können Tester Testumgebungen, bestehend dieser Stelle fällt sofort die Ähnlichkeit zu
aus einem oder mehreren Rechnern, auf Abb. 5: Duplizieren einer Testumgebung dem weitverbreiteten Begriff Continous
Basis dieser Vorlagen einfach zusammen- mit Network Isolation Integration (im Folgenden kurz CI) auf. CI
3 www.objektspektrum.de
4. Online-Themenspecial Testing 2011 advertorial
thematik aus dem vorherigen Abschnitt
zum Begriff Lab Management zusammen-
gefasst wird.
Ein Lab Management Workflow sorgt zu
Beginn für die Übersetzung des jeweiligen
Codes. Technisch gesehen führt der Lab
Management Workflow einfach einen
bereits existierenden Release-Build-Prozess
der Entwicklung aus, so dass man für
Testumgebungen und spätere Releases nur
einen Build-Prozess pflegen muss. Nach der
Kompilierungsphase stellt der Workflow
eine Verbindung zu den Testumgebungen
her und setzt diese im Fall von virtuellen
Testumgebungen auf einen definierten
Stand (Fachwort: Abbild oder Snapshot)
zurück. Nachdem die Verbindung herge-
stellt wurde, wird die Anwendung über
Skripte oder Installationsprogramme in die
Testumgebung ausgerollt. Die Art und
Weise des Rollout-Verfahrens ist abhängig
vom jeweiligen Artefakttyp (Programm,
Website, Datenbankskript, Testdaten).
Nach dem Rollout wird im Fall von vir-
Abb. 6: Wiederherstellung einer Testumgebung im Fehlerfall tuellen Testumgebungen ein weiteres
Abbild der Testumgebung erzeugt. Dieses
besteht aus der Prozesssicht aus zwei LabDefaultTemplate.xaml realisiert, wel- spezielle Abbild hat den Vorteil, dass Tester
Hauptphasen: Übersetzen der Lösung und che bereits alle notwendigen Basisschritte und Entwickler ihre Umgebungen zu jedem
anschließendes Ausführen von Unit Tests. zur Verfügung stellt. Microsoft hat mit dem Zeitpunkt in einen nicht durch Tests beein-
Die Unterschiede liegen dabei zum einen Workflow einen Release-Prozess entspre- flussten Zustand zurücksetzen können.
darin, dass CI-Build-Prozesse keine Soft - chend der Darstellung in Abbildung 7 rea- Werden Testobjekte in der Testumgebung
ware in Zielumgebungen ausliefern und lisiert, welcher neben der Infrastruktur - bereitgestellt, starten anschließend die
zum anderen, dass nur Modul- bzw. automatischen Tests in der Testumgebung.
Komponententests (Unit Tests) in Isolation Die hier ausgeführten Tests sind nicht mehr
ausgeführt werden. CI verfolgt im Gegen- wie bei CI auf die Modul- oder Komponen-
satz zum CD das Ziel, schnell Feedback tenebene begrenzt, sondern die Anwen-
an die Entwickler zu liefern. CD hin- dungen können auch direkt ausge-
gegen führt die Tests an führt werden. Zum Testen von
Testobjekten in den jeweiligen Oberflächen (wie z. B.
Zielumgebungen aus. Die Ziel- WinForms, WPF, Silverlight,
umgebungen sind dabei an Webanwendungen im IE und
den Produktivumgebungen Firefox) kann man hier das
angelehnt. Desweiteren set- neue CodedUI Framework
zen die Tests eine lauffähige einsetzen. Die auszuführen-
Software für die Ausfüh- den Tests werden über
rung voraus. Die auszufüh- Testfälle, welche über
renden Tests haben als Testpläne und Testsuiten im
Fokus die Testphasen TFS 2010 strukturiert sind,
Systemtest oder Akzeptanz- ausgewählt (Testfallmanage-
test und sind dadurch szena- ment mit MTM siehe [1]).
rio-orientiert – prüfen also Wenn ein Fehler auftritt bzw.
potentiell das Software-Produkt ein Testfall nicht erfolgreich war,
als Ganzes. Zusammengefasst stellt dann kann der Tester die Test-
CD erstmals die Verbindung zwischen umgebung im Fehlerzustand „einfrie-
Testumgebung und Release-Prozess her. ren“, so dass der Entwickler neben den
Es ist damit ein „CI plus“. Testprotokollen auch eine Testumgebung
Der zuvor beschriebene CD-Prozess ist zur Fehlerdiagnose zur Verfügung hat.
beim TFS 2010 über eine spezielle Build- Auf den ersten Blick scheint der beschrie-
Workflow-Vorlage mit dem Namen Abb. 7: Lab Management Workflow bene Workflow recht kompliziert zu konfi-
Online-Themenspecial Testing 2011 4
5. advertorial
gurieren, er lässt sich aber dank der Zeit zu kopieren. Umfangreiche Konfigu- zur Verfügung stehen, so dass manueller
Assistenten im Visual Studio 2010 schritt- rations- und Installationsarbeiten können Aufwand sowohl auf Seiten der
weise einrichten (technische Details siehe so eingespart werden und Tester können Qualitätssicherung- und Entwicklungs-
[2]). sich auf die Testspezifikation und -ausfüh- abteilung eingespart werden kann. Das TFS
rung konzentrieren. Die Lab-Management- Lab Management umfasst bereits einen
Fazit Infrastruktur hat zusätzlich noch den posi- Standard-Workflow, welcher der Methodik
Der Artikel zeigt Ihnen Wege, wie Sie mit- tiven Nebeneffekt, dass Tester ihre „Continuous Delivery“ folgt. Konkret
hilfe des TFS 2010 Lab Management die Testumgebungen mit den Entwicklern „tei- bedeutet dies, dass er bereits die
Testvorbereitungsphase optimieren kön- len“ können. Die Entwickler können „Continuous Delivery“ – Phasen Kompi-
nen. Die Bereitstellung von Testumge- dadurch beim Testen und beim lieren, Ausliefern und Testen unterstützt.
bungen im Baukastenprinzip kann mithilfe Nachvollziehen von Fehlern auf die glei- Im Rahmen des Schrittes Testen wird
des MTM durch Tester stark vereinfacht chen Testumgebungen zugreifen. Durch die bereits eine erste Eingangsprüfung über
werden. Für die Tester wird dabei kein neu- enge Verzahnung von Build-Prozessen der automatisierte Tests durchgeführt, so dass
es Werkzeug benötigt, sondern es wird nur Entwicklung mit den Testumgebungen nur Programme mit bestimmten Qualitäts-
eine andere Perspektive des MTM (Lab können neue Releases schnell, regelmäßig standards ihren Weg in die manuellen
Center) genutzt. Die interne IT-Abteilung und automatisiert in den Testumgebungen Testphasen finden.
kann durch diese neue Arbeitsweise stark
entlastet werden, weil sie nicht mehr jede
Umgebung individuell aufsetzen, sondern
jetzt nur noch Vorlagen für virtuelle
Maschinen sowie die entsprechenden Host- Referenzen
Systeme zur Verfügung stellen müssen.
Gerade bei agilen Projekten gehören [1]: Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?:
Wartezeiten von mehreren Sprints dank http://www.sigs.de/publications/os/2010/Testing/orschel_OS_TESTING_2010.pdf
dieser neuen Möglichkeiten der Vergan- [2]: Whitepaper Lab Management: http://www.aitgmbh.de/labmngwhitepaper
genheit an. Zusätzlich haben Tester nun die [3]: Visual Studio 2010 and MSDN Licensing White Paper:
Möglichkeit, wenn einmal eine komplexe http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=13350
Umgebung aufgesetzt ist, diese einfach [4]: Continuous Delivery: Reliable Software Releases Through Build, Test, and Deployment
durch die Duplizierungsfunktion (Network Automation, Addison-Wesley Longman, ISBN: 0321601912
Isolation) ähnlich wie eine CD in kürzester
5 www.objektspektrum.de