Methoden des Software Engineering
|
|
|
- Victoria Gerber
- vor 9 Jahren
- Abrufe
Transkript
1 1 Vorlesung Methoden des Software Engineering Block F Test und Validierung F 2 Black-Box-Test und White-Box-Test Christian Prehofer Unter Verwendung von Materialien von Martin Wirsing
2 2 Vorlesungsübersicht A. Einführung Einführung B. Prozess 1. Agile Methoden / Scrum C. Anforderungen 1. Anforderungsanalyse 2. Anforderungsspezifikation 3. Zielorientierte Methoden D. Architektur 1. Methodischer Entwurf 2. Systemarchitektur und Middleware 3. Muster E. Formale Methoden 1. Einführung Formale Methoden 2. Modellprüfung F. Test, Validierung, Verifikation 1. Qualitätsmanagement und SW-Test 2. Black-Box, White-Box test 3. Test-gesteuerter Entwurf B.Prozess 2. Vorgehensmodelle 3. Projektmanagement, Prozessverbesserung
3 Ziele 3 Techniken des Black-Box-Testens und des White-Box-Testens kennen lernen Verschieden Klassen des White-Box Testens verstehen
4 4 Black-Box-Test Anforderungen Ausgabe Eingabe Ereignisse (events)
5 5 White-Box-Test Ziel ist, dass alle Anweisungen, Bedingungen und Pfade mindestens einmal ausgeführt wurden
6 Testen 6
7 Testen 7 Methoden des Black-Box-Test Äquivalenzklassenmethode Methode der Grenzwertanalyse Test von Zustandsautomaten (wird nicht behandelt) Methoden des White-Box-Test kontrollflussorientierte Verfahren Anweisungsüberdeckungsverfahren Kantenüberdeckungsverfahren Bedingungsüberdeckungsverfahren Pfadüberdeckungsverfahren datenflussorientierte Verfahren (wird nicht behandelt )
8 8 Black-Box-Test Anforderungen Ausgabe Eingabe Ereignisse (events)
9 9 Fehlerklassen beim Black-Box-Testen Inkorrekte oder fehlende Funktionen Schnittstellenfehler Fehler in Datenstrukturen oder externem Datenbankzugriff Performanzfehler Fehler bei Initialisierung und Terminierung von Abläufen
10 10 Beispiel { } int abs (int x) if (x >= 0) return x; if (x < 0) return x; Fehlverhalten für alle x<0. Der konkrete Wert von x ist nicht wichtig! Basis für Äquivalenzklassenbildung
11 11 Äquivalenzklassentest: Äquivalenzpartitionierung Eingaben mit der Maus Ausgabeformate Nutzeranfragen Numerische Daten Reaktionen auf Tastatureingabe Partitionierung basiert auf Eingabeformaten Kommandozeileneingabe
12 12 Äquivalenzklassen Gültige Daten Kommandos der Benutzer Antworten auf Systemausgaben Dateinamen Datenstrukturen des Programms physikalische Parameter Grenzwerte Initialisierungswerte initiation values Kommandos zur Formatierung von Ausgabedaten Antworten auf Fehlermeldungen Graphische Daten (z.b. Mausklicks) Ungültige Daten Daten außerhalb der Programmgrenzen Physikalisch unmögliche Daten Richtige Werte, die an falscher Stelle eingegeben werden
13 Äquivalenzklassenmethode und Grenzwertanalyse 13 Äquivalenzklassenmethode (heuristisches Verfahren) Eine Äquivalenzklasse ist eine Menge von Eingabewerten, die auf ein Programm eine gleichartige Wirkung ausüben. Es werden Äquivalenzklassen gültiger und ungültiger Werte gebildet, welche den Eingabebereich abdecken. die Testfälle entsprechen (Kombinationen von) Äquivalenzklassen aus jeder Äquivalenzklasse wird mindestens ein Testdatum gewählt Grenzwertanalyse basierend auf der Äquivalenzklassenmethode aus jeder Äquivalenzklasse werden Testdaten gewählt, welche Grenzwerte der Äquivalenzklassen abdecken
14 Äquivalenzklassenmethode: Beispiel 1 14
15 Äquivalenzklassenmethode: Beispiel 1 15
16 Äquivalenzklassenmethode: Beispiel 2 16
17 Äquivalenzklassenmethode: Beispiel 2 17 Klasse 1 ist eine Klasse ungültiger Werte Weitere ungültige Klassen: Tag, Monat, Jahr nicht im gültigen Wertebereich
18 Äquivalenzklassenmethode: Beispiel 2 18 Nebeneffekt: Es wurde eine Inkonsistenz in der Spezifikation gefunden
19 Grenzen der Black-Box-Tests 19 Methoden des Black-Box-Test alleine sind nicht ausreichend, da die Spezifikation ein höheres Abstraktionsniveau besitzt als die Implementierung nicht alle Elemente einer funktionalen Äquivalenzklasse werden in der Implementierung intern gleich behandelt in der Implementierung kann ein Zustand im Automaten mehreren internen Zuständen entsprechen
20 20 White-Box-Test Ziel ist, dass alle Anweisungen, Bedingungen und Pfade mindestens einmal ausgeführt werden
21 21 Kontrollflussgraph Anweisung Startknoten Bedingung Ein Kontrollflussgraph ist ein gerichteter Graph mit genau einem Start- und genau einem Endknoten. Rechteckige Knoten stellen Anweisungen dar, rautenförmige Knoten Bedingungen. Runde Knoten im Inneren dienen nur zur Zusammenführung von Fallunterscheidungen und können weggelassen werden. Endknoten
22 22 Beispiel Kontrollflussgraph s1 s1; do { b1 if ( b1 ) s2; s2 b2 else { if ( b2 ) s3; s3 s4 else s4; } b3 while (b3) Kontrollflussgraph Programmsegment
23 23 Kontrollfluss-orientierte Testverfahren Kontrollfluss-orientierte Testverfahren orientieren sich am Kontrollflussgraphen des Programms Man unterscheidet folgende Typen von Verfahren: Überdeckung von Anweisungen (C0) Kantenüberdeckung (C1) Bedingungsüberdeckung (C2, C3) Pfadüberdeckung (C4)
24 Anweisungsüberdeckungsverfahren (C0-Test) 24 Kriterium: Wähle eine Testmenge, die alle Anweisungen des Testobjekts ausführt. Es gibt Werkzeugee zur Messung der C0-Überdeckung Schwächen des C0-Verfahrens es müssen nicht alle Wege, die zu einer Anweisung führen überprüft werden: einer genügt unzureichend für den Test von Schleifen Vollständige C0-Überdeckung
25 Beispiel eines fehlerhaften Programmfragments (J. Coldewey) 25 Testdaten t
26 Zweigüberdeckungstest (C1-Test) 26 Kriterium: Wähle eine Testmenge, die alle Kanten des Testobjekts ausführt. C1-Überdeckung enthält Anweisungsüberdeckungstest g und gilt als Minimalkriterium für kontrollflussorientiertes Testen (vorgeschrieben vom Luftfahrtstandard f d RTCA DO-178B ab Stufe B). Es gibt Werkzeuge zur Messung der C1- Überdeckung Schwächen des C1-Verfahrens Wie bei C0 müssen nicht alle Wege, die zu einer Anweisung führen überprüft werden; unzureichend für den Test von Schleifen. Vollständige C1-Überdeckung
27 Bedingungsüberdeckungstest (C2/C3-Test) 27 Kriterium: Wähle eine Testmenge, die alle Bedingungen überdeckt. Beim einfachen Test (C2) werden alle atomaren Teilformeln von Bedingungen ngen auf true und false geprüft. Beim minimalen Mehrfach-Bedingungs- Überdeckungstest werden zusätzlich alle zusammengesetzten Teilformeln auf true und false geprüft. Beim Mehrfach-Bedingungs- Überdeckungstest (C3) werden alle Wahrheitswertekombinationen atomarer Teilformeln l auf true und false geprüft. C2/C3-Überdeckung
28 Beispiel Bedingungsüberdeckung 28 Bedingung der Form: (A B) && C Einfacher Bedingungsüberdeckungstest: 1,3 2, ,8 A B C A B (A B)&&C t - t t t t - f t f f t t t t f t f t f f f - f f Sequentielle ( unvollständige ) Auswertung: Die Testfälle 1,3 werden zusammengefasst, da die Belegung von B keine Rolle spielt. Analog für 7,8. Die drei Testfälle (1,3), 6 und (7,8) bilden eine C2-Überdeckung, da A,B, C jeweils mit true und false belegt werden. Sie bilden auch eine Überdeckung für den minimalen mehrfachen Bedingungsüberdeckungstest, g g da unterschiedliche Werte für A B vorkommen.
29 Beispiel Bedingungsüberdeckung 29 Bedingung der Form: (A B) && C Modifizierter einfacher Bedingungsüberdeckungstest: A B C A B (A B)&&C 1 t t t t t C 2 t t f t f A B t f t t t t f f t f f t t t t f t f t f f f t f f f f f f f Der modifizierte C2-Test fordert, dass jede atomare Teilformel unabhängig von anderen die Gesamtentscheidung beeinflussen kann. Bsp. Tests 5 und 7: Die Belegung von B und das Resultat sind verschieden, während die Belegungen für A und C gleich sind Dies führt zu (mindestens) n+1 Testfällen bei n Teilformeln. Dieser Testtyp ist vorgeschrieben vom Luftfahrtstandard RTCA DO-178B Stufe A.
30 Bedingungsüberdeckungstest (C2/C3-Test) 30 Bemerkungen: Bei sequentieller (unvollständiger) Auswertung subsumiert der C2-Test den C1-Test. Vollständige Belegung beim C3-Test führt zu exponentiellem Anstieg der Testfälle (im Vergleich zur Anzahl der atomaren Teilformeln einer Bedingung). Bedingungsüberdeckungstests sind vor allem interessant, wenn eine komplizierte Verarbeitungslogik vorliegt, die zu kompliziert aufgebauten Entscheidungen führt. Empfohlen wird in diesem Fall der modifizierte C2-Test.
31 Pfadüberdeckungsverfahren 31 Kriterium: Wähle eine Testmenge, die alle Pfade vom Eingangsknoten bis zum Endknoten durchläuft: Nicht realistisch für while-programme, Boundary-interior Pfadtest: Die Anzahl der Wiederholungen in Schleifen wird eingeschränkt. Warum alle Pfade überdecken? Logische Fehler und inkorrekte Annahmen sind umgekehrt proportional p zu der Wahrscheinlichkeit der Ausführung eines Pfads Entwickler glauben häufig, dass ein bestimmter Pfad nicht ausgeführt wird; die Realität verhält sich häufig anders. Tippfehler sind zufällig; sehr wahrscheinlich enthalten ungetestete Pfade Tippfehler.
32 Garantierte Überdeckung: Alle Pfade 32 If-then-else Aber: Es gibt ca =10 14 mögliche Pfade! Schleife< 20x Wenn möglich, setze Modellprüfung ein z.b. zusammen mit Abstraktion. Oder wenn dies nicht erfolgreich:
33 33 Selektives Testen Ein ausgewählter Pfad Schleife < = 20x
34 Zyklomatische Komplexität: Ein Maß für Pfadüberdeckungstesten Berechnung der zyklomatischen Komplexität V(G) : Anzahl der Transitionen Anzahl der Knoten +2 bzw. Anzahl der Bedingungen +1 In diesem Fall, V(G) = 4 V(G) gibt die Anzahl der linear unabhängigen Zyklen von G an (wobei Start- und Endknoten miteinander verbunden werden). V(G) liefert eine obere Schranke für die V(G) liefert eine obere Schranke für die Anzahl der Testfälle, die nötig sind, um alle Anweisungen zu überdecken.
35 Pfadüberdeckungstesten: Beispiel 1 Wg V(G) = 4 gibt es 4 Pfade: Pfad 1: 1,2,3,6,7,8 Pfad 2: 1,2,3,5,7,8 Pfad 3: 1,2,4,7,8 Pfad 4: 1,2,4,7,2,4 7,8 Entwickle daraus Testmengen durch Angabe von geeigneten Inputs.
36 36 Zyklomatische Komplexität Eine Reihe von Industriestudien haben gezeigt, dass die Fehlerwahrscheinlichkeit bei großem V(G) ansteigt. Module V(G) Module in diesem Bereich sind fehleranfälliger
37 Pfadüberdeckungstesten: Bemerkungen Pfadüberdeckungstesten sollte bei kritischen Modulen angewendet werden. Kontrollflussgraphen o sind nicht notwendig, aber hilfreich um die Pfade zu definieren. Jede Verbindung zwischen den Kästchen zählt als eine Transition. Verbindet 4 Kästchen zählt als drei Transitionen
38 38 Testen von Schleifen Einfache Schleife Geschachtelte Schleife Hintereinander- ausführung von Schleifen Unstrukturierte Schleife
39 39 Testen von Schleifen : Einfache Schleifen Minimalbedingungen einfache Schleifen: 1. KEIN Schleifendurchlauf 2. Nur ein Schleifendurchlauf 3. Zwei Schleifendurchläufe 4. m Schleifendurchläufe mit m < n 5. (n-1), n, and (n+1) Schleifendurchläufe wobei n die maximale Anzahl erlaubter Schleifendurchläufe ist
40 40 Geschachtelte Schleifen Naïve Erweiterung des Verfahrens für einfache Schleifen: exponentielle Zunahme der Testfälle Reduktion der Testanzahl: Starte mit der innersten Schleife; setze alle anderen Schleifen auf Minimalwerte Führe Tests für einfache Schleife durch mit zusätzlichen Testfällen für Werte außerhalb der Definitionsbereichs und unmögliche Werte Führe Tests für weiter außen liegende Schleifen durch, wobei die inneren Schleifen auf typischen Werten gehalten werden. Fahre so lange fort, bis alle Schleifen getestet sind
41 41 Strategien zum White-Box-Testen Kontrollfluss-orientierte Tests können nur für kleine Programmsegmente von Hand durchgeführt werden. Sie sind deshalb nur für Unit Tests gut geeignet. Metrik-basierte Werkzeuge machen es möglich, White-Box- Tests auch beim Integrations- und Systemtest einzusetzen.
42 42 Metrik-gesteuerte Systemtestfall-Auswahlstrategie Verwende Äquivalenztests und Grenzwertanalyse für eine vollständige Testsuite von Black-Box-Tests. Führe die Black-Box-Testsuite aus und messe den Überdeckungsgrad. Nomalerweise wird dieser bei 60% bis 70% Anweisungsüberdeckung liegen. Wähle White-Box-Tests so, dass eine bestimmte Überdeckung erreicht wird, wie zb z.b. >95% Anweisungsüberdeckung und >90% Kantenüberdeckung.
43 Zusammenfassung 43 Das Black-Box-Testen geht von der Spezifikation aus und die Interna des Testobjekts sind nicht bekannt. Das White-Box-Testen ergänzt das Black-Box-Testen durch systematisches Explorieren der Struktur des Testobjekts. Wichtige Methoden des Black-Box-Testens sind die Äquivalenzklassenmethode, die Methode der Grenzwertanalyse Wichtige Techniken des White-Box-Testens sind kontrollflussorientierte Verfahren wie etwa Anweisungsüberdeckungsverfahren, Kantenüberdeckungsverfahren, Bedingungsüberdeckungsverfahren, Pfadüberdeckungsverfahren sowie datenflussorientierte Verfahren.
White-Box-Test. Black-Box-Test. Testen. Testen. Vorlesung Methoden des Software Engineering. Martin Wirsing. Einheit D.2,
21.12.04 1 Ziele 21.12.04 2 Vorlesung Methoden des Software Engineering Techniken des Black-Box-Testens und des White-Box-Testens kennen lernen Block D Qualitätssicherung Black-Box-Test und White-Box-Test
Ein Werkzeug zur Überdeckungsmessung für kontrollflussbezogene Testverfahren
Ein Werkzeug zur Überdeckungsmessung für kontrollflussbezogene Testverfahren Hendrik Seffler HU Berlin Abschlussvortrag p. 1/25 Was? Entwicklung eines Werkzeugs zur Überdeckungsmessung für kontrollflussbezogene
Qualitätssicherung von Software
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST 2.3 strukturelle Tests 24.11.2004 Folie 2 Hinweis auf Umfrage wir, das Institut für Informatik
Software Engineering in der Praxis
Inhalt Nachlese Werkzeuge Software Engineering in der Praxis Praktische Übungen Inhalt Nachlese Werkzeuge Josef Adersberger Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität
Software Engineering in der Praxis
Software Engineering in der Praxis Praktische Übungen Pinte, Spisländer FAU Erlangen-Nürnberg Strukturelles Testen 1 / 11 Strukturelles Testen Florin Pinte Marc Spisländer Lehrstuhl für Software Engineering
Software-Test: Funktionstest
0/23 Software-Test: Funktionstest Andreas Zeller Lehrstuhl Softwaretechnik Universität des Saarlandes, Saarbrücken Funktionale Testverfahren 1/23 Funktionale Testverfahren testen gegen die Spezifikation
Software-Test: Strukturtest
Software-est: Strukturtest Andreas Zeller Lehrstuhl für Softwaretechnik Universität des Saarlandes, Saarbrücken 2006-02-02 Welche estfälle auswählen? Ich kann nur eine beschränkte Zahl von Läufen testen
Softwaretechnik II. Sommersemester Grundlagen des Softwaretestens II. Stefan Berlik
1 / 65 Softwaretechnik II Sommersemester 2014 Grundlagen des Softwaretestens II Stefan Berlik Fachgruppe Praktische Informatik Fakultät IV, Department Elektrotechnik und Informatik Universität Siegen 24.
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 25.4.2013: strukturelle Tests Fragen zur Wiederholung robuste vs. nicht-robuste Grenzwertanalyse?
5 Produktqualität Komponenten: Testende Verfahren 2 [stark gekürzt]
1 Software-Qualitätssicherung 2 Einführung und Überblick LE 1 V Unternehmensmodellierung 5 Produktqualität Komponenten: Testende Verfahren 2 [stark gekürzt] Prof. Dr. Helmut Balzert Lehrstuhl für Software-Technik
Testverfahren. Ein Vortrag von: Henryk Scheibner Heng-Leung Chau Johannes Wall Christoph Hertel
Testverfahren Ein Vortrag von: Henryk Scheibner Heng-Leung Chau Johannes Wall Christoph Hertel Gliederung Einführung Testplanung Dokumentation Statische Testverfahren Zielsetzung Testverfahren Automatische
Kontrollflußorientierte Testverfahren. Gliederung
Kontrollflußorientierte Testverfahren Alexander Steinhöfer, Christian Grafe WS0607 / VInf5 Gliederung 1. Definition und Theorie 2. Kontrollflussgraphen 3. Arten 1. Anweisungsüberdeckungstest (C 0 ) 2.
Software Entwicklung 2. Softwaretest
Software Entwicklung 2 Softwaretest Inhalt Testphasen Dynamischer Test Strukturelle, kontrollflussorientierte Verfahren Strukturelle, datenflussorientierte Verfahren Funktionsorientierter Test Literatur
Wiederholung. Testen. Tests nach Methode zum Ableiten der Testfälle White Box Test Black Box Test
Testen Tests nach Lebenzykusphase Unit, Komponententests Integrationstets Systemtests Abnahmetests, Validierung Tests nach Testziel Lasttest Penetrationstests Funktionale Tests... Wiederholung Tests nach
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25
Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife
Peter Liggesmeyer. Software-Qualität. Testen, Analysieren und Verifizieren von Software
Peter Liggesmeyer Software-Qualität Testen, Analysieren und Verifizieren von Software Spektrum Akademischer Verlag Heidelberg» Berlin ( 1 Einführung 1 1.1 Motivation 2 1.2 Terminologie und Begriffsdefinitionen
Hauptseminar Automotive Software Engineering Testen, Rapid Prototyping und x in the loop
Hauptseminar Automotive Software Engineering Testen, Rapid Prototyping und x in the loop Christoph Niedermayr 20.01.2005 Überblick 1 2 X in the loop Rapid Prototyping Begriffe Was versteht man unter statischem
Imperative Programmierung in Java: Kontrollfluß II
2 Imperative Programmierung in va: Kontrollfluß II Martin Wirsing Ziele Lernen imperative Programme in va mit Zuweisung, Block, Fallunterscheidung, Iteration zu schreiben Lernen Kontrollflußdiagramme zur
ASIL-relevante SW-Module identifiziert! Was nun?
ASIL-relevante SW-Module identifiziert! Was nun? ASIL-relevante SW-Module testen Blick in die EN 26262 Häufige Irrtümer in der Praxis Funktionale Tests in die Tiefe Funktionale Tests weiter optimieren
FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung
C Sprachelemente für Übung 2 Typumwandlungen (type casts) Bei Ausdrücken, in denen Operanden mit unterschiedlichem Typ vorkommen, werden diese vom Compiler vor der Ausführung automatisch in einen gemeinsamen
Test-Suite Beurteilung
Test-Suite Beurteilung Seminar: Beiträge zum Software Engineering @FU Berlin, Prof. Dr. Lutz Prechelt WS14/15 - Mehmet Bayram A Verglichene Arbeiten Comparing Non-adequate Test Suites using Coverage Criteria
Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. else
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B P } S 1 {Q} { nicht B P } {Q} {P } if (B) then S 1 {Q} {B P } S 1 {Q} { nicht B P } S 2 {Q} {P } if (B) then S 1 else S 2 {Q} In der Regel für bedingte
Kurs 1613 Einführung in die imperative Programmierung Musterlösung zur Nachklausur am
1 Aufgabe 1 Analysiert man das Verfahren anhand des angegebenen Beispiels, ist schnell zu erkennen, dass das erste Element von infeld2 nach outfeld an Index 2 kopiert wird, das zweite den Index 4 bekommt,
IT-Kennzahlen und Softwaremetriken - Proseminar - im Sommersemester 2010
IT-Kennzahlen und Softwaremetriken - Proseminar - im Sommersemester 2010 - Die Zyklomatische Komplexität - Ein Komplexitätsmaß Gliederung Teil 1 1) Wichtigkeit eines Komplexitätsmaßes 2) Die Zyklomatische
Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 10
Prof. Dr. Wilhelm Schäfer Paderborn, 5. Januar 2015 Christian Brenner Tristan Wittgen Musterlösung zur Vorlesung Modellbasierte Softwareentwicklung Wintersemester 2014/2015 Übungsblatt 10 Aufgabe 1 Decision-Tables
Kurs 1613 Einführung in die imperative Programmierung
Aufgabe 1 Gegeben sei die Prozedur BubbleSort: procedure BubbleSort(var iofeld:tfeld); { var hilf:integer; i:tindex; j:tindex; vertauscht:boolean; i:=1; repeat vertauscht := false; for j := 1 to N - i
Techniken im Software-Test
Techniken im Software-Test München, 4. Juli 2000 Heiko Lötzbeyer Institut für Informatik Lehrstuhl für Technische Universität München Inhalt Ziele des Software Tests Überblick Teststufen Unit-Test Integrationstest
Algorithmen und Datenstrukturen 2. Stefan Florian Palkovits, BSc Juni 2016
Algorithmen und Datenstrukturen 2 Übung 1 Stefan Florian Palkovits, BSc 0926364 [email protected] 12. Juni 2016 Aufgabe 1: Es existiert eine Reduktion von Problem A auf Problem B in O(n 3 +
Methoden des Software Engineering
Vorlesung Methoden des Software Engineering Block F Test und Validierung F 1 Qualitätsmanagement und Software-Test Christian Prehofer Unter Verwendung von Materialien von Martin Wirsing Block F Test und
6 Systematisches Testen von Programmen
6 Systematisches Testen von Programmen Testen Untersuchung des Source-Codes nach Fehlern und Anomalien Stefan Lucks, Software-Entwicklung für Sichere Systeme SS 04, Kapitel 6 p.1/24 Untersuchung des Source-Codes
Beispiel 1 zur Verifikation eines bedingten Anweisung. Hoare-Regel für die bedingte Anweisung. Beispiel 2 zur Verifikation eines bedingten Anweisung
Hoare-Regel für die bedingte Anweisung I1 : I2 : {B und P } S 1 {Q} { nicht B und P } {Q} {P } if (B) then S 1 {Q} {B und P } S 1 {Q} { nicht B und P } S 2 {Q} {P } if (B) then S 1 S 2 {Q} In der Regel
Qualitätssicherung von Software (SWQS)
Qualitätssicherung von Software (SWQS) Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FOKUS 23.4.2013: Testfallauswahl Wo stehen wir? Kapitel 1: Einleitung, Begriffe, Software-Qualitätskriterien
Software Engineering II (IB) Testen von Software / Modultests
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 21:17 Inhaltsverzeichnis Programm-Tests.................................. 2 Ziele des Testens..................................
Algorithmen & Programmierung. Steuerstrukturen im Detail Selektion und Iteration
Algorithmen & Programmierung Steuerstrukturen im Detail Selektion und Iteration Selektion Selektion Vollständige einfache Selektion Wir kennen schon eine Möglichkeit, Selektionen in C zu formulieren: if
Korrektheit und Hoare-Kalkül für Imperative Programme
Korrektheit und Hoare-Kalkül für Imperative Programme Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 Ziele Partielle und totale Korrektheit kennen lernen Die Regeln des Hoare-Kalkül
Testen. SEPR Referat: Testen - Oliver Herbst
Testen Inhalt 1. Grundlagen des Testens 2. Testen im Softwarelebenszyklus 3. Statischer Test 4. Dynamischer Test 5. Besondere Tests 2 1. Grundlagen des Testens 3 Grundlagen des Testens Motivation erfüllt
Abschnitt 11: Korrektheit von imperativen Programmen
Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961
Java Anweisungen und Ablaufsteuerung
Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
Aufgaben Objektentwurf
Aufgaben Objektentwurf (Einschub zum 5. Tutorium) Tutorium 6 13. März 2009 Svetlana Matiouk, Uni Bonn Ferientutorien zur Vorlesung Softwaretechnologie WS 2008 6. Treffen, Aufgabe 1 Vorwärtsmodellierung
Fachgruppe Praktische Informatik
Fachgruppe Praktische Informatik Verifikation, Validation und Testen sicherheitskritischer Systeme Ausarbeitung im Rahmen des Seminars Sicherheitskritische Systeme von Chandra Kurnia Jaya betreut durch
5.3 Korrektheit und Verifikation
5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann
5.3 Korrektheit und Verifikation
5.3 Korrektheit und Verifikation Korrektheit bedeutet, dass ein Algorithmus oder ein Programm das in der Spezifikation beschriebene Problem für beliebige Eingabedaten korrekt löst. Die Korrektheit kann
Einführung in die Informatik 1
Einführung in die Informatik 1 Algorithmen und algorithmische Sprachkonzepte Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 [email protected] Sprechstunde: Freitag,
Überdeckungs-, Last- und Stresstest
Überdeckungs-, Last- und Stresstest Stefanie Brose, Linh Phong Le Methoden und Werkzeuge zur Softwareproduktion Technische Universität Berlin WS 2004/2005 [email protected], [email protected] Abstract
Schleifen in C/C++/Java
Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.
SE Besprechung. Übung 6 Softwaretests
SE Besprechung Übung 6 Softwaretests SE, 15.12.09 Dustin Wüest Tutoren für Informatik IIa Modellierung Voraussetzung Informatik IIa (oder vergleichbar) erfolgreich besucht Aufgaben Korrektur der Aufgaben
Klausur Softwaretechnik I
Klausur Softwaretechnik I 06.08.2009 Prof. Dr. Walter F. Tichy Dipl.-Inform. A. Höfer Dipl.-Inform. D. Meder Hier das Namensschild aufkleben. Zur Klausur sind keine Hilfsmittel und kein eigenes Papier
Semestrale Softwaretechnik: Software-Engineering
Semestrale Softwaretechnik: Software-Engineering Dr. Bernhard Rumpe WS 2002/2003 06. Februar 2003 Nachname: Vorname: Matrikelnummer: Hauptfach: Informatik als: [ ] Diplom [ ]Bachelor [ ]Master [ ]Nebenfach
Softwaretechnik 1 Tutorium
Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Tutorium 06. Juli 2009 Matthias Thoma ([email protected]) Heute Übungsblatt Nr. 4 + Übungsblatt Nr. 5 Softwarequalität
Funktionale Testverfahren. Black Box-Tests. Unsystematisches Testen. Unsystematisches Testen (2) Überblick:
Funktionale Testverfahren Überblick: Programmstruktur hat keinen Einfluss auf Testfälle Funktionale Testverfahren Black Box-Tests 155 Testfälle werden aus der Spezifikation abgeleitet hat das Programm
Schleifen. JOHANNES KEPLER UNIVERSITY LINZ Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 45
Schleifen Research and teaching network Softwareentwicklung 1 (gtec) Hanspeter Mössenböck, Herbert Prähofer 45 While-Schleife Führt eine Anweisungsfolge aus, solange eine bestimmte Bedingung gilt i 1 sum
FOM Hochschule für Ökonomie und Management Essen. IT-Management. Seminararbeit im Modul Software-Engineering, IT-Projekt- und Qualitätsmanagement
FOM Hochschule für Ökonomie und Management Essen IT-Management Seminararbeit im Modul Software-Engineering, IT-Projekt- und Qualitätsmanagement Dynamische Testverfahren: Ein Vergleich zwischen White- und
Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit
1 DYNAMISCHER TEST Whitebox Testen mit JUnit Übersicht 2 1. Grundlagen des Unittests 1. Units 2. Unit Testing 2. Testverfahren 1. Blackbox 2. Whitebox 3. Unit Testing mit Eclipse 4. Besprechung der Übungsaufgabe
Verifizierende Testverfahren
Spezifikation Um einen Algorithmus zu schreiben, muss das zu lösende Problem genau beschrieben sein. Eine Spezifikation ist Verifizierende Testverfahren vollständig, wenn alle Anforderungen/alle relevanten
Software Engineering Testen von Software (1)
Software Engineering Testen von Software (1) Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik Hochschule Kaiserslautern, Standort Zweibrücken 1 Qualitätssicherung (engl.:
Komplexität von Algorithmen:
Komplexität von Algorithmen: Ansatz: Beschreiben/erfassen der Komplexität über eine Funktion, zur Abschätzung des Rechenaufwandes abhängig von der Größe der Eingabe n Uns interessiert: (1) Wie sieht eine
2 Teil 2: Nassi-Schneiderman
2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der
3: Systematisches Testen
Stefan Lucks 3: Systematisches Testen 70 E für Sichere Vert. Systeme (2007) 3: Systematisches Testen Testen ist ein Prozess, ein Programm mit der Absicht auszuführen, Fehler zu finden. Man muss destruktiv
Binary Decision Diagrams (Einführung)
Binary Decision Diagrams (Einführung) Binary Decision Diagrams (BDDs) sind bestimmte Graphen, die als Datenstruktur für die kompakte Darstellung von booleschen Funktionen benutzt werden. BDDs wurden von
Javakurs für Anfänger
Javakurs für Anfänger Einheit 05: Weitere Kontrollstrukturen Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme 1. Teil: Weitere Kontrollstrukturen Wiederholungsstrukturen (Schleifen) While-,do-,for-Schleifen
Testen mit Use Cases. Chris Rupp Dr. Stefan Queins
Testen mit Use Cases Chris Rupp Dr. Stefan Queins Das Problem Requirements- Engineering Was kann passieren? Was ist das gewünschte Verhalten? Was soll ich testen? Welche Eingaben benötigt mein Testpfad?
Qualitätssicherung im Data Warehouse Bereich. Michael Cordes Holger Oehring Matthias Rein
Qualitätssicherung im Data Warehouse Bereich Michael Cordes Holger Oehring Matthias Rein Ziele Motivation / Notwendigkeit von QS-Maßnahmen Methoden der Qualitätssicherung Durchführung von Tests Etablierung
Projektmanagement: Qualitätsmanagement
Projektmanagement: Qualitätsmanagement Martin Wirsing Institut für Informatik Ludwig-Maximilians-Universität München WS 2006/07 Ziele Grundlegende Begriffe von Softwarequalität und Methoden und Vorgehensweisen
Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt.
Formale Verifikation von Algorithmen 1.3 Verifikation Problem: Gegeben Spezifikation (P,Q) und Implementierung S Gesucht formaler (automatisierbarer?) Beweis, dass S (P,Q) erfüllt. Bisher nicht möglich
,$ -. "+0 *+*+ ! / -#$%$. #$%'' $ () 1 2$ #$%$! 1 2$3 )!
*+*+ *,$ -.! / -#$%$. #$%'' $ () "+0 *+*+ 4 *+*+ 1 2$ #$%$! 1 2$3 )! 1 *+*+ $& #$%'!' '!' 5 1! 1 4$5%! 1 63$ 1 $7$! 1 3! 1 77 8'7 1 /!$' 1 83% *+*+ 0 #$%'' '' #$%'' ''$' )%! $' #$% 5 87 $ 8$! 7$+ 1 #$%9$
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung
Kryptographische Protokolle
Kryptographische Protokolle Lerneinheit 2: Generierung von Primzahlen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Wintersemester 2018/2019 15.11.2018 Einleitung Einleitung Diese Lerneinheit
Kapitel 10. Komplexität von Algorithmen und Sortieralgorithmen
Kapitel 10 Komplexität von Algorithmen und Sortieralgorithmen Arrays 1 Ziele Komplexität von Algorithmen bestimmen können (in Bezug auf Laufzeit und auf Speicherplatzbedarf) Sortieralgorithmen kennenlernen:
Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt
Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften
Strukturorientierter Softwaretest Erstellung eines Tools zur Überdeckungsmessung
Strukturorientierter Softwaretest Erstellung eines Tools zur Überdeckungsmessung Ronny Treyße & Hendrik Seffler HU Berlin Themenvorstellung p.1/33 Aufgabenstellung Überdeckungstesttool für C++ & Java Das
Kontrollstrukturen -- Schleifen und Wiederholungen
Kontrollstrukturen -- Schleifen und Wiederholungen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14
Qualitätssicherung und Testen
Qualitätssicherung und Testen Dr. Friederike Nickl [email protected] Softwareentwicklung, Produkt- und Informations- Service GmbH Berliner Straße 85, 80805 München Gliederung 1. Qualitätsmanagement
Einfache Bedingte Ausführung
Kontrollstrukturen Bisher Programme mit Funktionen als einfache Folge von Befehlen Ablauf von Programmen darüber hinaus steuerbar über Bedingte Ausführung: Ausführung von Programmteilen (Befehlen oder
EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17
EINI LW/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 16/17 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund [email protected]
Algorithmen und Datenstrukturen 2
Algorithmen und Datenstrukturen Lerneinheit : Kürzeste Pfade in Graphen Prof. Dr. Christoph Karg Studiengang Informatik Hochschule Aalen Sommersemester 016.6.01 Einleitung Diese Lerneinheit beschäftigt
Relationen und DAGs, starker Zusammenhang
Relationen und DAGs, starker Zusammenhang Anmerkung: Sei D = (V, E). Dann ist A V V eine Relation auf V. Sei andererseits R S S eine Relation auf S. Dann definiert D = (S, R) einen DAG. D.h. DAGs sind
C. A. R. Hoare. An Axiomatic Basis for Computer Programming. Nicolas Schelp. Proseminar Assertions SS 2007
C. A. R. Hoare An Axiomatic Basis for Computer Programming Nicolas Schelp Proseminar Assertions SS 2007 Inhalt Motivation Kurze Biographie Der Hoare-Kalkül Axiome und Inferenzregeln des Hoare-Kalküls Die
zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme
Bisher Datentypen: einfach Zahlen, Wahrheitswerte, Zeichenketten zusammengesetzt Arrays (Felder) zur Verwaltung mehrerer zusammengehörender Daten desselben Datentypes eindimensional, mehrdimensional, Array-Grenzen
4.4 Imperative Algorithmen Verzweigung und Iteration
Eine weitere bedingte Schleife kann in Java mit dem Schlüsselwort for definiert werden: for (; i ; ) Alle drei Bestandteile im Schleifenkopf sind Ausdrücke
