Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 1 Durch Softwareprüfung zu Produktqualität.

Slides:



Advertisements
Ähnliche Präsentationen
Versuch 1. Was wollen wir tun - das Pflichtenheft
Advertisements

Durch Softwareprüfung zu Produktqualität
Prüfung objektorientierter Programme -1
Integrations- und Funktionstests im Rahmen des V-Modelles
Submodell Softwareentwicklung (SE)
Das V - Modell - Überblick
V - Modell Anwendung auf große Projekte
Phasen und ihre Workflows
Qualitätssicherung von Software (SWQS)
Die Softwarelebenszyklen
Das „Vorgehensmodell“
OO Analyse Analyseprozess Erstellen eines Modells
Methodik: Objektorientierte Analyse
Evaluierung und Implementierung der Automated Test Life-Cycle Methodology (ATLM) am Beispiel der IT3-Software Vorträger: Ling Yan.
Qualitätssicherung von Software
Qualitätssicherung von Software
Dynamische Testverfahren
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.2 Qualitätsmanagement Folie 1LM 13 Testumgebungen - Abnahmetests Testumgebungen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme I nstitut für K ernenergetik und E nergiesysteme Rational Unified Process (RUP) - Definitionen.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme MuSofT LE Capability Maturity Model Tailoring Tailoring bedeutet ungefähr: Maßschneidern.
LE LM 10 - LO3 Verfahren zur Qualitätssicherung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Testfallbestimmung Dynamische Testverfahren wie das Black Box-Testen benötigen konkrete.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Prüfung von Simulationsprogrammen – Integrations- und Funktionstests Inhalt Vom Einzeltest.
Software „Unter Software versteht man die Gesamtheit oder auch einen Teil der Programme für Rechensysteme. Diese Programme ermöglichen zusammen mit den.
Fehler und ihre Kosten Inhalt Software und ihre Fehler
Prozessqualität und Produktqualität
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.2- LM 8 - LO 9 Definitionen zu LM 8.
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Einzeltests im Rahmen des V-Modelles Aufgaben Überprüfung des Programmcodes mit Hilfe.
Risiken und Chancen Risiko Beurteilung: Dazu gehört die Identifikationen von Risiken, ihre Analyse und das Ordnen nach Prioritäten. Risiko Kontrolle: Dazu.
Prüfung von SW-Komponenten – Überblick
Funktionalität Vorhandensein vor Funktionen mit festgelegten Eigenschaften. Diese Funktionen erfüllen die definierten Anforderungen. Richtigkeit - Liefern.
Schulung der Mitarbeiter
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Die SE Umgebung des Jahres 2003 am IKE Elemente der SE Umgebung –Omondo als Casetool.
Prozessmodelle als Teil des Management-Prozesses
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
Fehler und ihre Kosten Inhalt Fehler in Software
Beispiel: Wasserfallmodell als einfaches Phasenmodell
Universität Stuttgart Institut für Kernenergetik und Energiesysteme System- und Abnahmetests Inhalt Testen des Systems unter Mitwirkung des Auftraggebers.
Es gibt viele Arten von Risiken
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Agile Software Entwicklung mit dem RUP Agile Softwareentwicklung Best Practice bei.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE P MuSofT Erkundungsumgebung Entwicklung eines komponentenbasierten Systems WS 03/04.
RUP-Elemente (Schlüsselkonzepte)
Prozessmodelle Inhalt Prozessmodell im Management Prozess
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Zertifizierung von Software: CMM oder ISO 9000
Das V - Modell - Überblick
Husain Aljazzar, Software Engineering, Universität Konstanz
FH-Hof Optimierungsverfahren für kombinatorische Probleme Richard Göbel.
Lösungen
Testen, Analysieren und Verifizieren von Software
Rational Unified Process (RUP) - Definitionen
Der Testprozess als Bestandteil des SE Prozesses:
Fehlerabdeckung/ Regressionstest1 Testen und Analysieren von Software Fehlerbehebung und Re-Engineering Fehlerabdeckung/ Regressionstest Vortragende:
Anpassung des RUP an ein konkretes Projekt - 1
Vorgehensmodelle: Schwergewichtige Modelle
Spezifikation von Anforderungen
11. Vorlesung: Dynamische Konzepte am Fallbeispiel
Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE LM 10 - LO4 Das JUnit Test Framework.
UML-Kurzüberblick Peter Brusten.
Wasserfallmodell und Einzelbegriffe
UML Modellierung des Verhaltens von Klassen und Objekten
Blackbox-Testverfahren
Testvorbereitungen, Unit Test
Unified Modeling Language UML
Semesterprojekt Präsentation Thema 1 Test-Arten
Formale Methoden Semesterprojekt Präsentation Thema 1 Test-Arten Fernstudium Master WI, MWI 10F Jan te Kock,
Seminararbeit Blackbox-Testverfahren Alexander Maas, Aachen,
 Präsentation transkript:

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 1 Durch Softwareprüfung zu Produktqualität Review : Software- Prüfung Software- Prüfung dynamische Prüfung dynamische Prüfung statische Prüfung statische Prüfung ohne Hilfe des Rechners ohne Hilfe des Rechners mit Hilfe des Rechners mit Hilfe des Rechners Prüfung gegen Regeln Konsistenzprüfung Quantitative Untersuchung : Test Leistungsmessung :

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 2 Produktqualität – Prüfverfahren (Beispiele) Komponenten Testende Verfahren Dynamisch (Kontrollfluss, Datenfluss, Funktional) Statisch (Inspektion, Review, Walk through) Verifizierende Verfahren Verifikation (Konsistenz Entwurf + Implementierung) Symbolisches Testen (statische Strukturtests) Systeme Integrationstest White Box-Test der Komponenten und ihrer Beziehungen Systemtest Black Box-Test des Systems als Ganzes Abnahmetest Black Box-Test des Systems als Ganzes nutzen Mitwirkung des Auftraggebers

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 3 Softwareprüfung und Fehlerbehebung Prüfung meint Erkennen von unerwartetem Verhalten stößt Prozess der Ursachenfindung an resultiert in Fehlerbehebung Fehlerbehebung führt zur Veränderung des Produktes kann unerwartetes Verhalten erzeugen Vergleich:

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 4 Statische Testverfahren Systematische Verfahren zur gemeinsamen Durchsicht von Dokumenten (wie z.B. UML-Modelle, implementierte Klassen,...): Programminspektion: Stark formalisiertes Verfahren bei dem Dokument nach genau festgelegter Vorgehensweise durch Gutachterteam untersucht wird Review: Weniger formale manuelle Prüfmethode; weniger Aufwand als bei Programminspektion, ähnlicher Nutzen Walkthrough: Unstruktierte Vorgehensweise; Autor des Dokuments liest vor, Gutachter stellen spontan Fragen [Pair Programming: Programm wird von vorherein zu zweit erstellt]. Empirische Ergebnisse zu Programminspektion: Prüfaufwand liegt bei ca. 15 bis 20% des Erstellungsaufwandes 60 bis 70% der Fehler in einem Dokument können gefunden werden Nettonutzen: 20% Ersparnis bei Entwicklung, 30% bei Wartung

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 5 Vorgehensweise bei der Programminspektion Inspektionsteam besteht aus Moderator, Autor (passiv), Gutachter(n), Protokollführer und ggf. Vorleser (nicht dabei sind Vorgesetzte des Autors) Gutachter sind in aller Regel selbst (in anderen Projekten) Entwickler Inspektion überprüft, ob: –Dokument Spezifikation erfüllt (Implementierung konsistent zu Modell) –Für Dokumenterstellung vorgeschriebene Standards eingehalten wurden Inspektion hat nicht zum Ziel: –Zu untersuchen, wie entdeckte Fehler behoben werden können –Beurteilung der Fähigkeiten des Autors –[Lange Diskussion, ob ein entdeckter Fehler tatsächlich ein Fehler ist] Inspektionsergebnis: –Formalisiertes Inspektionsprotokoll mit Fehlerklassifizierung –Fehlerstatistiken zur Verbesserung des Entwicklungsprozesses

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 6 Ablauf einer Inspektion Auslösung der Inspektion durch Autor eines Dokumentes (z.B. durch Freigabe) Eingangsprüfung durch Moderator (bei vielen offensichtlichen Fehlern wird das Dokument sofort zurückgewiesen) Einführungssitzung, bei der Prüfling den Gutachtern vorgestellt wird Individualuntersuchung des Prüflings (Ausschnitt) durch Gutachter anhand ausgeteilter Referenzdokumente (mit Spezifikation, Standards,...) auf Inspektionssitzung werden Prüfergebnisse mitgeteilt und protokolliert sowie Prüfling gemeinsam untersucht Freigabe des Prüflings durch Moderator (oder Rückgabe zur Überarbeitung). Bemerkung: Von den gefundenen Fehlern entfallen auf die Individualprüfung ca. 80% und auf die gemeinsame Sitzung ca. 20% der Fehler.

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 7 Review und Walkthrough Review (abgeschwächte Form der Inspektion): Prozessverbesserung und Erstellung von Metriken steht nicht im Vordergrund Moderator gibt Prüfling nicht frei, sondern nur Empfehlung an Manager kein formaler Inspektionsplan mit wohldefinierten Inspektionsregeln Walkthrough: Autor des Prüflings liest ihn vor (ablauforientiert im Falle von Software) Gutachter versuchen beim Vorlesen ohne weitere Vorbereitung Fehler zu finden Autor entscheidet selbst über weitere Vorgehensweise Zielsetzungen: –Fehler/Probleme im Prüfling identifizieren –Ausbildung/Einarbeitung von Mitarbeitern

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 8 Dynamische Testverfahren Die zu betrachtende Komponente (Operation, Klasse, Paket, Gesamt-system) wird mit konkreten Eingabewerten ausgeführt und ihr Verhalten wird dabei beobachtet. Im wesentlichen lassen sich dabei folgende Alternativen unterscheiden: Strukturtest (White Box-Test): Die interne Struktur der Komponente oder ihrer UML-Spezifikation wird zur Testplanung und -Überwachung herangezogen Funktionstest (Black Box-Test): Die interne Struktur der Komponente wird nicht betrachtet; getestet wird Ein-/Ausgabeverhalten gegen Spezifikation Diversifikationstest: Verhalten einer Komponentenversion wird mit Verhalten anderer Komponenteversionen (oder ausführbarem Statechart) verglichen.

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 9 Strukturtest (White Box-Test) Zur Testplanung und -Überwachung wird die interne Struktur der Komponente oder ihrer UML-Spezifikation herangezogen. Folgende Varianten sind möglich kontrollflussbasiert: Ablaufverhalten von Operationen wird untersucht datenflussbasiert: Variablenzugriffe (setzen/lesen) stehen im Vordergrund zustandsbasiert: Zustände und Transitionen einer Klasse werden betrachtet.

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 10 Funktionstest Funktionstests prüfen Implementierung gegen ihre Spezifikation und lassen die interne Programmstruktur unberücksichtigt: Komplementär zu bislang vorgestellten White-Box-Verfahren für Abnahmetest ohne Kenntnis des Quellcodes geeignet setzt (eigentlich) vollständig und widerspruchsfreie Spezifikation voraus repräsentative Eingabewerte/Szenarien müssen ausgewählt werden (man kann i.a. nicht alle Eingabekombinationen testen) –Sequenzdiagramme aus Anwendungsfällen (use cases) beschreiben wichtige Testfälle man braucht Fachwissen oder Orakel für Überprüfung der Korrektheit der Ausgaben –ausführbare Statecharts als Orakel verwenden

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 11 Kriterien für die Auswahl von Eingabewerten An der Spezifikation (hier in UML) orientierte Äquivalenzklassenbildung, so dass für alle Werte einer Äquivalenzklasse sich das Softwareprodukt gleich verhält: Unterteilung in gültige und ungültige Eingabewerte gesonderte Betrachtung von Grenzwerten (z.B. Anfang und Ende von Intervallen) Auswahl von Repräsentanten so, dass jede Variante jedes Sequenz- und Kollaborationsdiagramms (Aktivitätsdiagramms) einmal durchlaufen wird Auswahl von Repräsentanten so, dass jede Transition jedes Statecharts (des Produktautomaten bei an-Zuständen) mindestens einmal schaltet Achtung: Auswahl von Eingabewerten schwierig für Objekte als Operationsparameter, z.B. Äquivalenzklassenbildung mit: nil-Objekt, Objekt einer falschen Klasse, Objekt in bestimmtem Zustand oder mit bestimmten Attributwertkombinationen,...)

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 12 Integrationsteststrategien Big Bang-Strategie: Alle Teile sofort integrieren und nur als Gesamtheit testen –Lokalisierung von Fehlern schwierig –Arbeitsteilung kaum möglich –Testen beginnt zu spät Top-down-Testverfahren: Zuerst A mit Dummies für B, C und D; dann B mit Dummies für E und F,... –Erstellung vernünftiger Dummies schwierig –Test der Basisschicht sehr spät Bottom-Up-Testverfahren: Zuerst E, F, G und H mit Testtreibern, die Einbindung in B, C und D simulieren; dann B, C und D mit Testtreiber... –Test des Gesamtverhaltens des Systems gegen Lastenheft erst am Ende –Designfehler und Effiziensprobleme werden oft erst spät entdeckt

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 13 Inkrementelles Testen Inkrementelles Testen: Grundgerüst vorhanden, weitere Komponenten werden stückweise hinzugefügt –wie erstellt und testet man Grundgerüst (z.B. Top-Down-Testen mit Depth- First-Strategie) –Hinzufügen von Komponenten kann bisherige Testergebnisse entwerten Regressionstest: Systemänderungen (bei Wartung oder inkrementellem Testen) können Fehler in bereits getesteten Funktionen verursachen. –Möglichst viele Tests werden automatisiert –bei jeder Änderung werden alle vorhandenen Tests durchgeführt –neue Testergebnisse werden mit alten Testergebnissen verglichen Achtung: Nur inkrementelles Testen kombiniert mit Regressionstest passt zum inkrementellen und iterativen Softwareentwicklungsprozess von UML

Universität Stuttgart Institut für Kernenergetik und Energiesysteme LE 3.1 ProzessqualitätLM 1 Fehler und ihre KostenFolie 14 Wann hört man auf mit Testen Wenn Testbudget verbraucht bzw. Auslieferungszeitpunkt erreicht Die je Testfall (Zeiteinheit) gefundene Fehlerzahl sinkt unter gegebene Grenze n % absichtlich von einer Gruppe implantierter Fehler (seeded bugs) wurden von Testgruppe gefunden Aus jeder Klasse äquivalenter Eingabedaten wurde ein Repräsentant getestet. Testfälle decken alle (relevanten) Programmverzweigungen ab