Whitepaper Visual Studio 2010 Lab Management
Upcoming SlideShare
Loading in...5
×
 

Whitepaper Visual Studio 2010 Lab Management

on

  • 339 views

 

Statistics

Views

Total Views
339
Views on SlideShare
339
Embed Views
0

Actions

Likes
0
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Whitepaper Visual Studio 2010 Lab Management Whitepaper Visual Studio 2010 Lab Management Document Transcript

  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 1 of 24Whitepaper: Visual Studio LabManagementDieses Whitepaper gibt einen Einblick in die Möglichkeiten zur Verwendung des Test LabManagements mit Microsoft Visual Studio Team Foundation Server 2010 und Microsoft TestProfessional 2010.Der Team Foundation Server (kurz TFS) und Visual Studio adressieren eine Menge vonAnwendungsfällen während der Softwareentwicklung und Qualitätssicherung. Beide beinhaltenbereits seit den Versionen 2005 und 2008 die Bestandteile Versionskontrolle, Arbeitsplanung (WorkItem Tracking), Reporting und Build-Management. Die große Stärke der Systeme liegt in der hohenIntegrationstiefe der unterschiedlichen Prozessbereiche, sodass eine durchgängigeInformationskette entsteht. Im Fokus der Versionen 2005 und 2008 standen zunächst primär ProjectManager und Entwickler sowie die entwicklernahe Qualitätssicherung. Mit TFS 2010 und TestProfessional 2010 werden erstmalig Testmanager und fachliche Tester adressiert.Zielgruppe für dieses Whitepaper sind Release-Manager, Entwickler, Tester und Verantwortlichefür Qualitätssicherung in Softwareprojekten. Im Fokus stehen der Aufbau eines Test Labs,Virtualisierung von Testumgebungen, die Sicherstellung der Skalierbarkeit für große Testlabore, dieIntegration mit der Fehlerverfolgung und der Praxiseinsatz mit Microsoft Visual Studio 2010.Stand: Juni 2013Nico OrschelAIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/tfsIn Zusammenarbeit mit Microsoftwww.microsoft.de/visualstudio
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 2 of 24InhalteWas ist Lab Management?......................................................................................................................3Lab Management Infrastruktur...............................................................................................................4Lizenzierung von Lab Management ........................................................................................................5Visual Studio Lab Management Fähigkeiten...........................................................................................6Workflow.............................................................................................................................................7Testen und Testautomatisierung........................................................................................................7Network Isolation................................................................................................................................9Management von Testumgebungen.....................................................................................................10Integration in Build- und Deployment-Prozesse...................................................................................13Anwendung von Lab Management beim Testen..................................................................................15Automatisches Testen.......................................................................................................................15Manuelles Testen..............................................................................................................................18Zusammenfassung ................................................................................................................................20FAQ........................................................................................................................................................21Quellen..................................................................................................................................................22Abbildungsverzeichnis ..........................................................................................................................23Dieses Whitepaper wurde erstellt von .................................................................................................24
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 3 of 24Was ist Lab Management?Der Team Foundation Server (TFS) adressiert eine Menge von Anwendungsfällen während derSoftwareentwicklung und Qualitätssicherung. Der TFS unterstützte bereits seit den ersten Versionen2005 und 2008 die Bestandteile Versionskontrolle, Arbeitsplanung (Work Item Tracking), Reportingund Build-Management. Die große Stärke des TFS liegt in der hohen Integrationstiefe derunterschiedlichen Projektbereiche, sodass eine durchgängige Informationskette entsteht. Im Fokusder TFS-Versionen 2005 und 2008 standen zunächst primär die Rollen Project Manager undEntwickler.Mit der Veröffentlichung des TFS 2010 wurde das Anwendungsfeld um die Prozesse des TestManagement erweitert. Der TFS unterschützt jetzt auch den Test Manager und Tester mitFunktionalitäten rund um Testprozesse. Im Rahmen des Whitepapers liegt der Fokus auf denTestprozessphasen „Testdurchführung“ und „Bereitstellung von Testumgebungen“.Betrachtet man die Testdurchführung aus der Vogelperspektive, so fällt schnell auf, dass eineschnelle Testdurchführung stark abhängig ist von einer agilen und regelmäßigen Bereitstellung vonaktuellen Testumgebungen. Testumgebungen können im einfachsten Fall aus nur einem Client-Betriebssystem bestehen, aber es ist auch möglich, dass sehr schnell komplexe Strukturen ausmehreren Servern und Client-Betriebssysteme entstehen.Abbildung 1 –Typische Testumgebungen im ProjektalltagIn Softwareentwicklungsprojekten finden sich sehr oft neben dem Tester noch weitereProjektmitglieder, welche ihrerseits in aller Regel eigene Testumgebungen aufsetzen und betreiben.Visualisiert man dieses typische Szenario, so entsteht auch hier bei einem einfachen Projekt schnelldie Szenerie aus Abbildung 1. Jede „Projektrolle“ (Qualitätssicherung (QA), Entwickler (Dev),Benutzerakzeptanztest (UAT)) hat in diesem Szenario mindestens eine eigene Testumgebung,bestehend aus Datenbank (DB) und Webserver (Web), installiert. Als Ergebnis sind mindestens vierverschiedene Testumgebungen für unterschiedlichste Zwecke entstanden. Eine Folge der vielenTestumgebungen ist es, dass aufgrund von Wartungs- und Installationsintervallen viel Zeit benötigtwird und dadurch hohe Kosten entstehen können.
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 4 of 24Um die angesprochenen Punkte zu adressieren, hat Microsoft in den TFS 2010 und in TestProfessional 2010 Funktionalitäten zur Verwaltung von Testumgebungen integriert.Zusammengefasst kann das Lab Management alle Projektbeteiligte bei folgendenden Punktenunterstützen:- Anlegen und Verwalten von virtuellen und physischen Testumgebungen,- Auslieferung von Build-Ergebnissen in Testumgebungen,- Ausführung von Tests in definierten Testumgebungen mit den Zieleno Verifizierung der Build-Qualitäto Regressionstesto Fehlerfindung und schnelleres Debugging unter Berücksichtigung vonumfangreichen DiagnosedatenAlle zuvor genannten Funktionen werden unter dem Sammelbegriff„Visual Studio Lab Management“ zusammengefasst. Das wesentliche Ziel vom Visual Studio LabManagement ist die Steigerung der Team Produktivität beim Betrieb und Management von Test-und Entwicklungsumgebungen, sowie die Unterstützung der Entwickler und Tester beim manuellenund automatischen Testen mit Testumgebungen.Lab Management InfrastrukturBeim TFS Lab Management wird zwischen zwei Umgebungstypen unterschieden: physische undvirtuelle Testumgebungen.Als ersten Umgebungstyp betrachten wir die virtuellen Testumgebungen. Generell wird zurVerwaltung von virtuellen Testumgebungen der TFS 2010 und der „System Center Virtual MaschineManager 2008 R2 (SCVMM)“ benötigt. Der SCVMM ist für die Lab Management Nutzung bereitsüber Visual Studio 2010 Ultimate und Visual Studio 2010 Test Professional lizenziert, sodass Ihnenhier keine zusätzlichen Kosten entstehen. Die verschiedenen SCVMM-Komponenten werdentypischerweise auf verschiedene Maschinen betrieben. Damit der TFS in der Lage ist, alle Host-Systeme „fernzusteuern“, wird auf dem TFS-Server die SCVMM Administration Console benötigt. Alszentraler Managementschnittstelle für die komplette VM-Infrastruktur dient ein SCVMM-Server. Dievirtuellen Maschinen werden beim Lab Management über Microsoft Hyper-V virtualisiert. An einenSCVMM-Server lassen sich bei Bedarf mehre Hyper-V Hosts anbinden. Durch die Anbindung vonmehreren Hyper-V Hosts kann die Infrastruktur im laufenden Betrieb flexibel erweitert werden. AlleHost-Systeme können auf gemeinsame Ressourcen (Bsp.: VM-Images, Software, Testumgebungen)über SCVMM Library Share(s) zugreifen. Eine SCVMM Library Share ist technisch gesehen eineWindows Freigabe.Neben dem SCVMM kommt serverseitig noch mindestens ein Test Controller und ein BuildController1zum Einsatz. Der Testcontroller hat die Aufgabe Test Agents in den Testumgebungenfernzusteuern und der Build Controller steuert entsprechend die Build Agents2fern.1Siehe [1,2]2Siehe [3]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 5 of 24Auch innerhalb der virtuellen Testmaschinen wird ein Minimum an Software benötigt. Im Fall vonvirtuellen Testumgebungen wird in den virtuellen Maschinen ein Build Agent, ein Test Agent und einLab Agent installiert. Die einzelnen Funktionsbereiche der Agents werden in einem Folgekapitelgenauer besprochen. Einen Überblick über die gesamte Infrastruktur zeigt Abbildung 2.Abbildung 2 - Architektur - Lab + Build + TestAls zweiten Umgebungstyp betrachten wir jetzt die physische Testumgebung. Bei physischenTestumgebungen kommen im Unterschied zu virtuellen Testumgebungen zur Verwaltung nur dieTest-Controller, Build Controller, Build Agent und Test Agent zum Einsatz. Der Einsatz von SCVMMund Lab Agent entfällt in diesem Szenario. Die Details zu den Hintergründen finden Sie im Kapitel LabManagement Fähigkeiten.Lizenzierung von Lab ManagementDie Visual Studio Lab Management Funktionalität können lizensierte Benutzer von Visual Studio2010 Test Professional oder Visual Studio 2010 Ultimate Lizenzen nutzen. Der im Kapitel LabManagement Infrastruktur angesprochende für virtuelle Testumgeungen notwendige SCVMM ist fürden Einsatzzweck Lab Management bereits über die zuvor angesprochenden Visual Studio Editionenlizenziert.Das Produkt Visual Studio 2010 Test Professional setzt sich aus den Bestandteilen Microsoft TestManager 2010 (MTM) und Agents, (genauer Test Agent und Lab Agent), zusammen. Test- und LabAgents werden auf einer Benutzerbasis im Rahmen des Test Professional Pakets lizenziert, d. h., Siekönnen beliebig viele Testumgebungen pro lizenzierten Benutzer nutzen.Alle Nutzer von Visual Studio 2010 Ultimate benötigen keine extra Test Professional Lizenz, daMicrosoft Test Professional Paket bereits Bestandteil der Visual Studio Ultimate Edition ist.Details zu den verschiedenen Lizenzierungsszenarien von der Visual Studio 2010 Familie finden Sieim Lizenz-Whitepaper3.3Siehe [4]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 6 of 24Visual Studio Lab Management FähigkeitenDas Visual Studio Lab Management System unterstützt aktuell drei Funktionen innerhalb vonTestumgebungen:1. Run Workflows2. Run Tests3. Execute Network Isolation.Die genannten Funktionen werden über den Microsoft Test Manager 2010 (MTM) in der Lab CenterPerspektive für jede Testumgebungen konfiguriert. Ein Beispiel für die Konfiguration einzelnerParameter zu Testumgebungen zeigt Abbildung 3.Abbildung 3 – Konfiguration von Lab Management EigenschaftenDie Funktionen können in Abhängigkeit vom Typ der Testumgebung variieren. Alle Funktionenwerden bei virtuellen Testumgebungen unterstützt. Network Isolation wird bei physischenTestumgebungen nicht unterstützt. Einen detaillierten Überblick über die Beziehung von Agents undLab Fähigkeit zeigt die nachfolgende Tabelle 1.Tabelle 1 - Agents und Lab Fähigkeiten4Umgebungsfähigkeit Lab Agentnotwendig?Test Agentnotwendig?Build Agentnotwendig?Testing √ √ XDeploymentWorkflow√ X √Network Isolation √ X XDamit kann man unterschiedlichste Umgebungen je nach Bedarf erstellen und über die LabManagement Komponente verwalten.4Quelle siehe [1]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 7 of 24WorkflowDie Workflow-Fähigkeit wird beim TFS Lab Management über das Zusammenwirken von Build Agentund Lab Agent realisiert. Beide Agenten sorgen dafür, dass jede virtuelle Maschine innerhalb einerTestumgebung mit der korrekten Software bespielt wird. In Abhängigkeit vom Anwendungstyp undBestandteilen können die ausgerollten Produkte, z.B. Webseiten, Datenbankskripte oder MSI SetupPakete sein. Das Ausrollen der unterschiedlichen Build-Ergebnisse kann über Power Shell oder Batch-Dateien gesteuert werden.Ein Beispiel für ein einfaches Deployment-Skript zeigt das folgende Code-Schnipsel von [5]:set RemotePath=%1set LocalPath=%SystemDrive%Calculatorif not exist %RemotePath% (echo remote path %RemotePath% doesnt existgoto Error)if exist %LocalPath% (rmdir /s /q %LocalPath%)REM Copy files to the local machinemkdir %LocalPath%copy /y %RemotePath%* %LocalPath%.xcopy /cseirhdzv %RemotePath%_PublishedWebsitesCalc %LocalPath%@echo Copied the build locally:Successecho Deploy succeededexit /b 0:Errorecho Deploy failedexit /b 1Testen und TestautomatisierungDie Test-Funktion ist für zwei Bereiche verantwortlich, die Ausführung von Tests und die Erfassungvon Diagnosedaten. Zur Durchführung von Tests ist ein Test-Agent notwendig. In Abhängigkeit vomauszuführenden Testtyp kann der Agent als interaktiver Dienst oder Hintergrunddienst laufen.Benötigt ein Test die Interaktion mit der Benutzeroberfläche, wie dies z.B. bei automatisiertenOberflächentests (Coded UI Tests) notwendig ist, wird der Test Agent als interaktiver Dienstkonfiguriert. Im Gegensatz dazu, wenn keine Interaktion mit der Oberfläche notwendig ist, wie z.B.bei Unit- und Lasttests, dann wird der Test Agent als Hintergrunddienst konfiguriert.Neben der Testausführung sorgt der Test Agent durch die Erfassung von Diagnosedaten für dieGrundlage sogenannter „Rich Information Bugs“. Rich Information Bugs sind Fehlermeldungen miterweiterten Informationen. Beispiele für erweiterte Informationen sind z. B. ein Video derTestausführung, Systeminformationen, Server Log Dateien, IntelliTrace Daten („historicaldebugging“). Einen Überblick über die zusätzlichen Informationen zeigt nachfolgende Abbildung 4.
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 8 of 24Abbildung 4 – Informationen in Rich BugsEin praktisches Beispiel für einen Rich Bug mit angefügten Zusatzinformationen zeigt Abbildung 5.Der erzeugte Bug war das Ergebnis aus einem Lab Management Testdurchlauf. Im Rahmen desTestlaufes wurden aus den verschiedenen virtuellen Maschinen, sowohl die Systeminformationen,die Eventlog-Einträge und ein Video der Testausführung angefügt.Abbildung 5 - Rich Bug aus automatischer TestausführungFehlerLog FilesSystemInfoCodeCoverageBild +ScreenVideosSystemEventsDebug-InfoIntelli-TraceVM Snap-shot…
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 9 of 24Network IsolationDie Network Isolation - Funktion vom Visual Studio Lab Management ermöglicht den Parallelbetriebvon Kopien der Testumgebung (Klone). Unter normalen Umständen ist ein Parallelbetrieb vonduplizierten Testumgebungen nicht möglich, weil es in Netzwerken zu Konflikten bei denNetzwerkeinstellungen kommt (z. B. doppelte Rechnernamen, doppelte IP Adressen)5. EineLösungsmöglichkeit um Konflikte bei den Netzwerkeinstellungen zu verhindern, zeigt beispielhaftAbbildung 6. In Abbildung 6 kann jeweils nur eine Kopie der Testumgebung mit dem Netzwerkverbunden sein.Abbildung 6 - Konflikte ohne Network IsolationDas Visual Studio Lab Management kann nun mit Hilfe des Lab Agents diesen Prozess drastischverbessern, indem die einzelnen Kopien isoliert werden. Die Isolation wird erreicht, indem für jedevirtuelle Maschine je zwei Netzwerkkarten angelegt werden. Je eine der beiden Netzwerkkarten provirtuellen Testrechner ist dabei jeweils mit dem öffentlichen Netzwerk oder dem internenTestnetzwerk verbunden. Die Einstellungen der internen Netzwerkkarten bleiben auch beimDuplizieren konstant, d. h. Rechnername und IP Adresse bleiben immer erhalten (siehe Abbildung 7).Um dies zu ermöglichen, ändert der Lab Agent bei den öffentlichen Netzwerkkarten die IP-Adressenund den DNS-Namen, um eine Eindeutigkeit im öffentlichen Netzwerk sicherzustellen und einenZugriff auf die Testrechner von außen zu ermöglichen.5Siehe [6]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 10 of 24Abbildung 7 - Network IsolationManagement von TestumgebungenDas Management von Testumgebungen, wie z.B. erstellen, löschen und verbinden, findet beim LabManagement auch über den Microsoft Testmanager (MTM) statt. Um auf Testumgebungenzuzugreifen, ist ein Wechsel in den das Lab Center („grüne Oberfläche“), notwendig.Wie einfach es ist eine Testumgebung zu erstellen, wird im Folgenden exemplarisch vorgestellt. Alsersten Schritt zur Erstellung einer Testumgebung wird der Umgebungstyp „virtuelle Testumgebung“ausgewählt. In Abbildung 8 wurde dazu „New virtual environment“ geklickt.Abbildung 8 - Auswahl der zu erstellenden TestumgebungNachdem der Umgebungstyp festgelegt wurde, kann auf Basis der verfügbaren Vorlagen anvirtuellen Maschinen, ein oder mehrere Testrechner für die Testumgebung erzeugt werden (sieheAbbildung 9).
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 11 of 24Abbildung 9 - Zusammenstellung der TestumgebungAls nächster Schritt wird das Hardware Profil (z.B. Arbeitsspeicher, CPU, Festplattenspeicher) undBetriebssystemprofil (z.B. Domänen-Mitgliedschaft, Administratorpasswort) konfiguriert (sieheAbbildung 10).Abbildung 10 - Konfiguration der RechnerparameterDie Erstellung einer Testumgebung wird durch das Zuweisen der Lab Management Fähigkeitenabgeschlossen. Im Rahmen dieser Phase wird zum einen die Fähigkeit als auch der zuständigeController direkt ausgewählt. Wird im Rahmen der Erstellung einer Testumgebung ein ActiveDirectory eingerichtet, dann wird der entsprechende Server explizit benannt, damit er Server durchdie Network Isolation isoliert werden kann.
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 12 of 24Abbildung 11 - Auswahl der Umgebungsfähigkeiten
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 13 of 24Integration in Build- und Deployment-ProzesseDie Verbindung von Release-Prozessen und Testausführung im Kontext Lab Management findet überBuild-Prozesse statt. Beim TFS 2010 wurde das Build-System komplett überarbeitet und dabei wurdedie globale Build-Prozess-Steuerung von MSBuild auf die Windows Workflow Foundation umgestellt.Bei der Nutzung der Lab Management Fähigkeiten kommt ein neues Workflow Template zumEinsatz (labdefaulttemplate.xaml).Dieses Lab Management Template bildet intern einen abstrahierten Workflow aus Abbildung 12 ab.Abbildung 12 - Lab Management ProzessDie einzelnen Schritte vom Übersetzen des Codes, über das Ausrollen in die Testumgebung und dieAusführung von Tests wird in vier Phasen über einen Workflow Wizard konfiguriert. DiesesVerfahren wird als „Build, Deploy and Test“-Workflow bezeichnet. In der Literatur können Sie denProzess auch unter dem Namen „Continuous Delivery“ wiederfinden. „Continuous Delivery“ ist -bildlich gesprochen - die nächste Stufe nach „Continuous Integration“, um agiler und günstigerqualitativ hochwertige Software ausliefern zu können.Der zuvor angesprochene Workflow Wizard ermöglicht das Einrichten eines Lab ManagementProzesses in vier Phasen:1. EnvironmentIm Environment Schritt wird die zu nutzende Testumgebung konfiguriert. Testumgebungenmüssen vor der Konfiguration bereits über den MTM erstellt worden sein.CompileCodeRestoreEnviron-mentDeployAppl.TakeCheck-pointRunTestsBugSnapshot
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 14 of 242. BuildIn diesem Schritt werden die für die Testumgebung zu verwendenden Build-Ergebnissekonfiguriert. Es gibt zwei mögliche Orte, aus denen sich das Lab Management für dasAusrollen von neuen Versionen bedienen kann, der TFS Build-Service oder eine WindowsDateifreigabe. Wird die Option TFS Build-Service gewählt, so hat man die Möglichkeitentweder einen neuen Build auszulösen oder die Ergebnisse eines existierenden Build zuverwenden.3. DeployBei diesem Schritt werden die Skripte zum Ausrollen (Deployment) von Software odernotwendigen Elementen mit den virtuellen Maschinen der Testumgebung verknüpft.
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 15 of 244. TestIm Test-Schritt werden die auszuführenden Tests bzw. Testsuiten konfiguriert. Dieauszuführenden Tests werden durch Zuweisung eines Testplans, die Auswahl von ein odermehreren Testsuiten und Festlegung der zu testenden Konfiguration angegeben.Anwendung von Lab Management beim TestenAutomatisches TestenBeim automatischen Testen unter Verwendung des Lab Managements wird der im Kapitel„Integration in Build-Prozesse“ beschriebene Workflow „Build, Deploy and Test“ eingesetzt. Das Zieldes Verfahrens ist die regelmäßige Prüfung von neuen Softwareversionen durch automatisierteTests. Damit die Tests in den Testumgebungen automatisiert ablaufen können, müssen diese zuvordurch einen Tester mit Entwicklungshintergrund (z.B. Testengineer) automatisiert werden. In VisualStudio hat der Testengineer die folgenden Testtypen zur Verfügung:1) Unit Test: Test von Logik auf Modul- und Komponentenebene2) Datenbank-Unit Tests: Test von Datenbanklogik (Functions, Stored Procedures, etc.)3) Coded UI Tests: Test von Oberflächen (Web, WPF, Silverlight, .net Forms etc.) über dieStandards und Technologien6MSAA7, UIA8, MSHTML, JavaScript, Firefox DOM, CodeInjection oder Reflection4) Lasttests: Testet das Anwendungsverhalten unter simulierter LastVon den genannten Testtypen werden typischerweise die ersten drei genannten in Lab ManagementTestumgebungen ausgeführt.Die Ausführung eines Oberflächentests ist beispielhaft in Abbildung 13 dargestellt.6UI Tracking Technologien, siehe [7]7Microsoft Active Accessibility , siehe [8]8Microsoft UI Automation, siehe [9]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 16 of 24Abbildung 13 - Ausführung Coded UI Test in TestumgebungAuch während der Ausführung der zuvor genannten Tests werden innerhalb der Testumgebungfortlaufend Diagnosedaten durch den Testagent eingesammelt und im TFS gespeichert (sieheAbbildung 14).Abbildung 14 - Analyse von Testläufen aus der Testumgebung
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 17 of 24Abbildung 15 - Diagnose AdapterDie Erfassung von Diagnosedaten kann in Abhängigkeit von der Rolle der virtuellen Maschineindividuell konfiguriert werden. Die einfache Konfiguration dieser Einstellungen und einBeispielszenario zeigen die Abbildungen 15 und 16.Testumgebung bestehend aus 2 Clients und 2 ServernWindows 7Client + IE 8Datenbank-ServerWeb-ServerWindows XPClient + FirefoxTestausführung TestausführungErfassung vonDiagnosedatenErfassung vonDiagnosedatenErfassung vonSysteminformationenErfassung vonDiagnosedatenErfassung vonSysteminformationenNetworkEmulationAbbildung 16 - Testumgebung für automatisches Testen99Quelle siehe [10]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 18 of 24Manuelles TestenDas manuelle Testen bindet einen großen Anteil der Ressourcen von Testabteilungen. Auch beidieser Form des Testens kann das Lab Management Unterstützung leisten. Beim manuellen Testenarbeitet der Tester mit einer Kombination aus dem „MTM Test Runner“ als Client und dem LabManagement für die Testobjekt-Server-Infrastruktur. Ein typisches Anwendungsszenario ist dasTesten einer Webanwendung, dabei wird die Anwendung durch einen Build-Prozess auf dasTestsystem, bestehend aus Web Server und Datenbank Server, ausgerollt. In diesem Szenario wirdein lokaler MTM benutzt und die Webseite aus der virtuellen Testumgebung über den Browsergeöffnet (siehe Abbildung 17).Abbildung 17 - Testen von Web Applikationen mit dem MTM und Lab ManagementFindet der Tester während der Testausführung einen Fehler, so hat er jetzt die Möglichkeit simultanund ohne manuelle Tätigkeiten alle Diagnosedaten von allen an der Testausführung beteiligtenComputer zu holen (siehe Abbildung 18).
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 19 of 24Manuelles Testen von Mehrschichtigen AnwendungenTestumgebungLokaler ClientDatenbank-ServerWeb-ServerTestausführungErfassung vonIntelliTrace DatenErfassung vonSysteminformationenErfassung vonSysteminformationenErfassung von Event-Log InformationenErfassung vonIntelliTrace DatenVideo-aufzeichnungAbbildung 18 - Testumgebung für manuelles Testen10Unabhängig von den Diagnosedaten aus den Testumgebungen lassen sich im Fehlerfall diekomplette Test-Infrastruktur (hier: Web Server, Datenbank) in einem konsistenten Zustandeinfrieren (ein Test Environment Snapshot)(siehe Abbildung 19).Abbildung 19 - Einfrieren von Testumgebungen im FehlerfehlDurch das Verlinken der Snapshots zu den Fehlern (Bug Work Items) können Tests und Fehlerfälleleichter reproduziert und bei Bedarf die Korrekturen in der ursprünglichen Testumgebungnachgetestet werden. Vor der Verfügbarkeit von Lab Management mussten Entwickler sehr oftaufwendig eigene Testumgebungen aufsetzen, um Fehler reproduzieren zu können. Mit dem LabManagement haben Sie jetzt die Möglichkeit, die Umgebungen der Tester zu verwenden bzw. sichexakte Kopien von diesen zu erzeugen und diese mit Hilfe von Network Isolation sogar parallel zubetreiben. Damit können die Tester schon das nächste Release testen, während die Entwickler imletzten Release die gefundenen Fehler nachstellen und beheben.10Quelle siehe [10]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 20 of 24ZusammenfassungTestausführung und die Bereitstellung von Testumgebungen binden einen großen Anteil anRessourcen (Zeit, Personal, Hardware). Aufgrund des großen Anteils am Testprozess ergibt sich hiereine hohes Optimierungs- und Einsparpotential durch das Visual Studio Lab Management.Das Lab Management schafft erstmals für viele Anwender eine kostenneutrale, in den Test- undEntwicklungsprozess integrierte Lösung, zur Verwaltung und Bereitstellung von Testumgebungen,sowie die Möglichkeit der automatischen Ausführung von Tests und bei Bedarf die Erfassung vonumfangreichen Diagnosedaten.Die Stärke des Systems liegt in der hohen Integrationstiefe zwischen Release- und Testprozess.Manueller Aufwand für den Testadministrator kann hier, z.B. durch ein automatisches Ausrollen vonaktuellen Softwareversionen eingespart werden. Weiterer Aufwand für alle Testbeteiligte lässt sichhier zum einen beim Einrichten von „sauberen“ Testumgebungen und zum anderen beimregelmäßigen installieren von neuen internen Testversionen einsparen.Weitere Vorteile können sich durch Verwendung von virtuellen Testumgebungen ergeben, indemz.B. im Fehlerfall und beim Bugfixing Entwickler auf die Testumgebungen der Tester zugreifen bzw.sich Kopien der Testumgebungen mit „einem Mausklick“ ohne administrativen Overhead erzeugenlassen können. Damit stehen die Testumgebungen für alle Rollen zur Verfügung, wenn diesebenötigt werden und nicht, wenn die Umgebungen gerade zufällig frei sind.Neben der Unterstützung des manuellen Testens, lässt sich ein automatischer Testprozess nach derMethodik „Continuous Delivery“, bestehend aus den Phasen Kompilieren, Ausrollen und Testen sehreinfach realisieren. Continuous Delivery wird in der Literatur als „Continous Integration Plus“gesehen. Das Testen von Software mit Lab Management ist nicht nur auf virtuelle Testumgebungenbegrenzt, denn es kann auch die Kombination aus Hardware und Software in physischenUmgebungen getestet werden.Unabhängig davon, ob mit Hilfe von Visual Studio Lab Management Umgebungen manuelles oderautomatisches Testen unterstützt wird: In beiden Anwendungsfällen haben Sie die Möglichkeit,umfangreiche Diagnosedaten von allen beteiligten Testrechnern ohne manuelle Tätigkeiten zuextrahieren und dem Entwickler über den TFS zur Verfügung zu stellen.
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 21 of 24FAQ1) Werden auch andere Virtualisierungstechnologien als Microsoft Hyper-V unterstützt?Sie haben die Möglichkeit virtuellen Maschinen, (z. B. VMware ESX, XEN, VirtualBox) alsphysische Testumgebungen in ihren Testprozess einzubinden.2) Welche Unterschiede existieren zwischen virtuellen und physischen Testumgebungen?Eine Übersicht über die Unterschiede zeigt nachfolgende Tabelle11:Die wesentlichen Unterschiede zeigen sich bei virtualisierungsspezifischen Funktionen, wiez. B. Snapshots, Erstellung von Umgebungen auf Basis von Vorlagen und Network Isolation.3) Ist die Installation des Visual Studio 2010 und TFS 2010 Service Pack 1 empfehlenswert?Die Service Packs von Visual Studio 2010 und TFS 2010 enthalten wichtige Fehlerkorrektenfür die unterschiedlichen Bereiche von Visual Studio 2010 und TFS 2010 und das zuvorseparate veröffentlichte Lab Management Update. Eine Installation auf allen beteiligtenClients und Servern ist sehr zu empfehlen. Mehr Informationen zu der Installation derService Packs finden Sie unter [12].4) Ist die Installation des Windows Server 2008 R2 Service Pack 1 empfehlenswert?Das Service Pack 1 für den Windows Server 2008 R2 enthält wichtige Fehlerkorrekturen undneue Funktionen für die Serverrolle Hyper-V, welche die Basis für virtuelle Testumgebungenist. Nach der Installation des Service Pack 1 für Windows Server 2008 R2 ist die Installationdes Service Pack 1 für den SCVMM 2008 R2 ebenfalls erforderlich. Bitte beachten Sie, dassdie neue Hyper-V Funktion „Dynamic Memory“ bereits mit dem Lab Management nutzbarist, aber noch nicht direkt über den MTM konfiguriert werden kann.11Quelle siehe [11]
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 22 of 24Quellen[1] Setting up agents/controllers for lab:http://blogs.msdn.com/b/lab_management/archive/2010/04/21/setting-up-agents-controllers-for-lab.aspx[2] Planning and Setting Up Your Virtual Lab:http://msdn.microsoft.com/en-us/library/dd380688.aspx[3] Lab Build agents – How it works:http://blogs.msdn.com/b/lab_management/archive/2010/05/02/lab-build-agents-how-it-works.aspx[4] Visual Studio 2010 and MSDN Licensing White Paper:http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=2b1504e6-0bf1-46da-be0e-85cc792c6b9d[5] Getting started with Lab Management – VS2010 RC (Part: 4):http://blogs.msdn.com/b/lab_management/archive/2010/02/16/getting-started-with-lab-management-vs2010-rc-part-4.aspx[6] How does Network Isolation in VS Lab Management work?:http://sstjean.blogspot.com/2010/07/how-does-network-isolation-in-vs-lab.html[7] Visual Studio UI Test Extensibility–Scenarios & Guiding:Principleshttp://blogs.msdn.com/b/mathew_aniyan/archive/2011/03/28/visual-studio-ui-test-extensibility-scenarios-amp-guiding-principles.aspx[8] Microsoft Active Accessibility:https://secure.wikimedia.org/wikipedia/en/wiki/Microsoft_Active_Accessibility[9] Microsoft UI Automation:https://secure.wikimedia.org/wikipedia/en/wiki/Microsoft_UI_Automation[10] Setting Up Machines and Collecting Diagnostic Information Using Test Settings:http://msdn.microsoft.com/en-us/library/dd286743.aspx[11] Does Lab Management support non-Hyper-V platforms?:http://blogs.msdn.com/b/lab_management/archive/2010/10/27/does-lab-management-work-on-non-hyper-v-platforms.aspx[12] FAQ: Team Foundation Server (TFS) und Visual Studio (VS) 2010 SP1 Installation:http://www.tfsblog.de/2011/03/21/faq-team-foundation-server-tfs-und-visual-studio-vs-2010-sp1-installation/
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 23 of 24AbbildungsverzeichnisAbbildung 1 –Typische Testumgebungen im Projektalltag.....................................................................3Abbildung 2 - Architektur - Lab + Build + Test ........................................................................................5Abbildung 3 – Konfiguration von Lab Management Eigenschaften .......................................................6Abbildung 4 – Informationen in Rich Bugs..............................................................................................8Abbildung 5 - Rich Bug aus automatischer Testausführung ...................................................................8Abbildung 6 - Konflikte ohne Network Isolation.....................................................................................9Abbildung 7 - Network Isolation...........................................................................................................10Abbildung 8 - Auswahl der zu erstellenden Testumgebung.................................................................10Abbildung 9 - Zusammenstellung der Testumgebung..........................................................................11Abbildung 10 - Konfiguration der Rechnerparameter..........................................................................11Abbildung 11 - Auswahl der Umgebungsfähigkeiten............................................................................12Abbildung 12 - Lab Management Prozess ............................................................................................13Abbildung 13 - Ausführung Coded UI Test in Testumgebung...............................................................16Abbildung 14 - Analyse von Testläufen aus der Testumgebung...........................................................16Abbildung 15 - Diagnose Adapter.........................................................................................................17Abbildung 16 - Testumgebung für automatisches Testen....................................................................17Abbildung 17 - Testen von Web Applikationen mit dem MTM und Lab Management........................18Abbildung 18 - Testumgebung für manuelles Testen...........................................................................19Abbildung 19 - Einfrieren von Testumgebungen im Fehlerfehl............................................................19
  • AIT GmbH & Co. KG – TeamSystemPro Teamwww.aitgmbh.de/teamsystempro | info@aitgmbh.deWhitepaper: Visual Studio Lab Management | Seite 24 of 24Dieses Whitepaper wurde erstellt vonAutor: Nico Orschel (AIT GmbH & Co. KG)Reviewer: Artur Niesporek (Microsoft Deutschland GmbH)Steffen Ritter (Microsoft Deutschland GmbH)Mathias Zieger (Microsoft Deutschland GmH)AIT Applied Information Technologies GmbH & Co. KGAIT TeamSystemPro TeamPostanschrift:Leitzstr. 4570469 StuttgartAmtsgericht StuttgartHRA 725452Komplementär:AIT Verwaltungs GmbHAmtsgericht StuttgartHRB 734136Geschäftsführer: Lars RoithIBAN: DE80 61191310 0664310001SWIFT: GENODES1VBPTelefon 0711/ 49066-430E-Mail info@aitgmbh.deInternet http://www.aitgmbh.de/teamsystempro