AK 2 am Armin Beer, Support Center Test der Software- Entwicklung 1
für einen erfolgreichen Test? Projektteam strebt nach Qualität Aufwände sind eingeplant (Richtwerte) 20 bis 30% des Gesamtaufwandes In Wartungsphase: bis 50 % Testbarkeit ist im Entwurf berücksichtigt Standards und Checklisten verwenden! Test als wichtigen Teil des Projektes betrachten Meilensteine sind definiert Testinfrastruktur ist vorhanden Wasserfall-Modell Systemanforderungen Softwareanforderungen Analyse Validierung Entwurf Codierung Verifikation Testen Betrieb 2
Verifikation, Validierung Verifikation Prüfung, ob die Ergebnisse einer Entwicklungsphase die Vorgaben der Phaseneingangsdokumente erfüllen mathematisch formaler Beweis der Korrektheit eines Programmteils Validierung Prüfung, ob ein Entwicklungsergebnis die individuellen Anforderungen bez. einer speziellen beabsichtigten Nutzung erfüllt Iterativ-inkrementeller Prozess Definition=System-, Software- Anforderungen und Analyse Realisierung = Codierung + Testen Betrieb=Einsatz 3
Allgemeines V-Modell Review; Planung Komponententest Komponentenspezifikation Planung Abnahmetest Anforderungsdefinition Abnahmetest Review; Planung Systemtest Funktionaler Systementwurf Systemtest Review; Planung Integrationstest Technischer Systementwurf Integrationstest Komponententest Validierung / Test Review; Programmierung Programmierung Zeitachse / Reihenfolge Fundamentaler Komponentenspezifikation Anforderungsdefinition Funktionaler Systementwurf Technischer Systementwurf Programmierung Test Komponententest Integrationstest Testplanung (inkl. Testinfrastruktur) Systemtest Abnahmetest Testspezifikation Test - Durchführung Testprotokollierung Testauswertung 4
1. Testplanung Festlegung von Testmethoden und den zu erreichenden Überdeckungs-Kriterien Festlegung der Testende-Kriterien Priorisierung und Strukturierung der Tests Werkzeugunterstützung und die Konfiguration der Testumgebung Planung von Ressourcen und Meilensteinen Dokumentation: Testkonzept nach IEEE829 und Planung von Ressourcen- und Meilensteinen in MSProject-Plan! 2. Testspezifikation Testfälle für den Komponententest in HTML Logische Testfälle und Nr. Klasse Methode konkrete Vorbedingung Inputdaten Solldaten Testfälle Attribute (Kommentare etc.) Anwendung von Testfall-Design-Methoden wie z.b. Äquivalenzklassen, Ursache-Wirkungs-Analyse, zustands-basiert...! 5
3. Testdurchführung Zusammenstellen einer Test Suite durch Auswahl geeigneter Testfälle Durchführung der manuellen und automatisierten Testfälle Testergebnisse im Testmanagementtool erfassen, sodass der Testfortschritt auf Knopfdruck ermittelbar ist. 4. Testprotokollierung Das Protokoll eines Testlaufs, aus dem hervorgeht welche Teile wann, von wem, wie intensiv und mit welchem Ergebnis getestet wurden. 6
5. Testauswertung (1) Testorakel: Informationsquelle zur Ermittlung der jeweiligen Sollergebnisse eines Testfalls Anforderungsspezifikation, User Manual etc. ein existierendes System für ein Benchmark Fachwissen aber nicht der Code Liegt eine Fehlerwirkung vor oder nicht? Vergleich zwischen Istergebnis/Istverhalten und Sollergebnis/Sollverhalten Verwenden, was es an Spezifikationen im Projekt gibt! 5. Testauswertung (2) Analyse der nicht erfolgreichen Testfälle Sammeln von Indizien zur Fehlerlokalisierung Erfassen der gefundenen Fehler im Fehlermanagement-System (Wichtig: Link zwischen Testlauf, -fall und Fehler-Nr.) Aufwand für die Testauswertung kann sehr hoch werden! 7
Kriterien für Priorisierung: Wahrscheinlichkeit einer Fehlerwirkung Fehlerschwere Fehlerrisiko Wahrnehmbarkeit der Fehlerwirkung Priorität der Anforderungen Komplexität etc. Kosten-Nutzen Analyse für eine optimale Aufteilung des Testaufwands! Primäres Ziel des Testens von Software ist die Aufdeckung von Abweichungen von den spezifizierten Anforderungen und Erwartungen des Kunden Blindheit gegen Fehlerwirkungen des eigenen Programms Unabhängigkeit zwischen Entwicklung und Tests durch Entwicklertests, unabhängige Testteams, Test-Outsourcing. Trennung zwischen Entwicklung und Test ist im Komponententest meist nicht möglich, aber durch Review der Testfälle Sicht von außen 8
Testen ist eine komplexe Aufgabe Der ist in den Entwicklungsprozess eingebettet Der fundamentale besteht aus fünf Phasen Priorisierung von Tests bei Zeitmangel Testen ist eine kreative, interessante Tätigkeit Ein gewisser Grad der Unabhängigkeit zwischen Entwicklung und Test ist sinnvoll 9