Technologie-Event 2006 Testen im Software- Entwicklungsprozess W.Lukas, INGTES AG
Was nicht getestet wurde, funktioniert nicht. -- R.Güdel (ca. 1998) Seite 2
Was sollen wir tun? Anomalien & Defekte von Software aufdecken durch Code-Reviews Statische Code-Analyse (Tools) Testen Seite 3
Testen heisst... Die Auswirkungen von Defekten gezielt und systematisch provozieren. Defekt: Riss im Glas Test mit Überdruck Auswirkung... Seite 4
Tests nach Detailebene Modultest Integrationstest mehrstufig Systemtest mehrstufig kleinste Software-Elemente (Klassen, Funktionen) Komponenten, Programme Software-Systeme (evtl. mit Umgebung) Seite 5
Modultest durch Entwickler White Box Test früher: Werte / Zustände ausgeben heute: automatisierte Unit-Tests Seite 6
Integrationstest durch Entwickler White Box Test Ausführen einzelner Testfälle ("Laufversuche") ist eng mit Debugging verbunden Seite 7
Systemtest Black Box Test Ausführen von Szenarien durch unabhängigen Prüfer (Testcenter) Akzeptanztest (Vorabnahme) Usability-Test Installationstest Belastungs- / Robustheitstest Seite 8
Prozessmodelle Testen als unterstützende Tätigkeit Seite 9
Haupttätigkeiten tigkeiten Projektmanagement Anforderungsanalyse Software-Entwurf Programmierung Systemtest Auslieferung Wartung Seite 10
Projektmanagement Testplan welche Einheiten auf welcher Ebene wo stehen die Testkriterien welche Teststrategien welche Testumgebungen Seite 11
Anforderungsanalyse Testbare Kriterien spezifizieren Anwendungsfälle, Abnahmekriterien Beispiel: "Beim Vergleich können Toleranzen spezifiziert werden, ab denen eine Differenz ausgewiesen wird." Testvorschrift 1. Toleranz auf 0.5 setzen 2. Werte 13.4 und 13.6 vergleichen => "gleich" 3. Toleranz auf 0.1 setzen 4. Werte 13.4 und 13.6 vergleichen => "verschieden" Seite 12
«Baseline Quality Assertion» Fundamentale Qualitätskriterien Kunden- Anforderungen immer garantiert Seite 13
«Baseline Quality Assertion» Ref. 1 Beschreibung Gültig QK1-01 QK1-02 QK1-03 QK1-04 QK1-05 Focus Nach dem Starten eines Dialogs ist die Einfügemarke auf ein geeignetes Feld gesetzt, zum Beispiel das erste Feld der Tab-Reihenfolge (siehe unten). Tab-Reihenfolge Die Navigation mit der Tab-Taste erfolgt geordnet und in einer für den Dialog sinnvollen Reihenfolge (von links oben nach rechts unten). Feldgrösse Einzeilige Ein- und Ausgabefelder sind so bemessen, dass die Information vollständig lesbar ist. Dies gilt auch für mehrsprachige Applikationen. Mehrzeilige Textboxen und Listen haben Scrollbalken. Darstellung von Daten Numerische Daten werden einheitlich (rechts- oder linksbündig) und mit sinnvoller Anzahl Nachkommastellen angezeigt. Standardwerte Standardwerte (zum Beispiel das Tagesdatum) werden automatisch als Vorgaben in die entsprechenden Eingabefelder eingefüllt. F, W F F, W F, W F, W insgesamt ca. 30 Zusicherungen Seite 14
Software-Entwurf (Design) Testbarkeit sicherstellen durch eigenständige Software-Elemente lose Kopplung der Elemente Seite 15
Exkurs: Legacy Software Oft nicht 'designed for testing' Testen nach Erweiterungen ist sehr schwierig Zur Verbesserung der Testbarkeit ist ein Refactoring notwendig. Refactoring erfordert Regressionstests... Seite 16
Programmieren (Codieren) Modul- und Integrationstests Ergebnisse werden nicht protokolliert 100% aller Unit-Tests müssen erfolgreich sein fertiggestellte Arbeitspakete sind "bereit zum Test" Seite 17
Testcenter Unabhängige Prüfstelle Systemtest planen und durchführen Ergebnisse dokumentieren (Testprotokoll) vor Auslieferung typischerweise Installationstest und Vorabnahme Seite 18
Extreme Programming Kent Beck Grundprinzipien test first daily build user story planning game pair programming refactoring Ohne automatisierte Unit-Tests nicht möglich! Seite 19
Testen als Firmenkultur "Ab morgen wird getestet..." funktioniert nicht. Testen durchzieht den gesamten Software-Entwicklungsprozess. Das wichtigste ist der Aufbau einer Test-Kultur. Seite 20
Was nicht getestet wurde, funktioniert nicht. Seite 21