Testmanagement Dirk Tesche
Agenda Einführung in die Thematik Testarten Testprozess Agile Methoden und Techniken Testautomatisierung
Eingrenzung und Motivation Abbildung entnommen aus: www.campero.de
Ziele Einführung ins Testmangement Testprozess Methoden im agilen Umfeld Testautomatisierungstools
Agenda Einführung in die Thematik Testarten
Testarten Modultest Integrationstest Systemtest Akzeptanztest
Modultest Modultests werden in der Regel vom Entwickler durchgeführt und untersuchen die kleinsten sinnvoll isoliert zu testenden Einheiten wie einzelne Funktionen oder Klassen." Werden auch als Unit-Test oder Komponententest bezeichnet Beschäftigen sich mit den funktionalen Eigenschaften der Software Klare formale Vorgaben zum Umfang und Protokollierung des Tests sind elementar Tests werden in einer Entwicklungsumgebung durchgeführt Quelle: Sneed, 2008
Integrationstest "Integrationstests überprüfen die Zusammenarbeit mehrerer Systemteile zunehmender Komplexität von einzelnen Modulen über Teilsysteme bis zum Gesamtsystem." Überprüfung der korrekten Interaktion wie dem Austausch von Daten oder dem Zugriff auf eine gemeinsame Datenbank Typische Fehler: - Falsche Nutzung von Schnittstellen, unerlaubte Parameter oder die Blockierung gemeinsamer Ressourcen. Tests werden in einer Entwicklungsumgebung durchgeführt Quelle: Sneed, 2008
Systemtest "Systemtests überprüfen das Gesamtsystem unter möglichst realistischen Bedingungen als interne Vorbereitung des Herstellers auf die Auslieferung an den Kunden." Dient zur internen Vorbereitung auf den Akzeptanztest Kombination aus funktionalen und nichtfunktionalen Tests Tests werden in einer Testumgebung durchgeführt Quelle: Sneed, 2008
Akzeptanztest "Akzeptanztests testen das Gesamtsystem in der Kundenumgebung und bilden die Grundlagen für die Entscheidung zur Abnahme des Projekts." Wird auch als Abnahmetest bezeichnet, Wird häufig durch oder unter Beteiligung des Kunden durchgeführt Praktische Verwendbarkeit des Nutzers steht im Vordergrund Tests werden in einer Testumgebung durchgeführt Quelle: Sneed, 2008
4-Quadranten des agilen Testens automatisiert* & &*manuell teamunterstützend fachlich Funktionstest Exploratives Testen Beispiele Szenarien Story-Tests Benutzbarkeitstest Prototypen Benutzerakzeptanztest Simulation Alpha-/Beta-Test Unit Test Last- & Performancetest Komponententest Sicherheitstest Zuverlässigkeitstest manuell - orderid - 21222489 - transid - 21222489_1D - produkthinterfragend automatisiert Werkzeuge technisch nach Crispin & Gregory Abbildung entnommen aus: Baumgärtner et al., 2014
Agenda Einführung in die Thematik Testarten Testprozess
Testprozess nach ISTQB Testplanung und -steuerung Testanalyse und -entwurf Testrealisierung und -durchführung Bewertung von Endkriterien Abschluss der Testaktivitäten Quelle: ISTQB, 2012
Testplanung und -steuerung Definition der Testziele Festlegen der Testaktivitäten Überprüfung des Testfortschritts Einleitung von Korrekturmaßnahmen
Testanalyse und -entwurf Identifizierung benötige Testdaten und die Definition von Testbedingungen Entwurf und Priorisierung der Testfälle Entwurf der Testumgebung und Identifikation der benötigten Infrastruktur
Testrealisierung und -durchführung endgültige Festlegung, Realisierung und Priorisierung von Testfällen Erstellung des Testablaufs Testumgebung aufsetzen Ausführen von Testabläufen Protokollierung der Ergebnisse Fehlernachtest und Regressionstest
Bewertung von Endkriterien Auswertung der Testprotokolle Definieren neuer Testfälle für den nächsten Zyklus Ergebnisse in den Teammeetings besprechen Testbewertung im Team durchführen
Abschluss der Testaktivitäten Abschluss in agilen Projekten nicht immer nachvollziehbar Kontrolle der Ergebnisse Dokumentation erstellen
Agenda Einführung in die Thematik Testarten Testprozess Agile Testmethoden und Techniken
Testmanagement Testplanung Testschätzung Testorganisation Testerstellung Testüberwachung
Agile Testmethoden Risikobasiertes Testen Exploratives Testen Sessionbasiertem Testen Abnahmegetriebene Entwicklung Testautomatisierung Quelle: ISTQB, 2012.
Risikobasiertes Testen Tester identifiziert die risikoreichsten Stellen eines Systems Neben dem Risiko kann auch der Nutzen der jeweiligen Funktionalität einbezogen werden Zentrale Module werden bevorzugt getestet Zusammenarbeit im Team vereinfacht die Identifizierung Zeit wird als Testkriterium genutzt Effektives Risikomanagement ist erforderlich
Exploratives Testen Testplanung erfolgt erst nach vorliegen des Objektes Wird auch als erforschendes Testen bezeichnet Das Prinzip beruht auf der Intuition und der Erfahrung der Tester Bei zeitlichen Restriktionen gut geeignet Wird mit sessionbasiertem Testen kombiniert
Sessionbasiertem Testen Ist eine erweiterte Methode des explorativen Testens Herangehensweise und Abwicklung erfolgt nach einer zuvor definierten Struktur Session Sheets Limitierter Zeitraum Auf Basis der Ergebnisse werden neue Testbereiche identifiziert
Abnahmegetriebene Entwicklung Das gesamte Team definiert vorab in Zusammenarbeit mit dem Kunden die Akzeptanzkriterien Konkrete Interpretationsbeispiele werden definiert Relevante Testkriterien werden definiert Diese Kriterien werden in die Stories eingepflegt
Einflussfaktoren Continuous Integration (CI) Automatische Build Build-Prozess Automatisches Konfigurationsmanagement
Agenda Einführung in die Thematik Testarten Testprozess Agile Methoden und Techniken Testautomatisierung
Testautomatisierung Unter Testautomatisierung wird die Automation von Aktivitäten im Testprozess verstanden Automatisierte Aktivitäten im Testprozess: - Testadministration, Testfall- und Testdatenerstellung, Testdurchführung, Testauswertung und Testdokumentation Durch Testautomation kann Software: - in zuvor definiertem Rahmen und Zeiten getestet werden - Änderungen und Modifikationen und deren Auswirkung direkt überprüft werden Quelle: Baumgärtner et al., 2014
Testautomatisierung Evaluierung Auswahl Testwerkzeuge Experten Design Automatisierungs- prozess Automatisierungs- Framework Schulung Aufbau Testportfolio Testsystem Weiterentwicklung Betreuung Umsetzung Entwurf In Anlehnung an: www.anecon.com/angebot/software-test/testprozess/testautomatisierung.html
4-Quadranten des agilen Testens automatisiert* & &*manuell teamunterstützend fachlich Funktionstest Exploratives Testen Beispiele Szenarien Story-Tests Benutzbarkeitstest Prototypen Benutzerakzeptanztest Simulation Alpha-/Beta-Test Unit Test Last- & Performancetest Komponententest Sicherheitstest Zuverlässigkeitstest manuell - orderid - 21222489 - transid - 21222489_1D - produkthinterfragend automatisiert Werkzeuge technisch nach Crispin & Gregory Abbildung entnommen aus: Baumgärtner et al., 2014
Tools xunit TestNG Selenium FitNesse Quelle: ISTQB, 2012.
Agile Testautomatisierung Testautomatisierungswerkzeug - Formal - i.d.r. Direktzugriffe strukturiert Anforderung Testcode auf Objekte Test -Mit - Durch Entwickler Datenbeispielen - Simple Run-/ Not-Run-Metrik - Simple Protokollierung Bild 7.7 Aufbau agiler Testautomatisierungswerkzeuge Abbildung entnommen aus: Baumgärtner et al., 2014
Modul- / Komponententest JUnit TestNG Framework zum Testen von Java Programmen Plattformübergreifend Integraler Bestandteil von Eclipse Baut auf die Konzepte von JUnit auf und wurde mit neuen Funktionalitäten ergänzt - Flexible Gruppierung der Tests und Methoden, generiert Testreports JUnit-Test unterscheidet zwischen Test gelingt und Test misslingt Unterstützt die testgetriebene Entwicklung Plattformübergreifend Wird von Java Build-Management-Tools unterstützt
System- /Akzeptanztest Selenium FitNesse Ist eine Testumgebung für Web-Anwendungen Kann als Firefox-Add-on installiert werden Plattformübergreifend Eine Mischung aus Wiki und Framework zum ausführen selbstgeschriebener Automatisierungsskripte Ermöglicht die Interaktion mit einer Web-Anwendung und kann diese automatisiert testen Ist ein Werkzeug für fachliche Tester, dieser startet den Test mittels eines Shell Scripts Testautomatisierungsskripte (Fixtures) Kann zusammen mit Selenium eingesetzt werden
Testautomatisierung Erfolg der Testautomation ist nicht nach wenigen Sprints messbar Testwerkzeuge können die Arbeit erleichtern, sind jedoch nicht ohne Fehler Schreiben eines Testskripts ist keine Nebentätigkeit Auswertung der automatisierten Tests ist nicht optional
Q & A
Quellen ISTQB - International Software Testing Qualifications Board, Certified Tester Foundation Level Syllabus, 2011 Manfred Baumgartner, Martin Klonk, Helmut Pichler, Richard Seidl, Siegfried Tanczos: Agile Testing - Der agile Weg zur Qualität. Carl Hanser Verlag, München 2013 Andreas Spillner, Thomas Roßner, Mario Winter, Tilo Linz: Praxiswissen Softwaretest Testmanagement. Aus- und Weiterbildung zum Certified Tester Advanced Level nach ISTQB- Standard. 4. Auflage, dpunkt.verlag, Heidelberg 2014 Ian Sommerville, Software Engineering, 9. Auflage, Pearson, München 2012 Sneed, Harry M.; Baumgartner, Manfred; Seidl, Richard: Der Systemtest. 2. Auflage. Spektrum Carl Hanser Verlag : München, 2008 Internetquellen können den jeweiligen Folien entnommen werden.