© Zühlke 2012Matthias KraazWirtschaftlichSoftwaretestenMatthias Kraaz6. Dezember 2012
• Soll alle Fehler finden• Testzyklen in Nullzeit• Verifikation klappt auf Anhieb• Knappe Zeit• Knappes Budget• Häufige Än...
© Zühlke 2012TestautomatisierungDesign for TestabilityAutomatisierte VerifizierungstestsTeststufenTestherleitungsverfahren...
ElektronikSoftwarePoint of ControlPoint of Observation
ElektronikSoftwarePoint of ObservationPoint of Control
ElektronikSoftwarePoint of ObservationPoint of Control
ElektronikSoftwarePoint of ObservationPoint of Control
ElektronikSoftwarePoint of ObservationPoint of Control
ElektronikSoftwarePoint of ObservationPoint of Control
Design for Testability
© Zühlke 2012Liefern Sie aus, was Sie getestet haben:• Finale Version sollte debugbar und testbar sein• Test-Schnittstelle...
Testling Signal-Adaption Zum Test-System 
© Zühlke 2012• Fehler werden früher gefunden• Testfallexplosion besser im Griff– Vielzahl von Eingangs-/Ausgangsparametern...
© Zühlke 2012• Erstellung von Tests aufwendiger,Produktivität des Testteams sinkt anfänglich• Pflege von Tests aufwendiger...
© Zühlke 2012• Testling sollte gewisse Stabilität erreicht haben• Mindestens zweiten Teststand vorsehen• Zuverlässige Hard...
© Zühlke 2012• Alle Tests werden automatisiert• Sofortige Kosteneinsparung durch Automatisierung• Capture-Replay ohne Nach...
© Zühlke 2012Eingangsdaten für Berechnung:• Kosten für manuelle Tests– Erstellung der Testfallspezifikationen– Manuelle Te...
© Zühlke 2012- €200,000 €400,000 €600,000 €800,000 €1,000,000 €1,200,000 €1,400,000 €1 2 3 4Kosten nach JahrenMit Automati...
© Zühlke 2012Man nehme:• Kodierende Tester / testende Entwickler• Unit Test Framework• Mock Generator• Build & Deploy & Ru...
© Zühlke 2012• Eventuell mehrere Integrationsstufen• Herausforderungen je nach Anteil Software / ElektronikAutomatisierung...
Automatisierte Verifizierungstests
© Zühlke 2012Verifizierungstests laufen automatisiert während Entwicklung• Vorschau auf Verifizierungsergebnis• Ruhiger Sc...
© Zühlke 2012• Fehlerkosten sinken• Softwarequalität steigt• Keine bösen Überraschungen– in der Verifikation oder bei der ...
© Zühlke 2012Vorteile von Komponenten- und Integrationstests• Weniger Aufwand pro Test• Hohe Testtiefe bequem erreichbar– ...
© Zühlke 2012Zu wenig Budget Nur Systemtests OptimiertBudget-Verteilung und TesttiefeUntere TeststufenSystemtestsTesttiefe...
© Zühlke 2012TeststufenWirtschaftlich Software testen | Matthias KraazIntegrationstestsKomponententests6. Dezember 2012Sys...
© Zühlke 2012Nachteile von Komponenten- und Integrationstests• Infrastruktur erforderlich• Automatisierung fast unausweich...
© Zühlke 2012Nicht mit der Gießkanne testen!Fokus auf• Sicherheitskritische …• Wichtige …• Komplexe …• Neue …• Durch Bugs ...
© Zühlke 2012Nicht mit der Gießkanne testen!Testherleitungsverfahren• Spezifikationsorientiert• Strukturorientiert• Äquiva...
© Zühlke 2012Statische Analyse einsetzen!StatischeAnalyseArchitektur MetrikenCode-CheckerStilKodier-regelnLaufzeit-fehlerS...
Reviews optimieren!
© Zühlke 2012• Gießkanne weg, systematische Testherleitung• Wenn Reviews Pflicht: Nutzen maximieren, auf Testbarkeit achte...
© Zühlke 2012Lektüre (1)Wirtschaftlich Software testen | Matthias KraazCCElizabeth/Table4Five6. Dezember 2012
© Zühlke 2012• Daniel Mölle:Stabile Software durch Design for Testability(iX 11/2012, SlideShare)• Matthias Kraaz:Wirtscha...
© Zühlke 2012• Zusammenarbeit Tester und Entwickler:Design for Testability & Testautomatisierung• Test-Budget optimal nutz...
Wirtschaftlich Software testen (ESE-Kongress 2012)
Wirtschaftlich Software testen (ESE-Kongress 2012)
Wirtschaftlich Software testen (ESE-Kongress 2012)
Upcoming SlideShare
Loading in...5
×

Wirtschaftlich Software testen (ESE-Kongress 2012)

564

Published on

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
564
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Wenn Sie hier sitzen, gehe ich davon, dass Sie zumindest einen Teil des hier dargestellten Anforderungsdrucks verspüren.
  • Wie kann man Systemtests automatisieren?Ganz außen an die echten Systemschnittstellen ranVorteile:Wir testen die Mechanik und gesamte Elektronik immer mit.Keinerlei Änderung am TestlingNachteile:Langsam, aufwendig und fehleranfällig.
  • Wie kann man Systemtests automatisieren?An die Signalleitungen gehenVorteile:Viel schneller und zuverlässiger.Nachteile:Testinstrumente beschaffen (aus der Testständen für funktionale Tests „ausleihen“)Simulation des Verhaltens der Peripherie kann ziemlich kompliziert seinElektronik muss Zugang ermöglichen (Leiterbahnen nicht im x-ten Layer)Eventuell bekommen die Systemtests den Charakter von Integrationstests. Ihre Aussagekraft muss plausibilisiert werden, zum Beispiel durch manuelle Systemtests oder Vergleich der simulierten mit der echten Peripherie usw.
  • Wie kann man Systemtests automatisieren?Treiber oder so mit Testschnittstelle patchenVorteile:Kein Ärger mit der Elektronik.Nachteile:Man braucht natürlich auch Infrastruktur zur Kommunikation mit dem Testling.Man testet nicht wirklich das was man ausliefern will.Geänderte Komponenten müssen parallel gepflegt werden.
  • Wie kann man Systemtests automatisieren?DfT – an vorhandenen Kommunikationskanälen („Testpunkten“)zwischen Treibern und Rest der Software angreifenVorteile:Software wird ohne Änderungen getestet.Nachteile:Nur mit DfT seitens der Softwaremachbar.Und natürlich auch hier Infrastruktur zur Kommunikation mit dem Testling nötig.
  • Wie kann man Systemtests automatisieren?Zusätzliche „Testpunkte“ inmitten der SoftwareVorteile:Schneller, weil Abkürzungen gegangen werden können.Schneller, weil Fehlerzustände frühzeitig entdeckt werden, nicht erst bei Fehlerwirkung.Nachteile:Tests brechen häufiger.
  • Wie kann man Systemtests automatisieren?In der Praxis wird man kombinieren.
  • Gerade die Automatisierung von Systemtests kann schwierig und teuer sein.Design forTestability – ein Begriff aus Elektronikentwicklung – kann Automatisierungskosten drastisch senken oder Testautomatisierung erst möglich machen.
  • Für den Test von Embedded Devices werden Testinstrumente zur Stimulierung und Messung des Testobjekts (ATE – automatedtestequipment) benötigt. Diese kann man fertig kaufen. Als Beispiel sieht man hier:Einen LabJack U3-HV: ein einfaches IO-Board, das per USB angeschlossen wird. Einfache Bedienung per .NET Schnittstelle.Daneben sieht man ein PXI-Testsystem. PXI ist ein standardisiertes Format für Gehäuse und Steckkarten und stammt aus dem Bereich der Produktionsautomatisierung.Meistens wird noch eine elektrische Adaptierung benötigt, siehe auch nächstes Bild.
  • Wir ziehen die hier die Anzahl von Testläufen heran, die ohne Automatisierung durchgeführt werden würden.Wir berechnen daherden minimalen ROI der Automatisierung – das spart man auf jeden Fall durch die Automatisierung.Manche ziehen stattdessen die Anzahl der automatisierten Durchführungen heran.Das übersteigert den Nutzen der Automatisierung.Andererseits sind viele Vorteile der Automatisierung bei dieser Berechnung nicht eingepreist.Diese Vorteile sind auch sehr schwierig zu quantifizieren oder vorherzusagen.
  • Und was wenn die Tester (die keine Entwickler sind) die Komponententests schreiben müssen?
  • Die Entwicklung kann die Verifizierungstests automatisieren unabhängig davon, ob die IV&V die Verifizierungstests manuell oder automatisiert durchführt.Damit hat die Entwicklung regelmäßig eine Vorschau das Verifizierungsergebnis minus nicht automatisierbarer Verifizierungstests.Bei einem roten Verifizierungstests droht nämlich im Allgemeinen nach der Fehlerbehebung eine vollständige Wiederholung statt wie während der Entwicklung üblich einem partiellem Regressionstest.Das Resultat ist ruhiger Schlaf für das Entwicklungsteam weitgehend ohne Angst vor einem Durchfallen bei der Verifizierung.Die IV&V kann die Verifizierung mit automatisierten Verifizierungstests durchführen.Gründe dafür können der Zeitdruck am Ende der Entwicklung oder aber auch die Kosten für Wiederholungen bei Fehlschlägen der Verifizierung oder bei Aktualisierungen der Software sein.Dazu kann die von der Entwicklung produzierte Test-Infrastruktur wiederverwendet werden.Voraussetzung ist aber meist eine Prüfmittel-Validierung der Test-Infrastruktur.Zudem muss auf den geänderten Fokus „Test toverify“ während der Verifizierung statt „testto kill“ während der Entwicklung geachtet werden.
  • Lassen Sie Systemtests nicht Ihr einziges Mittel sein.Machen Sie Gebrauch von Komponenten- und Integrationstests als Bestandteil Ihrer Test-Strategie.Problem bei Unit Tests: kodierende Tester, testende Entwickler?
  • Wenn das Budget nicht reicht und man zu wenig Systemtests hat, braucht man über andere Teststufen nicht nachdenken.Wenn das Budget aber reicht, kann man die Testtiefe überproportional steigern, indem man etwas von dem Budget in Komponenten- und Integrationstests investiert.
  • Untere Teststufe bilden jeweils Fundament der nächsten Teststufen.Nach unten hin sinkt der Aufwand pro Test und steigt die Anzahl der Tests.Obere Teststufen prüfen stichprobenartig Ergebnisse der unteren Teststufen, haben aber prinzipiell anderen Fokus als untere Teststufe.Komponententests prüfen Verhalten einzelner Komponente, finden eher lokale Fehler in der Komponente.Integrationstests prüfen Zusammenspiel der Komponente, finden eher Schnittstellenprobleme.Durchaus realistisch mehrere Integrationsstufen zu haben.
  • Systemtests habe auch ihre Vorteile.Systemtests müssen trotzdem sein.
  • Gehört unbedingt ins Arsenal gegen BugsFindet Bugs, die man mit Tests kaum findetFortgeschrittene Verfahren reduzieren Falschmeldungen
  • Vorteile von Reviews:Fehlererkennung sehr frühKosten/Nutzen-Verhältnis sehr gutErfolgsrezepte:Nicht die Zeit der Beteiligten mit unwichtigen Details verschwenden. Review-Objekte optimal vorbereiten (Spell Check, Formatierung von Code, Überprüfung von Kodierungsregeln).Inhaltliche Fehler suchen, nicht nur Formfehler.Für das challenging muss man sich nicht endlos tief einlesen: hast Du an X gedacht?Eventuell mit Tool unterstützenWenn Reviews im regulierten Umfeld zwangsweise gemacht werden müssen:Reviews zum Nutzen der Entwicklung einsetzen und nicht als (reine) Pflichtübung ansehen.
  • Wirtschaftlich Software testen (ESE-Kongress 2012)

    1. 1. © Zühlke 2012Matthias KraazWirtschaftlichSoftwaretestenMatthias Kraaz6. Dezember 2012
    2. 2. • Soll alle Fehler finden• Testzyklen in Nullzeit• Verifikation klappt auf Anhieb• Knappe Zeit• Knappes Budget• Häufige ÄnderungenDie Schmerzen des Test-Managers
    3. 3. © Zühlke 2012TestautomatisierungDesign for TestabilityAutomatisierte VerifizierungstestsTeststufenTestherleitungsverfahren und die GießkanneStatische AnalyseReviewsAgenda6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    4. 4. ElektronikSoftwarePoint of ControlPoint of Observation
    5. 5. ElektronikSoftwarePoint of ObservationPoint of Control
    6. 6. ElektronikSoftwarePoint of ObservationPoint of Control
    7. 7. ElektronikSoftwarePoint of ObservationPoint of Control
    8. 8. ElektronikSoftwarePoint of ObservationPoint of Control
    9. 9. ElektronikSoftwarePoint of ObservationPoint of Control
    10. 10. Design for Testability
    11. 11. © Zühlke 2012Liefern Sie aus, was Sie getestet haben:• Finale Version sollte debugbar und testbar sein• Test-Schnittstellen versperren, aber drin lassen– Sonderfall Wartungstests / STK / MTK– Sonderfall ProduktionstestsTricks, damit die Herstellkosten nicht steigen:• optionale Bestückung• modulare Bauweise• …Design for Testability6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    12. 12. Testling Signal-Adaption Zum Test-System 
    13. 13. © 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!TestautomatisierungVorteile6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    14. 14. © 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 kombinierenTestautomatisierungHinweise6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    15. 15. © Zühlke 2012• Testling sollte gewisse Stabilität erreicht haben• Mindestens zweiten Teststand vorsehen• Zuverlässige Hardware verwenden• KISS (Keep it small and simple)TestautomatisierungHinweise6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    16. 16. © Zühlke 2012• Alle Tests werden automatisiert• Sofortige Kosteneinsparung durch Automatisierung• Capture-Replay ohne Nacharbeit• Ein zugekauftes Werkzeug, das perfekt passtTestautomatisierungUnrealistisch6. Dezember 2012Wirtschaftlich Software testen | Matthias KraazUnrealistisch!
    17. 17. © Zühlke 2012Eingangsdaten 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 TestsROI von TestautomatisierungPraxisbeispielWirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
    18. 18. © Zühlke 2012- €200,000 €400,000 €600,000 €800,000 €1,000,000 €1,200,000 €1,400,000 €1 2 3 4Kosten nach JahrenMit Automatisierung Rein manuellROI von TestautomatisierungPraxisbeispielWirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
    19. 19. © Zühlke 2012Man nehme:• Kodierende Tester / testende Entwickler• Unit Test Framework• Mock Generator• Build & Deploy & Run automatisierenWas macht es schwierig:• Abhängigkeiten• Design der SchnittstellenAutomatisierung von Komponententests6. Dezember 2012Wirtschaftlich Software testen | Matthias KraazTestDriverComponentunder TestMock
    20. 20. © Zühlke 2012• Eventuell mehrere Integrationsstufen• Herausforderungen je nach Anteil Software / ElektronikAutomatisierung von Integrationstests6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    21. 21. Automatisierte Verifizierungstests
    22. 22. © Zühlke 2012Verifizierungstests laufen automatisiert während Entwicklung• Vorschau auf Verifizierungsergebnis• Ruhiger SchlafAutomatisierte 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 VerifizierungstestsWirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
    23. 23. © 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 UmfeldTestautomatisierungFazit6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    24. 24. © Zühlke 2012Vorteile 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 automatisierbarTeststufen6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    25. 25. © Zühlke 2012Zu wenig Budget Nur Systemtests OptimiertBudget-Verteilung und TesttiefeUntere TeststufenSystemtestsTesttiefeTeststufenWirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
    26. 26. © Zühlke 2012TeststufenWirtschaftlich Software testen | Matthias KraazIntegrationstestsKomponententests6. Dezember 2012Systemtests
    27. 27. © Zühlke 2012Nachteile von Komponenten- und Integrationstests• Infrastruktur erforderlich• Automatisierung fast unausweichlich• Aussagekraft muss von oberer Teststufe überprüft werden• Grundstock von Systemtests muss seinTeststufenWirtschaftlich Software testen | Matthias Kraaz 6. Dezember 2012
    28. 28. © Zühlke 2012Nicht mit der Gießkanne testen!Fokus auf• Sicherheitskritische …• Wichtige …• Komplexe …• Neue …• Durch Bugs aufgefallene …• … Anforderungen• … Software-Komponenten6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    29. 29. © Zühlke 2012Nicht mit der Gießkanne testen!Testherleitungsverfahren• Spezifikationsorientiert• Strukturorientiert• Äquivalenzklassen plus Grenzwertanalyse• Entscheidungstabellen• Zustandsbasiert• Anwendungsfallbasiert• Erfahrungsbasiert• …6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    30. 30. © Zühlke 2012Statische Analyse einsetzen!StatischeAnalyseArchitektur MetrikenCode-CheckerStilKodier-regelnLaufzeit-fehlerSicherheits-probleme
    31. 31. Reviews optimieren!
    32. 32. © 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 AnalysePriorisierung6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    33. 33. © Zühlke 2012Lektüre (1)Wirtschaftlich Software testen | Matthias KraazCCElizabeth/Table4Five6. Dezember 2012
    34. 34. © 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 KraazCCElizabeth/Table4Five6. Dezember 2012
    35. 35. © 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 mussZur Schmerzlinderung empfehle ich…6. Dezember 2012Wirtschaftlich Software testen | Matthias Kraaz
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×