Softwareentwicklung & Testprozess Schwerpunkt Testprozess Anne Katrin Salig
Agenda Testphasen und –ergebnisse Automatisierung von Tests Fehlermanagement Zusammenfassung
Testphasen und -ergebnisse 5 Phasen / min. 1 Ergebnis Testinitialisierung wesentliche Ziele, Testobjekte, Ergebnisse, Aktivitäten Testplanung Zusammenstellung der Testszenarien, Testmethoden und Testumgebung Testdurchführung Ausführung der Testfälle Testauswertung Auswertung des Testergebnisses Rücksprung auf Testdurchführung bei fehlerhaftem Testergebnisse Testabschluss Dokumentation der durchgeführten Testaktivitäten und des Ergebnisses Vgl. Steinweg, Carl: Management der Softwareentwicklung, S. 340
Automatisierung von Tests Regressionstests Prüft nach Systemveränderungen auf neue Defekte im Quellcode Vorteile Hohe Effizienz Zustand des Softwaresystems = Grundlage für weitere Planungen Durchführung bestehende Version des Systems verändert wurde Sicherstellung, dass nach der Weiterentwicklung oder Fehlerkorrektur im Quellcode keine neuen Defekte/Fehler entstanden sind Effizienz Rolle des Testers = Entwickler (Zeitersparnis) Planung weitere Informationen aus Testergebnissen und Fehlerberichten für Projektplanung (Projektfortschritt)
Automatisierung von Tests Ergebnisarten des Regressionstests Erfolg (Success) Fehler (Error) Fehlschlag (Failure) Test ist erfolgreich, wenn Ist- und Sollergebnisse übereinstimmten Abweichungen müssen weiter ausgewertet werden Erfolg Ist- und Soll stimmen überein Testfall = erledigt Fehler Testlauf vollständig durchgeführt aber Ist & Soll stimmen nicht überein (z.B. abweichende Werte) Fehlschlag Testlauf nicht durchgeführt, z.B. Programmabsturz
Automatisierung von Tests Oberflächentests Funktionale Eigenschaften der GUI Nicht: Intuitive Benutzerführung Einhaltung von Style-Guides Rahmenbedingungen Eingabemöglichkeiten Ablaufgeschwindigkeit Benutzerschnittstelle Signifikante Änderungen der GUI Funktionale und temporale Eigenschaften der GUI werden getestet Führt Button gewünschte Funktionen aus / Werte aus Eingabefeldern ziehen Vorteil Ansteuerung der Applikation durch die Testumgebung wie durch einen realen Benutzer Geprägt durch Rahmenbedingungen: Auswahl von Menge an Eingabemöglichkeiten und Optionen auf der GUI Keine beliebige Beschleunigung des Ablaufs Zahlreiche Interaktionen mit der Benutzerschnittstelle Anpassung der Oberflächentests nach GUI-Änderungen
Automatisierung von Tests Capture-Replay-Tests Testroboter für die GUI Aufzeichnung manuell getätigter Bedienschritte Prinzip des Videorekorders Gliederung in folgende Phasen: Capture – Program – Replay Aufzeichnung der während einer Testsitzung manuell durchgeführten Bedienschritte
Automatisierung von Tests Capture Bedienung der Anwendung mit zeitgleicher Protokollierung von Tastatur- und Mauseingaben (x,y)-Koordinate primitive Systeme Referenz des identifizierten GUI-Objektes GUI-Änderungen leichter handhabbar Program Erzeugung skriptähnlichen Ablaufplans Reproduktion der getätigten Eingaben Erweiterung um Checkpoints zum Vergleich von Soll & Ist Replay Reproduktion der generierten Skript-Datei An Checkpoint gelangte Aktion wird auf Fehler überprüft Vgl. Hoffmann, Dirk: Software-Qualität, S. 475
Fehlermanagement Techniken und Methoden, die einen strukturierten Umgang mit Software-Anomalien innerhalb des Entwicklungs- prozesses gewährleisten Software-Anomalien = Auffälligkeiten, die als möglicher Softwarefehler interpretiert werden können Ablage der Anomalien in einer Fehlerdatenbank Bug-Tracking-System
Fehlermanagement Aufbau mit allen Zugriffsgruppen Tester stellte Fehler ein Entwickler behebt festgestellte Fehler Management Infos über Projektforschritt Optional: Kunde Einstellen von Fehlern / Einsehen Bearbeitungsstatus Vgl. Hoffmann, Dirk: Software-Qualität, S. 478
Fehlermanagement Merkmale der Bug-Tracking-Systeme Identifikationsmerkmale Ident-Nr., Name & Version des Testobjekts, … Klassifikationsmerkmale Priorität, Schwere der Anomalie, … Beschreibungsmerkmale Genaue Fehlerbeschreibung, zusätzliche Dateien, … Identifikationsmerkmale Hard-/Softwareumgebung Klassifikationsmerkmale Aktueller Bearbeitungszustand Probleme Merkmale Schwere d. Anomalie/Priorität: Häufig eine Gleichsetzung der Merkmale Ineffizienz bei Auswahl 5+ Kategorien für Priorität max. drei bis vier Kategorien
Fehlermanagement Bugzilla Freeware, die in vielen Open-Source-Projekten Anwendung findet Beispiele für Bearbeitungsstatus von Fehlern Unconfirmed New Assigned Resolved Verified Closed Bearbeitungsstatus = Klassifikationsmerkmal Unconfirmed initial, neu eingestellte Anomalie (Fehler?) New Fehler bestätigt Assigned Zuweisung an Entwickler (Korrektur) Resolved Anslyse erfolgt / Fehlerbeschreibung in DB eingepflegt Verified Korrektur wurde überprüft und akzeptiert / Fehlerbericht vorbereitet Closed Fehlerbericht wurde geschlossen / Dokumentation durch Speicherung zur Nachverfolgung
Fehlermanagement Crash Reports Schwerwiegendes Verhalten im produktiven Betrieb Bearbeitung mit höherer Priorität Berichtserstellung durch Kunden Manuell über Fehlerdatenbank Automatisch durch Software nach Bestätigung durch Nutzer Bsp. Windows Error Reporting Meldung der kundenseitigen Anomalien über manuelle o. automatische Berichtserstellung Manuell Zugriff auf Fehler-DB des Herstellers / Zugriff mit Rechteeinschränkungen Autom Integriert in SW / durch Bestätigung wird Fehler an Hersteller gesendet
Zusammenfassung Organisation des Testprozess unabdingbar Strukturierter Ablauf während der Testdurchläufe muss gegeben sein Automatisierung von Regressions- und Oberflächentests fördern die Effizienz Jedoch hoher Aufwand in der Vorbereitung Fehlerbehebung durch Fehlerdatenbank unterstützen die Kommunikation bzgl. Bearbeitungsstatus
Literatur & Quellen Hoffmann, Dirk W.: Software-Qualität, Heidelberg 2008. Benutzerhandbuch HP Quality Center, Hewlett-Packard Development Company, Palo Alto 2009. Steinweg, Carl: Management der Softwareentwicklung, 6. Auflage, Wiesbaden 2005. Spillner, Andreas: Basiswissen Softwaretest – Aus- und Weiterbildung zum Certified Tester, 4. Auflage, Heidelberg 2010. Pezzé, Mauro et al.: Software testen und analysieren – Prozesse, Prinzipien und Techniken, München 2009.
Vielen Dank!