Design für Testbarkeit

Ähnliche Dokumente
Harry M. Sneed Manfred Baumgartner Richard Seidl. Der Systemtest. Anforderungsbasiertes Testen von Software-Systemen HANSER

Testbarkeitsanforderungen an die Software

Agile Softwareentwicklung im normativ regulierten Umfeld: Die Rolle der Qualitätssicherung für eine Zertifizierung

Softwaremetriken. 29. April 2015

Softwaremetriken. 15. Mai 2013

1 Einleitung zum Thema Softwaremigration 1

Test offener, dynamischer Systeme

Behutsame Modernisierung

Basiswissen Softwaretest

Ziele und Tätigkeiten von Architekten

Testautomatisierung. Lessons Learned. qme Software. Gustav-Meyer-Allee Berlin. Telefon 030/ Telefax 030/

Anforderungsgetriebene Entwicklung testbarer Software

Qualitätsmanagement im Projekt

Basiswissen Softwaretest

Wann lohnt sich GUI- Testautomatisierung?

xii 5.3 Debugging Einplanung der Fehlersuche in Produkt und Prozess Vorbereitung und Ausführung des Debugging

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

Softwaremetriken verstehen und nutzen

Modell zur Einflussanalyse Ein Modell zur Einflussanalyse von Methodenänderungen in Entwicklungsprozessen

Wann lohnt sich GUI- Testautomatisierung?

Testbarkeit im Entwicklungsprozess

Aktuelle Themen der Informatik Metriken für den Softwaretest

Testmanagement. Full-Service

Karol Frühauf, Jochen Ludewig, Helmut Sandmayr. Software-Prüfung Eine Anleitung zum Test und zur Inspektion

Erfahrungen mit der Einführung von modellbasierter Testspezifikation, Implementierung und Generierung bei einem deutschen Automotive OEM

Service Engineering. Übung 3a Prozessmodellierung mit Hilfe von BPMN. Prof. Dr. Andreas Schmietendorf 1. SoSe 2018 ServEng

Wiederholung. Testen. Tests nach Methode zum Ableiten der Testfälle White Box Test Black Box Test

Verbesserung der Architektur und Dokumentation der DPP-Software Saros. Slawa Belousow Institut für Informatik FU Berlin

Testautomation in verteilten Ausführungsumgebungen

Container als Immutable Infrastructure. John M. Hutchison

Vorstellung der EN für den Mittelstand. Dr. Ludger Ackermann dc-ce RZ-Beratung

Thomas Freitag achelos GmbH SmartCard-Workshop achelos GmbH

Gute User Stories schreiben reicht nicht Requirements Engineering-Bedarf in agilen Projekten. Olga Boruszewski,

Auf einen Blick. 1 Einleitung Die Basis der Objektorientierung Die Prinzipien des objektorientierten Entwurfs...

Schnelle systematische Entwicklung von Internet-Anwendungen

Analyse der logischen Systemarchitektur und Spezifikation der technischen Systemarchitektur. Kernprozess zur System- und Software- Entwicklung

SOLID für.net und JavaScript

Komponenten- HIL und Fahrzeug- HIL sind heute weit verbreitet. i.w. höhere Qualität der Fahrzeuge und Steuergeräte

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Basiswissen Softwaretest

Inhaltsverzeichnis. Teil I Grundlagen 1

Entwurf eines FPGA-Cores zur Simulationsbeschleunigung zeitkontinuierlicher Modelle im HiL Kontext

Synergien aus Testautomatisierung und Lasttest. Vortrag im Rahmen des German Testing Day 2018

Grundlagen der Risikoanalyse p. 64 Risikoanalyse in der Software-Entwicklung p. 64 Werkzeuge für die Risikoanalyse p. 68 Zusammenfassung p.

Vorlesung Software-Reengineering

Verbundtests von Mobilgeräten und Backend-Systemen. Andreas Bartsch, exept Software AG

Inhaltsverzeichnis Einführung und Überblick

Inhaltsverzeichnis. Harry M. Sneed, Manfred Baumgartner, Richard Seidl. Der Systemtest. Von den Anforderungen zum Qualitätsnachweis

Fach-Schulungen. Führungskraft, Organisation, Interessenten. Berechtigungs- Administrator. Dokumenten- Administrator. Anwender.

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Software - Automatisierung

Architektur in der Mechatronik. existierender Testwerkzeuge

Programmierung in C/C++

Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung

Tim Krämer. Archimetrix - Improved Software Architecture Recovery in the Presence of Design Deficiencies. 08. Mai 2013

Agile HW-Entwicklung und virtuelle Inbetriebnahme im Maschinenbau

Software-Refactoring. 27. Mai 2015

Qualität lässt sich steuern: Die Möglichkeiten des Qualitätsmanagements

Software-Refactoring. 29. Mai 2013

Q-Event «Spice up your Test!»

Agentenbasiertes Testmanagement beim Systemtest

Softwaretest von verteilten Echtzeitsystemen im Automobil anhand von Kundenspezifikationen

Ein Ansatz zum modellgetriebenen Integrationstest von EJB-basierten Informationssystemen

Modellbasierte Softwareentwicklung

Olaf Seng Thomas Genßler Benedikt Schulz. Forschungszentrum Informatik, Karlsruhe

Gnädinger & Jörder Consulting Assuring Project Success

Design for Testability in der Praxis Referent: David Völkel

Modellbasiertes manuelles Testen: Techniken und Tücken

Objektorientierte Programmierung II

Langlebige Softwarearchitekturen - technische Schulden beherrschen und abbauen

Workshop Visualisierung 2011 Diskussionsnotizen

IT-Projekt-Management

Das agile Requirements Board Ein Tool zur Unterstützung des agilen Requirements-Engineerings

Praxiswissen Softwaretest - Testmanagement

Ein generativer Ansatz für den automatisierten Softwaretest,

Mit Fehlerkennzahlen Software-Entwicklungsprozesse verbessern - Erfahrungen bei der IDG -

1.1 Basiswissen komprimiert Praxiswissen Testmanagement Übersicht Testprozess und Testwerkzeuge 11

Prozesse Last oder Lust?

Programmiermethodik Vorlesung und Praktikum SS 2001

Relevante Metriken zur Bestimmung von Softwarequalität

Design for Testability in der Praxis David Völkel, codecentric AG

1. Einführung 1.1. Definitionen

Entwicklung des Softwareengineerings im Bereich der IT-TK-Technologie. Stefan Bläsius und Gregorio Roper Berlin,

Testbarkeitsfaktoren und Testaufwand: Auswertung dreier Umfragen

Wiederholung Sortiert nach Lebenszyklusphase Sortiert nach Testziel Sortiert nach der Methode, um an Testfälle zu kommen

baramundi software AG

Praxisbuch Objektorientierung

Das Doppelpack für die Informatik

Softwarearchitektur als Mittel für Qualitätssicherung und SOA Governance

VI. Die Bedeutung der Komplexität 83. VI. Die Bedeutung der Komplexität

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

Entwurfsmuster. Tao Zhang Technische Universität München Lehrstuhl für Angewandete Softwaretechnik

Software Engineering. 5. Architektur

Leistungsmerkmale der Analyse-Software Anna4 in Abhängigkeit von TK-Systemen (Standalone) 1 Beschreibung Leistungsmerkmale... 2

Harry M. Sneed, Manfred Baumgartner, Richard Seidl. Der Systemtest. Von den Anforderungen zum Qualitätsnachweis ISBN:

Systemtest im agilen Entwicklungsprozess. Uwe Hehn Sebastian Kern

Marc Monecke Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D Siegen

Jochen Ludewig Horst Lichter. Software Engineering. Grundlagen, Menschen, Prozesse, Techniken. dpunkt.verlag

Transkript:

Design für Testbarkeit Stefan Jungmayr FernUniversität Hagen, Praktische Informatik III Feithstrasse 142, D 58084 Hagen stefan.jungmayr@fernuni-hagen.de STI-Jahrestagung Kaiserslautern, 26. November 2000

Übersicht Motivation Testbarkeit Testbarkeitsbewertung Konstruktive Ansätze Design für Testbarkeit Design für Testbarkeit - Strategie Zusammenfassung

Motivation (I) Testproblematik: steigende Komplexität der Software Qualitätsanforderungen bei zunehmender Kritikalität Ressourcenbeschränkung: Aufwand, Zeit Lösungsansätze: verbesserte Testkriterien Testautomatisierung automatisierte Testorakel Design für Testbarkeit

Motivation (II) Ansätze zur Testkostenreduktion wiederkehrende Einsparungen Testkriterien Testautomatisierung automat. Orakel Design für Testbarkeit Erst-Test Regr.test in Entwickl. Regr.test in Wartung Testkosten Testfallentwicklung Testausführung Testauswertung Fehlerlokalisierung Fehlerbeseitigung

Motivation (III) Interesse an Testbarkeit: Manager: Bewertung der Testbarkeit als Entscheidungsgrundlage Bereitstellung von Ressourcen, Schulungen Entwickler: Design für Testbarkeit Tester: Identifizierung von Testbarkeitsmängeln (Reviews) Richtlinien

Testbarkeit (I) Definition: Testbarkeit ist der Grad, zu dem eine Softwareentität in einem bestimmten Kontext den Testvorgang ermöglicht. Softwareentitäten: Anforderungen Architektur Entwurf Implementierung

Testbarkeit (II) Testbarkeitsaspekte von Softwareentitäten: Anforderungen: schriftliche Formulierung testbare Formulierung Aktualität Stabilität Architektur, Entwurf, Implementierung: Komplexität Zerlegbarkeit Verifizierbarkeit Stabilität

Testbarkeit (III) Testkontext: Test-Rahmenbedingungen Budget des Testprozesses geforderte Produktqualität Geplante Nutzung der Software einmalig innerhalb einer bestimmten Anwendung mehrmals (Wiederverwendung) Angewandte Testkriterien Eingesetzte Testwerkzeuge

Testbarkeitsbewertung (I) 0) Ist bekannt, was getestet werden soll? 1) Gibt es Überflüssiges, dessen Test vermieden werden kann? Funktionalität, Größe, (Schnittstellen-)Komplexität, Überdeckbarkeit 2) Kann das Problem zerlegt werden? Werden viele andere Komponenten für den Test benötigt? Ist die Komponente steuerbar? Ist es einfach, Testresultate zu beobachten? Kann bei Testproblemen zwischenzeitlich Anderes getestet werden? 3) Kann die Softwareentität einfach getestet werden? Ist die Bewertung der Testresultate einfach? Können die Testresultate reproduziert werden? Sind die Testresultate repräsentativ? Ist Testautomatisierung (einfach) möglich?

Testbarkeitsbewertung (II) Metriken: McCabe Komplexitätsmetrik, Domain/Range Ratio Prädikaten-, Entscheidungs-, Parameter-, Zusicherungsdichte ISO/IEC 9126-2: re-test efficiency availability of built-in test function test restartability ISO/IEC 9126-3: completeness of built-in test function autonomy of testability test progress observability

Testbarkeitsbewertung (III) Werkzeuge zur Metrikberechnung: Logiscope (Verilog) execution paths cyclomatic number nesting levels QStudio (QA Systems) Complexity volume modularity Reviews: Checklisten

Konstruktive Ansätze (I) - Hardware-Testbarkeit Problem: jedes IC muss getestet werden Mangel an Steuerbarkeit Mangel an Beobachtbarkeit Lösung: Boundary-Scan-Architektur (IEEE 1149.1) Besonderheit: Test auf Produktionsfehler

Konstruktive Ansätze (II) - Verteilte Echtzeitsysteme Problem: Beobachtung der Testergebnisse Beeinflussung der Testergebnisse durch Instrumentierung Reproduzierbarkeit der Testergebnisse Lösung: geeignete Systemarchitektur

Design für Testbarkeit (I) - Architekturebene Abwägung von Modularität und Wiederverwendung Konzentration der Kontrollstruktur von Funktionen Einsatz von Standard-Testschnittstellen Testschnittstellen an semantisch einfach auswertbaren Stellen Abstimmung des Einsatzes der Vererbung mit Teststrategie Delegation statt Vererbung / kein Neutest Vererbung / selektiver Regressionstest Vererbung / Testautomatisierung

Design für Testbarkeit (IIa) - Entwurfsebene Explizite Kontrollstrukturen Keine zyklischen Abhängigkeiten Methoden nach Möglichkeit als nicht-virtuell deklarieren Unmotivierten Einsatz von polymorphen Parametern vermeiden Implizite Abhängigkeiten vermeiden Law of Demeter berücksichtigen

Design für Testbarkeit (IIb) - Entwurfsebene Unmotiviertes Zustandsverhalten vermeiden Zustandstestfunktionen implementieren Informationsverlust durch built-in -Testeinrichtungen kompensieren Unerreichbare Ausgabewerte vermeiden Auslösen aller Ausnahmefälle (Exceptions) ermöglichen

Design für Testbarkeit (III) - Code-Ebene Verständlichkeit, Einfachheit vor Eleganz Variablenwiederverwendung vermeiden Unerreichbare Pfade vermeiden Rekursive Implementierungen von Algorithmen vermeiden

Design für Testbarkeit - Strategie Definition der Testbarkeitsanforderungen / Bewertung: für gesamte Architektur für ausgewählte, kritische Komponenten Wissen über Testbarkeit in Richtlinien verfügbar machen Testbarkeit früh berücksichtigen: konstruktive Richtlinien in Entwicklung einhalten Reviews mit Beteiligung durch Tester durchführen

Zusammenfassung Testbarkeit mit zunehmender Komplexität und Kritikalität wichtig Einige Metriken und Werkzeuge verfügbar Firmeninternes und -externes Wissen nutzbar machen Testbarkeit in Richtlinien und Checklisten berücksichtigen