Wirtschaftlich Software testen (ESE-Kongress 2012)
-
Upload
matthias-kraaz -
Category
Business
-
view
544 -
download
1
Transcript of Wirtschaftlich Software testen (ESE-Kongress 2012)
© Zühlke 2012
Matthias Kraaz
WirtschaftlichSoftwaretestenMatthias Kraaz
6. Dezember 2012
• Soll alle Fehler finden
• Testzyklen in Nullzeit
• Verifikation klappt auf Anhieb
• Knappe Zeit
• Knappes Budget
• Häufige Änderungen
Die Schmerzen des Test-Managers
© Zühlke 2012
Testautomatisierung
Design for Testability
Automatisierte Verifizierungstests
Teststufen
Testherleitungsverfahren und die Gießkanne
Statische Analyse
Reviews
Agenda
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
Elektronik
Software
Point of Control
Point of Observation
Elektronik
Software
Point of Observation
Point of Control
Elektronik
Software
Point of Observation
Point of Control
Elektronik
Software
Point of Observation
Point of Control
Elektronik
Software
Point of Observation
Point of Control
Elektronik
Software
Point of Observation
Point of Control
Design for Testability
© Zühlke 2012
Liefern Sie aus, was Sie getestet haben:
• Finale Version sollte debugbar und testbar sein
• Test-Schnittstellen versperren, aber drin lassen– Sonderfall Wartungstests / STK / MTK– Sonderfall Produktionstests
Tricks, damit die Herstellkosten nicht steigen:
• optionale Bestückung
• modulare Bauweise
• …
Design for Testability
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
Testling Signal-Adaption Zum Test-System
© Zühlke 2012
• Fehler werden früher gefunden
• Testfallexplosion besser im Griff– Vielzahl von Eingangs-/Ausgangsparametern automatisiert testbar
• Es gibt öfter einen aktuellen Testbericht
• Regressionstests ermöglichen Refactoring
• Stresstests, lange Testläufe möglich
• Gibt Sicherheit und Vertrauen
• Bessere Dokumentation / Nachvollziehbarkeit der Tests– Regularien-freundlich!
TestautomatisierungVorteile
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
• Erstellung von Tests aufwendiger,Produktivität des Testteams sinkt anfänglich
• Pflege von Tests aufwendiger
• Die meisten Fehler werden während der Testerstellung gefunden
• Tests haben reduzierte Variabilität
• Tests verifizieren nur, was hineinprogrammiert wurde
Mit manuellen / explorativen Tests kombinieren
TestautomatisierungHinweise
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
• Testling sollte gewisse Stabilität erreicht haben
• Mindestens zweiten Teststand vorsehen
• Zuverlässige Hardware verwenden
• KISS (Keep it small and simple)
TestautomatisierungHinweise
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
• Alle Tests werden automatisiert
• Sofortige Kosteneinsparung durch Automatisierung
• Capture-Replay ohne Nacharbeit
• Ein zugekauftes Werkzeug, das perfekt passt
TestautomatisierungUnrealistisch
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
Unrealistisch!
© Zühlke 2012
Eingangsdaten für Berechnung:
• Kosten für manuelle Tests– Erstellung der Testfallspezifikationen– Manuelle Testdurchführung
• Kosten für automatisierte Tests– Erstellung der Testskripte– Pflege der Testskripte– Automatisierte Testdurchführung– Infrastruktur
• Parameter– Anzahl manueller(!) Testläufe– Kosten pro Personentag– Anteil nicht automatisierter Tests
ROI von TestautomatisierungPraxisbeispiel
Wirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
© Zühlke 2012
- €
200,000 €
400,000 €
600,000 €
800,000 €
1,000,000 €
1,200,000 €
1,400,000 €
1 2 3 4
Kosten nach Jahren
Mit Automatisierung Rein manuell
ROI von TestautomatisierungPraxisbeispiel
Wirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
© Zühlke 2012
Man nehme:
• Kodierende Tester / testende Entwickler
• Unit Test Framework
• Mock Generator
• Build & Deploy & Run automatisieren
Was macht es schwierig:
• Abhängigkeiten
• Design der Schnittstellen
Automatisierung von Komponententests
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
TestDriver
Componentunder Test
Mock
© Zühlke 2012
• Eventuell mehrere Integrationsstufen
• Herausforderungen je nach Anteil Software / Elektronik
Automatisierung von Integrationstests
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
Automatisierte Verifizierungstests
© Zühlke 2012
Verifizierungstests laufen automatisiert während Entwicklung
• Vorschau auf Verifizierungsergebnis
• Ruhiger Schlaf
Automatisierte Verifizierungstests (IV&V)
• Zeitdruck, Kosten von Wiederholungen
• Test-Infrastruktur der Entwicklung kann wiederverwendet werden
• Validierung der Test-Infrastruktur
• „Test to verify“ statt „test to kill“
Automatisierte Verifizierungstests
Wirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
© Zühlke 2012
• Fehlerkosten sinken
• Softwarequalität steigt
• Keine bösen Überraschungen– in der Verifikation oder bei der Abnahme
• Testautomatisierung lohnt sich– auch wenn der genaue ROI schwer zu berechnen ist
• Wir führen Projekte nur noch mit Testautomatisierung durch– auf allen Test-Ebenen– auch im nicht regulierten Umfeld
TestautomatisierungFazit
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
Vorteile von Komponenten- und Integrationstests
• Weniger Aufwand pro Test
• Hohe Testtiefe bequem erreichbar– Hohe Überdeckung von Parametern (Kombinationen, Äquivalenzklassen, Grenzwerte)– Hohe Überdeckung von Zustandsmaschinen– Robustheit-Tests
• Früher durchführbar
• Häufiger durchführbar
• Fehlerursache leichter zu lokalisieren
• Leichter automatisierbar
Teststufen
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
Zu wenig Budget Nur Systemtests Optimiert
Budget-Verteilung und Testtiefe
Untere TeststufenSystemtestsTesttiefe
Teststufen
Wirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
© Zühlke 2012
Teststufen
Wirtschaftlich Software testen | Matthias Kraaz
Integrationstests
Komponententests
6. Dezember 2012
Systemtests
© Zühlke 2012
Nachteile von Komponenten- und Integrationstests
• Infrastruktur erforderlich
• Automatisierung fast unausweichlich
• Aussagekraft muss von oberer Teststufe überprüft werden
• Grundstock von Systemtests muss sein
Teststufen
Wirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
© Zühlke 2012
Nicht mit der Gießkanne testen!
Fokus auf
• Sicherheitskritische …
• Wichtige …
• Komplexe …
• Neue …
• Durch Bugs aufgefallene …
• … Anforderungen
• … Software-Komponenten
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
Nicht mit der Gießkanne testen!
Testherleitungsverfahren
• Spezifikationsorientiert
• Strukturorientiert
• Äquivalenzklassen plus Grenzwertanalyse
• Entscheidungstabellen
• Zustandsbasiert
• Anwendungsfallbasiert
• Erfahrungsbasiert
• …
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
Statische Analyse einsetzen!
Statische Analyse
Architektur Metriken Code-Checker
Stil Kodier-regeln
Laufzeit-fehler
Sicherheits-probleme
Reviews optimieren!
© Zühlke 2012
• Gießkanne weg, systematische Testherleitung
• Wenn Reviews Pflicht: Nutzen maximieren, auf Testbarkeit achten
• Wenn Teststufen vorhanden: Nutzen maximieren
• Design for Testability– Voraussetzung für sinnvolle Teststufen– Erleichterung der Automatisierung– Software-Architektur in Zusammenarbeit von SA und TM
• Teststufen einführen
• Automatisierung von Systemtests– Automatisierte Verifizierungstests
• Parallel: statische Analyse
Priorisierung
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
© Zühlke 2012
Lektüre (1)
Wirtschaftlich Software testen | Matthias Kraaz
CC E
lizab
eth/
Tabl
e4Fi
ve
6. Dezember 2012
© Zühlke 2012
• Daniel Mölle: Stabile Software durch Design for Testability(iX 11/2012, SlideShare)
• Matthias Kraaz: Wirtschaftlich Software testen(Kongressband)
• Matthias Kraaz: Wirtschaftlich testen(MEDengineering 9-10/2012, SlideShare)
• Matthias Kraaz: Qualitätssicherung in Compact Projekten(dotNetPro 02/2012, SlideShare)
Lektüre (2)
Wirtschaftlich Software testen | Matthias Kraaz
CC E
lizab
eth/
Tabl
e4Fi
ve
6. Dezember 2012
© Zühlke 2012
• Zusammenarbeit Tester und Entwickler:Design for Testability & Testautomatisierung
• Test-Budget optimal nutzen
• Im regulierten Umfeld:Nutzen ziehen aus Dingen, die ich ehe machen muss
Zur Schmerzlinderung empfehle ich…
6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz