Im Rahmen der Mitarbeiterweiterbildung besuchten Entwickler der FRAISS - IT Consulting & Mediendesign am 01.03.2010 einen Microsoft-Vortrag über Visual Studio Team System 2010, und über den Entwicklungszyklus in der Umgebung, die im Moment als Release Candidate auf der Microsoft Visual Studio Website verfügbar ist.
Es wurden die Punkte
- Management Principles
- Architektur/Design
- Entwicklung
- Testen
- Builden
behandelt, die Vortragenden waren Georg Drobny und Max Knor.
Das Event öffnete mit einem Vortrag über die Design- und Architekturmöglichkeiten innerhalb von VSTS2010.
Besonders hervorgehoben wurde hierbei die direkte Integration eines (leider rudimentären) UML-Editors direkt in die IDE, sowie der "Architecture Explorer", mit dem man in der Lage ist, komfortabel über die gesamte Architektur des Projekts zu navigieren und interessante Teile (und vor allem ihre Referenzen untereinander) zu visualisieren.
Weiters bietet VSTS2010 viele Möglichkeiten, um die Codequalität zu prüfen. Sowohl typische Codemetriken, als auch Vererbungstiefen und sogar statische Codeanalysen, aufbauend auf Rule-Sets, die unter anderen von Microsoft zur Verfügung gestellt werden, sind im Repetoire.
Der Entwicklungsteil befasste sich vor allem mit den Möglichkeiten der Test-Driven Development. So wird es unter VSTS2010 möglich sein, Klassen-Stubs aus Testsuites zu generieren, sowie aus fertigen Methoden elaborative Testcases automatisiert zu extrahieren.
Ein weiterer großer Schwerpunkt dieses Kapitels war das in den Team Foundation Server integrierte Versioning System. Diesbezüglich wurde auf die gut ausgeprägten Branching-Möglichkeiten hingewiesen. So ist es nicht nur möglich, komfortabel und simpel Branches herzustellen, sondern auch das Merging zwischen eben diesen wurde stark vereinfacht. Die atomare Einheit des Versioning Protokolls ist ein ChangeSet, in dem eine oder mehrere Änderungen vorgenommen wurden. Hat man so einen ChangeSet in einen Branch eingespielt, so ist es zum Beispiel über ein Visualisierungstool ein Leichtes, zu prüfen, in welchen Branches der Branchhierarchie dieser ChangeSet bereits aufgespielt wurde.
Per simplen Drag-And-Drop kann man das ChangeSet dann auf die anderen Branches aufspielen. Hierbei war nur zu beachten, dass Reverse- und Forwardintegration zwar kein Problem sind, aber baseless Integration (Patchen außerhalb der vorhandenen Branchstruktur, z.B.: auf einen Branch in der gleichen Hierarchieebene) zwar theoretisch möglich ist, aber nur per Commandlinetool machbar.
Außerdem wurde Wert auf das sogenannte "Shelving" gelegt, dass es ermöglicht, den aktuellen Status des Projekts kurz "zwischenzuspeichern", bildlich gesprochen "Auf ein Regal zu stellen", um andere Änderungen z.B.: am Masterbranch erledigen zu können. Danach kann man seinen eigenen Status per "Unshelving" schnell wieder herstellen, und weiterarbeiten. Der große Vorteil gegenüber dem Branching besteht darin, dass der gesamte Overhead einer Branch-Hierarchie umgangen wird, und der Status auch von anderen Entwicklern "kurz mal ge-unshelved und ausprobiert" werden kann.
Man könnte Shelving also eine Art LightBranching betrachten.
Der nächste Teil handelte vom Testen. Hier wurde uns zuerst eine interessante Möglichkeit namens "Test Impact Analysis" vorgestellt.
Hierbei geht man von der Annahme aus, dass bei größeren Projekten das Durchlaufen einer ganzen Unit-Test-Suite recht lange dauern könnte.
Ändert man nur einen kleinen Teil des Codes, kann man aber davon ausgehen, dass viele Tests gar nicht neu ausgeführt werden müssen, da sie in keinster Weise mit dem geänderten Code in Verbindung stehen. VSTS2010 ist in der Lage, exakt die Tests zu nennen, die nochmal wiederholt werden sollten.
Als ob das nicht beeindruckend genug wäre, wurde uns dann der Visual Studio Test Manager vorgestellt. Dieses Programm ist ein eigenständiges, aber dennoch voll in die VSTS/TFS-Umgebung integriertes Tool, mit dem man manuelle und auch automatische Tests erstellen und verwalten kann.
Manuelle Tests werden in der kontrollierten Umgebung ausgeführt, ein vorher exakt beschriebener Test wird von der testenden Person Schritt für Schritt ausgeführt.
Nach jedem Schritt kann die Person bestätigen, dass der eben ausgeführte Schritt erfolgreich war. Sollte ein Schritt nicht erfolgreich sein, kann direkt ein Screenshot erstellt, eine Beschreibung angehängt, und die gesamte Situation, exakt so wie sie der/die TesterIn hat, an die Entwicklungsabteilung als Bugreport weitergeleitet werden.
Es ist sogar möglich, ad hoc ein Abbild der VM des Testers zu erstellen, und dieses an den Bugreport zu hängen, so dass der Entwickler sofortigen Zugriff zur exakten Situation hat, wie der Tester sie vor sich hat.
Automatische Tests werden besonders zum Testen von UIs eingesetzt. Die Testperson geht einmal alle Schritte des Testens durch und lässt sich dabei von der Test Suite aufnehmen.
Die Test Suite wiederholt dann automatisch auf Befehl alle diese Schritte.
Das letzte Kapitel handelte vom Builden.
VSTS2010 nutzt einen im Workflow 4.0 definierten Standard zum Builden von Projekten. Dabei werden dedizierte Maschinen zum Builden benutzt.
Entwickler können Buildaufträge in die Build-Queue geben. Sobald die Build-Maschine frei ist, wird sie dann mit dem Kompilieren beginnen.
VSTS2010 gibt dann per Windows-Notification Bescheid, wenn ein Build abgeschlossen ist, sofern man das möchte.
Bezüglich des Deploys wurde noch auf das "Gated Check-In" eingegangen. Hier geht es darum, dass strenge Regeln festgelegt werden können,
wann Check-Ins akzeptiert werden, und wann nicht. Dabei handelt es sich von einfachen Möglichkeiten wie dem Erzwingen eines Commit-Kommentars bis zum Automatischen Test eines neuen Builds, noch bevor ein Check-In erfolgt.
Insgesamt war es ein langer (von 09:00 bis 17:00 Uhr), aber wieder einmal sehr gut organisierter und interessanter Tag, an dem es Microsoft gelungen ist, die Vorteile eines Umstiegs auf das neue VSTS2010 eindrucksvoll aufzuzeigen, und zu demonstrieren, zu was eine mächtige, und gut abgestimmte Entwicklungsumgebung wie VSTS2010 fähig ist. Die Entwicklungsabeteilung der FRAISS - IT Consulting & Mediendesign freut sich bereits, VSTS2010 in die derzeitige Arbeitsumgebung zu integrieren und die vollen Möglichkeiten dieses Tools, wie heute vorgezeigt, auszuschöpfen.