Sach- und Folgeziele des Testens
Testen ist eine Aufgabe mit dem Sachziel, die Qualität einer Software nachweisbar zu bewerten (Transparenz zu schaffen).
Folgeziele
Testobjekt und Testelement
Testobjekt - Das zu testende Arbeitsobjekt
Testelement - Teil des Testobjekts, das in einem Testprozess verwendet wird
Debugging
Debugging hat das Ziel, ausgehend von einer wahrgenommenen Fehlerwirkung, die Ursache zu finden, zu analysieren und zu beheben
Debugging ist NICHT Bestandteil des Testens!
Unterscheidung Qualitätssicherung und Testen
Qualitätssicherung kann als vorbeugende Maßnahme verstanden werden
Testen dient als prüfende Maßnahme zur Qualitätssteuerung und -lenkung.
Zusammenhang zwischen Fehlerhandlung, Fehlerzustand und Fehlerwirkung.
Fehlerhandlung (Error)
menschlicher Irrtum, der zu einem Fehler in einem Arbeitsergebnis führen kann
Fehlerzustand (Defect)
Unzulänglichkeit in einem Arbeitsergebnis, welche die Notwendigkeit einer Korrektur bedarf
Fehlerwirkung (Failure)
Tatsächliches Verhalten einer Software weicht bei einer Ausführung aufgrund eines Fehlers vom erwarteten Verhalten ab
7 Grundsätze des Softwaretestens
Phasen des Testprozesses
Testplanung
(Testziele - Testvorgehensweise - Testkonzept)
Testanalyse - Was wird getestet?
(Bewertung der vorhandenen Testbasis - Testbedingungen)
Test(fall)entwurf - Wie wir getestet?
(Abstrakte Testfälle - Bedarf Testfälle - Entwurf Testumgebung - Bedarf Infrastruktur und Werkzeuge)
Testrealisierung - Ist alles für die Durchführung der Tests bereit?
(Testdaten generieren - Konkrete Testfälle - Testabläufe - Testsuites - Testausführungsplan - Testumgebung - Infrastruktur und Werkzeuge)
Testdurchführung
(Testprotokoll - Abweichungen)
Testabschluss
(Testabschlussbericht - Testmittel archivieren - Lessons Learned)
Begleitend findet die Testüberwachung und -steuerung statt (Testfortschrittsberichte)
Testmanagement
Zusammenhand Testabläufe - Testsuites
Testablauf
Eine Folge von Testfällen in der Reihenfolge ihrer Durchführung, mit allen erforderlichen Aktionen zur Herstellung der Vorbedingungen und zum Aufräumen nach der Durchführung
Testsuite
Eine Menge von Testfällen oder Testabläufen, welche in einem bestimmten Testzyklus ausgeführt werden sollen
Merkmale für gut integriertes Testen im Softwareentwicklungslebenszyklus
Zu jeder Entwicklungsaktivität gibt es eine Aktivität im Testen
Jede Teststufe hat spezifische Testziele
Testanalyse und -entwurf für eine Teststufe beginnen während der zugehörigen Entwicklungsaktivität
Tester nehmen an der Diskussion zur Definition & Verfeinerung von Anforderungen teil
Tester sind früh am Review von Arbeitsergebnissen beteiligt
Definition und Merkmale einer Teststufe
Eine spezifische Instanziierung des Testprozesses
Merkmale:
Definition Komponententest
Testen der einzelnen Hardware- oder Softwarekomponente
Komponente: Kleinste Einheit eines Systems, die für sich alleine getestet werden kann.
Definition Komponentenintegrationstest
Testen der Schnittstellen und des Zusammenwirkens integrierter Komponenten
Definition Systemtest
Testen eines integrierten Systems
Definition Systemintegrationstest
Testen der Verbindung und Interaktion von Systemen
Definition Abnahmetest
Testen hinsichtlich der definierten Anforderungen
Entscheidung auf der Basis der Abnahmekriterien ermöglichen, ob ein System anzunehmen ist oder nicht
Definition Testart & 4 Testarten
Eine Gruppe von Testaktivitäten basierend auf bestimmten Testzielen mit dem Zweck, eine Komponente oder ein System auf spezifische Merkmale zu prüfen.
4 Testarten
Testen mit funktionalen Qualitätsmerkmalen (Vollständigkeit, Angemessenheit, Korrektheit)
Test mit nicht-funktionalen Qualitätsmerkmalen (Usability, Performance)
Testen der Struktur und Architektur der Software auf Korrektheit und Vollständigkeit (White-Box)
Testen bei Änderungen
Definition Wartungstest und die Auslöser
Testen der Änderungen an einem LAUFENDEN System der der Auswirkungen einer geänderten Umgebung auf ein LAUFENDES System
Auslöser
Modifikationen
- Verbesserungen, z.B. releasegesteuert - adaptive maintenance
- Korrigierende Änderungen und Notfalländerungen - corrective maintenance
- Änderung der betr. Umgebungen, Aktualisierung Standardsoftware - perfective maintenance
Migration
Außerbetriebnahme
Statisches Testen vs. Dynamisches Testen
Statisches Testen
Dynamisches Testen
Unterschiede statische und dynamische Tests
Statische und dynamische Tests können die gleichen Ziele verfolgen
Sie ergänzen sich gegenseitig, da sie unterschiedliche Fehlerarten finden
Statische Tests finden Fehler direkt
Statische Tests
Dynamische Tests
- bestimmte Last- und Performancefehler / -probleme
Hauptaktivitäten des Reviewprozess
Reviewarten
mit steigender Formalisierung:
Reviewverfahren für individuelles Review
nach steigender Formalität und steigendem Aufwand:
Inhalte eines Testkonzeptes
Umfang, Ziele und Risiken des Testens
Testvorgehensweise
Integration des Testaktivitäten in die Softwarelebenszyklusaktivitäten
Was ist zu testen?
Wer testet?
Testplan - Zeitliche Planung
Metriken für Testüberwachung und -steuerung
Budget
Detaillierungsgrad und Struktur der Testdokumentation
Welche Teststrategien gibt es?
analytische Teststrategie modellbasierte Teststrategie methodische Teststrategie prozesskonforme Teststrategie beratungsunterstützte Teststrategie regressionsvermeidende Teststrategie reaktive Teststrategie