38
© Zühlke 2012 Matthias Kraaz Wirtschaftlich Software testen Matthias Kraaz 6. Dezember 2012

Wirtschaftlich Software testen (ESE-Kongress 2012)

Embed Size (px)

Citation preview

Page 1: Wirtschaftlich Software testen (ESE-Kongress 2012)

© Zühlke 2012

Matthias Kraaz

WirtschaftlichSoftwaretestenMatthias Kraaz

6. Dezember 2012

Page 2: Wirtschaftlich Software testen (ESE-Kongress 2012)

• Soll alle Fehler finden

• Testzyklen in Nullzeit

• Verifikation klappt auf Anhieb

• Knappe Zeit

• Knappes Budget

• Häufige Änderungen

Die Schmerzen des Test-Managers

Page 3: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 4: Wirtschaftlich Software testen (ESE-Kongress 2012)

Elektronik

Software

Point of Control

Point of Observation

Page 5: Wirtschaftlich Software testen (ESE-Kongress 2012)

Elektronik

Software

Point of Observation

Point of Control

Page 6: Wirtschaftlich Software testen (ESE-Kongress 2012)

Elektronik

Software

Point of Observation

Point of Control

Page 7: Wirtschaftlich Software testen (ESE-Kongress 2012)

Elektronik

Software

Point of Observation

Point of Control

Page 8: Wirtschaftlich Software testen (ESE-Kongress 2012)

Elektronik

Software

Point of Observation

Point of Control

Page 9: Wirtschaftlich Software testen (ESE-Kongress 2012)

Elektronik

Software

Point of Observation

Point of Control

Page 10: Wirtschaftlich Software testen (ESE-Kongress 2012)

Design for Testability

Page 11: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 12: Wirtschaftlich Software testen (ESE-Kongress 2012)

Testling Signal-Adaption Zum Test-System

Page 13: Wirtschaftlich Software testen (ESE-Kongress 2012)
Page 14: Wirtschaftlich Software testen (ESE-Kongress 2012)
Page 15: Wirtschaftlich Software testen (ESE-Kongress 2012)
Page 16: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 17: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 18: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 19: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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!

Page 20: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 21: Wirtschaftlich Software testen (ESE-Kongress 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

Page 22: Wirtschaftlich Software testen (ESE-Kongress 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

Page 23: Wirtschaftlich Software testen (ESE-Kongress 2012)

© Zühlke 2012

• Eventuell mehrere Integrationsstufen

• Herausforderungen je nach Anteil Software / Elektronik

Automatisierung von Integrationstests

6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz

Page 24: Wirtschaftlich Software testen (ESE-Kongress 2012)

Automatisierte Verifizierungstests

Page 25: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 26: Wirtschaftlich Software testen (ESE-Kongress 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

Page 27: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 28: Wirtschaftlich Software testen (ESE-Kongress 2012)

© Zühlke 2012

Zu wenig Budget Nur Systemtests Optimiert

Budget-Verteilung und Testtiefe

Untere TeststufenSystemtestsTesttiefe

Teststufen

Wirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012

Page 29: Wirtschaftlich Software testen (ESE-Kongress 2012)

© Zühlke 2012

Teststufen

Wirtschaftlich Software testen | Matthias Kraaz

Integrationstests

Komponententests

6. Dezember 2012

Systemtests

Page 30: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 31: Wirtschaftlich Software testen (ESE-Kongress 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

Page 32: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 33: Wirtschaftlich Software testen (ESE-Kongress 2012)

© Zühlke 2012

Statische Analyse einsetzen!

Statische Analyse

Architektur Metriken Code-Checker

Stil Kodier-regeln

Laufzeit-fehler

Sicherheits-probleme

Page 34: Wirtschaftlich Software testen (ESE-Kongress 2012)

Reviews optimieren!

Page 35: Wirtschaftlich Software testen (ESE-Kongress 2012)

© 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

Page 36: Wirtschaftlich Software testen (ESE-Kongress 2012)

© Zühlke 2012

Lektüre (1)

Wirtschaftlich Software testen | Matthias Kraaz

CC E

lizab

eth/

Tabl

e4Fi

ve

6. Dezember 2012

Page 37: Wirtschaftlich Software testen (ESE-Kongress 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

Page 38: Wirtschaftlich Software testen (ESE-Kongress 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