Wirtschaftlich Software testen (ESE-Kongress 2012)

Post on 10-Jul-2015

544 views 1 download

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