Software Qualitätssicherung durch systematischen Softwaretest Innovative Techniken und aktuelle Herausforderungen Dr. Bernhard Peischl Softnet Austria Institut für Softwaretechnologie Technische Universität Graz 1/18
Sichten auf Software Qualität Die Gesamtheit und Ausprägung von Eigenschaften und Merkmalen eines SW-Produktes bezüglich seiner Eignung, festgelegte und vorausgesetzte Interne Metriken Erfordernisse zu erfüllen. Externe Metriken Quality in Use Metriken ISO 9126 2/18
Softwarequalität und Fehlerraten Möglichst wenige Post-Release Bugs Übliche Fehlerraten Applikationssoftware: 25 Bugs / 1.000 LOC Gute Software: 2 Bugs / 1.000 LOC Sicherheitsrelevante Software < 1 Bug / 10.000 LOC Fehlerreduktion notwendig um Qualität zu erhöhen Kosten zu senken Kundenzufriedenheit zu erhöhen Allgemein akzeptiert Fehler möglichst früh finden (Kosten) 3/18
Kosten der Fehlerbehebung 4/18
Wie findet man Software Fehler? Inspektionen und Reviews Automatische Statische Analysen Syntaktische Analyse (Regeln) Semantische e Analysen (erweiterte e Typ-Prüfung) üu Formale Techniken Verifikation Theoretisch sehr leistungsfähig, praktisch eingeschränkt In der Praxis derzeit nur sehr punktuell verwendbar Eher eng definierte Anwendungsgebiete Hazard Analysen, Eventbaum Analysen 5/18
Qualitätsattribute und Software Test (1) Testen SW erfüll Qualitätsattribut wenn Test durchgeht Welche Teile des Systems werden getestet? Unit-Tests Komponententests Integrationstests Systemtests In welcher Phase des Entwicklungsprozesses? Validierung durch Abnahmetest Verifikation durch Unit-Tests, Regressions-Tests, etc. 6/18
Qualitätsattribute und Software Test (2) Welches Qualitätsattribut wird überprüft? Lasttests (Antwortzeit, Datendurchsatz) Usability Test (Benutzbarkeit) Robustheitstest Funktionale Korrektheit Welche Techniken sind anzuwenden? Standards entscheiden im Zweifelsfall, welche Verfahrensweisen, Methoden und Techniken als Stand der Technik bzw. als Stand von Wissenschaft und Technik zu betrachten sind. 7/18
Notwendige, minimale Anforderungen Absolut notwendig entspr. aller maßgeblichen Standards: Funktionsorientierte Testplanung für alle Testphasen Reproduzierbarkeit von Testergebnissen => automatische Regressionstests Weitgehender Konsens Ergänzende strukturorientierte ti t Abdeckung (mindestens Zweigüberdeckungstest) In kritischen Anwendungsbereichen gründliche struktur- orientierte Tests (z.b. RTCA DO 178-B, MCDC Abdeckung) 8/18
Testautomatisierung - Was ist machbar? Disziplinierte Bewertung des Testprozesse z.b. TPI (Test Process Improvement) Automatische Testausführung End-to-End d Test bei Benutzerschnittstellen e ttste e Hardware in the Loop (HiL) Testautomatisierung Testportfolio Management Generierung von Testabläufen und zugehörigen Testdaten aus Modellen Bereitstellung der (Ingenieurs)Modelle Teststrategie bzw. Festlegen des Testzieles (Fokussierung) Toolbox Unterstützung (z.b. CADP) 9/18
Herausforderung GUI Testing (1) End-to-End Test einer Applikationssoftware Unterschiedliche Benutzeroberflächen Robustheit gegenüber konkrete Positionen von UI Elementen ( Makro-Rekorder ) Dynamisches Auftreten von UI Elementen Schwerwiegende UI-relevante Post-Release Bugs Smart Monkey Wissen über User Interface (Modell) Einfache Modellierung damit ROI gegeben Automatische Modellerstellung (Capture Tool) Random Walk durch Modell 10/18
Herausforderung GUI Testing (2) 11/18
Herausforderung Konformitäts-Test (1) Überprüfung der Konformität der Implementierung gegenüber einer Spezifikation Welche Konformitätsrelation? Isomorphismus? IOCO, SIOCO? Input-Output Conformance (IOCO) Ausgangsevents der Implementierung Ausgangsevents der Spezifikation Fokussierung der Testfallerstellung t Test Purpose Verschiedene Teststrategien 12/18
Tools - Konformitäts-Test (2) Prototypisches Tool / Sprache Modell / Test Generation Engine Methode Lutess Lustre - Lurette Lustre - GATeL Lustre CLP Autofocus Autofocus CLP Conformance Kit - FSM Phact - FSM TVEDA SDL, Estelle FSM AsmL AsmL FSM Cooper Basic LOTOS LTS TGV LOTOS, SDL, UML LTS TorX LOTOS, Promela, FSP LTS STG NTIF LTS AGEDIS UML/AML LTS Test Composer SDL LTS, FSM AutoLink SDL - 13/18
Herausforderung Teststrategie Umsetzung über Test Purpose Notwendige Teile (LTS, on the fly ) Verschiedene Strategien (Szenarien, Abdeckung, Fehler) Umgesetzte Strategien Szenarien-basiert (Lastenheft) Fehler-basiert (Error Seeding) Abdeckungs-basiert (Abdeckung der Spezifikation) Random (TorX, längere Testfälle) Strategiet Länge Anzahl Coverage [%] Produkt A Produkt B Zeit Testfalls Testfälle Funktion CD Decision Random 10.95 5000 73 38 42 4 5 4 Sek. Szenario-b. 4.53 5408 78 36 40 4 9 1 Sek. Fehler-b b. 478 4.78 72 70 30 32 4 6 45 Min. 14/18
Herausforderung Eingebettetes System Quellen für Nicht-Determinismus Abstraktion bzw. Modellierung Technisch, h Physikalisch h 15/18
Konsequenzen für Testautomatisierung Automatische Generierung Komplexität der Suche ist hoch Testtheorie muss baum-artige Testfälle unterstützen Input Output Conformance (IOCO) Automatisierung der Testausführung Unterstützung baum-artiger Testfälle durch Testtreiber Praktisch: Modell läuft als Beobachter mit Test Recovery Oft werden nur lineare Sequenzen unterstützt Eingriff in operative Testumgebung 16/18
Ingenieursdenke und Modelle Domänenexperten und Modellierung Eindeutiges Wording Hier entstehen viele Missverständnisse Testmodell Verhaltensmodell Testfallgenerierung, Herausforderung Modelltransformation Ausgangsbasis UML Statechart Statechart Umgebungsmodelle Symbolisch (STS, EFSM) vs. Enumerativ (LTS) 17/18
Schlussfolgerung Test ist essentiell in SW-Qualitätssicherung Weitestgehender Konsens Funktionsorientierte Testplanung Strukturorientierte tu t e te Abdeckung und Reproduzierbarkeit (Regression) Test von Software ist komplexes Gebiet Innovatives, heterog. Feld (Ausführung, Generierung) Automatisierung der Testfallgenerierung (heute machbar) Reife Research Prototypen, t aber keine durchgängige Toolchain No one size fits all solution (Teststrategie) Anzahl der Post-Release Bugs reduzierbar 18/18
Fragen? Danke für Ihre Aufmerksamkeit k! 19/18