2007 Dr. Klaudia Dussa-Zieger P r a k t I s c h e Testprozess - Inhalt Testprozess Testen von Software-Systemen Systemen - Testprozess Lehrplan 2003 Testplanung Testausführung ierung Testendebewertung Testberichterstattung Lehrplan 2005 Testplanung und Testrealisierung und Testdurchführung Abschluss der Testaktivitäten Testen von Software-Systemen SS 2007 (1) Testen von Software-Systemen SS 2006 (2) Testprozess: Aktivitäten Testplanung und Testplanung und Definieren der Ziele und der Steuerungsmaßnahmen Definieren der Testrandbedingungen und des Testdesigns Testrealisierung und Testdurchführung Erstellen der Testfälle und der Testumgebung Bewerten der Testdurchführung gegenüber den Zielen Abschluss der Testaktivitäten Sammeln der Ergebnisse und Analyse der Lessons learned Testen von Software-Systemen SS 2006 (3) Testen von Software-Systemen SS 2006 (4) Testplanung und Testplanung und Testplanung hat die folgenden Hauptaufgaben: Bestimmen des Testumfangs und der Risiken Identifikation der Testziele Festlegen der Testvorgehensweise (Techniken, Testobjekte, Überdeckung, Identifikation und Einbinden der Testteams, Testmittel) Ermitteln der erforderlichen Testressourcen (z.b. Personal, Testumgebung, Hardware, Software, Schulung) Implementieren der Testmethode und/oder der Einplanen der Testanalyse- und der Testentwurfsaufgaben Einplanen der Testimplementierung, der Testausführung und der Testauswertung Festlegen der Testendekriterien Testüberwachung als Teil der : Voraussetzung für erfolgreiche Messen und Analysieren der Ergebnisse Überwachen des Testfortschritts, der Testüberdeckung und der Testendekriterien hat die folgenden Hauptaufgaben: Ergreifen von Gegenmaßnahmen Treffen von Entscheidungen Testen von Software-Systemen SS 2006 (5) Testen von Software-Systemen SS 2006 (6)
Testplanung und Testplanung und und Das enthält die Aktivitäts- und Ressourcenplanung. Die definiert u.a. die Qualitätskriterien und Metriken zur Beurteilung der Umsetzung, die Testmethoden und die zu erreichenden Abdeckungsmaße, die Testendekriterien, die Priorisierung der Tests und der Testfälle, die geplante Werkzeugunterstützung, die Konfigurierung der Testumgebung. Ein ist die Konkretisierung und Fortschreibung der innerhalb eines konkreten Projekts. Wesentliche Inhalte (bzgl. ): Ziel: Was ist das Ziel der Tests? Umfang: Was sollte getestet werden? Methoden: Wie sollte getestet werden? Wesentliche Inhalte (bzgl. ): Ressourcen: Wer testet? Mit welchen Werkzeugen? Zeitplan: Welche Testaktivitäten finden wann statt? Verantwortlichkeiten: Wer ist wofür verantwortlich? Testfälle: Was wird konkret getestet? Siehe auch: IEEE 829 (Standard für Softwaretest-ation): beschreibt die Inhalte von en und Testfallspezifikationen. IEEE im Web: http://en.wikipedia.org/wiki/ieee_829 Testen von Software-Systemen SS 2006 (7) Testen von Software-Systemen SS 2006 (8) Testanalyse und -design hat die folgenden Hauptaufgaben: Review der Testbasis: Die Testbasis besteht aus allen e, die für das Aufstellen von Testfällen relevant sind. Das sind die e, aus denen die Anforderungen ersichtlich werden, wie Anforderungen, Architektur, Design-Schnittstellen Identifizieren der Testbedingungen bzw. der Testanforderungen und der benötigten Testdaten basierend auf der Testobjektanalyse, der Spezifikation, des Verhaltens und der Struktur des Testobjekts Bewertung der Testbarkeit der Anforderungen und des Systems Entwerfen der Tests Entwerfen der Testumgebung und Identifizieren der benötigten Infrastruktur bzw. der Testwerkzeuge Testen von Software-Systemen SS 2006 (9) Testen von Software-Systemen SS 2006 (10) Testumgebung Bevor die Tests durchgeführt werden können, muss die Testumgebung eingerichtet werden Eine Testumgebung besteht aus: dem Testobjekt mit seinen definierten Schnittstellen Testtreiber, Platzhalter (Stubs) und Testrahmen dem Betriebssystem falls nötig anderen benötigten Anwendungen Testwerkzeugen Eigenschaften der Testumgebung: Die Testumgebung sollte in den höheren Teststufen (z.b.: Systemtest) der späteren Betriebsumgebung so ähnlich wie möglich sein (natürlich abgesehen von den Testwerkzeugen) Sie sollte nicht die Entwicklungsumgebung sein (außer für Modultests) Testen von Software-Systemen SS 2006 (11) Testen von Software-Systemen SS 2006 (12)
Erstellen von logischen Testfällen Was sollte getestet werden? Die korrekte Umsetzung der definierten Qualitätsmerkmale Wie sollte getestet werden? Funktionsorientiert oder strukturorientiert Wie werden die Testergebnisse analysiert? Testfälle können z.b. abgeleitet werden aus: Anwendungsfällen bzw. Geschäftsprozessen Standards Schnittstellen-Definitionen Zustandsdiagrammen Entwicklungsdokumentation Siehe auch Standard for Software Test Documentation (IEEE Std. 829) Testen von Software-Systemen SS 2006 (13) Testen von Software-Systemen SS 2006 (14) Testrealisierung und durchführung hat folgende Hauptaufgaben: Erstellen und Priorisieren von konkreten Testfällen, Erzeugen von Testdaten und Testszenarien, und optional, Vorbereiten von Testtreibern und Schreiben von Testskripts Überprüfen, dass die Testumgebung korrekt eingerichtet wurde Ausführen von Testfällen, entweder manuell oder mit Hilfe von Werkzeugen zur Ausführung von Tests, entsprechend der geplanten Testreihenfolge Protokollieren der Ergebnisse der Testdurchführung, sowie der Versionen der zu testenden Software, der Testwerkzeuge und der Testsoftware Vergleichen der erhaltenen Ergebnisse mit den erwarteten Ergebnissen hat folgende Hauptaufgaben: Um die Ursache einer Abweichung zu ermitteln (z.b. ein Defekt im Code, in spezifizierten Testdaten, im Testdokument, oder ein Fehler bei der Testausführung) werden gefundene Abweichungen festgehalten und analysiert Wiederholen von Testaktivitäten als Ergebnis der für jede Abweichung ergriffenen Maßnahmen. Nochmalige Durchführung eines vorher fehlgeschlagenen Tests, um die Behebung des Fehlers zu bestätigen (Fehlernachtest) Ausführen eines bzw. mehrerer Tests, um sicherzustellen, dass die Fehlerbehebung keine negativen Auswirkungen auf die bereits vorhanden Funktionalität hat bzw. dass durch die Behebung des Defekts keine neuen Defekte entstanden sind (Regressionstest) Testen von Software-Systemen SS 2006 (15) Testen von Software-Systemen SS 2006 (16) Logische und konkrete Testfälle (1) Logische und konkrete Testfälle (2) Ein logischer Testfall ist ein Testfall ohne Angabe konkreter Werte für Eingaben und Ausgaben (ggfs. bereits im Testentwurf festgelegt). Zur Durchführung eines Tests werden konkrete Testfälle benötigt! (natürlich insbesondere auch für die Testautomatisierung) Eine Instanz eines logischen Testfalls wird als konkreter Testfall bezeichnet. Ein konkreter Testfall enthält im Vergleich zum logischen Testfall zusätzlich konkrete Eingabe-/Ausgabewerte. Testen von Software-Systemen SS 2006 (17) Testen von Software-Systemen SS 2006 (18)
Fundamentaler Testprozess Testfallspezifikation Test-ID Quelle Priorität Getestete Eigenschaft Konfiguration Vorbedingung Testschritte Testdaten Verifikation Nachbedingung eindeutige Kennung Anforderungen, die vom Testfall abgedeckt werden 1 (hoch, muss), 2 (mittel, sollte), 3 (niedrig, kann) Welche Eigenschaft des Testlings wird getestet? Was ist der Testling? Welche HW/SW Umgebung wird verwendet? Zustand des Testlings vor Ausführung des Testfalls Was muss getan werden, um Testfall durchzuführen? Eingabedaten und entsprechende erwartete Ergebnisse wie erfolgt die Feststellung: Testfall erfolgreich/nicht erfolgreich durchgeführt? Zustand des Testlings nach Ausführung des Testfalls Testen von Software-Systemen SS 2006 (19) Erwartetes Ergebnis oder Sollergebnis Das Sollergebnis definiert die Ergebnisse und Zustände, die man erwartet, wenn das Testobjekt mit Testdaten ausgeführt wird: Verhalten des Testobjekts während der Testdurchführung Zustand des Testobjekts nach der Testdurchführung Zustand in Dateien und Datenbanken nach der Testdurchführung Ausgaben des Testobjekts Woher weiß man, was man als Ergebnis sehen sollte? man nutzt ein Testorakel Testen von Software-Systemen SS 2006 (20) Testorakel Priorisierung Informationsquelle zur Ermittlung der jeweiligen Sollergebnisse eines Testfalls. Es verhält sich genauso wie die Implementierung, ist jedoch absolut verlässlich sozusagen der fehlerfreie Zwilling der Implementierung. Anmerkung: Als Orakel können ein Anwenderhandbuch, das Spezialwissen einer Person oder z.b. für Benchmarking ein existierendes System dienen, es darf aber nicht der Code sein (Verletzung der Unabhängigkeit). Man kann nicht alles testen Die ausgelieferte Software wird Fehler enthalten Die wichtigsten Tests müssen in der zur Verfügung stehenden Zeit durchgeführt werden Man sollte zu jedem beliebigen Zeitpunkt der Testdurchführung das jeweils bestmögliche Ergebnis erzielt haben Testen von Software-Systemen SS 2006 (21) Testen von Software-Systemen SS 2006 (22) Zusammenhang Priorisierung / Testendekriterien Ein Testdurchlauf sollte erst dann als beendet erklärt werden, wenn z.b.: alle Testfälle der höchsten Priorität (1) durchgeführt wurden so viele Testfälle der mittleren Priorität (2) wie möglich durchgeführt wurden (eine Prozentzahl sollte vorher festgelegt sein) nach Möglichkeit zumindest einige Testfälle der niedrigsten Priorität (3) durchgeführt wurden (je nach Dringlichkeit des Termins) eine definierte Testabdeckung erreicht ist pro (Test-) Zeiteinheit nur noch eine bestimmte Fehlerzahl gefunden wird Hinweis: Testendekriterien sollten in der definiert werden Merke: Testen ist nie fertig, es hört nur auf Testen von Software-Systemen SS 2006 (23) Testen von Software-Systemen SS 2006 (24)
Testdurchführung ierung Aufgrund der Prioritäten durchzuführende Testfälle identifizieren Fehlerwirkungen aufdecken Unerwartetes Verhalten Unerwartete Ergebnisse Testergebnisse aufzeichnen Ist-Verhalten/-Resultat aufzeichnen Testparameter aufzeichnen Testobjekt und Version des Testobjekts Umgebung Name des Testers Durchgeführte Testfälle Testen von Software-Systemen SS 2006 (25) Testen von Software-Systemen SS 2006 (26) ierung ierung Erwartetes und beobachtetes Verhalten/Ergebnisse vergleichen Bei Abweichungen Testfallimplementierung auf mögliche Fehler überprüfen! Wenn der Testfall in Ordnung ist, schreiben Diese muss alle Informationen enthalten, die zum Reproduzieren der Fehlerwirkung nötig sind Je nach Größe und Art des Projektes (nicht sicherheitskritisch) kann in frühen Testphasen (z.b. Modultest) auf formale en verzichtet werden. Wenn der Testfall nicht in Ordnung ist, Testfall korrigieren Achtung: Unter Umständen ist bereits die fehlerhaft Woher weiß man, ob das beobachtete Verhalten/Ergebnis eine Fehlerwirkung ist? Man vergleicht das, was man sieht (Ist-Ergebnis/Ist-Verhalten) mit dem was man sehen soll (Soll-Ergebnis/Soll-Verhalten) Ohne klar definierte Soll-Ergebnisse kann man das Ergebnis eines Testfalls nicht bewerten Testen von Software-Systemen SS 2006 (27) Testen von Software-Systemen SS 2006 (28) - Attribute Identifizierungsattribute Statusattribute Informationsattribute Anmerkung: en werden im Kapitel Testmanager im Rahmen eines allgemeinen Abweichungsmanagements ausführlich behandelt. Testen von Software-Systemen SS 2006 (29) Testen von Software-Systemen SS 2006 (30)
erstellen hat folgende Hauptaufgaben: Testendebewertung Prüfen der e gegen die in der spezifizierten Testendekriterien (Evaluieren der Testendekriterien) Überprüfen, ob weitere Tests benötigt werden (etwa auf Grund einer zu geringen Testabdeckung), oder ob die Testendekriterien geändert werden sollten Erstellen des Testberichts für die Stakeholder Die Testendebewertung erfolgt durch eingangs (in der ) definierte Testendekriterien. Das Ende eines Testdurchlaufs wird basierend auf den Testberichten bewertet Das Ergebnis des Testdurchlaufs wird bewertet insgesamt bestanden ( pass ) oder nicht bestanden ( fail ), zur Fehlerbehebung nötige Schritte Testen von Software-Systemen SS 2006 (31) Testen von Software-Systemen SS 2006 (32) erstellen hat folgende Hauptaufgaben: Prüfen der e gegen die in der spezifizierten Testendekriterien (Evaluieren der Testendekriterien) Überprüfen, ob weitere Tests benötigt werden (etwa auf Grund einer zu geringen Testabdeckung), oder ob die Testendekriterien geändert werden sollten Erstellen des Testberichts für die Stakeholder steuern Testen von Software-Systemen SS 2006 (33) Testen von Software-Systemen SS 2006 (34) Testberichte Teststatusbericht Testberichte sind eine kondensierte Information über das Testergebnis. Testberichte dienen dazu, die Testdurchführung für nicht direkt Beteiligte nachvollziehbar zu machen. Testberichte machen es möglich, im Nachhinein zu belegen, ob und wie die geplante tatsächlich umgesetzt wurde. Siehe auch Standard for Software Test Documentation (IEEE Std. 829) Nach jedem Testdurchlauf wird ein Teststatusbericht erstellt, der folgende Informationen enthält: Den Testfortschritt Die Empfehlung für Testende oder die Weiterführung der Tests sowie Die Begründung für diese Entscheidung (in Übereinstimmung mit der ) Testen von Software-Systemen SS 2006 (35) Testen von Software-Systemen SS 2006 (36)
Abschluss der Testaktivitäten Abschluss der Testaktivitäten Testabschlussaktivitäten umfassen folgende Hauptaufgaben: Prüfen, welche der geplanten Arbeitsergebnisse geliefert wurden Schließen der Abweichungsmeldungen bzw. Erstellen weiterer Abweichungsmeldungen für weiterhin bestehende Abweichungen Ggfs. ation der Abnahme des Systems ation und Archivierung der Testmittel, der Testumgebung und der Testinfrastruktur für spätere Nutzung Testen von Software-Systemen SS 2006 (37) Testen von Software-Systemen SS 2006 (38) Abschluss der Testaktivitäten Testprozess Testabschlussaktivitäten umfassen folgende Hauptaufgaben: Übergabe der Testmittel an die Wartungsabteilung Analyse der Lessons learned im Hinblick auf folgende Releases und Projekte, und für die Verbesserung der Testreife Testmetriken werden aufgezeichnet: Abdeckung, Fehlerfindungsrate, Zeit und Kosten Zusammenfassung Der grundlegende Testprozess umfasst folgende Aktivitäten: Testplanung und Testrealisierung und Testdurchführung Abschluss der Testaktivitäten Bei Bedarf können diese Aktivitäten - bis auf den Abschluss - wiederholt werden (Testzyklen oder Testdurchläufe) Testen von Software-Systemen SS 2006 (39) Testen von Software-Systemen SS 2006 (40)