image

image

Janet Albrecht-Zölch ist seit 2007 in verschiedenen Positionen im Bereich Softwaretest und Testmanagement tätig. Neben ihrer beruflichen Tätigkeit schloss sie 2014 den Masterstudiengang Informatik an der Fernuniversität in Hagen ab. Frau Albrecht-Zölch ist ISTQB® Certified Tester Advanced Level – Testmanagement und seit 2015 Mitglied des Conference Board des German Testing Day sowie des Local Board der German Testing Night. Ihre besonderen Interessen liegen in den Bereichen Qualitätssicherung, Testprozessverbesserung und Testdatenmanagement.

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.plus

Janet Albrecht-Zölch

Testdaten und Testdatenmanagement

Vorgehen, Methoden und Praxis

image

Janet Albrecht-Zölch, testdatenmanagement@web.de

Lektorat: Christa Preisendanz

Bibliografische Information der Deutschen Nationalbibliothek

ISBN:

1. Auflage 2018

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.

5 4 3 2 1

Vorwort

Wozu ein Buch über Testdaten und Testdatenmanagement?

Nun, jeder Tester benötigt Testdaten zum Testen seines Testobjekts! Daraus ergibt sich automatisch der Bedarf, sich mit dem Thema Testdaten und einem zielführenden Testdatenmanagement zu befassen. Die gewichtigste Motivation stellen die folgenden fünf Punkte dar:

Komplexität und Vernetzung

Dank verschiedener Fortschritte in der IT sind wir heute in der Lage, IT-Systeme und Anwendungen zu entwickeln, die sehr große Mengen an Daten in sehr kurzer Zeit verarbeiten können. Darüber hinaus nehmen Anzahl und Komplexität der Systeme sowie der Grad ihrer Vernetzung zu. Dies stellt uns vor allem bei Integrationstests vor große Herausforderungen in Bezug auf die Testdaten.

Verbreitung von Software

Zudem dringt Software in immer mehr Anwendungsgebiete vor. Auch dadurch erhöht sich der Bedarf, die Qualität und Sicherheit der Software abzusichern. Dies gilt vor allem auch für den Bereich der eingebetteten Systeme und Data-Warehouse-Lösungen.

Kosten

Ein bezifferbarer Grund für ein professionelles Testdatenmanagement liegt in den Kosten, die auf Bereitstellung und Wartung von Testdaten entfallen. Folgekosten aufgrund fehlender Testdaten, mangelnder Qualität derselben oder ineffizienter Handhabung der Testdaten gefährden den Erfolg des Softwareentwicklungsprojekts. Unterstützung bietet Ihnen dieses Buch u.a. beim Erstellen eines Business Case für das Testdatenmanagement.

Datenschutz

Wenn von Daten die Rede ist, geht es auch um Datenschutz. Das vorliegende Buch zeigt, wie Sie die Aspekte des Datenschutzes im Test umsetzen können und wie Sie so das Risiko von Datenschutzverletzungen und deren Konsequenzen mindern können.

Wissensbasis

Softwaretesten wird immer anspruchsvoller. Gleichzeitig wächst der Markt für Werkzeuge rund um den Softwaretest. Testdatenmanagementsysteme versprechen die Lösung all Ihrer Testdatenprobleme. Dieses Buch führt Sie in die Grundlagen von Testdaten und Testdatenmanagement (TDM) ein. Es versetzt Sie in die Lage, den Leistungsumfang von Testdatenmanagement-Werkzeugen realistisch einzuschätzen. Zudem unterstützt Sie dieses Werk mit der Beschreibung eines möglichen Vorgehens beim Aufbauen eines eigenen Testdatenmanagements.

Bedarf

Meine persönliche Motivation zu diesem Buch ergibt sich aus eigener Erfahrung: Im Laufe meiner Berufsjahre stand ich in der Rolle als Softwaretesterin und noch stärker als Testmanagerin immer wieder vor der Frage, wie ich zu den Testdaten für meine Testfälle komme oder wie ich ein Testprojekt sinnvoll mit Testdaten versorgen kann. Mit diesen Fragen war ich nicht allein.

So begann ich zu recherchieren. Ich sprach mit Kolleginnen und Kollegen, las Bücher zum Softwaretesten, schloss mich einer Arbeitsgruppe zum Testdatenmanagement an und fahndete im Internet nach Antworten auf meine Fragen. Ein deutsch- oder englischsprachiges Buch zum Thema Testdatenmanagement war nicht aufzufinden, stattdessen eine große Anzahl verschiedener Publikationen, die sich zumeist einzelnen Aspekten des Themas widmeten.

Daher beschloss ich, die Rechercheergebnisse und meine eigenen Erfahrungen zu einem Buch zu verarbeiten. Dabei greife ich auf Erkenntnisse zurück, die ich in klassischen und in agilen Projekten erwarb, beim Testen von Webapplikationen und Desktop-Anwendungen, im Bereich der öffentlichen Verwaltung und im Privatsektor. Ich hoffe, Sie haben Freude beim Lesen und finden Ihrerseits Antworten auf einige Ihrer Fragen.

Dank

Ein Buch zu verfassen bedeutet eine ganze Menge Arbeit, die ein Autor nicht allein leistet. Wahrscheinlich ist das einer der Gründe, warum es noch kein Buch zum TDM gab.

Mein Dank gebührt daher den Personen, die dieses Werk mit ihren Erfahrungsberichten bereichern: Helmut Pichler, Stephan Grünfelder und eine Person, deren Name aus Rücksicht auf den Arbeitgeber ungenannt bleibt. Mit Herbert Stauffer tauschte ich mich zum Thema Werkzeuge und Werkzeugkategorien aus. Vielen Dank für all die freundlichen E-Mails, Telefonate und dafür, dass die Kollegen ihre knappe Zeit mit mir teilten.

Einen wirkungsvollen Beitrag leisteten auch die Reviewer dieses Buches, vor allem Matthias Daigl, die mit ihrer konstruktiven Kritik und zahlreichen Anregungen maßgeblich zur Qualität des Buches beigetragen haben. Vielen Dank dafür!

Den in diesem Buch zitierten Autoren danke ich sehr herzlich. Sie trugen dazu bei, dass ich beim Schreiben das eine oder andere dazulernte.

Mein besonderer Dank gilt Christa Preisendanz, meiner Lektorin, für ihr Vertrauen und ihre Geduld sowie dem dpunkt.verlag, der dieses Buch veröffentlicht. Nicht zuletzt danke ich meiner Familie für ihre Unterstützung und Geduld.

Janet Albrecht-Zölch
München, im Oktober 2017

Inhaltsübersicht

1Einleitung

Teil ITestdaten

2Testdaten – ein Überblick

3Eigenschaften von und Anforderungen an Testdaten

4Probleme mit Testdaten und Risiken

5Gewinnen und Archivieren von Testdaten

6Testdaten und Datenschutz

Teil IITestdatenmanagement

7Testdatenmanagement – ein Überblick

8Vorgehensweisen im Testdatenmanagement – Modelle

9Vorgehensweisen im Testdatenmanagement – Best Practices

10Organisation – Rollen im Testdatenmanagement

11Werkzeuge für Testdaten & Testdatenmanagement: Anforderungen und Kategorien

12Metriken für Testdaten & Testdatenmanagement

13Testdaten & Testdatenmanagement im Kontext

Teil IIIPraxis

14Vorgehen zum Verbessern eines Testdatenmanagements

15Checklisten, Mustergliederungen, Fragenkataloge

Anhang

AAbkürzungen

BGlossar

CLiteratur

Index

Inhaltsverzeichnis

1Einleitung

Teil ITestdaten

2Testdaten – ein Überblick

2.1Begriffe Testdaten, ideale Testmenge, gute Testdaten

2.1.1Testdaten

2.1.2Gute Testdaten

2.1.3Ideale Testmenge

2.2Kategorien von Testdaten

2.2.1Kategorien nach Reimann

2.2.2Kategorien nach Chace

2.2.3Testdatentypen nach Jagers und Kollegen

2.2.4Definition Testdatenkategorien

2.3Testdatenbestandstypen

2.4Unterscheidung in Primär- und Sekundärdaten

2.5Unterscheidung nach Testobjekt in Testdatentypen

2.6Ergebnisse eines Testlaufs: Soll, Ist, Testergebnis

2.7Metadaten für Testdaten

2.8Testdaten, Testfälle, Testentwurfsverfahren und Testabdeckung

2.9Zusammenfassung

3Eigenschaften von und Anforderungen an Testdaten

3.1Eigenschaften von Testdaten

3.2Anforderungen an Testdaten – ein Überblick

3.3Inhaltliche Anforderungen

3.4Technische und organisatorische Anforderungen

3.5Wirtschaftliche und rechtliche Anforderungen

3.6Wunsch und Wirklichkeit

3.7Erheben und Dokumentieren von Anforderungen an Testdaten

3.8Zusammenfassung

4Probleme mit Testdaten und Risiken

4.1Häufige Probleme mit Testdaten

4.1.1Probleme mit Testdaten, die auf den Faktor Mensch zurückzuführen sind

4.1.2Probleme mit Testdaten, die in den Testdaten selbst liegen

4.1.3Probleme aufgrund fehlerhafter, ungeeigneter oder vergessener Testdaten

4.1.4Herausforderungen bei Gewinnung, Herstellung und Wartung von Testdaten

4.1.5Organisatorische Problemstellungen

4.2Risiken bei Testdaten

4.2.1Fehlende und fehlerhafte Testdaten als Produktrisiko – unentdeckte Fehler

4.2.2Fehlende und fehlerhafte Projektrisiko als Projektrisiko – Verzögerungen und spät entdeckte Fehler

4.3Zusammenfassung

5Gewinnen und Archivieren von Testdaten

5.1Wege zum Gewinnen von Testdaten

5.1.1Herkunft der Daten: Echtdaten versus synthetische Daten

5.1.2Vorgehen: Ansätze zum Aufbauen von Testdatenbeständen

5.1.3Vorgehen: Konstruktion von Testdaten

5.1.4Zufallsdaten

5.1.5Selbstbeschreibende Testdaten

5.1.6Migrieren von Testdaten

5.2Quellen für das Gewinnen von Testdaten

5.2.1Ermitteln von Anforderungen an Testdaten oder Testdaten aus Artefakten des Softwareentwicklungsprojekts

5.2.2Welche Art Information aus welcher Quelle kommen kann

5.2.3Quellen für das automatisierte Generieren von Testdaten

5.3Wie bekommt man die Testdaten in das zu testende System?

5.3.1Direktes Eingeben über Systemschnittstellen

5.3.2Kopieren und Editieren

5.3.3Spezialisierte Testdatenmanagementlösung

5.3.4Automatisieren von Testeingaben

5.4Trennen der Testdaten von Testfällen

5.5Trennen und Reservieren von Testdaten

5.6Versionieren von Testdaten

5.7Archivieren von Testdaten

5.7.1Wozu archivieren?

5.7.2Vor dem Archivieren: Bereinigung der Testumgebung

5.7.3Wie archivieren?

5.7.4Was archivieren?

5.7.5Datenschutz für archivierte Testdaten

5.8Zusammenfassung

6Testdaten und Datenschutz

6.1Regelungen zum Datenschutz

6.1.1EU-Datenschutzrichtlinie

6.1.2Europäische Datenschutz-Grundverordnung (DSGVO)

6.1.3Bundesdatenschutzgesetz (BDSG)

6.1.4Datenschutz auf Länderebene, branchen- oder unternehmensbezogene Vorgaben

6.1.5Standards zum Datenschutz in der Cloud

6.2Anonymisieren, Pseudonymisieren, Verfremden, Maskieren

6.2.1Anonymisierung

6.2.2Pseudonymisierung

6.3Testdaten in der Cloud

6.3.1Testumgebungen in der Cloud

6.3.2Datenschutz nach DSGVO

6.3.3Datenschutz nach ISO/IEC 27018

6.4Zusammenfassung

Teil IITestdatenmanagement

7Testdatenmanagement – ein Überblick

7.1Begriff Testdatenmanagement

7.1.1Testdatenmanagement-Begriff nach ISTQB® – datenorientiert

7.1.2Testdatenmanagement-Begriff nach Gawlik – Mischform, Erzeugung von Testdaten im Fokus

7.1.3Testdatenmanagement-Begriff nach Kruse – managementorientiert

7.1.4Testdatenmanagement-Begriff nach Haller – managementorientiert, Werkzeuge

7.1.5Testdatenmanagement-Begriff nach Haber – prozessorientiert

7.1.6Testdatenmanagement-Begriff nach German Testing Board – Mischform

7.1.7Der Begriff Testdatenmanagement

7.2Wozu Testdatenmanagement?

7.3Ziele des Testdatenmanagements

7.4Inhalte des Testdatenmanagements

7.4.1Testdaten

7.4.2Prozesse, Aktivitäten, Rollen, Artefakte, Standards

7.4.3Organisationsstrukturen

7.4.4Werkzeugunterstützung

7.4.5Regularien

7.5Wie ist das Testdatenmanagement in den Testprozess eingebunden?

7.5.1Testplanung und -steuerung → Testdaten als Testmittel, Werkzeuge

7.5.2Analyse und Design → Testdatenanforderungsermittlung, Testdatendesign

7.5.3Testumgebung, Deployment → Testdaten: Umgebungsdaten, Bestandsdaten

7.5.4Realisierung und Durchführung → Testdatenerstellung (Bestandsdaten, Eingabedaten u. a.)

7.5.5Testauswertung und -bericht → Aussage zu Testdaten

7.5.6Abschluss der Testaktivitäten → Archivierung der Testdaten, Übergabe an die Wartungsmannschaft

7.5.7Testdatenmanagement ist überall

7.6Der richtige Zeitpunkt

7.7Abgrenzung Testdatenmanagement und Datenmanagement

7.7.1Der Begriff Datenmanagement

7.7.2Datenmanagement versus Testdatenmanagement

7.7.3Konzepte und Techniken übertragbar

7.8Abgrenzung Testdatenmanagement und Konfigurationsmanagement

7.8.1Begriffe Konfigurationsmanagement, Konfiguration, Konfigurationsobjekt

7.8.2Testdaten und Testdatenmanagement versus Konfiguration und Konfigurationsmanagement

7.8.3Testdatenmanagement mit Konfigurationsmanagement

7.9Zusammenfassung

8Vorgehensweisen im Testdatenmanagement – Modelle

8.1Prozess nach ASQF-Arbeitsgruppe Testdatenmanagement

8.1.1Inhaltsüberblick (Begriff Testdaten & Testdatenmanagement, Rollen, Werkzeuge, Dokumentation)

8.1.2Eignung/Einschränkung

8.1.3Was bietet die Vorgehensweise?

8.1.4Rollenkonzept

8.1.5Das Vorgehen gemäß diesem Prozess

8.1.6Methoden und Techniken

8.1.7Dokumentation

8.1.8Werkzeuge

8.1.9Prozesse, Schnittstellen zu anderen Prozessen

8.1.10In drei Sätzen

8.2Framework von Samuel T. Redwine Jr.

8.2.1Inhaltsüberblick (Begriff Testdaten & Testdatenmanagement, Rollen, Werkzeuge, Dokumentation)

8.2.2Eignung/Einschränkungen

8.2.3Was bietet die Vorgehensweise

8.2.4Das Vorgehen gemäß dieser Best Practice

8.2.5Methoden und Techniken

8.2.6Dokumentation

8.2.7Werkzeuge

8.2.8Prozesse, Schnittstellen zu anderen Prozessen

8.2.9In drei Sätzen

8.3Test Data Management Framework von Borghers und Demey

8.3.1Ansatz

8.3.2Aufbau des Rahmenwerks

8.3.3In drei Sätzen

8.4Weitere Modelle im Überblick

8.4.1Prozessrahmenwerk Test Data Management nach Nittur und Sengupta

8.4.2Strategie nach Murthy und Channagiri

8.5Zusammenfassung

9Vorgehensweisen im Testdatenmanagement – Best Practices

9.1Best Practice nach Chace

9.1.1Inhaltsüberblick (Begriff Testdaten & Testdatenmanagement, Rollen, Werkzeuge, Dokumentation)

9.1.2Eignung/Einschränkungen

9.1.3Was bietet die Vorgehensweise

9.1.4Das Vorgehen gemäß dieser Best Practice

9.1.5Methoden und Techniken

9.1.6Dokumentation

9.1.7Werkzeuge

9.1.8Prozesse, Schnittstellen zu anderen Prozessen

9.1.9In drei Sätzen

9.2Best Practice nach Haller

9.2.1Inhaltsüberblick (Begriff Testdaten & Testdatenmanagement, Rollen, Werkzeuge, Dokumentation)

9.2.2Eignung/Einschränkungen

9.2.3Was bietet die Vorgehensweise

9.2.4Werkzeuge

9.2.5Rollenkonzept

9.2.6Das Vorgehen gemäß dieser Best Practice

9.2.7Methoden und Techniken

9.2.8Dokumentation

9.2.9Prozesse, Schnittstellen zu anderen Prozessen

9.2.10In drei Sätzen

9.3Weitere Best Practices im Überblick

9.3.1Best Practice nach Schauber und Leimsner

9.3.2Best Practice nach Govindasamy und Murugesan

9.3.3Best Practice nach Madia

9.4Zusammenfassung

10Organisation – Rollen im Testdatenmanagement

10.1Testdatenmanagement-Rollen

10.1.1Der Testarchitekt als oberster Verantwortlicher (nach ISTQB®)

10.1.2Der Testdatenarchitekt (Test Data Architect)

10.1.3Testdatenmanager, Testdatenmodellierer, Testdatenrealisierer

10.1.4Testdatenmanager und Testdatenteam

10.1.5Testdaten-Consultant, Testdaten-Designer, Solution Implementer, Technical Operator

10.2Test-Rollen ergänzt um Testdatenmanagementaktivitäten

10.2.1Ergänzen vorhandener Tester-Rollen um Testdatenmanagementaktivitäten, eine optionale Testdatenmanagement-Rolle

10.2.2Keine Testdatenmanagement-Rollen, stattdessen zu vorhandenen Rollen des Testteams zuordnen

10.2.3Spezialisierung einer vorhandenen Rolle

10.3Personalunion versus Eigenständigkeit

10.4Zentrales oder dezentrales Testdatenmanagement?

10.5Zusammenfassung

11Werkzeuge für Testdaten & Testdatenmanagement: Anforderungen und Kategorien

11.1Was Testdatenmanagement-Werkzeuge leisten sollen: Anforderungen an Testdatenwerkzeuge

11.1.1Anforderungen an Werkzeuge zum Erstellen von Testdaten

11.1.2Anforderungen Testdatenmanagement-Werkzeuge

11.1.3Weitere Anforderungen

11.2Kategorien von Testdatenmanagement-Werkzeugen

11.2.1Analyse- und Data-Mining Werkzeuge

11.2.2Werkzeuge für das Erstellen oder Bearbeiten von Testdaten

11.2.3Werkzeuge für die Testdatengenerierung

11.2.4Drei Klassen von Testdatengeneratoren

11.2.5Unterscheidung der Funktionalitäten verschiedener Werkzeuge

11.2.6Weitere Testdatenmanagement-Werkzeuge

11.3Auswahl eines Testdatenwerkzeugs

11.3.1Weitere Voraussetzungen für die Auswahl eines Werkzeugs

11.3.2Testfälle für die Machbarkeitsstudie

11.4Zusammenfassung

12Metriken für Testdaten & Testdatenmanagement

12.1Metriken im Softwaretest

12.1.1Arten von Metriken

12.1.2Aussagen über Testdaten möglich?

12.2Kategorien von Metriken für Testdaten

12.2.1Mengenbezogene Metriken

12.2.2Qualitätsbezogene Metriken

12.3Konkrete Metriken für Testdaten

12.3.1Datenüberdeckungsmaße für Testdaten im Systemtest

12.3.2Metriken zum Messen der Datenqualität von Testdaten

12.3.3Metriken für das Testdatenmanagement

12.4Zusammenfassung

13Testdaten & Testdatenmanagement im Kontext

13.1Testdaten und Fehlerkategorien als Hilfe zur Priorisierung der Testdatenbereitstellung

13.2Testdaten im automatisierten Test

13.3Testdaten beim Testen von Data-Warehouse- und Business-Intelligence-Systemen

13.3.1Testumgebung

13.3.2Gewinnen von Testdaten für den Test von Data-Warehouse- und Business-Intelligence-Systemen

13.3.3Maßnahmen zum Schutz der echten Daten in den Testdaten

13.3.4Vor- und Nachteile von Echtdaten als Testdaten

13.3.5Weitere Quellen zum Ableiten von Testdaten

13.3.6Besondere Gruppen von Daten

13.3.7Überblick: Wie testet man Data-Warehouse- und Business-Intelligence-Systeme und was für Daten(bestände) benötigt man dafür?

13.3.8Begriffe in Data-Warehouse- und Business-Intelligence-Systemen

13.4Testdaten im Test von Embedded Systems

13.4.1Besonderheiten beim Testen eingebetteter Systeme

13.4.2Die Testdaten im Testen von Embedded Systems

13.4.3Erfahrungsbericht: Testdaten im Test von Embedded Systems im Bereich Videotechnik

13.5Testdaten in klassischen und in agilen Projekten

13.5.1Klassisch

13.5.2Agile, Scrum

13.6Testdaten in Normen für Softwareentwicklung und/oder Softwaretest

13.6.1Die neue Normenreihe ISO 29119

13.6.2Welche Regelungen zu Testdaten und Testdatenmanagement finden sich in ISO-29119-Reihe?

13.6.3Weitere relevante Normen: ISO/IEC 250xx

13.7Testdaten in Bewertungsmodellen

13.8Zusammenfassung

Teil IIIPraxis

14Vorgehen zum Verbessern eines Testdatenmanagements

14.1Einsteigen in strukturiertes Testdatenmanagement

14.2Etappe 1: Das Testdatenmanagement organisieren

14.2.1Zentralen Testdatenmanagement-Verantwortlichen benennen und dessen Aufgabe definieren

14.2.2Reife des Testprozesses prüfen & bei Bedarf verbessern

14.2.3Bestandsaufnahme & Anforderungsanalyse durchführen: Testdatenmanagementprozess

14.2.4Business Case für das Testdatenmanagement schreiben & entscheiden

14.2.5Bei Bedarf: Übergang vom Testdatenmanagement-Verantwortlichen zum Testdatenmanager

14.2.6Testdatenmanagement-Richtlinie erstellen (Testdatenmanagementstrategie)

14.2.7Entscheiden: zentrales, dezentrales Testdatenmanagement oder Mischform?

14.2.8Rollen definieren

14.2.9Prozesse und Dokumentation definieren

14.2.10 Die Testdaten organisieren

14.2.11 Werkzeugeinsatz und Hardwareeinsatz prüfen und anpassen

14.2.12 Initiales Testdatenmanagementkonzept verfassen

14.2.13 Umsetzen des Testdatenmanagements in konkreten Testprojekten sowie Prüfen & Verbessern des Testdatenmanagements

14.3Etappe 2: Die Testdaten organisieren – von der Analyse bis zur Archivierung

14.3.1Bestandsaufnahme durchführen: Stand der aktuell in Gebrauch befindlichen Testdaten

14.3.2Analyse: Testdatenanforderungen verstehen

14.3.3Spezifizieren der Testdaten, Testdatenpakete (→ Testdatenspezifikation)

14.3.4Testdaten erstellen & bereitstellen

14.3.5Daten nutzen, anpassen, archivieren

14.4Zusammenfassung

15Checklisten, Mustergliederungen, Fragenkataloge

15.1Mustergliederung TDM-Business-Case

15.2Checkliste zu Anforderungen an den TDM-Business-Case

15.3Checkliste TDM-Richtlinie

15.4Mustergliederung TDM-Konzept

15.5Testdatenspezifikation

15.6Checkliste Testdatenbereitstellungskonzept (nach TestSPICE™)

15.7Checkliste zur Organisation der Testumgebung und der Testdaten

15.8Checkliste Bestandsaufnahme zu Werkzeug- und Hardwareeinsatz

15.9Fragenkatalog zur Bestandsaufnahme Testdatenmanagement

15.10Fragenkatalog zur Bestandsaufnahme: Aktueller Testdatenbestand

15.11Fragenkatalog für das Erheben von Anforderungen an Testdaten (initial)

15.12Fragenkatalog zum Vervollständigen der Testdatenmenge

15.13Empfehlungen zu Methoden und Techniken für das Ermitteln von Anforderungen an Testdaten

15.14Relevante Informationen für die Auswahl der Testdaten

15.15Checkliste zum Spezifizieren der Testdaten

15.16Checkliste: Organisatorische Aspekte der Testdaten managen

15.17Checkliste: Aktivitäten zum Bereitstellen der Testdaten

15.18Empfehlungen zur Testdatengewinnung

15.19Empfehlungen zur Testdatenverwaltung

Anhang

AAbkürzungen

BGlossar

CLiteratur

Index

1Einleitung

Etwa 30 bis 50 % des gesamten Testaufwands entfallen auf das Erzeugen und Pflegen von Testdaten [Chac11].

Testdaten als Automatisierungshindernis

40 % der Befragten im World Quality Report nannten die Verfügbarkeit der Testdaten und der Testumgebung als Hindernis für die Testautomatisierung [WQR17, S. 41]. Damit landeten Testdaten und Testumgebung auf Platz 2 der größten Hindernisse – direkt nach dem Mangel an geeigneten Automatisierungswerkzeugen (wurde von 45 % der Teilnehmer genannt [WQR17, S. 41]).

Echtdaten!

35 % der Befragten erstellen neue Testdaten mithilfe von Automatisierungswerkzeugen, 17 % davon nutzen Eigenentwicklungen. 16 % legen ihre Testdaten anhand von Spreadsheets manuell an. Nur noch 11 % erstellen die Testdaten über grafische Benutzungsoberflächen (GUI). 28 % nutzen Kopien der Produktionsdaten als Testdaten, wobei 13 % diese zuvor nicht weiterbearbeiten (also auch nicht anonymisieren). 18 % setzen ihre Testdaten nach jeder Iteration zurück, um sie erneut verwenden zu können [WQR17, S. 49].

Diese Zahlen zeigen, welche Herausforderung die Testdaten im Softwaretest darstellen. Meine Erfahrungen decken sich in etwa damit.

Ziele und Aufbau des Buches

Ziele des Buches

Im Wesentlichen verfolgt dieses Buch folgende drei Ziele:

Aufbau des Buches

Das Buch gliedert sich in drei Teile.

Teil I (Kapitel 2 bis 6) beginnt mit den Testdaten und beantwortet folgende Fragen: Was versteht man unter Testdaten? Welche Anforderungen werden an Testdaten gestellt? Welche Eigenschaften weisen Testdaten auf? Welche Herausforderungen bergen sie? Wie kann man Testdaten gewinnen, nutzen, archivieren und was muss man in Bezug auf den Datenschutz beachten?

Der erste Teil definiert wesentliche Begriffe und stellt wichtige Methoden vor; er schafft Grundlagen für Teil III. Daher sei allen Lesern zumindest ein Überfliegen des ersten Teils empfohlen.

Teil II (Kapitel 7 bis 13) behandelt die verschiedenen Aspekte des Managens von Testdaten. Auch dieser Teil beginnt mit der Klärung des Begriffs, hier des Testdatenmanagements, und einer Abgrenzung zu Datenmanagement und Konfigurationsmanagement. Überspringen wird nicht empfohlen. Des Weiteren stellt der Teil Modelle und Best Practices vor. Diese dienen der Erweiterung unseres Horizonts und als Anregungen für die eigene Testdatenmanagementpraxis. Im Testdatenmanagement erfahrene Leser können diese querlesen und bei Bedarf (z.B. bei der Lektüre des Kapitels 9 zum konkreten Vorgehen) darauf zurückkommen. Kapitel 10 über Rollenkonzepte für das Testdatenmanagement zeigt, dass es mit dem Erstellen von Testdaten längst nicht getan ist. Ein Kapitel ist den Werkzeugkategorien gewidmet (Kapitel 11), ein weiteres den Metriken für Testdaten und für das Testdatenmanagement (Kapitel 12). Erfahrene, die sich mit Testdatenmanagement-Werkzeugen oder Metriken gut auskennen, können diese Kapitel überfliegen.

Den Schluss dieses zweiten Teils bildet Kapitel 13, das Testdaten und Testdatenmanagement in verschiedenen Kontexten betrachtet. Wer sich auf seine konkrete Berufspraxis konzentrieren möchte, kann einzelne Abschnitte des Kontext-Kapitels überspringen. Sie sind als Blick über den Tellerrand gedacht.

Teil III (Kapitel 14 und 15) baut auf den ersten beiden Teilen auf. Er stellt Ihnen ein Vorgehen zum Verbessern eines Testdatenmanagements vor, denn überall dort, wo getestet wird, findet bereits ein Testdatenmanagement statt. Checklisten, Fragenkataloge und Mustergliederungen bieten Hilfe für die Umsetzung.

Erfahrungsberichte, Beispiele und Lessons Learned runden die Kapitel ab.

Was das Buch bietet – und was nicht

Was das Buch bietet

Dies ist das erste deutschsprachige Buch, das sich direkt dem Thema Testdaten und Testdatenmanagement widmet. Es führt detailliert in dieses Thema ein. Damit unterstützt dieses Werk Softwaretester und Interessierte in einem bisher nur am Rande betrachteten Bereich – nämlich im Umgang mit Testdaten. So ermöglicht es dem Leser1, sich einen Eindruck darüber zu verschaffen, wo das eigene Testprojekt bzgl. Testdaten und Testdatenmanagement steht.

Dieses Buch soll Anregungen bieten. Sie werden an keiner Stelle dieses Buches lesen, dass diese oder jene Vorgehensweise die einzig richtige darstellt. Da jedes Softwareentwicklungsprojekt einzigartig ist und jedes Unternehmen seine eigenen Regeln schreibt, kann es keine Lösung geben, die wirklich auf alle passt. Daher spreche ich bestenfalls Empfehlungen aus.

Was das Buch nicht bietet

Konkrete Testdatenmanagement-Werkzeuge werden in diesem Buch nicht behandelt, denn das Buch beschränkt sich auf methodische Aspekte, und der Markt für Softwaretools ist sehr schnelllebig.

Dieses Buch bietet Ihnen keine maßgeschneiderte Testdatenmanagementlösung für genau Ihr spezifisches Projekt – dafür aber einen Vorschlag für eine Vorgehensweise, die Ihnen und Ihren Vorgesetzten genug Freiraum bieten sollte.

ISTQB® Certified Tester, GTB Certified Tester

Dieses Buch deckt keinen der Lehrpläne des »ISTQB® Certified Tester«-Programms ab. Überschneidungen sind jedoch möglich. Das Buch basiert im Wesentlichen auf den dort gelehrten Inhalten und ist insofern als eine Ergänzung zur vorhandenen Literatur zu verstehen.

Während der Entstehung dieses Buches erstellte eine Arbeitsgruppe des ASQF e.V. einen Zertifizierungslehrplan für das Testdatenmanagement. Dieser ist seit April 2017 auf den Seiten des German Testing Board e.V. veröffentlicht als GTB Certified Tester Foundation Level Test Data Specialist [GTB+17a]. Über den Inhalt des Lehrplans führt das Buch weit hinaus.

Einsteigern in das Thema Softwaretest sei zunächst die Lektüre von »Basiswissen Softwaretest. Aus- und Weiterbildung zum Certified Tester – Foundation Level nach ISTQB-Standard« [SpLi12] und ggf. auch »Praxiswissen Softwaretest – Testmanagement. Aus- und Weiterbildung zum Certified Tester – Advanced Level nach ISTQB-Standard« von Spillner, Roßner, Winter und Linz [SRWL08] empfohlen.

Beispielanwendung: Mein Onlineshop

Um verschiedene Sachverhalte anhand von Beispielen illustrieren zu können, stelle ich Ihnen hier die Beispielanwendung Mein Onlineshop vor. Es handelt sich um einen klassischen Onlineshop, über den verschiedene Artikel zum Kauf angeboten werden.

Ähnlichkeiten mit eventuell existierenden oder gar gleichnamigen Shops sind zufällig und nicht beabsichtigt.

Unsere Beispielanwendung Mein Onlineshop besteht aus folgenden Teilen:

Nicht in allen Fällen lässt sich diese Beispielanwendung sinnvoll einsetzen. Daher finden sich in diesem Buch auch davon abweichende Beispiele.

Teil I

Testdaten

2Testdaten – ein Überblick

Testdaten sind Bestandteil der Testumgebung. Dort dienen sie unterschiedlichen Zwecken. Dieses Kapitel bietet Ihnen einen Überblick über die verschiedenen gebräuchlichen Begriffe für Testdaten und beleuchtet die Bedeutung ihrer Metadaten.

Dieses Kapitel schafft ein Basisverständnis über den Testdaten-Begriff, wie er in diesem Buch verwendet wird, es sollte daher zumindest quergelesen werden.

2.1Begriffe Testdaten, ideale Testmenge, gute Testdaten

Softwaresysteme verarbeiten elektronisch Daten, basierend auf dem sogenannten EVA-Prinzip: Eingabe, Verarbeitung, Ausgabe. Wir geben Daten ein, das (zu testende) System verarbeitet diese und gibt Daten wieder aus. Zum Testen von Software, genauer zum Prüfen des Verhaltens der Software, verwendet man Testdaten.

Eckehard Kruse formuliert treffend: »Testdaten ermöglichen die Durchführung von Tests« [Krus11]. Testdaten werden benötigt, um Testfälle gegen das zu testende System oder Teile davon laufen zu lassen.

Abstrakte Testfälle enthalten zunächst keine Testdaten und können daher nicht ausgeführt werden. Indem man einen abstrakten Testfall um Testdaten ergänzt, entstehen ein oder mehrere ausführbare konkrete Testfälle. Die konkreten Testfälle verwenden Daten als Eingabe, die Eingabedaten, und enthalten Angaben über die erwarteten Ausgaben, die Ausgabedaten. Darüber hinaus benötigt das Durchführen konkreter Testfälle weitere Daten im zu testenden System. Dies können z.B. Stammdaten oder Konfigurationen sein.

Alle Daten in einer Testumgebung sind Testdaten. Darunter fallen Werte für Konfigurationsparameter ebenso wie Ausgabedaten nach Durchführung von Testfällen.

Doch was versteht man im Detail unter Testdaten? Und wann sind Testdaten gute Testdaten? Wie sieht die ideale Testmenge aus?

2.1.1Testdaten

Im Glossar des German Testing Board findet sich folgende Definition von Testdaten:

Definition: Testdaten (nach German Testing Board)

»Daten, die (z.B. in einer Datenbank) vor der Ausführung eines Tests existieren, und die die Ausführung der Komponente bzw. des Systems im Test beeinflussen bzw. dadurch beeinflusst werden.« [GTB+15, S. 66]

Damit umfasst diese Definition ausschließlich vor oder während der Testausführung existierende Testdaten, nicht aber die Daten, die bei der Ausführung eines Testfalls entstehen.

Im Lehrplan zum Certified Test Data Specialist (GTB) heißt es in Ergänzung der vorgenannten Definition: »Testdaten sind konkrete Werte von Datenobjekten, die zur Ausführung eines Testobjekts benötigt werden. Sie können z.B. in Dateiform, in Form von Datenbanktabellen oder in Listenform vorliegen« [GTB+17a, S. 17].

In »Basiswissen Softwaretest« formulieren die Autoren Andreas Spillner und Tilo Linz [SpLi12, S. 263] darüber hinaus folgende Definition zu Testdaten:

Definition: Testdaten (nach Andreas Spillner und Tilo Linz)

»Eingabe- und Zustandswerte für ein Testobjekt und die Sollwerte nach Ausführung des betreffenden Testfalls« und »Daten, die (z.B. in einer Datenbank) vor der Ausführung eines Tests existieren und die Ausführung der Komponente bzw. des Systems im Test beeinflussen bzw. dadurch beeinflusst werden.« [SpLi12, S. 263]

image

Abb. 2–1 Testdaten-Begriffe

Ein sehr ähnliches Begriffsverständnis findet sich in Kruses oben erwähntem White Paper zum Testdatenmanagement [Krus11].

In den vorgestellten Begriffen ist der Zusammenhang zwischen Testdaten und Testumgebung nicht berücksichtigt. ISO 29119 betrachtet die Testdaten als Bestandteil der Testumgebung.

Die folgende Definition, basierend auf den vorgestellten TestdatenBegriffen, formuliert etwas expliziter:

Testdaten-Begriff

Definition: Testdaten

Testdaten bezeichnen alle Daten, die in die Testumgebung eingegeben (Eingabe- und Zustandswerte für ein Testobjekt) oder aus ihr ausgelesen werden (Sollwerte, Istwerte) sowie alle Daten, die in der Testumgebung vorhanden sind bzw. verwendet werden (z.B. in einer Datenbank, aber auch Umgebungsdaten wie Konfigurationsdateien, Ports usw.).

Testdaten beeinflussen die Ausführung der zu testenden Komponente bzw. des zu testenden Systems oder werden dadurch beeinflusst.

Einordnung

Folgt man dem Glossar des ISTQB® [GTB+15], so zählen die Testdaten zu den Testmitteln:

Definition: Testmittel (nach German Testing Board)

»Alle Artefakte, die während des Testprozesses erstellt werden und die erforderlich sind, um die Tests zu planen, zu entwerfen oder auszuführen. Dazu gehören: Dokumente, Skripte, Eingabedaten, erwartete Ergebnisse, Prozeduren zum Aufsetzen und Aufräumen von Testdaten, Dateien, Datenbanken, Umgebungen und weitere zusätzliche Software- und Dienstprogramme, die für das Testen verwendet werden.« [GTB+15]

Die obigen Definitionen beschreiben, wann Testdaten vorhanden sind und worauf sie Einfluss nehmen. Außerdem erfahren wir etwas über die Aufgabe der Testdaten, nämlich ihre Verwendung als Eingabe- und Zustandswerte für ein Testobjekt und als Sollwerte für Testfälle.

Testdaten versus Testdaten(mengen)

Wenn von Testdaten die Rede ist, dann sind entweder eine Menge von Testdaten oder auch Testdaten eines konkreten Testfalls oder gar einzelne Testdaten (Testdatum) gemeint.

Welche Alternative zutrifft, sollte aus dem jeweiligen Kontext hervorgehen. Wo eine explizite Unterscheidung notwendig ist, finden Sie diese im Text dargestellt.

2.1.2Gute Testdaten

Nachdem der Begriff der Testdaten eingeführt ist, betrachten wir einen Qualitätsaspekt: Wann sind Testdaten gute Testdaten?

Gute Testdaten, bezogen auf einen konkreten Testfall, sind diejenigen Testdaten, die das mit dem Testfall verfolgte Ziel unterstützen.

Doch was sind gute Testdaten im Sinne einer Menge von Testdaten?

Bei Redwine [Redw83, S. 192 o.] findet sich eine Definition für qualitativ gute Testdaten; er bezieht sich auf eine Menge. Demnach stellen gute Testdaten eine sinnvoll bemessene Menge von Daten dar, die alle oder fast alle Teile der Software ausführen, sodass die Resultate unterscheiden zwischen korrektem Funktionieren und möglichen Fehlern [Redw83, S. 192 o.].

Um mit dieser Menge an Daten alle bzw. fast alle1 Softwareteile ausführen zu können, müssen Testdaten enthalten sein, die – bezogen auf Anwendungsfälle – sowohl den Normalfall als auch Alternativen sowie Sonderfälle und Fehlerfälle umfassen.

image

Abb. 2–2 Gute Testdaten

Gute TestdatenChac11