Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Testen 1/20 Analytische Qualitätssicherung Die analytische Qualitätssicherung ist eine alle Phasen der Software-Entwicklung begleitende Tätigkeit, die.

Ähnliche Präsentationen


Präsentation zum Thema: "Testen 1/20 Analytische Qualitätssicherung Die analytische Qualitätssicherung ist eine alle Phasen der Software-Entwicklung begleitende Tätigkeit, die."—  Präsentation transkript:

1 Testen 1/20 Analytische Qualitätssicherung Die analytische Qualitätssicherung ist eine alle Phasen der Software-Entwicklung begleitende Tätigkeit, die außer den zur Fehlersuche und -behebung notwendigen Aktivitäten auch die zugehörigen organisatorischen Maßnahmen umfaßt.

2 Testen Klassifikation der Verfahren der analytischen Qualitätssicherung

3 Testen 3/20 Kontrollflußbezogenes Testen Anhand der Kontrollstruktur des Prüflings werden Testfälle bestimmt. Testen gegen sich selbst. Zielt darauf ab, bestimmte Menge von Programmpfaden beim Test zu durchlaufen. Kontrollfluß bestimmt durch: Anweisungsfolgen Selektion Iteration Der Kontrollflußgraph eines Programms P ist ein gerichteter Graph G= (N, E, n start, n final ) mit: N = Menge der Anweisungen eines Programms, E N x N Menge der gerichteten Kanten; beschreiben statischen Kontrollfluß von einem Knoten n i zu n j, n start N Startanweisung, n final N Endanweisung.

4 Testen 4/20 Problembeschreibung: Benötigt wird eine Prozedur, der als Parameter ein Ziffernstring übergeben wird, die den Wert der dadurch definierten (positiven) Zahl errechnet und diesen zurückliefert.

5 Testen 5/20 Kontrollflußgraph

6 Testen 6/20 Anweisungsüberdeckung (C 0 -Test) Ziel: Alle Anweisungen des Programms mindestens einmal auszuführen, d.h. alle Knoten des Kontrollflußgraphen mindestens einmal besuchen. Anweisungsüberdeckungsgrad := Anzahl der besuchten Knoten Anzahl aller Knoten Vollständige Anweisungsüberdeckung Anweisungsüberdeckungsgrad=1. Gefunden werden nicht-ausführbare Programmteile. Empirisch belegt: Bei Überdeckungsgrad von 100% weniger als 20% der Programmfehler gefunden.

7 Testen 7/20 Vollständige Anweisungsüberdeckung

8 Testen 8/20 Zweigüberdeckung (C 1 -Test) Ziel: Alle Pfade des Programms mindestens einmal auszuführen, d.h. alle Kanten des Kontrollflußgraphen mindestens einmal besuchen. Zweigüberdeckungsgrad := Anzahl der besuchten Zweige Anzahl aller Zweige Vollständige Zweigüberdeckung Zweigüberdeckungsgrad=1. Vollständige Zweigüberdeckung impliziert vollständige Anweisungsüberdeckung. Gefunden werden nicht-ausführbare Programmzweige. Empirisch belegt: Bei Überdeckungsgrad von 100% durchschnittlich 25% der Programmfehler gefunden.

9 Testen 9/20 Vollständige Zweigüberdeckung

10 Testen 10/20 Bedingungsüberdeckung Zweigüberdeckung ignoriert Struktur einer Bedingung: Atomare Zusammengesetzte Prädikate. Deren Berücksichtigung führt zu Bedingungsüberdeckungstests Minimale Bedingungsüberdeckung (C 2 -Test): Alle atomaren Prädikate müssen einmal zu TRUE und einmal zu FALSE ausgewertet werden. Mehrfach-Bedingungsüberdeckung (C 3 -Test): Alle atomaren Prädikate müssen zu allen Werte- kombinationen ausgewertet werden. Minimale Mehrfach-Bedingungsüberdeckung: Kompromiß zwischen minimaler Bedingungsüber- deckung und Mehrfach-Bedingungsüberdeckung: Jedes Prädikat, ob atomar oder nicht atomar, wird einmal zu TRUE und einmal zu FALSE ausgewertet. Berücksichtigung der hierarchischen Struktur von Bedingungen.

11 Testen 11/20 Minimale Mehrfach- Bedingungsüberdeckung

12 Testen 12/20 Vollständige Pfadüberdeckung (C 4 -Test) Analyse aller möglichen Pfade des Programms, d.h. aller Kantenfolgen, die mit dem Startknoten des Kontrollflußgraphen beginnen und dem Knoten n final enden. Boundary interior-Pfadtest Gezieltes Testen von Schleifen Für jede Schleife zwei Klassen von Testfällen: Boundary-Test: Alle Pfade, die den Schleifenrumpf genau einmal durchlaufen. Interior-Test: Alle Pfade, die genau eine Schleifen- wiederholung enthalten. Außerhalb von Schleifen werden alle Pfade unter- sucht. Umfaßt Zweigüberdeckungstest, Effektivität liegt aber um 100% darüber.

13 Boundary interior-Pfadtest: interior-Pfade

14 Testen 14/20 Datenflußbezogene Testverfahren Neben Kontrollflußfehlern auch Datenfehler möglich wie z.B. Variablenbenutzung vor Initialisierung, nicht benutzte aber definierte Variablen... Datenflußorientierte Testverfahren verwenden die Zugriffe auf Variablen zur Erzeugung von Testfällen Drei Zugriffe werden unterschieden: - zur Definition einer Variablen (def) - zur Werteberechnung (computational-use, c-use) - zur Prädikatsauswertung (predicate-use, p-use) Datenflußdarstellung eines Kontrollflußgraphen entsteht durch Ergänzen der def-, c-use und p-use-Informationen: def- und c-uses an Knoten p-uses an alle von Knoten ausgehenden Kanten

15 Testen 15/20 Kontrollflußgraph in Datenflußdarstellung

16 Testen 16/20 Test nach dem all uses-Kriterium Das all uses-Kriterium fordert für jede Definition einer Variablen den vollständigen Test der von ihr erreichbaren prädikativen und berechnenden Variablenzugriffe. Wird in einem Knoten n i des Kontrollflußgraphen eine Variable v definiert, so ist die Menge du (v, n i ) definiert als: du (v, n i ) enthält alle Knoten n k für die gilt: v c-use(n k ) oder v p-use( (n l, n k ) ), n k ist ohne Neudefinition von v per Pfad erreichbar. Ein dynamischer Test nach dem all uses-Kriterium bedeutet, daß für jeden Knoten n i und jeder darin definierten Variable mindestens ein definitionsfreier Pfad von n i zu allen Elementen in du(v, n i ) ausgeführt wird. Umfaßt Zweigüberdeckungstest.

17 Testen 17/20 Funktionale Verfahren Strukturorientierte Verfahren betrachten nicht die Spezifikation. Hier: Programm als black-box: Überprüfung der in der Spezifikation festgelegten Funktionalität. Zwei Stufen: 1) Definitionsbereiche der Eingaben bzw. die Werte- bereiche der Ausgaben in Äquivalenzklassen zer- legen. 2) Aus jeder Äquivalenzklasse nach bestimmter Strategie Testfälle auswählen. Äquivalenzklassenbildung: Jede Klasse repräsentiert eine spezifizierte Teil- funktionalität. Alle Werte einer Äquivalenzklasse verursachen identisches, funktionales Verhalten. Testdatenselektion: Zufallstest Grenzwertanalyse

18 Testen 18/20 Diversifizierende Verfahren Test verschiedener Programmversionen gegeneinander. Mutationentest: In Ursprungsprogramm typische, einfache Fehler einbauen Mutanten. Für jeden Mutanten Testfälle bestimmen, die eine Unterscheidung vom Original erlauben. Back to Back-Test: Verschiedene Versionen werden unabhängig voneinander aus der Spezifikation gewonnen identische Funktionalität.

19 Testen 19/20 Statische Verfahren A review is a process or meeting during which a work product, or a set of work products, is presented to project personnel, managers, users, customers, or other interested parties for comment or approval. (IEEE, 1990) Als spezielle Reviews werden unterschieden: A walkthrough is a static analysis technique in which a designer or programmer leads members of the development team and other interested parties through a segment of documentation or code, and the participants ask questions and make comments about possible errors, violation of development standards, and other problems. (IEEE, 1990) An inspection is a static analysis technique that relies on visual examination of development products to detect errors, violations of developing standards, and other problems. (IEEE, 1990) An audit is an independent examination of a work product or set of work products to assess compliance with specifications, standards, contractual agreements, or other criteria. (IEEE, 1990).


Herunterladen ppt "Testen 1/20 Analytische Qualitätssicherung Die analytische Qualitätssicherung ist eine alle Phasen der Software-Entwicklung begleitende Tätigkeit, die."

Ähnliche Präsentationen


Google-Anzeigen