image

Image

Graham Bath ist seit über 30 Jahren in der Welt des Softwaretestens tätig. Seine Erfahrung und Expertise umspannen eine breite Palette verschiedener Fachgebiete und Technologien. Als Testmanager trug er die Verantwortung für das Testen missionskritischer Systeme in der Raumfahrt, der Telekommunikation und der polizeilichen Störungskontrolle. Er war verantwortlich für den Entwurf von Tests höchster Gründlichkeitsstufen im Bereich Echtzeit-Luftfahrtsysteme, z. B. für die Militärflugzeuge Tornado und Eurofighter.

Als einer der Hauptberater der T-Systems Global Delivery Unit, Testing Services leitete er die Qualitätsförderungsprogramme mehrerer großer Unternehmen, insbesondere im Finanz- und Regierungssektor. In seiner aktuellen Position ist Graham Bath für das Fortbildungsprogramm des Unternehmens verantwortlich.

Im ISTQB ist Graham Bath Leiter der Arbeitsgruppe »Expert Level«. Er ist Koautor des Buches »Improving the Test Process« (Rocky Nook) und gibt ISTQB akkreditierte Schulungen zu diesem Thema.

Image

Judy McKay ist seit 25 Jahren mit dem Schwerpunkt Softwarequalitätssicherung in der Hightech-Branche tätig. Ihre Berufspraxis deckt alle Aspekte des Softwarelebenszyklus ab. Hierzu zählen Bedarfsentwurf und -analyse, Softwareentwicklung, Datenbankentwurf, Sicherung der Softwarequalität, Softwaretests, technische Kundenbetreuung, Fachleistungen, Konfigurations-management, technische Veröffentlichungen und Softwarelizenzierung. Judy McKay hat in kommerziellen Softwareunternehmen, der Raumfahrtbranche, internationaler Forschung und Entwicklung, Vernetzungsprojekten und Internetunternehmen gearbeitet.

Judy McKay bietet auch Fortbildungen und Beratungsdienste zur Softwarequalitätssicherung an. Zu den Themen zählen der Aufbau und die Pflege eines erstklassigen Qualitätssicherungsteams, der Entwurf und die Implementierung von Qualitätssicherung und effektiven Tests sowie die Erstellung und Implementierung aussagekräftiger Testdokumentationen und Metriken. Sie ist Mitverfasserin des Lehrplans zum ISTQB-Advanced-Level und Vorstand des American Testing Board. Sie ist Autorin von »Managing the Test People« (Rocky Nook), einem Buch voller Ratschläge und Anektoden für neue und erfahrene Softwaretestmanager und -leiter.

image

Zu diesem Buch – sowie zu vielen weiteren dpunkt.büchern – können Sie auch das entsprechende E-Book im PDF-Format herunterladen. Werden Sie dazu einfach Mitglied bei dpunkt.plus+:

www.dpunkt.de/plus

Praxiswissen Softwaretest – Test Analyst und Technical Test Analyst

Aus- und Weiterbildung zum Certified Tester – Advanced Level nach ISTQB-Standard

3., überarbeitete Auflage

Graham Bath
Judy McKay

Image

Graham Bath, graham.bath@t-systems.com

Judy McKay, judyamckay@earthlink.net

Lektorat: Christa Preisendanz

Übersetzung: Volkmar Gronau

Copy-Editing: Ursula Zimpfer, Herrenberg

Herstellung: Birgit Bäuerlein

Umschlaggestaltung: Helmut Kraus, www.exclam.de

Druck und Bindung: Media-Print Informationstechnologie, Paderborn

Bibliografische Information der Deutschen Nationalbibliothek

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

ISBN:

Buch 978-3-86490-137-9

PDF 978-3-86491-639-7

ePub 978-3-86491-640-3

3., überarbeitete Auflage 2015

Translation copyright für die deutschsprachige Ausgabe © 2015 dpunkt.verlag GmbH

Wieblinger Weg 17

69123 Heidelberg

Copyright der amerikanischen Originalausgabe © 2014 by Graham Bath and Judy McKay

Title of American original: The Software Test Engineer’s Handbook

Rocky Nook Inc., Santa Barbara, www.rockynook.com

ISBN 978-1-937538-44-6

Fachliche Beratung und Herausgabe von dpunkt.büchern zum Thema »ISTQB® Certified Tester«: Prof. Dr. Andreas Spillner · Andreas.Spillner@hs-bremen.de

Die vorliegende Publikation ist urheberrechtlich geschützt. Alle Rechte vorbehalten. Die Verwendung der Texte und Abbildungen, auch auszugsweise, ist ohne die schriftliche Zustimmung des Verlags urheberrechtswidrig und daher strafbar. Dies gilt insbesondere für die Vervielfältigung, Übersetzung oder die Verwendung in elektronischen Systemen.

Es wird darauf hingewiesen, dass die im Buch verwendeten Soft- und Hardware-Bezeichnungen sowie Markennamen und Produktbezeichnungen der jeweiligen Firmen im Allgemeinen warenzeichen-, marken- oder patentrechtlichem Schutz unterliegen.

Alle Angaben und Programme in diesem Buch wurden mit größter Sorgfalt kontrolliert. Weder Autor noch Verlag können jedoch für Schäden haftbar gemacht werden, die in Zusammenhang mit der Verwendung dieses Buches stehen.

5 4 3 2 1 0

Geleitwort

Das Testen von Software gehört mittlerweile zu den Grundfesten der Qualitätssicherung in Unternehmen. Damit Tester dieser essenziellen Rolle gerecht werden können, bedarf es einer fundierten Qualifizierung zur Professionalisierung des Softwaretestens. Mit dem international anerkannten »ISTQB Certified Tester«-Weiterbildungsprogramm existiert ein Branchenstandard, der die Kernkompetenzen des Berufsbildes festlegt und sowohl theoretische Begriffsdefinitionen als auch erforderliches Praxiswissen vereinheitlicht vermittelt. Viele Unternehmen haben die ISTQB-Qualifikation in die eigene Mitarbeiterfortbildung integriert und machen sie in Stellenausschreibungen für Bewerber zur Pflicht.

Das vorliegende Buch richtet sich an Softwaretester, deren Beruf gleichzeitig Berufung ist: Sie haben Ihre Fähigkeiten bereits in Testprojekten unter Beweis gestellt, sind »ISTQB Foundation Level«-zertifiziert und können in einem Projekt die Rolle eines »ISTQB Advanced Tester« übernehmen: Testmanager, Test Analyst oder Technical Test Analyst. Welche besonderen Fähigkeiten und Fertigkeiten von Test Analyst und Technical Test Analyst erwartet werden, erfahren Sie auf den folgenden Seiten. Basierend auf dem ISTQB-Advanced-Level-Lehrplan, angereichert mit zusätzlichen Informationen und Beispielen aus der Praxis, verbindet das vorliegende Buch sowohl technische als auch funktionale Aspekte des Testens miteinander. Es ist deshalb für jeden professionellen Softwaretester von Nutzen.

Die Autoren haben sich große Verdienste bei der Weiterentwicklung des Certified-Tester-Schemas erworben. Diese Publikation komplettiert die Reihe der Module des ISTQB-Standards. Alle Lerninhalte des Buches decken sich mit den Vorgaben des ISTQB-Standards, sodass Ihre Weiterbildung den Kriterien Unabhängigkeit, Transparenz und internationale Akzeptanz in vollem Umfang genügt. Denn:

1. Professionalisierung tut not:

Software muss zuverlässig sein, also müssen auch die Entwickler verlässlich ausgebildet sein. Sonst gehen mit Vertrauensverlusten in Softwaresysteme auch Auftrags- und Arbeitsplatzverluste einher.

2. Lebenslanges Lernen wird zur Pflicht:

Software wird immer komplexer, die Anforderungen steigen täglich. Lebenslanges Lernen ist daher unabdingbar, da die Erstausbildung nicht mehr aktuell und meist zu übergreifend allgemein ist.

3. Die Hersteller- und produktunabhängige Standardisierung schafft Transparenz – und damit wiederum Akzeptanz und allgemeine Gültigkeit. Nationale und internationale Vergleichbarkeit von Berufsqualifikationen ist in der heutigen globalen Zusammenarbeit für Arbeitgeber und -nehmer von gleichem Vorteil und sichert die internationale Kooperations- und Wettbewerbsfähigkeit.

Das International Software Quality Institute (iSQI GmbH) zertifiziert in 90 Ländern auf 6 Kontinenten das Know-how von (IT-)Fachkräften. Weit über 300.000 Professionals sind nach dem ISTQB-Lehrplan geschult und haben ihre Kenntnisse durch die Zertifizierungsabschlussprüfung unter Beweis gestellt. Ich freue mich, dass Sie sich entschlossen haben, ein Teil dieser weltweiten Testergemeinde zu werden und wünsche Ihnen Freude beim Durcharbeiten des Buches, viel Erfolg bei der späteren Zertifizierungsprüfung und schließlich gutes Gelingen Ihrer Projekte!

Stephan Goericke
CEO
International Software Quality Institute

Vorwort zur 3. Auflage

Mit diesem Buch schließen Sie eine Lücke zwischen den Softwaretestbüchern in Ihrer Fachbibliothek. Zwar gibt es viel gute Literatur zu den grundlegenden Testtechniken, aber nur relativ wenige Bücher decken sowohl funktionales als auch technisches Testen in ausgewogenem Maße ab.

Dieses Buch fügt sowohl funktionale als auch technische Aspekte des Testens zu einem einheitlichen Ganzen zusammen, wovon nicht nur Test Analysts, sondern auch Testmanager profitieren können. Test Analysts und Testmanager leben nicht in einer abgeschotteten Welt; effektive Kommunikation, z. B. mit anderen Testern, spielt eine große Rolle. Um sich effektiv verständigen zu können, müssen sie sowohl die funktionalen als auch die technischen Aspekte des Testens verstehen, einschließlich der erforderlichen Testtechniken.

Dieses Buch behandelt das Testen aller Qualitätsmerkmale der ISO-Norm 9126, einschließlich Performanz, Zuverlässigkeit, Sicherheit, Funktionalität, Benutzbarkeit, Wartbarkeit und Übertragbarkeit. Jedes Qualitätsmerkmal wird in Hinblick auf die einzelnen Schritte des vom International Software Testing Qualifications Board (ISTQB) festgelegten Standardtestprozesses behandelt. Dadurch wird eine abgerundete und ausgewogene Abdeckung dieser Qualitätsmerkmale erreicht.

Vollständige Abdeckung des 2012 erschienenen ISTQB-Lehrplans für Test Analysts und Technical Test Analysts

Der Inhalt dieses Buches basiert auf den englischsprachigen Advanced-Level-Lehrplänen zum Test Analyst [ISTQB-ATA] und zum Technical Test Analyst [ISTQB-ATTA], die 2012 vom ISTQB herausgegeben wurden1. Es werden alle Inhalte abgedeckt, die Sie kennen müssen, um die Prüfungen zum Erwerb der Advanced-Level-Zertifi-kate Test Analyst und Technical Test Analyst zu bestehen. Das Buch bietet allen, die an einer oder beiden Prüfungen teilnehmen möchten, eine solide Vorbereitungsbasis. Es wird deutlich angezeigt, welche Abschnitte sich auf welche Prüfung beziehen. Alle prüfungsrelevanten Inhalte sind gekennzeichnet.

Obwohl der Inhalt in erster Linie mit dem ISTQB-Advanced-Level-Lehrplan abgestimmt ist, haben wir Wert darauf gelegt, dass das Buch für jeden professionellen Tester von Nutzen sein kann. Wir haben daher den Lehrstoff um zusätzliche Informationen und Beispiele aus der Praxis erweitert.

Danksagung

Unser Dank gilt unseren Kollegen im internationalen Autorenteam, mit denen wir in vielstündiger Arbeit die Lehrpläne zum ISTQB Certified Tester, Advanced Level verfasst haben:

Rex Black, Bernard Homès, Paul Jorgensen, Jamie Mitchell, Mike Smith, Kenji Onishi, Tsuyoshi Yumoto.

Mein (Grahams) Dank gilt besonders:

Mein (Judys) Dank gilt besonders:

Inhaltsübersicht

1  Einführung

2  Marathon – unsere Beispielanwendung

3  Systemarten

4  Aufgaben des Test Analyst für das Testmanagement

5  Der Testprozess

6  Spezifikationsorientierte Testverfahren

7  Fehlerbasierte Testverfahren

8  Erfahrungsbasierte Testverfahren

9  Funktionales Testen

10 Benutzbarkeits- und Zugänglichkeitstests

11 Reviews für Test Analysts

12 Management von Fehlern und Abweichungen

13 Werkzeugkonzepte

14 Aufgaben des Technical Test Analyst für das Testmanagement

15 Analysetechniken

16 Strukturbasierte Testverfahren

17 Effizienztests

18 Sicherheitstests

19 Zuverlässigkeitstests

20 Wartbarkeitstests

21 Portabilitätstests

22 Reviews für Technical Test Analysts

23 Werkzeuge für Technical Test Analysts

Anhang

A   Glossar

B   Literatur

      Stichwortverzeichnis

Inhaltsverzeichnis

1         Einführung

1.1      Der Aufbau dieses Buches

1.2      Anforderungen an dieses Buch

1.2.1    Vollständigkeit

1.2.2    Lesbarkeit

1.3      Was bedeutet »advanced«?

1.4      Was ist ein »Test Analyst«?

2         Marathon – unsere Beispielanwendung

2.1      Überblick über das Marathon-System

2.2      Allgemeine Anforderungen

2.3      Einsatz des Marathon-Systems

2.4      Verfügbarkeit des Marathon-Systems

2.5      Erweiterungen vorbehalten

3         Systemarten

3.1      Einführung

3.1.1    Multisysteme

3.1.2    Sicherheitskritische Systeme

3.1.3    Echtzeit- und eingebettete Systeme

4         Aufgaben des Test Analyst für das Testmanagement

4.1      Einführung

4.2      Überwachung und Steuerung des Projekts

4.2.1    Produkt(qualitäts)risiken

4.2.2    Fehler

4.2.3    Testfälle

4.2.4    Nachverfolgbarkeit

4.2.5    Vertrauen

4.3      Kommunikation mit anderen Testern – wo auch immer sie sich aufhalten

4.4      Blick in die Praxis

4.5      Lernkontrollen

5         Der Testprozess

5.1      Einführung in den Testprozess

5.2      Den Prozess in den Lebenszyklus einpassen

5.3      Die Schritte des Testprozesses

5.3.1    Testplanung, -überwachung und -steuerung

5.3.2    Testanalyse

5.3.3    Testentwurf

5.3.4    Testrealisierung

5.3.5    Testausführung

5.3.6    Abschluss der Testaktivitäten

5.4      Lernkontrolle

6         Spezifikationsorientierte Testverfahren

6.1      Einführung

6.2      Einzelne spezifikationsorientierte Testverfahren

6.2.1    Äquivalenzklassenbildung

6.2.2    Grenzwertanalyse

6.2.3    Entscheidungstabellen

6.2.4    Ursache-Wirkungs-Graph-Analyse

6.2.5    Zustandsbasiertes Testen

6.2.6    Kombinatorisches Testen – paarweises Testen und orthogonale Arrays

6.2.7    Kombinatorisches Testen – Klassifikationsbäume

6.2.8    Anwendungsfallbasiertes Testen

6.2.9    User-Story-basiertes Testen

6.2.10  Wertebereichsanalyse

6.3      Auswahl eines spezifikationsorientierten Testverfahrens

6.4      Blick in die Praxis

6.5      Lernkontrolle

7         Fehlerbasierte Testverfahren

7.1      Einführung

7.2      Taxonomien

7.3      Die Anwendung der Technik

7.4      Blick in die Praxis

7.5      Lernkontrolle

8         Erfahrungsbasierte Testverfahren

8.1      Einführung

8.2      Intuitive Testfallermittlung

8.3      Checklistenbasiertes Testen

8.4      Exploratives Testen

8.5      Stärken und Schwächen

8.6      Blick in die Praxis

8.7      Lernkontrolle

9         Funktionales Testen

9.1      Einführung

9.2      Testen auf Richtigkeit

9.3      Testen auf Angemessenheit

9.4      Interoperabilitätstests

9.5      Blick in die Praxis

9.6      Lernkontrolle

10       Benutzbarkeits- und Zugänglichkeitstests

10.1    Benutzbarkeitstests

10.1.1    Effektivität

10.1.2    Effizienz

10.1.3    Zufriedenheit

10.1.4    Teilaspekte der Benutzbarkeit

10.2    Zugänglichkeitstests

10.3    Testprozess für Benutzbarkeits- und Zugänglichkeitstests

10.3.1    Planungsfragen

10.3.2    Testentwurf

10.3.3    Spezifizierung von Benutzbarkeitstests

10.4    Blick in die Praxis

10.5    Lernkontrolle

11      Reviews für Test Analysts

11.1    Einführung

11.2    Welche Arbeitsergebnisse können wir einem Review unterziehen?

11.3    Wann sollten Test Analysts die Reviews durchführen?

11.4    Aspekte von Reviews

11.4.1  Wie können wir unser Review effektiv gestalten?

11.4.2  Haben wir die richtigen Leute?

11.4.3  Wir haben die Fehler gefunden – was nun?

11.4.4  Wir haben keine Zeit für Reviews!

11.5    Checkliste für Reviews

11.6    Checkliste für Anforderungsreviews

11.7    Checkliste für die Reviews von Anwendungsfällen

11.8    Checkliste für Benutzbarkeitsreviews

11.9    Checkliste für Reviews von User Stories

11.10  Checkliste für die erfolgreiche Durchführung

11.11  Blick in die Praxis

11.12  Lernkontrolle

12       Management von Fehlern und Abweichungen

12.1    Einführung

12.2    Was ist ein Fehlerzustand?

12.3    Wie können wir Fehlerzustände finden

12.4    Felder für Fehlerzustände

12.5    Lebenszyklen von Fehlerzuständen

12.6    Metriken und Berichterstattung

12.6.1  Überwachung des Testfortschritts

12.6.2  Analyse der Fehlerdichte

12.6.3  Messungen gefundener versus behobener Fehler

12.6.4  Konvergenzmetriken

12.6.5  Informationen zur Einhaltung der Phasen

12.6.6  Ist unsere Fehlerinformation objektiv?

12.7    Möglichkeiten der Prozessverbesserung

12.8    Blick in die Praxis

12.9    Lernkontrolle

13       Werkzeugkonzepte

13.1    Was ist ein Testwerkzeug?

13.2    Warum setzen wir Werkzeuge ein?

13.3    Werkzeugarten

13.3.1  Testentwurfswerkzeuge

13.3.2  Datenwerkzeuge

13.3.3  Testdurchführungswerkzeuge

13.3.4  Wann sollten Sie eine Automatisierung durchführen?

13.3.5  Was Sie über Automatisierung wissen sollten

13.3.6  Umsetzen der Automatisierung

13.4    Sollten wir alle unsere Tests automatisieren?

13.5    Blick in die Praxis

13.6    Lernkontrolle

14       Aufgaben des Technical Test Analyst für das Testmanagement

14.1    Einführung

14.2    Blick in die Praxis

14.3    Lernkontrolle

15       Analysetechniken

15.1    Statische Analyse

15.1.1  Nutzen

15.1.2  Einschränkungen

15.1.3  Kontrollflussanalyse

15.1.4  Datenflussanalyse

15.1.5  Einhaltung von Codierungsstandards

15.1.6  Ermittlung von Codemetriken

15.1.7  Statische Analyse von Websites

15.1.8  Aufrufgraphen

15.2     Dynamische Analyse

15.2.1  Nutzen

15.2.2  Einschränkungen

15.2.3  Speicherlecks

15.2.4  Probleme mit Zeigern

15.2.5  Analyse der Performanz

15.3    Blick in die Praxis

15.4    Lernkontrolle

16       Strukturbasierte Testverfahren

16.1    Nutzen

16.2    Nachteile

16.3    Anwendung von strukturbasierten Testverfahren

16.4    Einzelne strukturbasierte Testverfahren

16.4.1  Anweisungstests

16.4.2  Zweig-/Entscheidungstests

16.4.3  Bedingungstests

16.4.4  Bedingungs-/Entscheidungstests

16.4.5  Mehrfachbedingungstests

16.4.6  Tests mit modifizierter Bedingungs-/Entscheidungsüberdeckung (MC/DC)

16.4.7  Pfadtests

16.4.8  API-Tests

16.5    Auswahl eines strukturbasierten Testverfahrens

16.6    Lernkontrolle

17       Effizienztests

17.1    Überblick

17.2    Performanztests

17.3    Lasttests

17.4    Stresstests

17.5    Skalierbarkeitstests

17.6    Testen der Ressourcennutzung

17.7    Messen der Effizienz

17.8    Planen von Effizienztests

17.8.1  Risiken und typische Effizienzfehler

17.8.2  Verschiedene Arten von Testobjekten

17.8.3  Anforderungen für Effizienztests

17.8.4  Vorgehensweisen für Effizienztests

17.8.5  Bestanden-/Nicht-bestanden-Kriterien für Effizienztests

17.8.6  Werkzeuge für Effizienztests

17.8.7  Umgebungen

17.8.8  Organisatorische Aspekte

17.8.9  Aspekte des Lebenszyklus

17.9    Spezifikation von Effizienztests

17.10  Durchführung von Effizienztests

17.11  Berichterstattung von Effizienztests

17.12  Werkzeuge für Performanztests

17.13  Blick in die Praxis

17.14  Lernkontrolle

18       Sicherheitstests

18.1    Überblick über Sicherheitstests

18.2    Definition von Sicherheit

18.3    Typische Sicherheitsbedrohungen

18.4    Vorgehensweise für Sicherheitstests

18.5    Organisatorische Aspekte

18.6    Aspekte des Lebenszyklus

18.7    Planen von Sicherheitstests

18.8    Analyse und Entwurf von Sicherheitstests

18.8.1  Softwareangriffe

18.8.2  Weitere Entwurfstechniken für Sicherheitstests

18.9    Durchführung von Sicherheitstests

18.10  Berichterstattung von Sicherheitstests

18.11  Werkzeuge für Sicherheitstests

18.12  Blick in die Praxis

18.13  Lernkontrolle

19       Zuverlässigkeitstests

19.1    Überblick

19.1.1  Reife

19.1.2  Fehlertoleranz

19.1.3  Wiederherstellbarkeit

19.2    Planung von Zuverlässigkeitstests

19.2.1  Bewertung des Risikos

19.2.2  Festlegen von Zuverlässigkeitszielen

19.2.3  Aspekte des Lebenszyklus

19.2.4  Vorgehensweise für Zuverlässigkeitstests

19.2.5  Vorgehensweise für das Messen des Zuverlässigkeitsgrads

19.2.6  Vorgehensweise für das Messen der Fehlertoleranz

19.2.7  Vorgehensweise für Failover-Tests

19.2.8  Vorgehensweise für Backup- und Wiederherstellungstests

19.3    Spezifikation von Zuverlässigkeitstests

19.3.1  Testspezifikation für das Zuverlässigkeitswachstum

19.3.2  Testspezifikation für die Fehlertoleranz

19.3.3  Spezifikation von Failover-Tests

19.3.4  Spezifikation von Backup- und Wiederherstellungstests

19.4    Durchführung von Zuverlässigkeitstests

19.5    Berichterstattung von Zuverlässigkeitstests

19.6    Werkzeuge für Zuverlässigkeitstests

19.7    Blick in die Praxis

19.8    Lernkontrolle

20       Wartbarkeitstests

20.1    Überblick

20.2    Testen auf Wartbarkeit

20.2.1  Definition von Wartbarkeit

20.2.2  Warum hat die Wartbarkeit einen geringen Stellenwert?

20.2.3  Ursachen schlechter Wartbarkeit

20.3    Planung von Wartbarkeitstests

20.4    Spezifikation von Wartbarkeitstests

20.5    Wartbarkeitstests und Analysen durchführen

20.6    Wartungstests

20.7    Aufgaben von Technical Test Analysts

20.8    Blick in die Praxis

20.9    Lernkontrolle

21       Portabilitätstests

21.1    Anpassbarkeit

21.1.1  Gründe für mangelnde Anpassbarkeit

21.1.2  Anpassbarkeitstests

21.2    Austauschbarkeit

21.2.1  Fragen der Austauschbarkeit

21.2.2  Austauschbarkeitstests

21.3    Installierbarkeit

21.3.1  Risikofaktoren der Installierbarkeit

21.3.2  Installationstests

21.4    Koexistenz/Kompatibilität

21.5    Blick in die Praxis

21.6    Lernkontrolle

22       Reviews für Technical Test Analysts

22.1    Einführung

22.2    Checklisten für Reviews

22.3    Checklisten für Codereviews

22.4    Checkliste für Architekturreviews

22.5    Lernkontrolle

23       Werkzeuge für Technical Test Analysts

23.1    Einführung

23.2    Aufgaben und Fähigkeiten von Technical Test Analysts für die Testautomatisierung

23.3    Integration und Informationsaustausch zwischen Werkzeugen

23.4    Definition eines Testautomatisierungsprojekts

23.5    Sollten wir alle unsere Tests automatisieren?

23.6    Werkzeugarten

23.6.1  Fehlereinpflanzungs- und Fehlereinfügungswerkzeuge

23.6.2  Werkzeuge für Komponententests und Builds

23.6.3  Werkzeuge für die statische Analyse von Websites

23.6.4  Werkzeuge zur Unterstützung modellbasierter Tests

23.6.5  Statische und dynamische Analysewerkzeuge

23.6.6  Performanztestwerkzeuge

23.6.7  Simulations- und Emulationswerkzeuge

23.6.8  Debugging- und Troubleshooting-Werkzeuge

23.7    Lernkontrolle

Anhang

A Glossar

B Literatur

Stichwortverzeichnis

1 Einführung

Es war eine dunkle und stürmische Nacht ... Oder war das der Anfang eines anderen Buches? Zumindest beschreibt dieser erste Satz sehr treffend, wie sich manche Testprojekte in einer ewigen Krise befinden und wie das Management oft im Dunkeln tappt – aber lassen wir dies vorerst beiseite.

Dieses Buch soll zwei Aufgaben erfüllen. Erstens bietet es hilfreiche Techniken und Methoden, die den erfahrenen Tester im Alltag erfolgreich unterstützen. Zweitens werden alle Inhalte abgedeckt, die Sie kennen müssen, um die Prüfung zum Erwerb der ISTQB-Advanced-Level-Zertifikate Test Analyst und Technical Test Analyst zu bestehen. Im ersten Kapitel beschreiben wir die Ziele, die wir uns für dieses Buch gesteckt haben, sowie die grobe Struktur der einzelnen Kapitel. Danach befassen wir uns mit zwei grundlegenden Fragen: Was bedeutet die Bezeichnung »advanced« im Zusammenhang mit der Tester-Zertifizierung und wie ist die Rolle des Test Analyst und Technical Test Analyst definiert?

Ein Wort zur Klärung: Im Originaltitel dieses Buches kommt der Begriff »Test Engineer« vor. In vielen, aber nicht allen Ländern ist dies die Bezeichnung für den leitenden Tester mit der höchsten technischen Qualifikation. In Abgrenzung zu Gebieten, in denen dieser Begriff eine andere Bedeutung haben mag, hat sich das ISTQB für die Verwendung der Begriffe »Test Analyst« (weniger technisch, sondern mehr geschäftlich orientiert) und »Technical Test Analyst« (stärker technisch orientiert, möglicherweise sogar mit einem Hintergrund nicht nur im Testwesen, sondern auch in der Entwicklung) entschieden. In diesem Buch werden deshalb analog zur ISTQB-Terminologie durchgängig die Begriffe Test Analyst und Technical Test Analyst verwendet.

1.1 Der Aufbau dieses Buches

Die Lehrpläne ISTQB Advanced Test Analyst und ISTQB Advanced Technical Test Analyst wurden in der Ausgabe 2012 als getrennte Dokumente angelegt. Dadurch ergibt sich für dieses Buch die folgende klare Struktur:

Hauptthema

Kapitel

Hauptautoren

Gemeinsame Bereiche

1 bis 3

Judy und Graham

Test Analyst (TA)

4 bis 13

Judy

Technical Test Analyst (TTA)

14 bis 23

Graham

Anhänge

A, B

Judy und Graham

1.2 Anforderungen an dieses Buch

Wir haben sehr hohe Anforderungen an dieses Buch gestellt. Bevor wir mit dem eigentlichen Inhalt des funktionalen und technischen Testens beginnen, möchten wir Ihnen kurz diese Anforderungen darlegen und gleichzeitig damit auch unsere allgemeine Vorgehensweise verdeutlichen.

Unser Ziel war es, ein gut lesbares und vollständiges Buch zu schreiben.

1.2.1 Vollständigkeit

Dieses Buch basiert auf dem englischsprachigen ISTQB-Advanced-Level-Lehrplan (2012, [ISTQB-CTAL])1 und deckt alle Inhalte ab, die Sie kennen müssen, um die Prüfungen zum Test Analyst und Technical Test Analyst zu bestehen. Außerdem können Sie mithilfe des vermittelten Wissens Ihre Fähigkeiten und Kenntnisse vertiefen und dadurch Ihre Chancen auf dem Arbeitsmarkt verbessern.

1.2.2 Lesbarkeit

In diesem Buch geht es um mehr, als einfach nur den Advanced-Level-Lehrplan abzudecken.

Wenn man ein Buch auf der Basis eines bereits definierten Lehrplans schreibt, kann man leicht in einen Formulierungsstil verfallen, der sich lediglich auf die Behandlung des Lehrplans konzentriert. Natürlich ist es notwendig, die Inhalte des Lehrplans abzudecken. Das Ergebnis ist jedoch allzu oft ein eher trockener Stil, der sich an Definitionen orientiert und viele verschiedene Schriftarten und Symbole enthält, um auf einzelne Teile des Lehrplans zu verweisen. Dies wollten wir vermeiden. Wir möchten Ihnen ein Buch bieten, das den Lehrplan abdeckt und sich gleichzeitig gut liest.

Wir möchten die Lesbarkeit dieses Buches erhöhen, indem jedes Kapitel dem gleichen Aufbau folgt:

1.3 Was bedeutet »advanced«?

Wenn man sich als »Advanced Tester« bezeichnet, kann das für viele ein rotes Tuch sein. Eine typische Reaktion darauf könnte folgendermaßen lauten: »Gut, dann sehen wir doch mal, ob Sie dieses Problem lösen können.« Konfrontiert mit dieser Herausforderung, sollte ein professioneller Tester in der Lage sein, die Bezeichnung »Advanced Tester« zu erklären. Hier sind für alle Fälle ein paar schnelle Antworten für Sie:

Professionelle Tester haben den Vorteil, dass sie eine gemeinsame Branchensprache sprechen.

Noch ein weiterer (teilweise umstrittener) Aspekt zum Thema Zertifizierung: Die Advanced-Level-Zertifizierung bringt keinerlei Garantie mit sich. Es gibt viele gute Tester, die nicht zertifiziert sind. Die Zertifizierung zeigt jedoch, dass Sie einen hohen professionellen Standard erreicht haben und dass Sie die allgemein anerkannte Sprache der Branche sprechen. Da die IT-Branche stark globalisiert ist und viele Testprojekte in mehreren Ländern durchgeführt werden, ist dies ein gewaltiger Vorteil.

Wir, die Autoren, sind übrigens in allen drei Rollen auf dem Advanced Level zertifiziert und sind stolz darauf. Die wichtigsten Organisationen, mit denen wir zusammenarbeiten, haben die Zertifizierungsprogramme in ihr Fortbildungsangebot aufgenommen, was sich sehr gut auf die Mitarbeitermotivation und die Kundenzufriedenheit ausgewirkt hat.

Neben zertifizierungsrelevanten Inhalten bietet das Buch auch eine Fülle an wertvollen Informationen, aus denen man als Advanced Tester Nutzen ziehen kann. Ganz egal, ob Zertifizierung für Sie ein Thema ist oder nicht, wir sind uns sicher, dass Sie in der Praxis von dem Gelernten profitieren werden.

1.4 Was ist ein »Test Analyst«?

Es ist nicht leicht, eine Berufsbezeichnung auf internationaler Ebene zu definieren. Oft verwenden unterschiedliche Länder oder sogar unterschiedliche Unternehmen im gleichen Land verschiedene Bezeichnungen für die gleiche Rolle oder assoziieren ein etwas anderes Aufgabengebiet mit einer bestimmten Rolle. Dafür gibt es keinen bestimmten Grund – die Terminologie hat sich schlicht und einfach so entwickelt.

Im Foundation Level hat das ISTQB dieses Problem teilweise behoben, indem es die Rollen des Testmanagers (auch Testleiter genannt) und Testers eingeführt hat.

Die Rolle des Test Analyst baut auf der Rolle des Testers auf.

Im Advanced Level hat das ISTQB diesen Trend zur Standardisierung weitergeführt und die Rolle des Test Analyst eingerichtet. Vom Test Analyst werden zunächst die gleichen Fähigkeiten erwartet, die ein Tester gemäß ISTQB-Foundation-Level-Lehrplan [ISTQB-CTFL] vorweisen muss. Bei der Rolle des Test Analyst kommt jedoch eine Spezialisierung hinzu, die wir in diesem Abschnitt ansprechen möchten.

Was erwarten Sie von einem Test Analyst? Bei höchsten Anforderungen würde ein Arbeitgeber die folgenden grundlegenden Fähigkeiten von einem Test Analyst erwarten:

Der Test Analyst ist mit der Rolle des Testmanagers vertraut und kennt die Grundprinzipien des Testmanagements. Darunter fällt auch die Fähigkeit, bestimmte Anforderungen zu verstehen und die verschiedenen Risikotypen einzuschätzen.

Es werden zwei bestimmte Arten von Test Analysts definiert.

Die Position des Test Analyst wiederum wird laut Advanced-Level-Lehrplan und den Gepflogenheiten der Branche durch zwei unterschiedliche Rollen definiert. Beide Rollen erfordern die zuvor genannten allgemeinen Fähigkeiten, jedoch werden sie in unterschiedlichen Zusammenhängen angewandt. Ganz allgemein kann man sagen, dass der Technical Test Analyst eine eher technische Funktion erfüllt, während der Domain Test Analyst eine eher betriebswissenschaftliche Herangehensweise vertritt und Tests in seinem fachlichen Umfeld (domain) durchführt.

Ein Technical Test Analyst hat folgende Fähigkeiten:

2 Marathon – unsere Beispielanwendung