SlideShare ist ein Scribd-Unternehmen logo
Links und rechts des Weges: Qualitäts-
sicherung ist mehr als Testfallverwaltung
Testen ist Teil eines komplexen Prozesses auf dem Weg von einer Idee oder einem Problem zu einer fertigen Software. Testen hat
die Aufgabe, die Qualität der und das Vertrauen in die auszuliefernde Software sicherzustellen. Dabei kommen verschiedene
Testtechniken und -methoden zum Einsatz: funktionale Tests, Beta- und Alpha-Tests, Akzeptanztests sowie entwicklernahe
Testtechniken, wie Unit- und Integrationstests sind nur einige Beispiele.
Kundenproblem oder eine Anforderung.
Diese unkonkreten „Kundenwünsche“
werden anschließend durch einen formalen
Anforderungsmanagement-Prozess struk-
turiert aufbereitet. Je nach Vorgehens-
modell heißen die entstehenden Artefakte
dann Anforderungen bzw. User Stories. Die
Techniken zur Erfassung, Verarbeitung und
Transformation dieser Kundenwünsche
stellen hier nicht den inhaltlichen Fokus
dar (weiterführende Informationen siehe
[Sig-2]).
Aus unserer Sicht gibt es in vielen Pro-
jekten an der Schnittstelle zwischen Testen
und Anforderungsmanagement die folgen-
den Ursachen für hohe Abstimmungs-
aufwände oder geringe Zusammenarbeit:
■ Medienbrüche: Verwendung von ge-
trennten Informationssystemen entlang
des gesamten Entwicklungsprozesses:
So verwendet z. B. das Produkt-
management Word-Dokumente, die
Entwicklung SVN und die Tester HP
QC für die Testverwaltung sowie
Bugzilla für die Fehlererfassung und
Kommunikation mit der Entwicklung.
Das sorgt für Informationsverlust an
jeder Schnittstelle.
■ Unklare Verhältnisse: Reviews werden
selten durch wichtige Interessensver-
treter (Stakeholder) durchgeführt. Die
In den folgenden Abschnitten möchten wir
Sie auf eine Reise durch die verschiedenen
Bereiche eines Software-Lifecycles mitneh-
men und Ihnen dabei neue Ideen links und
rechts des Weges zur Verbesserung der
Qualität Ihrer Software außerhalb der „klas-
sischen“ Testfallverwaltung und Ausführung
von Testfällen aufzeigen. Im Detail werden
dabei exemplarisch Maßnahmen für die
Software-Lifecycle-Phasen „Spezifizieren“,
„Planen“, „Umsetzen“, „Testen“ und
„Ausliefern“ betrachtet (siehe Abbildung 1).
Die Basis für alles:
Anforderungen
Den Beginn einer jeden Software-Entwick-
lung markiert ein allgemein formuliertes
Als Technologie- und Prozessberater für
effizientere Software-Entwicklung bei AIT
haben wir häufig die Gelegenheit, die
Software-Entwicklungsprozesse in ver-
schiedenen Unternehmen zu analysieren.
Ein Muster lässt sich dabei sowohl bei agil
(z. B. Scrum) als auch bei traditionell (z. B.
Wasserfallmodell) orientierten Arbeitswei-
sen beobachten. Viele Teams sind geprägt
von einer strikten organisatorischen und
thematischen Isolation von Testern und
Entwicklern. Qualitätssicherung als Begriff
ist in diesen Teams im Wesentlichen mit
(manuellem) Testen gleichgesetzt (vgl.
[Cha-1]). Der gelebte Prozess läuft meist
nach einem ähnlichen Schema ab: zu
Beginn Definition von Testfällen, dann
(manuelle) Ausführung von Testfällen,
Meldung von Fehlern an die Entwicklung,
Nachtesten von Fehlerbehebungen und
zum Abschluss Freigabe der Software.
Die Folgen dieser einseitigen Betrachtung
von Qualitätssicherung als „nur Testen“
sind immens. Es entstehen hohe Test-
aufwände bei geringer Qualität, verzögerte
Freigabetermine aufgrund zu spät durchge-
führter Qualitätssicherungsmaßnahmen
und besonders schwerwiegend: isolierte
und demotivierte Teammitglieder im ge-
samten Produktteam. Die Ursache: Quali-
tätssicherung wurde nicht als gemeinsame
übergreifende Aufgabe wahrgenommen.
der autor
Nico Orschel
(nico.orschel@aitgmbh.de)
ist MVP (Microsoft Most Valuable Professional), ISTQB-zertifizierter Software-
Tester und Berater des AIT TeamSystemPro-Teams. Er hat sich u.a. auf das
automatische Testen mit dem Visual Studio Lab Management spezialisiert. Er
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.
1 www.objektspektrum.de
advertorial
Abb. 1: Software-Lifecycle.
Interessensvertreter sind gegensätz-
licher Meinung und Ansicht und es ist
nicht geklärt, wer in letzter Instanz ent-
scheidet. Das sorgt für fehlende Klar-
heit und häufiges Verfehlen der Erwar-
tungen.
■ Fehlende Informationen: Entscheidun-
gen und Review-Ergebnisse sind nicht
dokumentiert oder stehen aufgrund
unterschiedlicher Werkzeuge nicht zen-
tralisiert für alle zur Verfügung.
Eine Möglichkeit, diese Probleme anzuge-
hen, ist die Nutzung einer integrierten
ALM-Plattform. Solche Plattformen dek-
ken dabei verschiedene ALM-Bereiche wie
Software-Lifecycle-Management, Betrieb
(Operations) und Verwaltung (Governance)
ab (Definition von ALM siehe [Cha-2]). Für
die Entwicklungsprojekte mit unseren
Kunden setzen wir dabei seit mehreren
Jahren erfolgreich auf den Team Foun-
dation Server (TFS) aus dem Hause Micro-
soft. Für die Phase „Anforderungs-
management“ ermöglicht der TFS über so
genannte „Work Items“ die einfache
Erfassung und Verwaltung von Anfor-
derungen oder User Stories. Über den glei-
chen Mechanismus werden auch Testfälle,
Feedback und Reviews (inkl. Ergebnisse) in
den späteren Phasen unterstützt. In Ab-
hängigkeit vom jeweiligen Artefakttyp
(„Anforderung“, „Review“, „Feedback“)
können die Felder und Regeln sowie der
Workflow variieren. Die jeweiligen Ele-
mente sind keine geschlossenen Systeme,
sondern können im laufenden Projekt an
die jeweiligen Bedürfnisse angepasst wer-
den. In Abbildung 2 ist beispielhaft die
Erfassung einer Anforderung in Visual
Studio dargestellt. Neben Visual Studio
können Sie als Anwender auch andere
Werkzeuge gleichberechtigt verwenden.
Beispiele sind z. B. Webzugriff per
WebAccess, Excel, Project, Visual Studio,
Microsoft Testmanager (MTM), AIT
WordToTFS (siehe [Ait]) oder TeamCom-
panion für Outlook. Der große Vorteil
besteht darin, dass je nach Rolle der Team-
mitglieder bereits etablierte Werkzeuge für
den Zugriff auf die gemeinsamen Artefakte
wie Anforderungen, Fehler oder Feedback
genutzt werden können. Durch die zentrale
Speicherung aller Informationen im TFS
haben alle Teammitglieder die Möglichkeit,
zu jeder Zeit Rückmeldungen/Verbes-
serungsvorschläge zu allen Artefakten
(hier: Anforderungen) zu geben. Die erhöh-
te Transparenz sorgt als positiver Effekt
dafür, dass Inkonsistenzen, Lücken und
Widersprüche bereits frühzeitig erkannt
und behoben werden.
Ein Beispiel für einen gelebten Prozess aus
unserem Projektalltag ist die Nutzung von
Word und TFS für die Anforderungs-
definition. In der Spezifikationsphase setzen
wir primär auf Word mit WordToTFS, unse-
re kostenlosen Erweiterung für Word und
TFS. WordToTFS ermöglicht die einfache
und schnelle Aufnahme, Bearbeitung und
Synchronisierung von Work Items zwischen
Word und dem TFS (siehe Abbildung 3). Die
Synchronisierung kann dabei sowohl von
Word nach TFS als auch von TFS nach Word
stattfinden. Der Einsatz von Word hat dabei
mehrere praktische Vorteile: Erstens kann
das Anforderungsdokument sehr einfach als
Vertragsbestandteil verwendet werden, zwei-
tens können Kunden auch ohne TFS-Zugriff
problemlos Anforderungen prüfen und
anpassen und drittens steht allen Beteiligten
der aktuelle Stand im TFS zur Verfügung.
Im nächsten Schritt („Planen“) werden
aus den hinterlegten Anforderungen die
jeweiligen Aufgaben für alle Teammit-
glieder erstellt, geplant und mit den betrof-
fenen Anforderungen verknüpft. Hier führt
ebenfalls wieder Transparenz zur frühzeiti-
gen Vermeidung von Fehlern und Miss-
verständnissen.
Mit Ausblick auf den neuen TFS 2012
sollen zwei neue Programme für die frühen
Entwicklungsphasen nicht unerwähnt blei-
ben: Feedback-Client und PowerPoint-
Storyboarding.
Der Feedback-Client ermöglicht die
Aufzeichnung von Feedback durch Stake-
2Online-Themenspecial Testing 2012
Online-Themenspecial Testing 2012 advertorial
Abb. 2: Anforderungen aufnehmen mit Visual Studio.
Abb. 3: Anforderungen aufnehmen mit WordToTFS. Abb. 4: Feedback an Entwicklung geben.
steht als großer Schritt deren Umsetzung
an. Auch hier gibt es oft Stellen, an denen
es zwischen Testern und Entwicklern häu-
fig zu Problemen kommt:
■ Fehlende Nachverfolgbarkeit von
Quellcode zu anderen Projektartefak-
ten (z.B. Anforderungen/Aufgaben).
■ Stand der Umsetzung ist für Nicht-
Entwickler nicht transparent.
■ Übergabe von halbfertigen Funktionen
an andere Interessengruppen (z. B. Tes-
ter).
■ Integration von Teillieferungen inner-
halb der Entwicklung erfolgt zu spät
für Tests.
Auch für den Bereich Quellcodeverwaltung
setzen wir bei AIT den TFS als Plattform ein.
Der TFS bietet die Möglichkeit, an einen
Eincheck-Vorgang bestimmte Bedingungen
zu stellen (Check-In Policies), welche vor
jedem Check-In von Änderungen erfüllt sein
müssen. Über diese Regeln kann man z.B.
den Entwickler erinnern, bei jedem
Eincheck-Vorgang die bearbeitete Anfor-
derung zu verknüpfen, um eine Nach-
verfolgung zwischen Code und Anforderung
(siehe Abbildung 6) zu ermöglichen.
Der TFS bietet die Möglichkeit, diverse
Artefakte miteinander zu verknüpfen,
sodass ein umfangreiches Beziehungs-
geflecht der verschiedenen Artefakte wie in
Abbildung 5 entsteht. Auf Basis dieser
Informationen hat der Tester jetzt Mög-
lichkeiten, den Stand einer Umsetzung bzw.
Fehlerbehebung einzusehen oder die Ver-
knüpfung zur Durchführung von Auswir-
kungsanalysen z. B. zwischen Code und
Anforderungen oder Code und Testfällen
zu verwenden. Ein häufiger Anwendungs-
fall ist die Ermittlung, ob ein Feature
bereits fertig gestellt wurde und in welches
Release es integriert wurde. In Abbildung 7
holder. Das Programm leitet den Anwender
durch einen einfachen Prozess, bei dem
Screenshots oder eine Videoaufzeichnung
erzeugt werden, während der Anwender
die Testversion einer Software oder
Webseite prüft – ein Bild sagt schließlich
mehr als 1000 Worte (siehe Abbildung 4).
Das Feedback wird direkt im TFS gespei-
chert und kann Grundlage für die Ände-
rung von Anforderungen sein.
Das PowerPoint-Storyboarding als weite-
res Instrument ermöglicht die Erstellung von
UI-Prototypen mit PowerPoint (siehe
Abbildung 5). Durch Verwendung von
PowerPoint als Standardwerkzeug können
mit sehr wenig Lernaufwand und ohne Code
frühzeitig Prototypen eines Programms
erstellt werden. Auf Grundlage dieser Proto-
typen können Rückmeldungen von wichti-
gen Entscheidungsträgern oder Kunden ein-
geholt werden, noch bevor die Entwicklung
in die falsche Richtung startet. Die erstellten
Storyboards wiederum werden zentral abge-
legt und mit den Anforderungen im TFS ver-
knüpft. Sie stehen damit für die spätere
Verwendung neben den Anforderungen zum
besseren Verständnis zur Verfügung.
Nachverfolgung von
Anforderungen
Nachdem die Anforderungen an das Pro-
dukt definiert und Aufgaben geplant sind,
advertorial
3 www.objektspektrum.de
Abb. 5: Storyboarding mit PowerPoint.
Abb. 6: TFS-Beziehungsmodell.
sehen Sie ein Beispiel für genau diese
Nachverfolgung von einer Anforderung zu
einem speziellen Build. Durch den Status
der Anforderung ist der Stand der
Umsetzung ebenfalls ableitbar. Zusätzlich
kann der Entwickler nach Fertigstellung
eines Features die Aufgabe ohne Medien-
bruch an den Tester weiterreichen.
Strukturierung der
Quellcodeverwaltung
Im Themenbereich der Quellcodever-
waltung gibt es noch einen weiteren großen
Bereich, welcher die Tester direkt betrifft:
die Struktur der Entwicklungszweige
(Branches). Jetzt stellt sich sofort die Frage:
Wo besteht der Zusammenhang zwischen
Branching und Testen? In vielen bestehen-
den Projekten findet man sehr oft eine
Struktur wie in Abbildung 9 dargestellt.
Diese Struktur ist gekennzeichnet durch
eine Hauptentwicklungslinie („main“)
sowie einen oder mehrere „release“-Zweige
für die veröffentlichten Versionen. Jeder
dieser Entwicklungszweige ist ein in sich
konsistenter Container mit allen zusam-
mengehörigen Produktartefakten (Quell-
code, Tests, Bibliotheken, Build-Skripts,
Dokumentation etc.). Auf der genannten
Hauptentwicklungslinie arbeiten dabei
sowohl Entwickler als auch Tester.
Entwickler setzen fortlaufend neue Fea-
tures um und checken diese direkt in den
Hauptzweig ein. Die Tester wiederum
bedienen sich zum Testen jeweils einer
Software-Version aus diesem Zweig. Man
kann daraus schlussfolgern, dass die
Quellcodeverwaltung eine direkte Schnitt-
stelle zwischen Entwicklung und Tester und
entsprechend kritisch für die Arbeit von
beiden Parteien ist. Das aktuelle Vorgehen
mit „main“- und „release“-Zweigen hat
auf den ersten Blick den Charme, dass es
sehr leichtgewichtig scheint und Mehr-
Abb. 7: Nachverfolgung von Anforderungen zu Builds.
arbeit verhindert. Auf den zweiten Blick
aber offenbaren sich in vielen alltäglichen
Situationen jedoch Schwächen. In einigen
Projekten beobachtet man die Situation,
dass an Tester öfter unfertige Features
übergeben werden und anschließend eine
Welle von „unnötigen“ Fehlermeldungen
an die Entwicklung gemeldet wird. Diese
„unnötigen“ Fehlermeldungen sorgen als
Folge dann für unnötige Mehrarbeit und
damit Demotivation auf beiden Seiten.
Das beschriebene Problem lässt sich
dabei mit einem überschaubaren Einsatz
durch eine angepasste Branching-Struktur
adressieren. In der Praxis gibt es je nach
Situation verschiedene Strategien (vgl.
[Vsa]). In Abbildung 10 wurde dazu als
Erweiterung ein zusätzlicher Entwicklungs-
zweig („dev“-Branch) eingeführt. Die
Weiterentwicklung neuer Features wird
nun immer zuerst auf diesem Zweig erfol-
gen. Ist ein Feature vollständig implemen-
tiert und es erfüllt zuvor festgelegte
Qualitätsanforderungen (Quality Gates),
dann werden die Änderungen vom „dev“-
Zweig nach „main“ integriert. Beispiele für
zuvor genannte Quality Gates sind:
■ Kompilieren des Quellcodestands ist
möglich.
■ Statische Code-Analyse wurde ausge-
führt und Regelverletzungen befinden
sich im tolerierten Bereich, d. h. der
Quellcode wurde automatisch auf
Code-Konventionen geprüft und ent-
spricht damit den internen (Projekt-)
Vorgaben.
■ Unit- und Integrationstests sind erfolg-
reich ausgeführt worden.
Als Ergebnis der durchgeführten Anpas-
sung enthält der „main“-Zweig nur noch
stabile Versionen und damit testbare
Features. Als Tester verwendet man jetzt
nicht mehr „halbfertige“ Versionen aus
dem „dev“-Zweig, sondern nur stabile aus
dem „main“-Zweig, sodass „unnötige“
Fehlermeldungen und Blockaden seitens
der Entwickler vermieden werden.
Automatisches Erstellen
der Software
Zu guter Letzt verbleibt noch ein Punkt mit
viel Diskussionsstoff: automatisiertes
Kompilieren und Prüfen der Software mit-
tels eines Build-Prozesses. Werden Ver-
sionsstände der Software nicht automati-
siert, sondern manuell und auf einem
„bestimmten Entwickler-PC“ ausgeführt,
dann ergeben sich folgende Risiken:
■ Kompilieren ist nur mit komplexem
Setup auf einem Entwickler-Rechner
möglich und damit fehleranfällig und
aufwändig.
■ Wissen über die Release-Erzeugung
steckt in wenigen Köpfen und ist in
aller Regel nicht dokumentiert.
■ Prüfung, ob abhängige Produkte noch
funktionieren, erfolgt sehr spät (Inte-
grationsfehler).
■ Integration von nicht autorisierten
Software-Versionen verursacht Fehler
bei Kunden und beim Testen.
■ Statische und dynamische Tests werden
aus Zeitgründen nicht ausgeführt
(Unit-Tests, statische Code-Analysen
etc.).
Auch zur Abbildung von Build-Prozessen
setzen wir auf die in den TFS integrierte
Build-Plattform. Der TFS unterscheidet
zwischen fünf Build-Typen: „Continuous
Integration“, „Rolling Builds“, „Gated
Check-In Builds“, „Scheduled Builds“ und
„Manuell gestartete Builds“. Die Kunst
besteht jetzt darin, diese verschiedenen
Build-Typen in Abhängigkeit von der jewei-
ligen Entwicklungslinie und Zielstellung
einzurichten. Nicht jeder Build-Typ ist für
jede Situation geeignet. Die richtige
Mischung zwischen Branch- und Build-Typ
hingegen kann statt Mehrarbeit die
Qualität ihrer Releases signifikant steigern.
Mehrarbeit wird reduziert, weil auch hier
sehr früh automatisch Feedback an die
Entwickler gegeben wird. Neben der
Funktion als Feedback-Instrument bilden
Build-Prozesse zudem eine unabhängige
Prüfinstanz zwischen den verschiedenen
Entwicklungszweigen bzw. -phasen.
Eine Empfehlung aus unserem Projekt-
alltag ist der Einsatz von Continuous
Integration Builds (CIBs) auf der
Entwicklungslinie für schnelles Feedback.
Dabei löst jeder Check-In automatisch den
Build der Software aus. Der Vorteil besteht
darin, dass jede Änderung geprüft wird und
Fehler auf Ebene des einzelnen Check-Ins
4Online-Themenspecial Testing 2012
Online-Themenspecial Testing 2012 advertorial
Abb. 8: Verknüpfung von Anforderungen und Changesets.
Abb. 9: Einfache Branching-Struktur. Abb. 10: Basis-Branching-Struktur.
Integriertes Testmanagement
Nachdem die Software erfolgreich erstellt
wurde, kann diese an die Tester übergeben
werden. In dieser Phase bietet es sich an,
den Microsoft Test Manager als integriertes
Werkzeug für Testmanagement- und Test-
ausführungsaufgaben mit dem TFS einzu-
setzen. Vorteilhaft sind hier die tiefe
Integration mit dem TFS und dadurch
Vermeidung von Medienbrüchen mit den
Systemen der Entwicklung. Im
Vorgängerartikel (siehe [Sig-1]) wird detail-
liert auf diesen Testprozess mit MTM und
die Optimierung der Kommunikation mit
Entwicklern eingegangen.
Fazit
Wir haben Ihnen im Artikel gleich mehrere
Ideen zur ganzheitlichen Steigerung der
Qualität Ihrer Entwicklung aufgezeigt. Diese
Ideen sind dabei bewusst nicht auf
Testfallverwaltung und -ausführung be-
schränkt. Der Fokus der Verbesserungsmaß-
nahmen liegt schwerpunktmäßig bei Aktivi-
täten an den Schnittstellen Tester/Entwickler,
Tester/Produktmanagement und Tester/
Kunde. Als konkrete Maßnahme wurde
gezeigt, dass ein integriertes System dabei
helfen kann, frühzeitig Fehler bereits in der
Anforderungsdefinitionsphase zu finden.
Dies ist möglich, weil alle Anwendergruppen
einen „einheitlichen“ Zugriff auf alle
Informationen der Entwicklung haben – die
„einzige Wahrheit“ des Projekts. Beispiele
sind z. B. Anforderungen, Aufgaben, Test-
fälle oder Prototypen.
Zusammenfassend kann gesagt werden,
dass Qualitätssicherung kein reiner Job der
Tester ist, sondern alle Teammitglieder
durch spezifische Maßnahmen zur Stei-
gerung der Qualität beitragen können.
Sollten Sie Fragen und Anregungen zum
dargestellten Prozess und den Werkzeugen
haben, helfen wir Ihnen gerne weiter! ■
für einen Build-Test-Report zeigt Abbil-
dung 11. Neben der reinen Gesundheits-
prüfung ist dieser spezielle Build auch für
die Erstellung der Testversion der Software
zuständig. Aufgrund der vielfältigen
Vorprüfungen hat diese Version fast schon
einen „Release“-Charakter.
Eine TFS-Besonderheit bei den Builds bil-
det der Gated Check-In Build. Hier wird im
Gegensatz zum CI-Build ein Build vor dem
jeweiligen Check-In-Vorgang erzwungen,
und im Fehlerfall werden Änderungen der
Entwickler vom Server abgelehnt. Ein CI-
Build wird hingegen immer erst ausgelöst,
wenn Änderungen in der Versionskontrolle
bereits eingecheckt sind. Dadurch, dass
Gated Check-In Builds nicht umgangen
werden können und Änderungen vor dem
Check-In geprüft werden, können kritische
Bereiche wie z. B. „release“-Zweige, auf
denen nur ab und an eine Fehlerbehebung
erfolgt, besonders geschützt werden.
schnell identifiziert werden können. Der
Rolling Build als Besonderheit fasst im
Wesentlichen mehrere Eincheck-Vorgänge
in einem Build-Durchlauf zusammen,
sodass sich Build-Zeiten verringern lassen.
Als nächster Schritt wird die Hauptlinie
(„main“) mit einem täglich laufenden
Build-Prozess (Scheduled Build) weiteren
automatischen Prüfungen, wie statischen
Code-Analysen (z. B. mit FxCop oder
StyleCop), weiteren automatisierten Tests
(z. B. Integrationstests), Sandcastle-Doku-
mentationserstellung oder Setup-Erstel-
lung, unterzogen. Der tägliche Build fun-
giert damit für das Team als regelmäßiger
umfassender „Gesundheitscheck“. Durch
die tägliche Ausführung eignen sich die
erfassten Kennzahlen (Code Coverage, sta-
tische Code-Analyse, Anzahl geänderten
Codes, etc.) auch gut, um über Reports den
Ist-Zustand sowie den Trend bzgl. der
Qualität beurteilen zu können. Ein Beispiel
advertorial
5 www.objektspektrum.de
Abb. 11: Build Sucess Over Time.
Referenzen
[Ait] AIT WordToTFS, siehe http://www.aitgmbh.de/downloads/kostenlose-tools/ait-wordtotfs-word2tfs.html.
[Cha-1] REDEFINING QUALITY ASSURANCE – AN ALM PERSPECTIVE, siehe
http://www.davidchappell.com/writing/white_papers/Redefining_QA--Chappell.pdf.
[Cha-2] WHAT IS APPLICATION LIFECYCLE MANAGEMENT?, siehe
http://www.davidchappell.com/writing/white_papers/What_is_ALM_v2.0--Chappell.pdf.
[Sig-1] Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?, siehe
http://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2010/Testing/orschel_OS_TESTING_2010.pdf.
[Sig-2] OBJEKTspektrum Online-Themenspecials: Requirements Engineering, siehe
http://www.sigs-datacom.de/fachzeitschriften/objektspektrum/online-themenspecials/artikelansicht.html?show=2920.
[Vsa] Visual Studio Team Foundation Server Branching and Merging Guide, siehe http://vsarbranchingguide.codeplex.com/releases.

Weitere ähnliche Inhalte

PDF
Verbesserung des Risikomanagements für Medizinprodukte
PDF
IBS QMS:forum FMEA Jena 03.12.2015
PDF
IBS QMS:forum FMEA 12.04.16 Europapark Rust
PDF
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
PDF
FMEA Failure Mode Effect Analysis, FTA Fault Tree Analysis, Fahrzeugdiagnose
PDF
Application Lifecycle Management _ Was bedeutet das?
PDF
Agile Methoden als Diagnose-Tool für den sicherheitskritischen Bereich
PDF
Vorteile und Einsatzfelder integrierter Toolsets zur Modellierung von Manufac...
Verbesserung des Risikomanagements für Medizinprodukte
IBS QMS:forum FMEA Jena 03.12.2015
IBS QMS:forum FMEA 12.04.16 Europapark Rust
Webinar- Lösungsorientierte Integration vorhandener Werkzeuge in ein Applicat...
FMEA Failure Mode Effect Analysis, FTA Fault Tree Analysis, Fahrzeugdiagnose
Application Lifecycle Management _ Was bedeutet das?
Agile Methoden als Diagnose-Tool für den sicherheitskritischen Bereich
Vorteile und Einsatzfelder integrierter Toolsets zur Modellierung von Manufac...

Was ist angesagt? (7)

PDF
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
PPTX
2010 09 30 13-00 prof dieter fischer
PDF
Fehlererkennung und Optimierung von Produktionsprozessen
PPTX
Swiss PLM-Forum 2011 - Suchen und Finden im Digitalen Produkt
PDF
PLM Open Hours - PDM vs ERP - Was in welchem System
PDF
AMSYS - Anwendbare Management Systeme
PDF
Minerva ikanalm slideshare
Plm Open Hours - Detailkonzepte welcher Art führen zu erfolgreichen Implement...
2010 09 30 13-00 prof dieter fischer
Fehlererkennung und Optimierung von Produktionsprozessen
Swiss PLM-Forum 2011 - Suchen und Finden im Digitalen Produkt
PLM Open Hours - PDM vs ERP - Was in welchem System
AMSYS - Anwendbare Management Systeme
Minerva ikanalm slideshare
Anzeige

Andere mochten auch (20)

PDF
Wpk2013 chemiebw statement_markusscheib
PDF
Vortrag "Schauen, Optimieren, Sparen: in den Betrieben noch besser werden" vo...
PDF
Dr. Renner: Ausbildungsmarketing vor dem Hintergrund des demografischen Wandels
PPT
Vitamin G
PDF
Testing XAML-based Windows Store Apps mit VS 2013
PPTX
Industrie 4.0: Impulsvortrag beim Wirtschaftsrat Deutschland 2014
PDF
Potenzialbeurteilung: Alles nur Spitzenleute, und jetzt?
PDF
Vg 2007 catalog 70 79
PPTX
PPT
PHOTO TALK
PPS
Hedron Home-Infotainment-System
PPTX
Testppt paar
PPTX
Keynote der 1. webEdition Benutzer Konferenz 2011 in Frankfurt
PDF
Vortrag „Warum Baden-Württemberg noch mehr Energieeffizienz braucht – und wie...
PPT
Powerpointtheorie kelemina
ODP
Energie
PDF
Web 2.0
PDF
Wunderman Whitepaper - Marken Fan Interaktion
PDF
Versta jij de Grote Kunst van het Verleiden? DEEL 2
PPT
Online-Texten für PR_ABP-Fobi 2010-03_Dr. Andreas Gnann
Wpk2013 chemiebw statement_markusscheib
Vortrag "Schauen, Optimieren, Sparen: in den Betrieben noch besser werden" vo...
Dr. Renner: Ausbildungsmarketing vor dem Hintergrund des demografischen Wandels
Vitamin G
Testing XAML-based Windows Store Apps mit VS 2013
Industrie 4.0: Impulsvortrag beim Wirtschaftsrat Deutschland 2014
Potenzialbeurteilung: Alles nur Spitzenleute, und jetzt?
Vg 2007 catalog 70 79
PHOTO TALK
Hedron Home-Infotainment-System
Testppt paar
Keynote der 1. webEdition Benutzer Konferenz 2011 in Frankfurt
Vortrag „Warum Baden-Württemberg noch mehr Energieeffizienz braucht – und wie...
Powerpointtheorie kelemina
Energie
Web 2.0
Wunderman Whitepaper - Marken Fan Interaktion
Versta jij de Grote Kunst van het Verleiden? DEEL 2
Online-Texten für PR_ABP-Fobi 2010-03_Dr. Andreas Gnann
Anzeige

Ähnlich wie Links und rechts des Weges: Qualitätssicherung ist mehr als Testfallverwaltung (20)

PPTX
Hey, wie geht es dir?
PPTX
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
PPT
2005 - NRW Conf: Design, Entwicklung und Tests
PDF
Mastering architecture, design- and code-quality
PDF
Collaboratives entwickeln in Bachelorprojekten
PDF
Whitepaper Team Foundation Server 2010 Lab Management
PDF
Whitepaper Visual Studio 2010 Lab Management
PDF
Software-Tests in PHP-Anwendungen
PPTX
Creasoft - Software QS
PDF
Einführung Vorgehensmodelle und Agile Software Entwicklung
PDF
Testing Trends und Benchmarks 2013
PDF
Seminarkatalog
PDF
Team Foundation Server
PPTX
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
ODP
Scrum Workshop
PDF
Softwarequalität – Schlagwort oder Realität ?
PDF
Gearconf 2010 atdd_kunden_und_scrum
PPTX
Survivalkit für Codehausmeister
PDF
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
PPTX
Agiles Testen - Überblick
Hey, wie geht es dir?
ASQF Dresden: Benötigen wir mit SCRUM noch einen Testmanager?
2005 - NRW Conf: Design, Entwicklung und Tests
Mastering architecture, design- and code-quality
Collaboratives entwickeln in Bachelorprojekten
Whitepaper Team Foundation Server 2010 Lab Management
Whitepaper Visual Studio 2010 Lab Management
Software-Tests in PHP-Anwendungen
Creasoft - Software QS
Einführung Vorgehensmodelle und Agile Software Entwicklung
Testing Trends und Benchmarks 2013
Seminarkatalog
Team Foundation Server
Meister Training Professionelle Entwicklung: Alles rund um (mobile) App Entwi...
Scrum Workshop
Softwarequalität – Schlagwort oder Realität ?
Gearconf 2010 atdd_kunden_und_scrum
Survivalkit für Codehausmeister
Case Study: Automatisierte Code Reviews in einer gewachsenen SAP-Applikations...
Agiles Testen - Überblick

Mehr von Nico Orschel (18)

PDF
TFS Release Management Deep Dive
PDF
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
PDF
TFS 2015: Build und Release der neuen Generation
PDF
Testmanagement mit Visual Studio 2013
PDF
DWX 2014 - Testmanagement mit Visual Studio 2013
PDF
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
PDF
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
PDF
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
PDF
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
PDF
Ein Dialog unter Fremden: Testautomatisierung in der Praxis
PDF
Test Management mit Visual Studio 2012 (Developer Week 2013)
PDF
Application Lifecycle Management für Tester (mit TFS 2012)
PDF
Kürzere Testvorbereitungsphasen durch integrierte Testlabore
PDF
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
PDF
Automatisiertes Testen mit CodedUI (ohne Frust)
PDF
Software Testen mit Visual Studio Lab Management
PDF
Test Management mit Visual Studio 2012
PDF
Testautomatisierung mit CodedUI für Fortgeschrittende
TFS Release Management Deep Dive
95 Prozent brauchen es, 5 Prozent machen es: Load Testing mit VS leicht gemacht
TFS 2015: Build und Release der neuen Generation
Testmanagement mit Visual Studio 2013
DWX 2014 - Testmanagement mit Visual Studio 2013
DWX 2014 - Coded UI in der Praxis: Von Lokalisierung bis Nachhaltigkeit
Testmanagement mit Visual Studio 2013 / CodedUI / Neues aus der Produktgruppe...
UI Testautomation in der Praxis: Von Lokalisierung bis Nachhaltigkeit
UI Testautomation in der Praxis ... von Lokalisierung bis Nachhaltigkeit (Cod...
Ein Dialog unter Fremden: Testautomatisierung in der Praxis
Test Management mit Visual Studio 2012 (Developer Week 2013)
Application Lifecycle Management für Tester (mit TFS 2012)
Kürzere Testvorbereitungsphasen durch integrierte Testlabore
Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?
Automatisiertes Testen mit CodedUI (ohne Frust)
Software Testen mit Visual Studio Lab Management
Test Management mit Visual Studio 2012
Testautomatisierung mit CodedUI für Fortgeschrittende

Links und rechts des Weges: Qualitätssicherung ist mehr als Testfallverwaltung

  • 1. Links und rechts des Weges: Qualitäts- sicherung ist mehr als Testfallverwaltung Testen ist Teil eines komplexen Prozesses auf dem Weg von einer Idee oder einem Problem zu einer fertigen Software. Testen hat die Aufgabe, die Qualität der und das Vertrauen in die auszuliefernde Software sicherzustellen. Dabei kommen verschiedene Testtechniken und -methoden zum Einsatz: funktionale Tests, Beta- und Alpha-Tests, Akzeptanztests sowie entwicklernahe Testtechniken, wie Unit- und Integrationstests sind nur einige Beispiele. Kundenproblem oder eine Anforderung. Diese unkonkreten „Kundenwünsche“ werden anschließend durch einen formalen Anforderungsmanagement-Prozess struk- turiert aufbereitet. Je nach Vorgehens- modell heißen die entstehenden Artefakte dann Anforderungen bzw. User Stories. Die Techniken zur Erfassung, Verarbeitung und Transformation dieser Kundenwünsche stellen hier nicht den inhaltlichen Fokus dar (weiterführende Informationen siehe [Sig-2]). Aus unserer Sicht gibt es in vielen Pro- jekten an der Schnittstelle zwischen Testen und Anforderungsmanagement die folgen- den Ursachen für hohe Abstimmungs- aufwände oder geringe Zusammenarbeit: ■ Medienbrüche: Verwendung von ge- trennten Informationssystemen entlang des gesamten Entwicklungsprozesses: So verwendet z. B. das Produkt- management Word-Dokumente, die Entwicklung SVN und die Tester HP QC für die Testverwaltung sowie Bugzilla für die Fehlererfassung und Kommunikation mit der Entwicklung. Das sorgt für Informationsverlust an jeder Schnittstelle. ■ Unklare Verhältnisse: Reviews werden selten durch wichtige Interessensver- treter (Stakeholder) durchgeführt. Die In den folgenden Abschnitten möchten wir Sie auf eine Reise durch die verschiedenen Bereiche eines Software-Lifecycles mitneh- men und Ihnen dabei neue Ideen links und rechts des Weges zur Verbesserung der Qualität Ihrer Software außerhalb der „klas- sischen“ Testfallverwaltung und Ausführung von Testfällen aufzeigen. Im Detail werden dabei exemplarisch Maßnahmen für die Software-Lifecycle-Phasen „Spezifizieren“, „Planen“, „Umsetzen“, „Testen“ und „Ausliefern“ betrachtet (siehe Abbildung 1). Die Basis für alles: Anforderungen Den Beginn einer jeden Software-Entwick- lung markiert ein allgemein formuliertes Als Technologie- und Prozessberater für effizientere Software-Entwicklung bei AIT haben wir häufig die Gelegenheit, die Software-Entwicklungsprozesse in ver- schiedenen Unternehmen zu analysieren. Ein Muster lässt sich dabei sowohl bei agil (z. B. Scrum) als auch bei traditionell (z. B. Wasserfallmodell) orientierten Arbeitswei- sen beobachten. Viele Teams sind geprägt von einer strikten organisatorischen und thematischen Isolation von Testern und Entwicklern. Qualitätssicherung als Begriff ist in diesen Teams im Wesentlichen mit (manuellem) Testen gleichgesetzt (vgl. [Cha-1]). Der gelebte Prozess läuft meist nach einem ähnlichen Schema ab: zu Beginn Definition von Testfällen, dann (manuelle) Ausführung von Testfällen, Meldung von Fehlern an die Entwicklung, Nachtesten von Fehlerbehebungen und zum Abschluss Freigabe der Software. Die Folgen dieser einseitigen Betrachtung von Qualitätssicherung als „nur Testen“ sind immens. Es entstehen hohe Test- aufwände bei geringer Qualität, verzögerte Freigabetermine aufgrund zu spät durchge- führter Qualitätssicherungsmaßnahmen und besonders schwerwiegend: isolierte und demotivierte Teammitglieder im ge- samten Produktteam. Die Ursache: Quali- tätssicherung wurde nicht als gemeinsame übergreifende Aufgabe wahrgenommen. der autor Nico Orschel (nico.orschel@aitgmbh.de) ist MVP (Microsoft Most Valuable Professional), ISTQB-zertifizierter Software- Tester und Berater des AIT TeamSystemPro-Teams. Er hat sich u.a. auf das automatische Testen mit dem Visual Studio Lab Management spezialisiert. Er 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. 1 www.objektspektrum.de advertorial Abb. 1: Software-Lifecycle.
  • 2. Interessensvertreter sind gegensätz- licher Meinung und Ansicht und es ist nicht geklärt, wer in letzter Instanz ent- scheidet. Das sorgt für fehlende Klar- heit und häufiges Verfehlen der Erwar- tungen. ■ Fehlende Informationen: Entscheidun- gen und Review-Ergebnisse sind nicht dokumentiert oder stehen aufgrund unterschiedlicher Werkzeuge nicht zen- tralisiert für alle zur Verfügung. Eine Möglichkeit, diese Probleme anzuge- hen, ist die Nutzung einer integrierten ALM-Plattform. Solche Plattformen dek- ken dabei verschiedene ALM-Bereiche wie Software-Lifecycle-Management, Betrieb (Operations) und Verwaltung (Governance) ab (Definition von ALM siehe [Cha-2]). Für die Entwicklungsprojekte mit unseren Kunden setzen wir dabei seit mehreren Jahren erfolgreich auf den Team Foun- dation Server (TFS) aus dem Hause Micro- soft. Für die Phase „Anforderungs- management“ ermöglicht der TFS über so genannte „Work Items“ die einfache Erfassung und Verwaltung von Anfor- derungen oder User Stories. Über den glei- chen Mechanismus werden auch Testfälle, Feedback und Reviews (inkl. Ergebnisse) in den späteren Phasen unterstützt. In Ab- hängigkeit vom jeweiligen Artefakttyp („Anforderung“, „Review“, „Feedback“) können die Felder und Regeln sowie der Workflow variieren. Die jeweiligen Ele- mente sind keine geschlossenen Systeme, sondern können im laufenden Projekt an die jeweiligen Bedürfnisse angepasst wer- den. In Abbildung 2 ist beispielhaft die Erfassung einer Anforderung in Visual Studio dargestellt. Neben Visual Studio können Sie als Anwender auch andere Werkzeuge gleichberechtigt verwenden. Beispiele sind z. B. Webzugriff per WebAccess, Excel, Project, Visual Studio, Microsoft Testmanager (MTM), AIT WordToTFS (siehe [Ait]) oder TeamCom- panion für Outlook. Der große Vorteil besteht darin, dass je nach Rolle der Team- mitglieder bereits etablierte Werkzeuge für den Zugriff auf die gemeinsamen Artefakte wie Anforderungen, Fehler oder Feedback genutzt werden können. Durch die zentrale Speicherung aller Informationen im TFS haben alle Teammitglieder die Möglichkeit, zu jeder Zeit Rückmeldungen/Verbes- serungsvorschläge zu allen Artefakten (hier: Anforderungen) zu geben. Die erhöh- te Transparenz sorgt als positiver Effekt dafür, dass Inkonsistenzen, Lücken und Widersprüche bereits frühzeitig erkannt und behoben werden. Ein Beispiel für einen gelebten Prozess aus unserem Projektalltag ist die Nutzung von Word und TFS für die Anforderungs- definition. In der Spezifikationsphase setzen wir primär auf Word mit WordToTFS, unse- re kostenlosen Erweiterung für Word und TFS. WordToTFS ermöglicht die einfache und schnelle Aufnahme, Bearbeitung und Synchronisierung von Work Items zwischen Word und dem TFS (siehe Abbildung 3). Die Synchronisierung kann dabei sowohl von Word nach TFS als auch von TFS nach Word stattfinden. Der Einsatz von Word hat dabei mehrere praktische Vorteile: Erstens kann das Anforderungsdokument sehr einfach als Vertragsbestandteil verwendet werden, zwei- tens können Kunden auch ohne TFS-Zugriff problemlos Anforderungen prüfen und anpassen und drittens steht allen Beteiligten der aktuelle Stand im TFS zur Verfügung. Im nächsten Schritt („Planen“) werden aus den hinterlegten Anforderungen die jeweiligen Aufgaben für alle Teammit- glieder erstellt, geplant und mit den betrof- fenen Anforderungen verknüpft. Hier führt ebenfalls wieder Transparenz zur frühzeiti- gen Vermeidung von Fehlern und Miss- verständnissen. Mit Ausblick auf den neuen TFS 2012 sollen zwei neue Programme für die frühen Entwicklungsphasen nicht unerwähnt blei- ben: Feedback-Client und PowerPoint- Storyboarding. Der Feedback-Client ermöglicht die Aufzeichnung von Feedback durch Stake- 2Online-Themenspecial Testing 2012 Online-Themenspecial Testing 2012 advertorial Abb. 2: Anforderungen aufnehmen mit Visual Studio. Abb. 3: Anforderungen aufnehmen mit WordToTFS. Abb. 4: Feedback an Entwicklung geben.
  • 3. steht als großer Schritt deren Umsetzung an. Auch hier gibt es oft Stellen, an denen es zwischen Testern und Entwicklern häu- fig zu Problemen kommt: ■ Fehlende Nachverfolgbarkeit von Quellcode zu anderen Projektartefak- ten (z.B. Anforderungen/Aufgaben). ■ Stand der Umsetzung ist für Nicht- Entwickler nicht transparent. ■ Übergabe von halbfertigen Funktionen an andere Interessengruppen (z. B. Tes- ter). ■ Integration von Teillieferungen inner- halb der Entwicklung erfolgt zu spät für Tests. Auch für den Bereich Quellcodeverwaltung setzen wir bei AIT den TFS als Plattform ein. Der TFS bietet die Möglichkeit, an einen Eincheck-Vorgang bestimmte Bedingungen zu stellen (Check-In Policies), welche vor jedem Check-In von Änderungen erfüllt sein müssen. Über diese Regeln kann man z.B. den Entwickler erinnern, bei jedem Eincheck-Vorgang die bearbeitete Anfor- derung zu verknüpfen, um eine Nach- verfolgung zwischen Code und Anforderung (siehe Abbildung 6) zu ermöglichen. Der TFS bietet die Möglichkeit, diverse Artefakte miteinander zu verknüpfen, sodass ein umfangreiches Beziehungs- geflecht der verschiedenen Artefakte wie in Abbildung 5 entsteht. Auf Basis dieser Informationen hat der Tester jetzt Mög- lichkeiten, den Stand einer Umsetzung bzw. Fehlerbehebung einzusehen oder die Ver- knüpfung zur Durchführung von Auswir- kungsanalysen z. B. zwischen Code und Anforderungen oder Code und Testfällen zu verwenden. Ein häufiger Anwendungs- fall ist die Ermittlung, ob ein Feature bereits fertig gestellt wurde und in welches Release es integriert wurde. In Abbildung 7 holder. Das Programm leitet den Anwender durch einen einfachen Prozess, bei dem Screenshots oder eine Videoaufzeichnung erzeugt werden, während der Anwender die Testversion einer Software oder Webseite prüft – ein Bild sagt schließlich mehr als 1000 Worte (siehe Abbildung 4). Das Feedback wird direkt im TFS gespei- chert und kann Grundlage für die Ände- rung von Anforderungen sein. Das PowerPoint-Storyboarding als weite- res Instrument ermöglicht die Erstellung von UI-Prototypen mit PowerPoint (siehe Abbildung 5). Durch Verwendung von PowerPoint als Standardwerkzeug können mit sehr wenig Lernaufwand und ohne Code frühzeitig Prototypen eines Programms erstellt werden. Auf Grundlage dieser Proto- typen können Rückmeldungen von wichti- gen Entscheidungsträgern oder Kunden ein- geholt werden, noch bevor die Entwicklung in die falsche Richtung startet. Die erstellten Storyboards wiederum werden zentral abge- legt und mit den Anforderungen im TFS ver- knüpft. Sie stehen damit für die spätere Verwendung neben den Anforderungen zum besseren Verständnis zur Verfügung. Nachverfolgung von Anforderungen Nachdem die Anforderungen an das Pro- dukt definiert und Aufgaben geplant sind, advertorial 3 www.objektspektrum.de Abb. 5: Storyboarding mit PowerPoint. Abb. 6: TFS-Beziehungsmodell. sehen Sie ein Beispiel für genau diese Nachverfolgung von einer Anforderung zu einem speziellen Build. Durch den Status der Anforderung ist der Stand der Umsetzung ebenfalls ableitbar. Zusätzlich kann der Entwickler nach Fertigstellung eines Features die Aufgabe ohne Medien- bruch an den Tester weiterreichen. Strukturierung der Quellcodeverwaltung Im Themenbereich der Quellcodever- waltung gibt es noch einen weiteren großen Bereich, welcher die Tester direkt betrifft: die Struktur der Entwicklungszweige (Branches). Jetzt stellt sich sofort die Frage: Wo besteht der Zusammenhang zwischen Branching und Testen? In vielen bestehen- den Projekten findet man sehr oft eine Struktur wie in Abbildung 9 dargestellt. Diese Struktur ist gekennzeichnet durch eine Hauptentwicklungslinie („main“) sowie einen oder mehrere „release“-Zweige für die veröffentlichten Versionen. Jeder dieser Entwicklungszweige ist ein in sich konsistenter Container mit allen zusam- mengehörigen Produktartefakten (Quell- code, Tests, Bibliotheken, Build-Skripts, Dokumentation etc.). Auf der genannten Hauptentwicklungslinie arbeiten dabei sowohl Entwickler als auch Tester. Entwickler setzen fortlaufend neue Fea- tures um und checken diese direkt in den Hauptzweig ein. Die Tester wiederum bedienen sich zum Testen jeweils einer Software-Version aus diesem Zweig. Man kann daraus schlussfolgern, dass die Quellcodeverwaltung eine direkte Schnitt- stelle zwischen Entwicklung und Tester und entsprechend kritisch für die Arbeit von beiden Parteien ist. Das aktuelle Vorgehen mit „main“- und „release“-Zweigen hat auf den ersten Blick den Charme, dass es sehr leichtgewichtig scheint und Mehr- Abb. 7: Nachverfolgung von Anforderungen zu Builds.
  • 4. arbeit verhindert. Auf den zweiten Blick aber offenbaren sich in vielen alltäglichen Situationen jedoch Schwächen. In einigen Projekten beobachtet man die Situation, dass an Tester öfter unfertige Features übergeben werden und anschließend eine Welle von „unnötigen“ Fehlermeldungen an die Entwicklung gemeldet wird. Diese „unnötigen“ Fehlermeldungen sorgen als Folge dann für unnötige Mehrarbeit und damit Demotivation auf beiden Seiten. Das beschriebene Problem lässt sich dabei mit einem überschaubaren Einsatz durch eine angepasste Branching-Struktur adressieren. In der Praxis gibt es je nach Situation verschiedene Strategien (vgl. [Vsa]). In Abbildung 10 wurde dazu als Erweiterung ein zusätzlicher Entwicklungs- zweig („dev“-Branch) eingeführt. Die Weiterentwicklung neuer Features wird nun immer zuerst auf diesem Zweig erfol- gen. Ist ein Feature vollständig implemen- tiert und es erfüllt zuvor festgelegte Qualitätsanforderungen (Quality Gates), dann werden die Änderungen vom „dev“- Zweig nach „main“ integriert. Beispiele für zuvor genannte Quality Gates sind: ■ Kompilieren des Quellcodestands ist möglich. ■ Statische Code-Analyse wurde ausge- führt und Regelverletzungen befinden sich im tolerierten Bereich, d. h. der Quellcode wurde automatisch auf Code-Konventionen geprüft und ent- spricht damit den internen (Projekt-) Vorgaben. ■ Unit- und Integrationstests sind erfolg- reich ausgeführt worden. Als Ergebnis der durchgeführten Anpas- sung enthält der „main“-Zweig nur noch stabile Versionen und damit testbare Features. Als Tester verwendet man jetzt nicht mehr „halbfertige“ Versionen aus dem „dev“-Zweig, sondern nur stabile aus dem „main“-Zweig, sodass „unnötige“ Fehlermeldungen und Blockaden seitens der Entwickler vermieden werden. Automatisches Erstellen der Software Zu guter Letzt verbleibt noch ein Punkt mit viel Diskussionsstoff: automatisiertes Kompilieren und Prüfen der Software mit- tels eines Build-Prozesses. Werden Ver- sionsstände der Software nicht automati- siert, sondern manuell und auf einem „bestimmten Entwickler-PC“ ausgeführt, dann ergeben sich folgende Risiken: ■ Kompilieren ist nur mit komplexem Setup auf einem Entwickler-Rechner möglich und damit fehleranfällig und aufwändig. ■ Wissen über die Release-Erzeugung steckt in wenigen Köpfen und ist in aller Regel nicht dokumentiert. ■ Prüfung, ob abhängige Produkte noch funktionieren, erfolgt sehr spät (Inte- grationsfehler). ■ Integration von nicht autorisierten Software-Versionen verursacht Fehler bei Kunden und beim Testen. ■ Statische und dynamische Tests werden aus Zeitgründen nicht ausgeführt (Unit-Tests, statische Code-Analysen etc.). Auch zur Abbildung von Build-Prozessen setzen wir auf die in den TFS integrierte Build-Plattform. Der TFS unterscheidet zwischen fünf Build-Typen: „Continuous Integration“, „Rolling Builds“, „Gated Check-In Builds“, „Scheduled Builds“ und „Manuell gestartete Builds“. Die Kunst besteht jetzt darin, diese verschiedenen Build-Typen in Abhängigkeit von der jewei- ligen Entwicklungslinie und Zielstellung einzurichten. Nicht jeder Build-Typ ist für jede Situation geeignet. Die richtige Mischung zwischen Branch- und Build-Typ hingegen kann statt Mehrarbeit die Qualität ihrer Releases signifikant steigern. Mehrarbeit wird reduziert, weil auch hier sehr früh automatisch Feedback an die Entwickler gegeben wird. Neben der Funktion als Feedback-Instrument bilden Build-Prozesse zudem eine unabhängige Prüfinstanz zwischen den verschiedenen Entwicklungszweigen bzw. -phasen. Eine Empfehlung aus unserem Projekt- alltag ist der Einsatz von Continuous Integration Builds (CIBs) auf der Entwicklungslinie für schnelles Feedback. Dabei löst jeder Check-In automatisch den Build der Software aus. Der Vorteil besteht darin, dass jede Änderung geprüft wird und Fehler auf Ebene des einzelnen Check-Ins 4Online-Themenspecial Testing 2012 Online-Themenspecial Testing 2012 advertorial Abb. 8: Verknüpfung von Anforderungen und Changesets. Abb. 9: Einfache Branching-Struktur. Abb. 10: Basis-Branching-Struktur.
  • 5. Integriertes Testmanagement Nachdem die Software erfolgreich erstellt wurde, kann diese an die Tester übergeben werden. In dieser Phase bietet es sich an, den Microsoft Test Manager als integriertes Werkzeug für Testmanagement- und Test- ausführungsaufgaben mit dem TFS einzu- setzen. Vorteilhaft sind hier die tiefe Integration mit dem TFS und dadurch Vermeidung von Medienbrüchen mit den Systemen der Entwicklung. Im Vorgängerartikel (siehe [Sig-1]) wird detail- liert auf diesen Testprozess mit MTM und die Optimierung der Kommunikation mit Entwicklern eingegangen. Fazit Wir haben Ihnen im Artikel gleich mehrere Ideen zur ganzheitlichen Steigerung der Qualität Ihrer Entwicklung aufgezeigt. Diese Ideen sind dabei bewusst nicht auf Testfallverwaltung und -ausführung be- schränkt. Der Fokus der Verbesserungsmaß- nahmen liegt schwerpunktmäßig bei Aktivi- täten an den Schnittstellen Tester/Entwickler, Tester/Produktmanagement und Tester/ Kunde. Als konkrete Maßnahme wurde gezeigt, dass ein integriertes System dabei helfen kann, frühzeitig Fehler bereits in der Anforderungsdefinitionsphase zu finden. Dies ist möglich, weil alle Anwendergruppen einen „einheitlichen“ Zugriff auf alle Informationen der Entwicklung haben – die „einzige Wahrheit“ des Projekts. Beispiele sind z. B. Anforderungen, Aufgaben, Test- fälle oder Prototypen. Zusammenfassend kann gesagt werden, dass Qualitätssicherung kein reiner Job der Tester ist, sondern alle Teammitglieder durch spezifische Maßnahmen zur Stei- gerung der Qualität beitragen können. Sollten Sie Fragen und Anregungen zum dargestellten Prozess und den Werkzeugen haben, helfen wir Ihnen gerne weiter! ■ für einen Build-Test-Report zeigt Abbil- dung 11. Neben der reinen Gesundheits- prüfung ist dieser spezielle Build auch für die Erstellung der Testversion der Software zuständig. Aufgrund der vielfältigen Vorprüfungen hat diese Version fast schon einen „Release“-Charakter. Eine TFS-Besonderheit bei den Builds bil- det der Gated Check-In Build. Hier wird im Gegensatz zum CI-Build ein Build vor dem jeweiligen Check-In-Vorgang erzwungen, und im Fehlerfall werden Änderungen der Entwickler vom Server abgelehnt. Ein CI- Build wird hingegen immer erst ausgelöst, wenn Änderungen in der Versionskontrolle bereits eingecheckt sind. Dadurch, dass Gated Check-In Builds nicht umgangen werden können und Änderungen vor dem Check-In geprüft werden, können kritische Bereiche wie z. B. „release“-Zweige, auf denen nur ab und an eine Fehlerbehebung erfolgt, besonders geschützt werden. schnell identifiziert werden können. Der Rolling Build als Besonderheit fasst im Wesentlichen mehrere Eincheck-Vorgänge in einem Build-Durchlauf zusammen, sodass sich Build-Zeiten verringern lassen. Als nächster Schritt wird die Hauptlinie („main“) mit einem täglich laufenden Build-Prozess (Scheduled Build) weiteren automatischen Prüfungen, wie statischen Code-Analysen (z. B. mit FxCop oder StyleCop), weiteren automatisierten Tests (z. B. Integrationstests), Sandcastle-Doku- mentationserstellung oder Setup-Erstel- lung, unterzogen. Der tägliche Build fun- giert damit für das Team als regelmäßiger umfassender „Gesundheitscheck“. Durch die tägliche Ausführung eignen sich die erfassten Kennzahlen (Code Coverage, sta- tische Code-Analyse, Anzahl geänderten Codes, etc.) auch gut, um über Reports den Ist-Zustand sowie den Trend bzgl. der Qualität beurteilen zu können. Ein Beispiel advertorial 5 www.objektspektrum.de Abb. 11: Build Sucess Over Time. Referenzen [Ait] AIT WordToTFS, siehe http://www.aitgmbh.de/downloads/kostenlose-tools/ait-wordtotfs-word2tfs.html. [Cha-1] REDEFINING QUALITY ASSURANCE – AN ALM PERSPECTIVE, siehe http://www.davidchappell.com/writing/white_papers/Redefining_QA--Chappell.pdf. [Cha-2] WHAT IS APPLICATION LIFECYCLE MANAGEMENT?, siehe http://www.davidchappell.com/writing/white_papers/What_is_ALM_v2.0--Chappell.pdf. [Sig-1] Ausweg aus der Kommunikationskrise oder das Ende von „Bei mir funktioniert’s“?, siehe http://www.sigs-datacom.de/fileadmin/user_upload/zeitschriften/os/2010/Testing/orschel_OS_TESTING_2010.pdf. [Sig-2] OBJEKTspektrum Online-Themenspecials: Requirements Engineering, siehe http://www.sigs-datacom.de/fachzeitschriften/objektspektrum/online-themenspecials/artikelansicht.html?show=2920. [Vsa] Visual Studio Team Foundation Server Branching and Merging Guide, siehe http://vsarbranchingguide.codeplex.com/releases.