• Keine Ergebnisse gefunden

Verlässliche Echtzeitsysteme

N/A
N/A
Protected

Academic year: 2022

Aktie "Verlässliche Echtzeitsysteme"

Copied!
89
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)Verlässliche Echtzeitsysteme Dynamisches Testen. Peter Ulbrich Lehrstuhl für Verteilte Systeme und Betriebssysteme Friedrich-Alexander-Universität Erlangen-Nürnberg https://www4.cs.fau.de. KW22 2020. pu. Verlässliche Echtzeitsysteme (SS 20). 1/37.

(2) Funktionale und nicht-funktionale Eigenschaften Welche Aspekte spielen bei der zuverlässigen Entwicklung eine Rolle?. + Korrektheit der Software hat viele Gesichter Wurde das 1) richtige 2) korrekt implementiert?. A Alle relevanten Eigenschaften sind zu überprüfen!. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 2/37.

(3) Funktionale und nicht-funktionale Eigenschaften Welche Aspekte spielen bei der zuverlässigen Entwicklung eine Rolle?. + Korrektheit der Software hat viele Gesichter Wurde das 1) richtige 2) korrekt implementiert?. A Alle relevanten Eigenschaften sind zu überprüfen! 1. Funktionale Eigenschaften (hier: Übereinstimmung mit der Spezifikation) Müssen explizit implementiert werden 7→ int regelschritt(int sensorwert) Eine fehlerhafte Funktion kann nicht-funktional korrekt sein. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 2/37.

(4) Funktionale und nicht-funktionale Eigenschaften Welche Aspekte spielen bei der zuverlässigen Entwicklung eine Rolle?. + Korrektheit der Software hat viele Gesichter Wurde das 1) richtige 2) korrekt implementiert?. A Alle relevanten Eigenschaften sind zu überprüfen! 1. Funktionale Eigenschaften (hier: Übereinstimmung mit der Spezifikation) Müssen explizit implementiert werden 7→ int regelschritt(int sensorwert) Eine fehlerhafte Funktion kann nicht-funktional korrekt sein. 2. Nicht-funktionale Eigenschaften (z.B. Laufzeitverhalten) Können nur implizit implementiert werden Sind querschneidend ; erst im konkreten Kontext bestimmt Eine korrekte Funktion kann nicht-funktional fehlerhaft sein B Robustheit (Kapitel 3-6) ist eine nicht-funktionale Eigenschaft. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 2/37.

(5) Funktionale und nicht-funktionale Eigenschaften Welche Aspekte spielen bei der zuverlässigen Entwicklung eine Rolle?. + Korrektheit der Software hat viele Gesichter Wurde das 1) richtige 2) korrekt implementiert?. A Alle relevanten Eigenschaften sind zu überprüfen! 1. Funktionale Eigenschaften (hier: Übereinstimmung mit der Spezifikation) Müssen explizit implementiert werden 7→ int regelschritt(int sensorwert) Eine fehlerhafte Funktion kann nicht-funktional korrekt sein. 2. Nicht-funktionale Eigenschaften (z.B. Laufzeitverhalten) Können nur implizit implementiert werden Sind querschneidend ; erst im konkreten Kontext bestimmt Eine korrekte Funktion kann nicht-funktional fehlerhaft sein B Robustheit (Kapitel 3-6) ist eine nicht-funktionale Eigenschaft. B Es kommt auf die Betrachtungsebene an! Laufzeitfehler (engl. bugs) stellen eine nicht-funktionale Eigenschaft dar Aus Sicht des Übersetzers (engl. compilers) sind dies jedoch funktionale Fehler pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 2/37.

(6) Zuverlässig Software entwickeln? + Ziel: Aussagen zur Korrektheit von funktionalen und nicht-funktionalen Eigenschaften von Software treffen Fokus der Vorlesung: Korrektheit oder zumindest Absenz von Defekten Schrittweise Annäherung über Qualität und Verhalten. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 3/37.

(7) Zuverlässig Software entwickeln? + Ziel: Aussagen zur Korrektheit von funktionalen und nicht-funktionalen Eigenschaften von Software treffen Fokus der Vorlesung: Korrektheit oder zumindest Absenz von Defekten Schrittweise Annäherung über Qualität und Verhalten. Hierfür existieren unterschiedliche Ansätze: Informelle Methoden Inspection, Review, Walkthrough, . . .. Analytische Methoden Metriken, Kodierrichtlinien, . . .. Dynamisches Testen Black-Box, White-Box, Regression, Unit, . . .. Formale Methoden Statische Code-Analyse, Model Checking, . . .. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 3/37.

(8) Zuverlässig Software entwickeln? + Ziel: Aussagen zur Korrektheit von funktionalen und nicht-funktionalen Eigenschaften von Software treffen Fokus der Vorlesung: Korrektheit oder zumindest Absenz von Defekten Schrittweise Annäherung über Qualität und Verhalten. Hierfür existieren unterschiedliche Ansätze: Informelle Methoden Inspection, Review, Walkthrough, . . .. Analytische Methoden. Aussagen über die Qualität. Metriken, Kodierrichtlinien, . . .. Dynamisches Testen Black-Box, White-Box, Regression, Unit, . . .. Formale Methoden Statische Code-Analyse, Model Checking, . . .. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 3/37.

(9) Zuverlässig Software entwickeln? + Ziel: Aussagen zur Korrektheit von funktionalen und nicht-funktionalen Eigenschaften von Software treffen Fokus der Vorlesung: Korrektheit oder zumindest Absenz von Defekten Schrittweise Annäherung über Qualität und Verhalten. Hierfür existieren unterschiedliche Ansätze: Informelle Methoden Inspection, Review, Walkthrough, . . .. Analytische Methoden. Aussagen über die Qualität. Metriken, Kodierrichtlinien, . . .. Dynamisches Testen Black-Box, White-Box, Regression, Unit, . . .. Aussagen über das Verhalten. Formale Methoden Statische Code-Analyse, Model Checking, . . .. pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 3/37.

(10) Zuverlässig Software entwickeln? + Ziel: Aussagen zur Korrektheit von funktionalen und nicht-funktionalen Eigenschaften von Software treffen Fokus der Vorlesung: Korrektheit oder zumindest Absenz von Defekten Schrittweise Annäherung über Qualität und Verhalten. Hierfür existieren unterschiedliche Ansätze: Informelle Methoden Inspection, Review, Walkthrough, . . .. Analytische Methoden. Aussagen über die Qualität. Metriken, Kodierrichtlinien, . . .. Dynamisches Testen Black-Box, White-Box, Regression, Unit, . . .. Aussagen über das Verhalten. Formale Methoden Statische Code-Analyse, Model Checking, . . .. + In dieser Vorlesung steht das Testen des Verhaltens im Vordergrund pu. Verlässliche Echtzeitsysteme (SS 20) 1 Übersicht. 3/37.

(11) Gliederung 1. Testarten und Konzepte Entwicklungsprozess Modultests Black-Box- vs. White-Box-Tests. 2. Bewertung von Testfällen McCabe’s Cyclomatic Complexity Testüberdeckung Grenzen dynamischen Testens. 3. Durchführung und Testumgebung Problemfeld Reproduzierbarkeit Beobachtbarkeit Kontrollierbarkeit. 4. Zusammenfassung. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte. 4/37.

(12) Einordnung in den Entwicklungsprozess Softwareentwicklung nach dem V-Modell wird zugrunde gelegt Validierung Anwendungsszenarien. Anforderungen. Abnahmetest Testfälle. Spezifikation. Systementwurf. Testfälle. Systemtest. Integrationstest. Testfälle Feinentwurf. Modultest. Implementierung Verifikation. Weit verbreitetes Vorgehensmodell in der Softwareentwicklung Absteigender Ast ; Spezifikation, Entwurf, Implementierung Aufsteigender Ast ; Verifikation & Validierung Querbeziehungen ; Testfallableitung. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.1 Entwicklungsprozess. 5/37.

(13) Tests in den verschiedenen Phasen des V-Modells Modultest (engl. unit testing) Diskrepanz zwischen Implementierung und Entwurf/Spezifikation Integrationstest (engl. integration testing) Probleme beim Zusammenspiel mehrere Module Systemtest (engl. system testing) Black-Box-Test auf Systemebene Vergleich: geforderte Leistung ↔ tatsächliche Leistung Funktional: sind alle Merkmale verfügbar Nicht-funktional: wird z.B. ein bestimmter Durchsatz erreicht. Abnahmetest (engl. acceptance testing) Erfüllt das Produkt die Anforderungen des Auftraggebers Korrektheit, Robustheit, Performanz, Dokumentation, . . . Wird durch Anwendungsszenarien demonstriert/überprüft Hier findet also eine Validierung statt, keine Verifikation pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.1 Entwicklungsprozess. 6/37.

(14) Fokus der heutigen Vorlesung Validierung Anwendungsszenarien. Anforderungen. Abnahmetest Testfälle. Spezifikation. Systementwurf. Testfälle. Systemtest. 2. Integrationstest. Testfälle Feinentwurf. Modultest. 1. Implementierung Verifikation 1. Modultests ; Grundbegriffe und Problemstellung A Black- vs. White-Box, Testüberdeckung. 2. Systemtest ; Testen verteilter Echtzeitsysteme A Problemstellung und Herausforderungen pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.1 Entwicklungsprozess. 7/37.

(15) Eigenschaften von Modultests Modultests beziehen sich auf kleine Softwareeinheiten Meist auf Ebene einzelner Funktionen Die Testbarkeit ist zu gewährleisten ; Begrenzung der notwendigen Testfälle. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.2 Modultests. 8/37.

(16) Eigenschaften von Modultests Modultests beziehen sich auf kleine Softwareeinheiten Meist auf Ebene einzelner Funktionen Die Testbarkeit ist zu gewährleisten ; Begrenzung der notwendigen Testfälle. Modultests erfolgen in Isolation. Für den (Miss-)Erfolg ist nur das getestete Modul verantwortlich Andere Module werden durch Attrappen (engl. mock-objects) ersetzt. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.2 Modultests. 8/37.

(17) Eigenschaften von Modultests Modultests beziehen sich auf kleine Softwareeinheiten Meist auf Ebene einzelner Funktionen Die Testbarkeit ist zu gewährleisten ; Begrenzung der notwendigen Testfälle. Modultests erfolgen in Isolation. Für den (Miss-)Erfolg ist nur das getestete Modul verantwortlich Andere Module werden durch Attrappen (engl. mock-objects) ersetzt. Modultests werden fortlaufend durchgeführt Jede Änderung am Quelltext sollte auf ihre Verträglichkeit geprüft werden. A Regressionstests (engl. regression testing) ; Automatisierung notwendig. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.2 Modultests. 8/37.

(18) Eigenschaften von Modultests Modultests beziehen sich auf kleine Softwareeinheiten Meist auf Ebene einzelner Funktionen Die Testbarkeit ist zu gewährleisten ; Begrenzung der notwendigen Testfälle. Modultests erfolgen in Isolation. Für den (Miss-)Erfolg ist nur das getestete Modul verantwortlich Andere Module werden durch Attrappen (engl. mock-objects) ersetzt. Modultests werden fortlaufend durchgeführt Jede Änderung am Quelltext sollte auf ihre Verträglichkeit geprüft werden. A Regressionstests (engl. regression testing) ; Automatisierung notwendig Modultests sollten auch den Fehlerfall prüfen. Es genügt nicht, zu prüfen, dass ein korrektes Ergebnis berechnet wurde. A Der Fehlerfall (Eingaben, Zustand, . . . ) soll einbezogen werden. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.2 Modultests. 8/37.

(19) Eigenschaften von Modultests Modultests beziehen sich auf kleine Softwareeinheiten Meist auf Ebene einzelner Funktionen Die Testbarkeit ist zu gewährleisten ; Begrenzung der notwendigen Testfälle. Modultests erfolgen in Isolation. Für den (Miss-)Erfolg ist nur das getestete Modul verantwortlich Andere Module werden durch Attrappen (engl. mock-objects) ersetzt. Modultests werden fortlaufend durchgeführt Jede Änderung am Quelltext sollte auf ihre Verträglichkeit geprüft werden. A Regressionstests (engl. regression testing) ; Automatisierung notwendig Modultests sollten auch den Fehlerfall prüfen. Es genügt nicht, zu prüfen, dass ein korrektes Ergebnis berechnet wurde. A Der Fehlerfall (Eingaben, Zustand, . . . ) soll einbezogen werden Modultest betrachten die Schnittstelle. pu. Anwendung des Design-By-Contract-Prinzips ; Black-Box-Tests Interne Details (; White-Box-Tests) führen zu fragilen Testfällen Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.2 Modultests. 8/37.

(20) Black-Box- vs. White-Box-Tests Black-Box-Tests Keine Kenntnis der internen Struktur Testfälle basieren ausschließlich auf der Spezifikation Synonyme: funktionale, datengetriebene, E/A-getriebene Tests. + Frage: Wurden alle Anforderungen (fehlerfrei) implementiert?. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.3 Black-Box- vs. White-Box-Tests. 9/37.

(21) Black-Box- vs. White-Box-Tests Black-Box-Tests Keine Kenntnis der internen Struktur Testfälle basieren ausschließlich auf der Spezifikation Synonyme: funktionale, datengetriebene, E/A-getriebene Tests. + Frage: Wurden alle Anforderungen (fehlerfrei) implementiert? White-Box-Tests Kenntnis der internen Struktur zwingend erforderlich Testfälle basieren auf Programmstruktur, Spezifikation wird ignoriert Synonyme: strukturelle, pfadgetriebene, logikgetriebene Tests. + Frage: Wurden nur Anforderungen (fehlerfrei) implementiert?. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.3 Black-Box- vs. White-Box-Tests. 9/37.

(22) Black-Box- vs. White-Box-Tests Black-Box-Tests Keine Kenntnis der internen Struktur Testfälle basieren ausschließlich auf der Spezifikation Synonyme: funktionale, datengetriebene, E/A-getriebene Tests. + Frage: Wurden alle Anforderungen (fehlerfrei) implementiert? White-Box-Tests Kenntnis der internen Struktur zwingend erforderlich Testfälle basieren auf Programmstruktur, Spezifikation wird ignoriert Synonyme: strukturelle, pfadgetriebene, logikgetriebene Tests. + Frage: Wurden nur Anforderungen (fehlerfrei) implementiert? + Weiterer Verlauf der Vorlesung: Fokus auf White-Box-Verfahren Abstrakte Interpretation, Model Checking, Coverage, WP-Kalkül, . . . pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.3 Black-Box- vs. White-Box-Tests. 9/37.

(23) Problem: kombinatorische Explosion Ohne Einsicht in die Programmstruktur ist Testen sehr mühsam!. Beispiel: Modultests für OSEK OS [3] Verschiedene Betriebssystemdienste Fadenverwaltung, Fadensynchronisation, Nachrichtenkommunikation, . . .. Hohe Variabilität 4 Konformitätsklassen: BCC1, BCC2, ECC1, ECC2 3 Varianten der Ablaufplanung (Verdrängbarkeit): NON, MIXED, FULL 2 Betriebsmodi: Betrieb (STANDARD), Entwicklung (EXTENDED) A 24 Varianten für jeden Testfall. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.3 Black-Box- vs. White-Box-Tests. 10/37.

(24) Problem: kombinatorische Explosion Ohne Einsicht in die Programmstruktur ist Testen sehr mühsam!. Beispiel: Modultests für OSEK OS [3] Verschiedene Betriebssystemdienste Fadenverwaltung, Fadensynchronisation, Nachrichtenkommunikation, . . .. Hohe Variabilität 4 Konformitätsklassen: BCC1, BCC2, ECC1, ECC2 3 Varianten der Ablaufplanung (Verdrängbarkeit): NON, MIXED, FULL 2 Betriebsmodi: Betrieb (STANDARD), Entwicklung (EXTENDED) A 24 Varianten für jeden Testfall. Black-Box ; kein Wissen über die interne Struktur nutzbar. konservative Annahme: Parameter beeinflussen sich gegenseitig. A Alle Kombinationen sind relevant: kombinatorische Explosion!. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.3 Black-Box- vs. White-Box-Tests. 10/37.

(25) Problem: kombinatorische Explosion Ohne Einsicht in die Programmstruktur ist Testen sehr mühsam!. Beispiel: Modultests für OSEK OS [3] Verschiedene Betriebssystemdienste Fadenverwaltung, Fadensynchronisation, Nachrichtenkommunikation, . . .. Hohe Variabilität 4 Konformitätsklassen: BCC1, BCC2, ECC1, ECC2 3 Varianten der Ablaufplanung (Verdrängbarkeit): NON, MIXED, FULL 2 Betriebsmodi: Betrieb (STANDARD), Entwicklung (EXTENDED) A 24 Varianten für jeden Testfall. Black-Box ; kein Wissen über die interne Struktur nutzbar. konservative Annahme: Parameter beeinflussen sich gegenseitig. A Alle Kombinationen sind relevant: kombinatorische Explosion! Kombination aus Black- und White-Box-Tests A Unabhängigkeit der Parameter kann evtl. sichergestellt werden A Reduktion der Testfälle bzw. deren Varianten pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 2 Testarten und Konzepte – 2.3 Black-Box- vs. White-Box-Tests. 10/37.

(26) Gliederung 1. Testarten und Konzepte Entwicklungsprozess Modultests Black-Box- vs. White-Box-Tests. 2. Bewertung von Testfällen McCabe’s Cyclomatic Complexity Testüberdeckung Grenzen dynamischen Testens. 3. Durchführung und Testumgebung Problemfeld Reproduzierbarkeit Beobachtbarkeit Kontrollierbarkeit. 4. Zusammenfassung. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen. 11/37.

(27) Hat man genug getestet? Wie viele Testfälle sind genug Testfälle?. Kriterium: Anzahl der Testfälle Basierend auf Metriken McCabe’s Cyclomatic Complexity (MCC), Function/Feature Points, . . .. Mithilfe von Statistiken aus früheren Projekten Kennzahlen früherer Projekte ; Anzahl zu erwartender Defekte. Wie viele Defekte hat man bereits gefunden, wie viele sind noch im Produkt? Wie viele Defekte will/kann man ausliefern? A Übertragbarkeit?. Kriterium: Testüberdeckung Welcher Anteil des Systems wurde abgetestet? Wurden ausreichend viele Programmpfade absolviert? Wurden alle Variablen, die definiert wurden, auch verwendet?. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen. 12/37.

(28) McCabe’s Cyclomatic Complexity [2, Kapitel 8.1] + Maß für die Anzahl der unabhängigen Pfade durch ein Programm A je höher die MCC, desto höher die Komplexität Berechnung basiert auf dem Kontrollflussgraphen Betrachtungsebene wichtig (wir betrachten C-Code) Knoten repräsentieren Anweisungen, Kanten Pfade A Komplexität C: C =e−n+2 e= Ò Anzahl der Kanten (engl. edges), n = Ò Anzahl der Knoten (engl. nodes). Beispiele:. Sequenz C=1. Verzweigung C=2. Do-While C=2. Fallunterscheidung C=3. B Untere Schranke für die Anzahl der Testfälle! In der Praxis gilt ein Wert im Bereich 1 - 10 als akzeptabel pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.1 McCabe’s Cyclomatic Complexity. 13/37.

(29) Grundlegende Überdeckunskriterien Wie sehr wurde ein Modul durch Tests beansprucht?. C0 = s/S Anweisungsüberdeckung (engl. statement coverage) s ; erreichte Anweisungen, S ; alle Anweisungen Findet nicht erreichbaren/getesteten/übersetzten Code Nachteile:. Gleichgewichtung aller Anweisungen Keine Berücksichtigung leerer Pfade oder Datenabhängigkeiten. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 14/37.

(30) Grundlegende Überdeckunskriterien Wie sehr wurde ein Modul durch Tests beansprucht?. C0 = s/S Anweisungsüberdeckung (engl. statement coverage) s ; erreichte Anweisungen, S ; alle Anweisungen Findet nicht erreichbaren/getesteten/übersetzten Code Nachteile:. Gleichgewichtung aller Anweisungen Keine Berücksichtigung leerer Pfade oder Datenabhängigkeiten. C1 = b/B Zweigüberdeckung (engl. branch coverage) b ; ausgeführte primitive Zweige, B ; alle primitiven Zweige Verzweigungen hängen u.U. voneinander ab. A Zweigüberdeckung und dafür benötigte Testfälle sind nicht proportional A Primitive Zweige sind unabhängig von anderen Zweigen Findet nicht erreichbare Zweige, Defekterkennungsrate ca. 33% Nachteile: unzureichende Behandlung von. pu. Abhängigen Verzweigungen Schleifen ; Pfadüberdeckung Komplexe Verzweigungsbedingungen ; Bedingungsüberdeckung. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 14/37.

(31) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 15/37.

(32) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Zweigüberdeckung. 15/37.

(33) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung. Zweigüberdeckung. Test 1: foo(0,0,0). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 15/37.

(34) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung. Zweigüberdeckung. Test 1: foo(0,0,0) Test 2: foo(0,1,-1). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 15/37.

(35) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung. Zweigüberdeckung. Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 15/37.

(36) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Zweigüberdeckung Test 1: foo(0,0,0). 15/37.

(37) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Zweigüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1). 15/37.

(38) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Zweigüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). 15/37.

(39) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Zweigüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1) Test 4: foo(2,1,1). 15/37.

(40) Beispiel: Anweisungs- und Zweigüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Anweisungsüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1). Zweigüberdeckung Test 1: foo(0,0,0) Test 2: foo(0,1,-1) Test 3: foo(2,0,1) Test 4: foo(2,1,1). 100% Zweigüberdeckung 7→ 100% Anweisungsüberdeckung Zweigüberdeckung: weite industrielle Verbreitung Moderater Aufwand, gute Defekterkennungsrate pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 15/37.

(41) Pfadüberdeckung C2 = p/P Pfadüberdeckung (engl. path coverage) Pfade vom Anfangs- bis zum Endknoten im Kontrollflussgraphen. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 16/37.

(42) Pfadüberdeckung C2 = p/P Pfadüberdeckung (engl. path coverage) Pfade vom Anfangs- bis zum Endknoten im Kontrollflussgraphen Abstufungen der Pfadüberdeckung C2 a vollständige Pfadüberdeckung Abdeckung aller möglichen Pfade (C1 plus Beachtung des Pfadkontexts) Problem: durch Schleifen entstehen u. U. unendlich viele Pfade. C2 b boundary-interior Pfadüberdeckung Wie C2 a, Anzahl der Schleifendurchläufe wird auf ≤ 2 beschränkt. C2 c strukturierte Pfadüberdeckung Wie C2 b, Anzahl der Schleifendurchläufe wird auf ≤ n beschränkt. Bedeutung Boundary-Interior boundary Jede Schleife wird 0-mal betreten interior. pu. Jede Schleife wird 1-mal betreten, alle Pfade im Rumpf abgearbeitet Beschränkung: mit 2 bzw. n Durchläufen erreichbare Pfade im Rumpf. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 16/37.

(43) Pfadüberdeckung C2 = p/P Pfadüberdeckung (engl. path coverage) Pfade vom Anfangs- bis zum Endknoten im Kontrollflussgraphen Abstufungen der Pfadüberdeckung C2 a vollständige Pfadüberdeckung Abdeckung aller möglichen Pfade (C1 plus Beachtung des Pfadkontexts) Problem: durch Schleifen entstehen u. U. unendlich viele Pfade. C2 b boundary-interior Pfadüberdeckung Wie C2 a, Anzahl der Schleifendurchläufe wird auf ≤ 2 beschränkt. C2 c strukturierte Pfadüberdeckung Wie C2 b, Anzahl der Schleifendurchläufe wird auf ≤ n beschränkt. Bedeutung Boundary-Interior boundary Jede Schleife wird 0-mal betreten interior. Jede Schleife wird 1-mal betreten, alle Pfade im Rumpf abgearbeitet Beschränkung: mit 2 bzw. n Durchläufen erreichbare Pfade im Rumpf. Hohe Defekterkennungsrate. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 16/37.

(44) Pfadüberdeckung C2 = p/P Pfadüberdeckung (engl. path coverage) Pfade vom Anfangs- bis zum Endknoten im Kontrollflussgraphen Abstufungen der Pfadüberdeckung C2 a vollständige Pfadüberdeckung Abdeckung aller möglichen Pfade (C1 plus Beachtung des Pfadkontexts) Problem: durch Schleifen entstehen u. U. unendlich viele Pfade. C2 b boundary-interior Pfadüberdeckung Wie C2 a, Anzahl der Schleifendurchläufe wird auf ≤ 2 beschränkt. C2 c strukturierte Pfadüberdeckung Wie C2 b, Anzahl der Schleifendurchläufe wird auf ≤ n beschränkt. Bedeutung Boundary-Interior boundary Jede Schleife wird 0-mal betreten interior. Jede Schleife wird 1-mal betreten, alle Pfade im Rumpf abgearbeitet Beschränkung: mit 2 bzw. n Durchläufen erreichbare Pfade im Rumpf. Hohe Defekterkennungsrate Bestimmte Pfade können nicht erreicht werden (bei C2 b und C2 c), hoher Aufwand pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 16/37.

(45) Bedingungsüberdeckung C3 Bedingungsüberdeckung (engl. condition coverage) C0,1,2 : unzureichende Betrachtung von Bedingungen Ihre Zusammensetzung/Hierarchie wird nicht berücksichtigt. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 17/37.

(46) Bedingungsüberdeckung C3 Bedingungsüberdeckung (engl. condition coverage) C0,1,2 : unzureichende Betrachtung von Bedingungen Ihre Zusammensetzung/Hierarchie wird nicht berücksichtigt. Abstufungen der Bedingungsüberdeckung C3 a Einfachbedingungsüberdeckung Jede atomare Bedingung wird einmal mit true und false getestet. C3 b Mehrfachbedingungsüberdeckung Alle Kombinationen atomarer Bedingungen werden getestet. C3 c minimale Mehrfachbedingungsüberdeckung Jede atomare/komplexe Bedingung wird einmal mit true und false getestet. MC/DC (engl. modified condition/decision coverage) Sonderform der C3 c-Überdeckung Jede atomare Bedingung wird mit true und false getestet und . . . Muss zusätzlich die umgebende komplexe Bedingung beeinflussen. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 17/37.

(47) Bedingungsüberdeckung C3 Bedingungsüberdeckung (engl. condition coverage) C0,1,2 : unzureichende Betrachtung von Bedingungen Ihre Zusammensetzung/Hierarchie wird nicht berücksichtigt. Abstufungen der Bedingungsüberdeckung C3 a Einfachbedingungsüberdeckung Jede atomare Bedingung wird einmal mit true und false getestet. C3 b Mehrfachbedingungsüberdeckung Alle Kombinationen atomarer Bedingungen werden getestet. C3 c minimale Mehrfachbedingungsüberdeckung Jede atomare/komplexe Bedingung wird einmal mit true und false getestet. MC/DC (engl. modified condition/decision coverage) Sonderform der C3 c-Überdeckung Jede atomare Bedingung wird mit true und false getestet und . . . Muss zusätzlich die umgebende komplexe Bedingung beeinflussen. Sehr hohe Fehlererkennungsrate. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 17/37.

(48) Bedingungsüberdeckung C3 Bedingungsüberdeckung (engl. condition coverage) C0,1,2 : unzureichende Betrachtung von Bedingungen Ihre Zusammensetzung/Hierarchie wird nicht berücksichtigt. Abstufungen der Bedingungsüberdeckung C3 a Einfachbedingungsüberdeckung Jede atomare Bedingung wird einmal mit true und false getestet. C3 b Mehrfachbedingungsüberdeckung Alle Kombinationen atomarer Bedingungen werden getestet. C3 c minimale Mehrfachbedingungsüberdeckung Jede atomare/komplexe Bedingung wird einmal mit true und false getestet. MC/DC (engl. modified condition/decision coverage) Sonderform der C3 c-Überdeckung Jede atomare Bedingung wird mit true und false getestet und . . . Muss zusätzlich die umgebende komplexe Bedingung beeinflussen. Sehr hohe Fehlererkennungsrate Bestimmte Pfade (z.B. in Schleifen) können nicht erreicht werden, hoher Aufwand pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 17/37.

(49) Beispiel: Bedingungsüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Fokus auf die Bedingung: (a > b && a > c) || c < 0. 3 atomare Teilbedingungen a > b a > c c < 0. 18/37.

(50) Beispiel: Bedingungsüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Fokus auf die Bedingung: (a > b && a > c) || c < 0. 3 atomare Teilbedingungen a > b a > c c < 0. Einfachbedingungsüberdeckung a > b w f. pu. a > c w f. c < 0 w f. Testfall f(1,0,-1) f(0,1,1). Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. 18/37.

(51) Beispiel: Bedingungsüberdeckung int foo(int a,int b,int c) { if((a > b && a > c) || c < 0) { if(a < b) return 1; else { if(b < c) return 2; } } return 4; }. Fokus auf die Bedingung: (a > b && a > c) || c < 0. 3 atomare Teilbedingungen a > b a > c c < 0. Einfachbedingungsüberdeckung a > b w f. a > c w f. c < 0 w f. Testfall f(1,0,-1) f(0,1,1). Modified Condition/Decision Coverage a > b w f w f. pu. a > c w w f f. c < 0 f f f w. (a > b && a > c) || c < 0 w f f w. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.2 Testüberdeckung. Testfall f(1,0,0) f(1,1,0) f(1,0,1) f(-1,0,-1). 18/37.

(52) Testen hat seine Grenzen! + Testen ist im Allgemeinen sehr aufwändig! Ziel müssen möglichst vollständige Tests sein! Aber woher weiß man, dass man genügend getestet hat?. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.3 Grenzen dynamischen Testens. 19/37.

(53) Testen hat seine Grenzen! + Testen ist im Allgemeinen sehr aufwändig! Ziel müssen möglichst vollständige Tests sein! Aber woher weiß man, dass man genügend getestet hat?. B Vollständige Tests sind in der Praxis unrealistisch „. . . wir haben schon lange keinen Fehler mehr gefunden . . . “ Eine Auffassung, der man oft begegnet. A Der entscheidende Fehler kann sich immer noch versteckt halten Therac 25 (s. Folie II/3 ff.) wurde > 2700 Stunden betrieben. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.3 Grenzen dynamischen Testens. 19/37.

(54) Testen hat seine Grenzen! + Testen ist im Allgemeinen sehr aufwändig! Ziel müssen möglichst vollständige Tests sein! Aber woher weiß man, dass man genügend getestet hat?. B Vollständige Tests sind in der Praxis unrealistisch „. . . wir haben schon lange keinen Fehler mehr gefunden . . . “ Eine Auffassung, der man oft begegnet. A Der entscheidende Fehler kann sich immer noch versteckt halten Therac 25 (s. Folie II/3 ff.) wurde > 2700 Stunden betrieben Fehlerfreie Software durch Testen? Praktisch sind Tests für einen Korrektheitsnachweis ungeeignet! Testen kann nur das Vertrauen in Software erhöhen!. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.3 Grenzen dynamischen Testens. 19/37.

(55) Testen hat seine Grenzen! + Testen ist im Allgemeinen sehr aufwändig! Ziel müssen möglichst vollständige Tests sein! Aber woher weiß man, dass man genügend getestet hat?. B Vollständige Tests sind in der Praxis unrealistisch „. . . wir haben schon lange keinen Fehler mehr gefunden . . . “ Eine Auffassung, der man oft begegnet. A Der entscheidende Fehler kann sich immer noch versteckt halten Therac 25 (s. Folie II/3 ff.) wurde > 2700 Stunden betrieben Fehlerfreie Software durch Testen? Praktisch sind Tests für einen Korrektheitsnachweis ungeeignet! Testen kann nur das Vertrauen in Software erhöhen!. Formale Methoden gehen einen anderen Weg Weisen Übereinstimmung anstatt Abweichung nach Gegenstand kommender Vorlesungen pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 3 Bewertung von Testfällen – 3.3 Grenzen dynamischen Testens. 19/37.

(56) Gliederung 1. Testarten und Konzepte Entwicklungsprozess Modultests Black-Box- vs. White-Box-Tests. 2. Bewertung von Testfällen McCabe’s Cyclomatic Complexity Testüberdeckung Grenzen dynamischen Testens. 3. Durchführung und Testumgebung Problemfeld Reproduzierbarkeit Beobachtbarkeit Kontrollierbarkeit. 4. Zusammenfassung. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung. 20/37.

(57) Testen: Ein Problem des „SW-Engineering“ SW-Engineering. Organisation. Verteilte Systeme. Reproduzierbarkeit. Echtzeitsysteme. Beobachtbarkeit. Wirts-/Zielrechner. pu. A. B. A bedingt B. A. B. A beeinflusst B. A. B. anderweitige Beziehung. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.1 Problemfeld. Umgebungssimulation. Repräsentativität. 21/37.

(58) Problemfeld: Reproduzierbarkeit SW-Engineering. Organisation. Verteilte Systeme. Reproduzierbarkeit. Echtzeitsysteme. Beobachtbarkeit. Wirts-/Zielrechner. pu. A. B. A bedingt B. A. B. A beeinflusst B. A. B. anderweitige Beziehung. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. Umgebungssimulation. Repräsentativität. 22/37.

(59) Reproduzierbarkeit Für die Fehlersuche muss man das Fehlverhalten nachstellen können!. + Wichtige Testvariante: Regressionstests (engl. regression testing) Wurde der Fehler auch wirklich korrigiert? Hat die Korrektur neue Defekte verursacht?. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. 23/37.

(60) Reproduzierbarkeit Für die Fehlersuche muss man das Fehlverhalten nachstellen können!. + Wichtige Testvariante: Regressionstests (engl. regression testing) Wurde der Fehler auch wirklich korrigiert? Hat die Korrektur neue Defekte verursacht?. Voraussetzung für Regressionstests ; Reproduzierbarkeit. Andernfalls ist keine Aussage zur Behebung des Fehler möglich Verschiedene Ursachen können dasselbe Symptom hervorrufen. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. 23/37.

(61) Reproduzierbarkeit Für die Fehlersuche muss man das Fehlverhalten nachstellen können!. + Wichtige Testvariante: Regressionstests (engl. regression testing) Wurde der Fehler auch wirklich korrigiert? Hat die Korrektur neue Defekte verursacht?. Voraussetzung für Regressionstests ; Reproduzierbarkeit. Andernfalls ist keine Aussage zur Behebung des Fehler möglich Verschiedene Ursachen können dasselbe Symptom hervorrufen. B Voraussetzung für die Reproduzierbarkeit ist: Beobachtbarkeit und die Kontrollierbarkeit des Systems A Testfälle müssen sich deterministisch verhalten (vgl. Replikdeterminismus IV/16 ff). pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. 23/37.

(62) Reproduzierbarkeit ↔ Beobachtbarkeit Fehlverhalten zu reproduzieren erfordert mehr Wissen, als es zu erkennen.. B Nicht-deterministische Operationen Abhängigkeiten z. B. vom Netzwerkverkehr Zufallszahlen, interne Systemzustände (syscall()), . . .. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. 24/37.

(63) Reproduzierbarkeit ↔ Beobachtbarkeit Fehlverhalten zu reproduzieren erfordert mehr Wissen, als es zu erkennen.. B Nicht-deterministische Operationen Abhängigkeiten z. B. vom Netzwerkverkehr Zufallszahlen, interne Systemzustände (syscall()), . . .. B Ungenügendes Vorabwissen Fadensynchronisation Asynchrone Programmunterbrechungen (engl. interrupts) Zeitbasis der untersuchten Systeme. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. 24/37.

(64) Reproduzierbarkeit ↔ Beobachtbarkeit Fehlverhalten zu reproduzieren erfordert mehr Wissen, als es zu erkennen.. B Nicht-deterministische Operationen Abhängigkeiten z. B. vom Netzwerkverkehr Zufallszahlen, interne Systemzustände (syscall()), . . .. B Ungenügendes Vorabwissen Fadensynchronisation Asynchrone Programmunterbrechungen (engl. interrupts) Zeitbasis der untersuchten Systeme. + Dies sind relevante Ereignisse Sie beeinflussen den Programmablauf Hängen von der Anwendung ab A Identifikation und Beobachtung erforderlich. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. 24/37.

(65) Problemfeld: Fokus „Verteilte Systeme“ SW-Engineering. Organisation. Verteilte Systeme. Reproduzierbarkeit. Echtzeitsysteme. Beobachtbarkeit. Wirts-/Zielrechner. pu. A. B. A bedingt B. A. B. A beeinflusst B. A. B. anderweitige Beziehung. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.2 Reproduzierbarkeit. Umgebungssimulation. Repräsentativität. 25/37.

(66) Beobachtbarkeit verteilter EZS Erfassen des relevanten Verhaltens des Systems und der Umwelt. + Beobachtung aller relevanten Zustände des Systems Ausgaben bzw. Ergebnisse Zwischenzustände und -ergebnisse. 1. pu. Der Effekt/der Einflussnahme auf eine Komponente oder ein System durch die Messung. [1] Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 26/37.

(67) Beobachtbarkeit verteilter EZS Erfassen des relevanten Verhaltens des Systems und der Umwelt. + Beobachtung aller relevanten Zustände des Systems Ausgaben bzw. Ergebnisse Zwischenzustände und -ergebnisse. Problem: Ausgaben beeinflussen das Systemverhalten Ausgaben verzögern Prozesse, Nachrichten, . . . ; Termin. 1. pu. Der Effekt/der Einflussnahme auf eine Komponente oder ein System durch die Messung. [1] Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 26/37.

(68) Beobachtbarkeit verteilter EZS Erfassen des relevanten Verhaltens des Systems und der Umwelt. + Beobachtung aller relevanten Zustände des Systems Ausgaben bzw. Ergebnisse Zwischenzustände und -ergebnisse. Problem: Ausgaben beeinflussen das Systemverhalten Ausgaben verzögern Prozesse, Nachrichten, . . . ; Termin. Problem: Debuggen 7→ Unmöglichkeit globaler Haltepunkte Perfekt synchronisierte Uhren existieren nicht. A Wie soll man Prozesse gleichzeitig anhalten?. 1. pu. Der Effekt/der Einflussnahme auf eine Komponente oder ein System durch die Messung. [1] Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 26/37.

(69) Beobachtbarkeit verteilter EZS Erfassen des relevanten Verhaltens des Systems und der Umwelt. + Beobachtung aller relevanten Zustände des Systems Ausgaben bzw. Ergebnisse Zwischenzustände und -ergebnisse. Problem: Ausgaben beeinflussen das Systemverhalten Ausgaben verzögern Prozesse, Nachrichten, . . . ; Termin. Problem: Debuggen 7→ Unmöglichkeit globaler Haltepunkte Perfekt synchronisierte Uhren existieren nicht. A Wie soll man Prozesse gleichzeitig anhalten?. B Bekanntes Phänomen: Untersuchungseffekt (engl. probe effect)1 Vergleiche Heisenbugs auf Folie III/26. A „Vorführeffekt“ – sobald man hinsieht, ist der Fehler verschwunden A Muss vermieden oder kompensiert werden 1. pu. Der Effekt/der Einflussnahme auf eine Komponente oder ein System durch die Messung. [1] Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 26/37.

(70) Problemfeld: Fokus „Echtzeitsysteme“ SW-Engineering. Organisation. Verteilte Systeme. Reproduzierbarkeit. Echtzeitsysteme. Beobachtbarkeit. Wirts-/Zielrechner. pu. A. B. A bedingt B. A. B. A beeinflusst B. A. B. anderweitige Beziehung. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. Umgebungssimulation. Repräsentativität. 27/37.

(71) Untersuchungseffekt: Verschärfung durch zeitlichen Aspekt. Untersuchungseffekt auf gleichzeitige Prozesse Systemzustand verteilt sich auf mehrere, gleichzeitig ablaufende Prozesse Durch Beeinflussung einzelner Prozesse verändert sich der globale Zustand A Andere Prozesse enteilen dem beeinflussten Prozess A Ein Fehler lässt sich evtl. nicht reproduzieren. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 28/37.

(72) Untersuchungseffekt: Verschärfung durch zeitlichen Aspekt. Untersuchungseffekt auf gleichzeitige Prozesse Systemzustand verteilt sich auf mehrere, gleichzeitig ablaufende Prozesse Durch Beeinflussung einzelner Prozesse verändert sich der globale Zustand A Andere Prozesse enteilen dem beeinflussten Prozess A Ein Fehler lässt sich evtl. nicht reproduzieren. Untersuchungseffekt auf Zeitstempel Neben dem Datum ist häufig ein Zeitstempel notwendig Das Erstellen des Zeitstempels selbst benötigt Zeit (Auslesen eine Uhr, . . . ) Die zu protokollierende Datenmenge wächst ebenfalls an. Untersuchungseffekt bei Kopplung an die physikalische Zeit Das kontrollierte Objekt enteilt dem beeinflussten Prozess. A Auch einzelne Prozesse sind anfällig. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 28/37.

(73) Untersuchungseffekt: Lösungsmöglichkeiten Ignoranz Der Untersuchungseffekt wird schon nicht auftreten. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 29/37.

(74) Untersuchungseffekt: Lösungsmöglichkeiten Ignoranz Der Untersuchungseffekt wird schon nicht auftreten Minimierung Hinreichend effiziente Datenaufzeichnung Kompensation der aufgezeichneten Daten Verhindert nicht die Verfälschung des globalen Zustands. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 29/37.

(75) Untersuchungseffekt: Lösungsmöglichkeiten Ignoranz Der Untersuchungseffekt wird schon nicht auftreten Minimierung Hinreichend effiziente Datenaufzeichnung Kompensation der aufgezeichneten Daten Verhindert nicht die Verfälschung des globalen Zustands. Vermeidung Datenaufzeichnung existiert auch im Produktivsystem Einsatz dedizierter Hardware für die Datenaufzeichnung Einflussnahme wird hinter einer logischen Uhr verborgen Zeitliche Schwankungen sind nicht relevant. A Solange sich eine gewisse Reihenfolge nicht ändert pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.3 Beobachtbarkeit. 29/37.

(76) Kontrollierbarkeit: Ein umfassendes Problem SW-Engineering. Organisation. Verteilte Systeme. Reproduzierbarkeit. Echtzeitsysteme. Beobachtbarkeit. Wirts-/Zielrechner. pu. A. B. A bedingt B. A. B. A beeinflusst B. A. B. anderweitige Beziehung. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. Umgebungssimulation. Repräsentativität. 30/37.

(77) Kontrollierbarkeit + Deterministische Ausführung relevanter Ereignisse Beibehaltung der ursprünglichen Reihenfolge Zeitlich akkurat Umfasst alle relevanten Ereignisse Asynchrone Programmunterbrechungen Interne Entscheidungen des Betriebssystems ; Einplanung, Synchronisation. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 31/37.

(78) Kontrollierbarkeit + Deterministische Ausführung relevanter Ereignisse Beibehaltung der ursprünglichen Reihenfolge Zeitlich akkurat Umfasst alle relevanten Ereignisse Asynchrone Programmunterbrechungen Interne Entscheidungen des Betriebssystems ; Einplanung, Synchronisation. Simulierte Zeit statt realer, physikalischer Zeitbasis Entkopplung von der Geschwindigkeit der realen Welt. A Ansonsten könnte die Fehlersuche sehr, sehr lange dauern . . .. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 31/37.

(79) Kontrollierbarkeit + Deterministische Ausführung relevanter Ereignisse Beibehaltung der ursprünglichen Reihenfolge Zeitlich akkurat Umfasst alle relevanten Ereignisse Asynchrone Programmunterbrechungen Interne Entscheidungen des Betriebssystems ; Einplanung, Synchronisation. Simulierte Zeit statt realer, physikalischer Zeitbasis Entkopplung von der Geschwindigkeit der realen Welt. A Ansonsten könnte die Fehlersuche sehr, sehr lange dauern . . . Ansätze zur Kontrollierbarkeit Analytische Ansätze Record & Replay. Konstruktive Ansätze Statische Quelltextanalyse Quelltexttransformation pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 31/37.

(80) Record & Replay + Vermessung (engl. monitoring) zur Laufzeit Aufzeichnung aller relevanten Ereignisse Dieser Mitschnitt wird später erneut abgespielt A Event histories bzw. event traces. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 32/37.

(81) Record & Replay + Vermessung (engl. monitoring) zur Laufzeit Aufzeichnung aller relevanten Ereignisse Dieser Mitschnitt wird später erneut abgespielt A Event histories bzw. event traces. Vorteil: Lösungen für verteilte Echtzeitsysteme existieren Vermeiden Untersuchungseffekt Decken eine Vielzahl verschiedener Ereignisse ab Systemaufrufe, Kontextwechsel, asynchrone Unterbrechungen, . . . Synchronisation, Zugriffe auf gemeinsame Variablen, . . .. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 32/37.

(82) Record & Replay + Vermessung (engl. monitoring) zur Laufzeit Aufzeichnung aller relevanten Ereignisse Dieser Mitschnitt wird später erneut abgespielt A Event histories bzw. event traces. Vorteil: Lösungen für verteilte Echtzeitsysteme existieren Vermeiden Untersuchungseffekt Decken eine Vielzahl verschiedener Ereignisse ab Systemaufrufe, Kontextwechsel, asynchrone Unterbrechungen, . . . Synchronisation, Zugriffe auf gemeinsame Variablen, . . .. B Nachteil: enorm hoher Aufwand Häufig ist Spezialhardware erforderlich Es fallen große Datenmengen an Aufzeichnung erfolgt i. d. R. auf Maschinencodeebene, Eingaben, . . .. Es können nur beobachtete Szenarien wiederholt werden Änderungen am System machen existierende Mitschnitte u. U. wertlos. Wiederholung & Mitschnitt müssen auf demselben System stattfinden pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 32/37.

(83) Konstruktion von Ausführungsszenarien Identifizierung möglicher Ausführungsszenarien Berücksichtigung von Kommunikation, Synchronisation, Einplanung, . . .. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 33/37.

(84) Konstruktion von Ausführungsszenarien Identifizierung möglicher Ausführungsszenarien Berücksichtigung von Kommunikation, Synchronisation, Einplanung, . . .. Ausführungsszenarien werden erzwungen A Random Scheduler Gleichzeitige Prozesse 7→ sequentielles Programm. Teste Sequentialisierungen statt der gleichzeitigen Prozesse. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 33/37.

(85) Konstruktion von Ausführungsszenarien Identifizierung möglicher Ausführungsszenarien Berücksichtigung von Kommunikation, Synchronisation, Einplanung, . . .. Ausführungsszenarien werden erzwungen A Random Scheduler Gleichzeitige Prozesse 7→ sequentielles Programm. Teste Sequentialisierungen statt der gleichzeitigen Prozesse. Vorgehen ist mit Model Checking vergleichbar. Random Scheduler. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.4 Kontrollierbarkeit. 33/37.

(86) Herausforderungen beim Testen verteilter EZS [4] Ergeben sich vor allem aus der Systemebene. Herausforderungen spezifisch für Echtzeitsysteme Starke Kopplung zur Umgebung Echtzeitsysteme interagieren vielfältig mit dem kontrollierten Objekt. Voranschreiten der realen Zeit nicht vernachlässigbar Physikalische Vorgänge im kontrollierten Objekt sind an die Zeit gekoppelt. Umgebung kann nicht beliebig beeinflusst werden Kontrollbereich der Aktuatoren ist beschränkt. Herausforderungen spezifisch für verteilte Systeme Hohe Komplexität Verteilung erhöht Komplexität ; Allokation, Kommunikation, . . .. Beobachtung und Reproduzierbarkeit des Systemverhaltens Fehlende globale Zeit ; kein eindeutiger globaler Zustand Globale, konsistente Abbilder sind ein großes Problem. + Ähnliche Herausforderungen wie bei Fehlerinjektion pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 4 Durchführung und Testumgebung – 4.5 Überblick. 34/37.

(87) Gliederung 1. Testarten und Konzepte Entwicklungsprozess Modultests Black-Box- vs. White-Box-Tests. 2. Bewertung von Testfällen McCabe’s Cyclomatic Complexity Testüberdeckung Grenzen dynamischen Testens. 3. Durchführung und Testumgebung Problemfeld Reproduzierbarkeit Beobachtbarkeit Kontrollierbarkeit. 4. Zusammenfassung. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 5 Zusammenfassung. 35/37.

(88) Zusammenfassung Testen ist die Verifikationstechnik in der Praxis! Modul-, Integrations-, System- und Abnahmetest. A Kann die Absenz von Defekten aber nie garantieren Modultests sind i. d. R. Black-Box-Tests Black-Box- vs. White-Box-Tests McCabe’s Cyclomatic Complexity ; Minimalzahl von Testfällen Kontrollflussorientierte Testüberdeckung Anweisungs-, Zweig-, Pfad- und Bedinungsüberdeckung Angaben zur Testüberdeckung sind immer relativ!. Testdurchführung in (verteilten) Echtzeitsystemen sind herausfordernd! Problemfeld: Testen verteilter Echtzeitsysteme SW-Engineering, verteilte Systeme, Echtzeitsysteme Untersuchungseffekt, Beobachtbarkeit, Kontrollierbarkeit, Reproduzierbarkeit. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 5 Zusammenfassung. 36/37.

(89) Literaturverzeichnis [1] Hamburg, M. ; Hehn, U. : ISTQB R /GTB Standardglossar der Testbegriffe. (2010) [2] Laplante, P. A.: Real-Time Systems Design and Analysis. third. John Wiley & Sons, Inc., 2004. – ISBN 0–471–22855–9 [3] OSEK/VDX Group: Operating System Specification 2.2.3 / OSEK/VDX Group. 2005. – Forschungsbericht [4] Schütz, W. : Fundamental issues in testing distributed real-time systems. In: Real-Time Systems Journal 7 (1994), Nr. 2, S. 129–157. http://dx.doi.org/10.1007/BF01088802. – DOI 10.1007/BF01088802. – ISSN 0922–6443. pu. Verlässliche Echtzeitsysteme (SS 20) – Kapitel VIII Testen 6 Bibliographie. 37/37.

(90)

Referenzen

ÄHNLICHE DOKUMENTE

Im Beispiel: Alle Methoden k¨ onnen annehmen, dass seminareProStudent und studentenInSeminar die gleichen Daten enthalten, m¨ ussen aber auch sicherstellen, dass das nach ihrer

Nach der Studie zur Gesundheit Erwachsener in Deutschland (DEGS1) des Robert Koch-Institu- tes aus den Jahren 2008 bis 2012 leiden rund 30 Prozent der Bevölkerung unter einer

Mit den Testfällen des Black-Box-Tests wird mit einem Glass-Box-Test-Werkzeug die Programmcode-Überdeckung erhoben, und aus der Auswertung dieser Überdeckung werden dem

In BSN ’05: Proceedings of the IEEE EEE05 international workshop on Business services networks, pages 7–7, Piscataway, NJ, USA, 2005..

Deploying methods of participant observation, semi-structured interview and cognitive mapping, this research visualises and analyses personalised and structural understandings

• beinhaltet weder Zweig- noch Anweisungs¨ uberdeckung all p-uses-Kriterium. • jede Kombination aus Definition und pr¨ adikativer Be-

• pro Eingabebedingung eine g¨ ultige/ung¨ ultige Klasse Beispiel: erstes Zeichen muss Buchstabe sein. g¨ ultige Klasse: erstes Zeichen

As can be seen in Figure 5, the vast majority of USAID funds awarded for post-quake Haiti relief and development have gone to NGOs and contractors not in Haiti, but from the