Software Engineering Testen von Software (1)

Größe: px
Ab Seite anzeigen:

Download "Software Engineering Testen von Software (1)"

Transkript

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

2 Qualitätssicherung (engl.: quality assurance) (Vorschau auf Projektmanagement) Konstruktive Maßnahmen Z. B. Einhalten von Styleguides, Anwendung von Entwurfsprinzipien wie lose Kopplung, Nutzung von Entwurfsmustern, Analytische Maßnahmen Statisch: Z. B. Code-Reviews, automatisierte Code-Analyse, Kennzahlen (etwa zur Code-Komplexität durch tiefe Verschachtelungen), Dynamisch: Testen, d. h. Ausführen von Code mit dem Ziel, festzustellen ob er das tut was er soll und Abweichungen vom Soll-Verhalten, d. h. Fehler, zu finden 2

3 Was sind funktionale und nicht-funktionale Testziele eines Software Tests? Funktionalität Zuverlässigkeit Benutzbarkeit ( usability test ) Effizienz Änderbarkeit Prüfbarkeit Übertragbarkeit System-weiteTests Load (innerhalb der Spezifikation) Volumentest Stress (Toleranztest) Performance, Zeit 3

4 4

5 Teststufen Unit-Test:. Allg. Begriff für Klassentest, Modultest oder Komponententest Klassentest: Methoden einer einzelnen Klasse Kettentest: Zusammenspiel entlang von Assoziationen (über verschiedene Klassen hinweg) Module: Zusammenspiel der Klassen Komponenten: via Interfaces, API o.ä. Integrationstests Allgemein: Verbinden bereits getesteter Units zu größeren Teilsystemen, um deren Zusammenspiel zu testen Beispiel: Last-Test der Komponenten Datenhaltung und Warenabgleich Systemtest Test des Gesamtsystems (alle Komponenten, reale Daten und Anforderunge) Beispiel: funktionaler Systemtest Abnahmetest Ausführend: Kunde Grundlage für die Abnahme durch den Kunden

6 Fachbegriffe zu Fehler Fehlhandlung (engl. error) Beispiele: Ein Entwickler implementiert einen Algorithmus falsch Ein Anwender bedient ein System falsch Fehlerzustand (engl. fault) Beispiele: Inkorrektes Teilprogramm, das bei der Ausführung zu einer Fehlerwirkung führt Zustand einer Komponente, die unter einer hohen Belastung die Funktionsfähigkeit beeinträchtigt Fehlerwirkung (engl. failure) Wirkung eines Fehlerzustands, die nach außen in Erscheinung tritt Abweichung zwischen Sollwert und Ist-Wert Nach: Vigenschow Uwe, Testen von Software und Embedded Systems. 2. Auflage. Dpunkt 2010.

7 Testen mehr Fachbegriffe Verifikation Prüfung, ob das Testobjekt seine dokumentierte Spezifikation erfüllt. Insbesondere in den Stufen Unit- und Integrationstest. Validierung Prüfung, ob das Testobjekt den Kundenanforderungen tatsächlich entspricht. Insbesondere in den Stufen System- und Abnahmetest. Regressionstest Wiederholung bereits erfolgreich durchgeführter Tests nach erfolgten Änderungen. Überprüft, ob die Änderungen Fehler in den bisher bereits funktionierenden Teilen verursacht haben. Testfall Besteht aus Testablauf (beim Testen durchzuführende Schritte) und Testdaten (Eingabedaten und erwartete Resultate) 7

8 Man kann nicht alles testen Eine kleine Funktion: public void funktion(double a, double b, double c, double d, double e, double f, double g){ for(int i=0;!fertig && i<20; i++){ if(a>b){ //... Anweisungen1 else { if (c<d){ if(d==e){ //... Anweisungen2 else { //... Anweisungen3 else { if(g>f){ //... Anweisungen4 else { //... Anweisungen 8

9 Kontrollflussgraph Erstellen eines Kontrollflussgraphen: Die einzelnen Anweisungen werden als Knoten dargestellt, die entsprechend ihrer Reihenfolge unter Berücksichtigung von Verzweigungen und Schleifen verbunden werden. Aufeinanderfolgende Anweisungen ohne zwischendurch ein- oder ausgehende Kanten können zu einem Knoten zusammengefasst werden 9

10 Kontrollflussgraph 1 int i=0 true 2 3 if(!fertig && i<20) true if(a>b) false false Ende 4 Anweisungen1 if(c<d) true false if(d==e) true false true 7 if(g>f) false 8 Anweisungen2 9 Anweisungen3 10 Anweisungen4 11 Anweisungen 12 i++ 10

11 Testfallexplosion 1 2 Wie viele mögliche Pfade gibt es durch diesen Kontrollflussgraphen? Bei 1-maligem Durchlaufen der Schleife: Bei 2-maligem Durchlaufen: * Bei 20-maligem Durchlaufen: Gesamtzahl möglicher Kombinationen: Ca. 100 Billarden 3 Manueller Test mit Minuten pro Testfall: ca. 1 Mrd. Jahre Automatisierter Test mit Mikrosekunden pro Testfall: 19 Jahre

12 Testfallexplosion 1 Vollständiger Test ist nicht durchführbar Da man nur einen kleinen Teil aller möglichen Fälle testen kann, sollte man die Testfälle so auswählen, dass man möglichst große Chancen hat, viele Fehler zu finden

13 Test Methodiken ( test design ) Interne Struktur der Methoden berücksichtigt Zusammenspiel Komponenten getestet Reine Außensicht, keine Interna berücksichtigt Quelle: Stephan Kleuker, Grundkurs Software Prof. Engineering A. Müller, mit FH UML. KL 2. Aufl. Vieweg Software Engineering

14 Black Box Ansatz: Äquivalenzklassenbildung Äquivalenzklasse Die Menge aller möglichen Eingabewerte wird in Äquivalenzklassen unterteilt Für Eingabewerte, die sich in einer Äquivalenzklasse befinden, müsste sich das Testobjekt gleich verhalten Es müssen daher nur einige Repräsentanten aus jeder Äquivalenzklasse getestet werden Auch Äquivalenzklassen für ungültige Eingaben Interessant: Prüfung der Grenzen von Äquivalenzklassen und Werte in Grenznähe (z. B. bei double) Auch sehr große und sehr kleine Werte testen (Wertebereichsüberschreitungen!) Beispiel: Mathematische Betragsfunktion Äquivalenzklassen: negative Werte, positive Werte, Null 14

15 Beispiel für Äquivalenzklassenbildung Gegeben sei der folgende Konstruktor: public Studierender(String name, int geburtsjahr, Fachbereich fachbereich) Gültigkeitsregeln: Name darf nicht leer sein Geburtsjahr zwischen 1900 und 2010 (jeweils inklusive) Fachbereich aus einer Aufzählung: IMST, BWL, AING Äquivalenzklassen Ä1) Name nicht leer (gültig) Ä2) Name leer (ungültig) Ä3) Geburtsjahr < 1900 (ungültig) Ä4) 1900 <= Geburtsjahr <= 2010 (gültig) Ä) Geburtsjahr > 2010 (ungültig) Ä) Fachbereich IMST (gültig) Ä7) Fachbereich BWL (gültig) Ä8) Fachbereich AING (gültig) Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

16 Beispiel für Äquivalenzklassenbildung Kombination der Parameter Ein Testfall gültiger Eingaben kann beliebige gültige Werte kombinieren Beim Test ungültiger Werte müssen die anderen Werte gültig sein Testnr Geprüfte Äquivalenzklassen Ä1, Ä4, Ä Ä7 Ä8 Ä2 Ä3 Ä Name Meyer Schmidt Schulz Becker Maurer Geburtsjahr Fachbereich IMST BWL AING IMST BWL AING Ergebnis ok ok ok Abbruch Abbruch Abbruch Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

17 Äquivalenzklassen: Grenzwertanalyse Insbesondere bei Zahlen: Außer Werten irgendwo in der Mitte auch die Grenzen testen. Grenzen sind fehlerträchtig (z. B. < statt <= verwendet ) Hier: Jahreszahlen Obere Grenze für Ä3: 1899 Untere Grenze für Ä4: 1900 Obere Grenze für Ä4: 2010 Untere Grenze für Ä: 2011 Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

18 Äquivalenzklassen: Grenzwertanalyse Es ergeben sich folgende weitere Testfälle Testnr Geprüfte Äquivalenzklassen Ä4U Ä4O Ä3O ÄU Name Meyer Schmidt Schulz Schneider Geburtsjahr Fachbereic h IMST BWL AING IMST Ergebnis ok ok Abbruch Abbruch Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

19 Äquivalenzklassen Abhängigkeiten der Parameter Die Parameter können sich gegenseitig beeinflussen Die folgende Methode soll den größten der drei Werte zurückgeben Als Werte sind beliebige Integer-Werte zulässig, d. h. es gibt für jeden Parameter eigentlich nur eine Äquivalenzklasse Aber: Die Werte können sich gegenseitig beeinflussen Siehe nächste Folie Theoretisch müsste man alle unterschiedlichen Kombinationen von Werten testen, bei denen public static int max(int x, int y, int z) x=y, x>y, x<y, x=z, x<z, x>z, y=z, y>z, y<z Führt bei größeren Beispielen wiederum zu Testfall-Explosionen Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

20 Äquivalenzklassen Abhängigkeiten der Parameter Fehlerhafte Implementierung: Die Fehler werden nicht gefunden bei folgenden Test Aber bei: Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg public static int max(int x, int y, int z) { int max = 0; if (x > z) max = x; if (y > x) max = y; if (z > y) max = z; return max; max(1, 2, 3) max(3, 2, 1) max(2, 3, 1) max(3, 1, 2) max(3, 3, 3) 20

21 Äquivalenzklassen und Objektorientierung Die Ergebnisse einer Methode hängen oft auch von Attributwerten ab. Solche Attribute sind als zusätzliche Parameter zu berücksichtigen. Beispiel: Es soll geprüft werden, ob eine Bestellung ohne weitere Liquiditätsprüfung genehmigt wird. Für geprüfte Kunden soll die Bestellung immer möglich sein, für sonstige Kunden muss eine Prüfung ab 00 erfolgen. Beim Testen der Methode einkaufssummepruefen( ) muss neben der Bestellsumme auch berücksichtigt werden, ob der Kunde geprüft ist. public class Zahlungspruefung { private boolean istgeprueft; public boolean einkaufssummepruefen(int wert){ boolean ergebnis = false; if(istgeprueft wert<00){ ergebnis = true; return ergebnis; public void setgeprueft(boolean geprueft){ this.istgeprueft = geprueft; Prof. A. Müller, FH KL Software Engineering 201 Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg 2013 (modifiziert) 21

22 White-Box Ansatz: Code-Überdeckung beim Testen Beispiel: 0 public int bonus(int score, int alt) { int ergebnis 1= 0; if (score > 200) ergebnis = 20; else ergebnis 2 = ; 3 if (alt > 42 & score > 900) ergebnis += 10; return ergebnis; if (alt > 42 4 int ergebnis = 0 if (score > 200) bnis = 20 ergebnis = nis += 10 & score > 900) return ergebnis Kontrollflussgraph int ergebnis = 0; if (score > 200) ergebnis = 20; ergebnis = ; ergebnis += 10; t t f f if (alt > 42 & score > 900) return ergebnis; Beispiel und Abbildung aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

23 White-Box Ansatz: Anweisungsüberdeckung Jede Anweisung (jeder Knoten wird durchlaufen). Anweisungsüberdeckung (C0-Überdeckung) Anzahl der besuchten Knoten / Anzahl aller Knoten Test T1 T2 T3 T1+T3 score alt ergebnis C0 / 4/ / / Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

24 White-Box Ansatz: Zweigüberdeckung Zweigüberdeckung (C1-Überdeckung): Anzahl der besuchten Kanten / Anzahl aller Kanten Test T1 T2 T3 T1+T3 T1+T2 score alt ergebnis C1 4/7 3/7 4/7 /7 7/7 Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

25 Aufgabe Betrachtet wird noch einmal das Beispiel zur Berechnung des Maximum von drei Werten: Erstellen Sie den Kontrollflussgraphen Erstellen Sie Testfälle public static int max(int x, int y, int z) { int max = 0; if (x > z) max = x; if (y > x) max = y; if (z > y) max = z; return max; a. Mit denen Sie eine vollständige Anweisungsüberdeckung erreichen b. Mit denen Sie eine vollständige Zweigüberdeckung erreichen (jeweils nur so viele Testfälle, wie unbedingt nötig) Treten bei Ihren Testfällen die Fehler auf? Findet man die Fehler zwangsläufig mit Hilfe der vollständigen Anweisungs- oder Zweigüberdeckung? Beispiel aus: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

26 Vollständige Anweisungsüberdeckung ohne Finden der Fehler 7 = max (, 7, 4) 7 = max (4,, 7) 0 max = 0 0 max = 0 max = x 2 7 max = y max = z if (x>z) 7 if (y>x) 4 7 if (z>y) max = x max = y 7 max = z if (x>z) 4 if (y>x) 7 if (z>y) 7 return max 7 7 return max 7 Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

27 Vollständige Zweigüberdeckung ohne Finden der Fehler 7 = max (7,, 4) 7 = max (, 7, 4) 7 = max (4,, 7) 0 max = 0 0 max = 0 0 max = 0 Zweigüberdeckung ohne Finden der Fehler 7 max = x 2 max = y 4 max = z if (x>z) max = x 2 7 if (y>x) 7 max = y 4 4 if (z>y) max = z return max if (x>z) max = x 7 if (y>x) max = y return max if (z>y) 7 max = z if (x>z) 4 if (y>x) 7 if (z>y) return max 7 Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

28 public int max(int x, int y, int z){ int max = 0; if (x>z) max = x; if (y>x) max = y; if (z>y) max = z; return max; 3 Pfadüberdeckung (C2) Jeder Pfad, d. h. jede mögliche Kombination (Sequenz) von Zweigen muss durchlaufen werden In diesem Beispiel gibt es 2 = 8 Pfade, allerdings sind nicht alle erreichbar max = x max = y max = z x>z T T T F T F F F y>x T T F T F T F F z>y T F T T F F T F Beispielwerte Nicht erreichb int max = 0 if (x>z) if (y>x) if (z>y) 7,9, 9,,7,7,9 9,7,,7,,,7,, return max Hinweis: bei Schleifen wird meist eine bestimmte Mindestzahl von Schleifendurchläufen gefordert Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

29 Pfadüberdeckung (C2) Warum findet man bei Pfadüberdeckung mehr Fehler als bei Zweigüberdeckung? Beispiel: public int einemethode(int x, int y){ int a; if(x>0){ a=0; else { a=1; if (y>0){ return /a; else { return a; Mit den Testfällen (2, -1) und (-3, ) erreicht man alle Zweige, findet aber den Fehler nicht Vollständige Pfadüberdeckung ist recht aufwändig, daher in der Praxis meist nicht realisierbar 30

30 Bedingungsüberdeckung (C3) Durch Anweisungs- oder Zweigüberdeckung werden u. U. wichtige Situationen bzgl. der Variablenwerte übersehen Z. B. können beide Fälle der Anweisung if (a b) erreicht werden ohne dass b je true ist (indem a einmal true und einmal false gesetzt wird). Daher werden die im Programm verwendeten Bedingungen analysiert. Zusammengesetzte Bedingungen setzen sich aus atomaren Bedingungen zusammen Eine atomare Bedingung lässt sich nicht weiter zerlegen, z. B. x >=. Negierte atomare Bedingungen gelten ebenfalls als atomar, z. B.!(x>=) Dies entspricht ja x< Beispiel: Der Ausdruck ( (x==1) (x>10) ) && ( (y<) (y>=40) ) besteht aus den atomaren Ausdrücken x==1 x>10 y< y>=40 31

31 Einfache Bedingungsüberdeckung (C3a-Überdeckung) Jede im Programm vorkommende atomare Bedingung muss einmal wahr und einmal falsch sein (jede atomare Bedingung wird einmal mit true und false getestet). Die bereits betrachtete Methode bonus( ) enthält 3 atomare Bedingungen: score>200 alt > 42 score > 900 public int bonus(int score, int alt) { int ergebnis = 0; if (score > 200) ergebnis = 20; else ergebnis = ; if (alt > 42 & score > 900) ergebnis += 10; return ergebnis; Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

32 Einfache Bedingungsüberdeckung (C3a-Überdeckung) Betrachtung einiger Testfälle: Test T1 T2 T3 T1+T2 T4 T2+T4 score alt ergebnis score > 200 t f f t f t f t alt > 42 t t t t f t f score > 900 t f t t f t f t C2 3/ 3/ 3/ / 3/ / Die einfache Bedingungsüberdeckung garantiert nicht zugleich Anweisungs- oder Zweigüberdeckung So wird durch T2 und T4 nie die Anweisung ergebnis += 10 erreicht Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

33 Minimale Mehrfachüberdeckung (C3c-Überdeckung) Hierbei werden alle Teilbedingungen betrachtet. Neben den atomaren Bedingungen sind dies alle enthaltenen zusammengesetzten Ausdrücke. Jede atomare Bedingung und die Gesamtbedingungen werden mit true und false getestet. Dabei soll jeder atomare Wert innerhalb eines Ausdrucks mindestens einmal positiv und negativ den Wert des kompletten Ausdrucks entscheidend beeinflussen. Für ( (x==1) (x>10) ) && ( (y<) (y>=40) ) sind dies: x==1 x>10 y< y>=40 (x==1) (x>10) (y<) ( y>=40) ( (x==1) (x>10) ) && ( (y<) (y>=40) ) Die minimale Mehrfachüberdeckung beinhaltet die Zweig- und damit die Anweisungsüberdeckung Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

34 Minimale Mehrfachüberdeckung (C3c-Überdeckung) Teilbedingungen im Beispiel score>200 alt > 42 score > 900 alt>42 && score > 900 public int bonus(int score, int alt) { int ergebnis = 0; if (score > 200) ergebnis = 20; else ergebnis = ; if (alt > 42 & score > 900) ergebnis += 10; return ergebnis; Test T1 T2 T3 T T1+T2 T1+T score alt ergebnis 30 1 score > 200 t f f f t f t f alt > 42 t t t f t t f score > 900 t f t f t f t f alt > 42 t f t f t f t f && score >900 C3 4/8 4/8 4/8 4/8 7/8 8/8 Quelle: Stephan Kleuker, Qualitätssicherung durch Softwaretests. Springer Vieweg

35 Modified condition/decision coverage (C3c-Überdeckung) Every point of entry and exit in the program has been invoked at least once, every condition in a decision in the program has taken on all possible outcomes at least once, and each condition has been shown to affect that decision outcome independently. A condition is shown to affect a decision's outcome independently by varying just that condition while holding fixed all other possible conditions. The condition/decision criterion does not guarantee the coverage of all conditions in the module because in many test cases, some conditions of a decision are masked by the other conditions. Using the modified condition/decision criterion, each condition must be shown to be able to act on the decision outcome by itself, everything else being held fixed. The MC/DC criterion is thus much stronger than the condition/decision coverage. Mehr dazu: 3

36 Kurzname erfüllte Bedingung Durchführbarkeit Anweisungsüberdeckungstest C 0 Zweigüberdeckungstest C 1 jede Anweisung wird mindestens einmal ausgeführt jede Kante im KFG wird mindestens einmal durchlaufen relativ einfach realistische Mindestanforderung, vertretbarer Aufwand Pfadüberdeckungstest C 2 Vollständig C 2 a Alle möglichen Pfade werden durchlaufen unmöglich bei Schleifen Boundary-Interior C 2 b wie C 2 a, Schleifen werden jedoch nach speziellen Regeln durchlaufen aufwendig Strukturiert Bedingungsüberdeckungste st Einfachbedingung C 2 c C 3 C 3 a wie C 2 b, Schleifen werden jedoch genau n-mal durchlaufen jede atomare Bedingung wird einmal mit true und false getestet aufwendig Mehrfachbedingung C 3 b jede true/false Kombination der atomaren Bedingungen wird getestet sehr hoher Aufwand Minimale Mehrfachbedingung C 3 c jede atomare Bedingung und die Gesamtbedingung wird mit true und false getestet hoher Aufwand Quelle: 37

37 Aufgabe Gegeben ist die folgende Methode public int methode(int a, int b, int c, int d){ int x=0; if(((a>b)&&(b==c)) (d<0)) x=1; else if(d>10) x=2; return x; Geben Sie Testfälle an, um die folgenden Überdeckungen komplett zu erreichen 1. Schritt 1:Einfache Bedingungsüberdeckung 2. Schritt 2: Minimale Mehrfachbedingungsüberdeckung (jeweils nur so viele Testfälle, wie unbedingt nötig) 38

38 Lösungsvorschlag public int methode(int a, int b, int c, int d){ int x=0; if(((a>b)&&(b==c)) (d<0)) x=1; else if(d>10) x=2; return x; a b c d a>b b==c d<0 d>10 (a>b)&&(b==c)) ((a>b)&&(b==c)) (d<0) T1 T2 39

39 Lösungsvorschlag: T1, T2 Einfache Bedingungsüberdeckung: Fälle 1-4 Min. Mehrfachbedingungsüberdeckung: Fälle T1 a 10 T2 b 8 10 c 8 7 d a>b t f b==c t f d<0 t f d>10 f t (a>b)&&(b==c)) t f ((a>b)&&(b==c)) (d<0) t f public int methode(int a, int b, int c int x=0; if(((a>b)&&(b==c)) (d<0)) x=1; else if(d>10) x=2; return x; 40

40 Datenflussorientierte Überdeckungen public class Problem { public static int mach(boolean a, boolean b) { int x = 0; if (a) x = 2; else x = 3; if (b) return ( / (x - 3)); else return ( / (x - 2)); public static void main(string[] args) { System.out.println(mach(true, true)); System.out.println(mach(false, false)); Die beiden Tests liefern vollständige Zweigüberdeckung und minimale Mehrfachüberdeckung, decken die Fehler aber nicht auf Zusammenhänge bzgl. der an die Variable x zugewiesenen Werte nicht berücksichtigt 41

41 Datenflussorientierte Überdeckungen in mach(boolean a, boolean b) Definition von a und b Nutzg. von a in Entscheidung 1 2 int x=0 if(a) Definition von x Spielt hier keine Rolle, da der Wert von x auf allen Pfaden vor der Nutzung neu definiert wird Definition von x 3 4 x=2 x=3 Definition von x Nutzung von b in Entscheidung if(b) Nutzung von x in Berechnung return (/(x-3) 7 return (/(x-2) Nutzung von x in Berechnung Verschiedene Überdeckungsmaße, z. B. Es müssen alle Pfade von einer Definition zu ihrer Nutzung in Entscheidungen getestet werden Es müssen alle Pfade von einer Definition zu ihrer Nutzung in Berechnungen getestet werden Es müssen alle Pfade von einer Definition zu ihrer Nutzung getestet werden 42

42 Auswahl des geeigneten Überdeckungsmaßes Je umfassender das Überdeckungsmaß und je höher der Abdeckungsgrad, desto höher die Chance, dass evtl. vorhandene Fehler gefunden werden Minimale Mehrfachüberdeckung ist besser als Zweigüberdeckung etc. 80% Abdeckung ist besser als 0% Abdeckung Andererseits steigt die Zahl der Testfälle und damit der Testaufwand an Es müssen Aufwand und Nutzen gegeneinander abgewogen werden Z. B. muss sicherheitskritischer Code möglichst vollständig getestet werden, wogegen bei unkritischem Code geringere Abdeckungen vertretbar sein können Meist ist es sinnvoll, zumindest Zweigüberdeckung anzustreben. 43

Whitebox-Tests: Allgemeines

Whitebox-Tests: Allgemeines -Tests: Allgemeines Andere Bezeichnungen Logic driven, Strukturelles Der Tester entwickelt Testfälle aus einer Betrachtung der Ablauflogik des Programms unter Berücksichtigung der Spezifikation Intuitiv

Mehr

Probeklausur Softwareengineering SS 15

Probeklausur Softwareengineering SS 15 Probeklausur Softwareengineering SS 15 Hinweis: Die Bearbeitungsdauer entspricht dem Punktewert. Aufgabe 1 (10 min) Beschreiben Sie das Vorgehensmodell Test-Driven-Development (TDD) a) Erläutern Sie das

Mehr

Testen - Konzepte und Techniken

Testen - Konzepte und Techniken Testen - Konzepte und Techniken Magdalena Luniak 21.11.2007 Magdalena Luniak () Testen - Konzepte und Techniken 21.11.2007 1 / 42 Übersicht 1 Motivation 2 Grundbegrie 3 Testen im Softwareentwicklungsprozess

Mehr

Überdeckungsmessung von Java-Programmen

Überdeckungsmessung von Java-Programmen Überdeckungsmessung von Java-Programmen TAV 20, 16.-17. Oktober 2003 method-park, Erlangen Mario Winter, Hans-Gerd Wefels FH Köln Überdeckungsmessung von Java-Programmen Dynamischer Test in der Praxis

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE16-Rekursion (Stand 09.12.2011) Aufgabe 1: Implementieren Sie in Java ein Programm, das solange einzelne Zeichen vom Terminal einliest, bis ein #-Zeichen

Mehr

Softwaretechnik 1 Tutorium

Softwaretechnik 1 Tutorium Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Softwaretechnik 1 Tutorium 06. Juli 2009 Matthias Thoma (s_thoma@ira.uka.de) Heute Übungsblatt Nr. 4 + Übungsblatt Nr. 5 Softwarequalität

Mehr

Hauptseminar Automotive Software Engineering Testen, Rapid Prototyping und x in the loop

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

Mehr

Testen. SEPR Referat: Testen - Oliver Herbst

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

Mehr

SEP 114. Design by Contract

SEP 114. Design by Contract Design by Contract SEP 114 Design by Contract Teile das zu entwickelnde Programm in kleine Einheiten (Klassen, Methoden), die unabhängig voneinander entwickelt und überprüft werden können. Einheiten mit

Mehr

Software Engineering Interaktionsdiagramme

Software Engineering Interaktionsdiagramme Software Engineering Interaktionsdiagramme Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Nachrichtenaustausch Welche Nachrichten werden ausgetauscht? (Methodenaufrufe)

Mehr

Qualitätsmanagement im Projekt

Qualitätsmanagement im Projekt Software-Engineering Qualitätsmanagement im Projekt Vorlesung im Wintersemester 2008/2009 Fakultät Wirtschaftsinformatik Klaus Mairon, M.Sc. Inhalte Messen und Bewerten: Metriken in der Qualitätssicherung

Mehr

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS 12. - Ohne Gewähr -

PRÜFUNG FÜR ELEKTROINGENIEURE. Softwaretechnik I. Musterlösung SS 12. - Ohne Gewähr - PRÜFUNG FÜR ELEKTROINGENIEURE Softwaretechnik I Musterlösung SS 12 - Ohne Gewähr - LfdNr. Thema Punkte Zeitbedarf in min 1 Analyse und Entwurf 15 30 2 Basistechniken und Test 15 30 3 Projektmanagement

Mehr

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim

Test-Strategien. Grundsätzliches Blackbox-Testen Whitebox-Testen Graybox-Testen Ablauf von Tests Zusammenfassung. HS Mannheim Test- Grundsätzliches - - - Ablauf von Tests Grundsätzliche Test- -Tests Äquivalenzklassenbildung Randwertanalyse -Tests Man unterscheidet verschiedene Überdeckungsgrade: Statement Coverage Decision Coverage,

Mehr

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung

Projektmanagement. Vorlesung von Thomas Patzelt 9. Vorlesung Projektmanagement Vorlesung von Thomas Patzelt 9. Vorlesung 1 Pläne Kein Plan überlebt die erste Feindberührung - Feldmarschall Helmuth von Moltke Prognosen sind schwierig, besonders wenn sie die Zukunft

Mehr

Software Engineering Klassendiagramme Assoziationen

Software Engineering Klassendiagramme Assoziationen Software Engineering Klassendiagramme Assoziationen Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Lesen von Multiplizitäten (1) Multiplizitäten werden folgendermaßen

Mehr

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009

Komponententest. Testen von Software Systemen. Übung 02 SS 2009 Version: 1.0 09.06.2009 Testen von Software Systemen Übung 02 SS 2009 Version: 1.0 09.06.2009 Komponententest Kunde: Dr. Reinhold Plösch Dr. Johannes Sametinger Kundenreferenz: 259.019 Team 19 Mitarbeiter: Christian Märzinger

Mehr

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen

Übungen 19.01.2012 Programmieren 1 Felix Rohrer. Übungen Übungen if / else / else if... 2... 2 Aufgabe 2:... 2 Aufgabe 3:... 2 Aufgabe 4:... 2 Aufgabe 5:... 2 Aufgabe 6:... 2 Aufgabe 7:... 3 Aufgabe 8:... 3 Aufgabe 9:... 3 Aufgabe 10:... 3 switch... 4... 4 Aufgabe

Mehr

Klassen von Testfällen. 3. Äquivalenzklassentests. Äquivalenzklassenbildung. Beispiele für Äquivalenzklassen von Eingaben

Klassen von Testfällen. 3. Äquivalenzklassentests. Äquivalenzklassenbildung. Beispiele für Äquivalenzklassen von Eingaben 3. tests Motivation der Äquivalenzidee typische Findung von integrierte Grenzwertanalyse abgeleitete Testfälle Klassen von Testfällen In der Literatur gibt es recht unterschiedlich detaillierte Klassifizierungen

Mehr

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse Übung 03: Schleifen Abgabetermin: xx.xx.xxxx Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Prähofer) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 03.1 12

Mehr

Überblick. Lineares Suchen

Überblick. Lineares Suchen Komplexität Was ist das? Die Komplexität eines Algorithmus sei hierbei die Abschätzung des Aufwandes seiner Realisierung bzw. Berechnung auf einem Computer. Sie wird daher auch rechnerische Komplexität

Mehr

Kurs 1613 Einführung in die imperative Programmierung

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

Mehr

Erwin Grüner 09.02.2006

Erwin Grüner 09.02.2006 FB Psychologie Uni Marburg 09.02.2006 Themenübersicht Folgende Befehle stehen in R zur Verfügung: {}: Anweisungsblock if: Bedingte Anweisung switch: Fallunterscheidung repeat-schleife while-schleife for-schleife

Mehr

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse:

Informationssystemanalyse Problemstellung 2 1. Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: Informationssystemanalyse Problemstellung 2 1 Problemstellung Trotz aller Methoden, Techniken usw. zeigen Untersuchungen sehr negative Ergebnisse: große Software-Systeme werden im Schnitt ein Jahr zu spät

Mehr

Programmiertechnik II

Programmiertechnik II Modultests Ziele Überprüfung der Korrektheit eines Moduls Korrektheit: Übereinstimmung mit (informaler) Spezifikation Modul: kleine testbare Einheit (Funktion, Klasse) Engl.: unit test White box testing

Mehr

5. Tutorium zu Programmieren

5. Tutorium zu Programmieren 5. Tutorium zu Programmieren Dennis Ewert Gruppe 6 Universität Karlsruhe Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl Programmierparadigmen WS 2008/2009 c 2008 by IPD Snelting

Mehr

Java-Programmierung mit NetBeans

Java-Programmierung mit NetBeans Java-Programmierung mit NetBeans Steuerstrukturen Dr. Henry Herper Otto-von-Guericke-Universität Magdeburg - WS 2012/13 Steuerstrukturen Steuerstrukturen Verzweigungen Alternativen abweisende nichtabweisende

Mehr

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders

Mehr

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer

Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Fachdidaktik der Informatik 18.12.08 Jörg Depner, Kathrin Gaißer Klassendiagramme Ein Klassendiagramm dient in der objektorientierten Softwareentwicklung zur Darstellung von Klassen und den Beziehungen,

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum

Mehr

Software - Testung ETIS SS05

Software - Testung ETIS SS05 Software - Testung ETIS SS05 Gliederung Motivation Was ist gute Software? Vorurteile gegenüber Testen Testen (Guidelines + Prinzipien) Testarten Unit Tests Automatisierte Tests Anforderungen an Testframeworks

Mehr

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = 0.51129 Euro ergeben. Aufgabe 1.30 : Schreibe ein Programm DM_in_Euro.java zur Umrechnung eines DM-Betrags in Euro unter Verwendung einer Konstanten für den Umrechnungsfaktor. Das Programm soll den DM-Betrag als Parameter verarbeiten.

Mehr

Testen Prinzipien und Methoden

Testen Prinzipien und Methoden Testen Prinzipien und Methoden ALP 2 SS2002 4.7.2002 Natalie Ardet Definition Im folgenden gilt: Software = Programm + Daten + Dokumentation Motivation Software wird immer mehr in Bereichen eingesetzt,

Mehr

Java: Vererbung. Teil 3: super() www.informatikzentrale.de

Java: Vererbung. Teil 3: super() www.informatikzentrale.de Java: Vererbung Teil 3: super() Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und IMMER zuerst den Konstruktor der Elternklasse auf! Konstruktor und Vererbung Kindklasse ruft SELBSTSTÄNDIG und

Mehr

Testen mit JUnit. Motivation

Testen mit JUnit. Motivation Test First Design for Test in Eclipse (eigentlich: ) zu einer Klasse Beispiel zur Demonstration Ergänzungen Test First "Immer dann, wenn Du in Versuchung kommst, etwas wie eine print- Anweisung oder einen

Mehr

Institut für Automatisierungs- und Softwaretechnik DIPLOMHAUPTPRÜFUNG FÜR ELEKTROINGENIEURE SOFTWARETECHNIK I. Musterlösung SS 05

Institut für Automatisierungs- und Softwaretechnik DIPLOMHAUPTPRÜFUNG FÜR ELEKTROINGENIEURE SOFTWARETECHNIK I. Musterlösung SS 05 DIPLOMHAUPTPRÜFUNG FÜR ELEKTROINGENIEURE SOFTWARETECHNIK I Musterlösung SS 05 LfdNr. Thema Punkte Zeitbedarf in min 1 Softwarefehler und Test 17 35 2 Projektmanagement 15 30 3 Strukturierte Analyse 18

Mehr

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008

Diplomarbeit. Konzeption und Implementierung einer automatisierten Testumgebung. Thomas Wehrspann. 10. Dezember 2008 Konzeption und Implementierung einer automatisierten Testumgebung, 10. Dezember 2008 1 Gliederung Einleitung Softwaretests Beispiel Konzeption Zusammenfassung 2 Einleitung Komplexität von Softwaresystemen

Mehr

Primzahlen und RSA-Verschlüsselung

Primzahlen und RSA-Verschlüsselung Primzahlen und RSA-Verschlüsselung Michael Fütterer und Jonathan Zachhuber 1 Einiges zu Primzahlen Ein paar Definitionen: Wir bezeichnen mit Z die Menge der positiven und negativen ganzen Zahlen, also

Mehr

In dieser Aufgabe sollen Teile eines kleinen Pong-Spiels analysiert und implementiert werden. Gegeben sei dazu das folgende Szenario:

In dieser Aufgabe sollen Teile eines kleinen Pong-Spiels analysiert und implementiert werden. Gegeben sei dazu das folgende Szenario: IF1-Informatik Eph GK (GA) Bearbeitungszeit: 90 min. Seite 1 Aufgabe 1: Greenfoot mit Kara Ein Pong-Spiel In dieser Aufgabe sollen Teile eines kleinen Pong-Spiels analysiert und implementiert werden. Gegeben

Mehr

Objektorientierte Programmierung

Objektorientierte Programmierung Universität der Bundeswehr Fakultät für Informatik Institut 2 Priv.-Doz. Dr. Lothar Schmitz FT 2006 Zusatzaufgaben Lösungsvorschlag Objektorientierte Programmierung Lösung 22 (Java und UML-Klassendiagramm)

Mehr

extreme Programming (XP) Hermann Götz Sergij Paholchak Agenda Was ist XP? Grundprinzipien Der Entwicklungsprozess Die Projektplanung Praktiken Vorteile und Nachteile Wann macht XP Sinn für ein Projekt?

Mehr

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!. 040304 Übung 9a Analysis, Abschnitt 4, Folie 8 Die Wahrscheinlichkeit, dass bei n - maliger Durchführung eines Zufallexperiments ein Ereignis A ( mit Wahrscheinlichkeit p p ( A ) ) für eine beliebige Anzahl

Mehr

Prüfung Software Engineering I (IB)

Prüfung Software Engineering I (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 3 A Wintersemester 2014/15 Prüfung Software Engineering I (IB) Datum : 21.01.2015, 14:30 Uhr Bearbeitungszeit

Mehr

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern

Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung. Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern Projektmanagement Vorlesung 14/ 15: Wiederholung ausgewählter Themen zur Klausurvorbereitung Prof. Adrian Müller, PMP, PSM-1, CSM FH Kaiserslautern phone: +49 631/3724-5329 http://www.hs-kl.de/~amueller

Mehr

Prüfung Computation, Programming

Prüfung Computation, Programming Prüfung Computation, Programming 1. Computation: Reguläre Ausdrücke [5 Punkte] Zusammenfassung reguläre Ausdrücke a Das Zeichen a. Ein beliebiges Zeichen [abc] Ein beliebiges Zeichen aus der Menge {a,

Mehr

Einführung in die Programmierung

Einführung in die Programmierung : Inhalt Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund - mit / ohne Parameter - mit / ohne Rückgabewerte

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Moritz Hammer und Axel Rauschmayer SS 06 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel eines Programms

Mehr

2015-06-11 Tagesprogramm

2015-06-11 Tagesprogramm 1 2015-06-11 Tagesprogramm Design-by-Contract 2 Vertragspartner Anbieter (Server) bietet Leistungen (Services) an Kunde (Client) nimmt von Anbietern angebotene Leistungen in Anspruch Details der Inanspruchnahme

Mehr

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen:

Erweiterung der Aufgabe. Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: VBA Programmierung mit Excel Schleifen 1/6 Erweiterung der Aufgabe Die Notenberechnung soll nicht nur für einen Schüler, sondern für bis zu 35 Schüler gehen: Es müssen also 11 (B L) x 35 = 385 Zellen berücksichtigt

Mehr

Der Zwei-Quadrate-Satz von Fermat

Der Zwei-Quadrate-Satz von Fermat Der Zwei-Quadrate-Satz von Fermat Proseminar: Das BUCH der Beweise Fridtjof Schulte Steinberg Institut für Informatik Humboldt-Universität zu Berlin 29.November 2012 1 / 20 Allgemeines Pierre de Fermat

Mehr

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als

Mehr

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {... PIWIN I Kap. 8 Objektorientierte Programmierung - Vererbung 31 Schlüsselwort: final Verhindert, dass eine Methode überschrieben wird public final int holekontostand() {... Erben von einer Klasse verbieten:

Mehr

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007 Fachhochschule Bonn-Rhein-Sieg University of Applied Sciences Fachbereich Informatik Prof. Dr. Peter Becker Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

Mehr

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Unterrichtsmaterialien in digitaler und in gedruckter Form Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis Das komplette Material finden Sie hier: Download bei School-Scout.de

Mehr

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes. Binäre Bäume Definition: Ein binärer Baum T besteht aus einer Menge von Knoten, die durch eine Vater-Kind-Beziehung wie folgt strukturiert ist: 1. Es gibt genau einen hervorgehobenen Knoten r T, die Wurzel

Mehr

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen Alexander Schunk Henry Trobisch Inhalt 1. Vergleich der Unit-Tests... 2 2. Vergleich der Codeabdeckungs-Tests... 2 3. Vergleich

Mehr

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7

Java 7. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Dezember 2011 JAV7 Java 7 Elmar Fuchs Grundlagen Programmierung 1. Ausgabe, Dezember 2011 JAV7 5 Java 7 - Grundlagen Programmierung 5 Kontrollstrukturen In diesem Kapitel erfahren Sie wie Sie die Ausführung von von Bedingungen

Mehr

Java Kurs für Anfänger Einheit 5 Methoden

Java Kurs für Anfänger Einheit 5 Methoden Java Kurs für Anfänger Einheit 5 Methoden Ludwig-Maximilians-Universität München (Institut für Informatik: Programmierung und Softwaretechnik von Prof.Wirsing) 22. Juni 2009 Inhaltsverzeichnis Methoden

Mehr

Grundlagen der Theoretischen Informatik, SoSe 2008

Grundlagen der Theoretischen Informatik, SoSe 2008 1. Aufgabenblatt zur Vorlesung Grundlagen der Theoretischen Informatik, SoSe 2008 (Dr. Frank Hoffmann) Lösung von Manuel Jain und Benjamin Bortfeldt Aufgabe 2 Zustandsdiagramme (6 Punkte, wird korrigiert)

Mehr

Einführung in die Programmierung

Einführung in die Programmierung Technische Universität München WS 2003/2004 Institut für Informatik Prof. Dr. Christoph Zenger Testklausur Einführung in die Programmierung Probeklausur Java (Lösungsvorschlag) 1 Die Klasse ArrayList In

Mehr

Übersicht Programmablaufsteuerung

Übersicht Programmablaufsteuerung Übersicht Programmablaufsteuerung Konditionale Verzweigung: if - else switch-anweisung Schleifenkonstrukte: while, do - while for Schleife Sprung-Anweisungen: break, continue, goto, return Anweisungen

Mehr

15 Optimales Kodieren

15 Optimales Kodieren 15 Optimales Kodieren Es soll ein optimaler Kodierer C(T ) entworfen werden, welcher eine Information (z.b. Text T ) mit möglichst geringer Bitanzahl eindeutig überträgt. Die Anforderungen an den optimalen

Mehr

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen

- Zweimal Wöchentlich - Windows Update ausführen - Live Update im Norton Antivirusprogramm ausführen walker radio tv + pc GmbH Flüelerstr. 42 6460 Altdorf Tel 041 870 55 77 Fax 041 870 55 83 E-Mail info@walkerpc.ch Wichtige Informationen Hier erhalten sie einige wichtige Informationen wie sie ihren Computer

Mehr

Anforderungen an die HIS

Anforderungen an die HIS Anforderungen an die HIS Zusammengefasst aus den auf IBM Software basierenden Identity Management Projekten in NRW Michael Uebel uebel@de.ibm.com Anforderung 1 IBM Software Group / Tivoli Ein Feld zum

Mehr

Mathematische Grundlagen der Informatik 2

Mathematische Grundlagen der Informatik 2 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Emanuel Duss emanuel.duss@gmail.com 12. April 2013 1 Zusammenfassung Math2I Mathematische Grundlagen der Informatik 2 Dieses Dokument basiert

Mehr

Kapiteltests zum Leitprogramm Binäre Suchbäume

Kapiteltests zum Leitprogramm Binäre Suchbäume Kapiteltests zum Leitprogramm Binäre Suchbäume Björn Steffen Timur Erdag überarbeitet von Christina Class Binäre Suchbäume Kapiteltests für das ETH-Leitprogramm Adressaten und Institutionen Das Leitprogramm

Mehr

Zeichen bei Zahlen entschlüsseln

Zeichen bei Zahlen entschlüsseln Zeichen bei Zahlen entschlüsseln In diesem Kapitel... Verwendung des Zahlenstrahls Absolut richtige Bestimmung von absoluten Werten Operationen bei Zahlen mit Vorzeichen: Addieren, Subtrahieren, Multiplizieren

Mehr

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität

Mehr

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt?

Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Ohne Fehler geht es nicht Doch wie viele Fehler sind erlaubt? Behandelte Fragestellungen Was besagt eine Fehlerquote? Welche Bezugsgröße ist geeignet? Welche Fehlerquote ist gerade noch zulässig? Wie stellt

Mehr

Informationsblatt Induktionsbeweis

Informationsblatt Induktionsbeweis Sommer 015 Informationsblatt Induktionsbeweis 31. März 015 Motivation Die vollständige Induktion ist ein wichtiges Beweisverfahren in der Informatik. Sie wird häufig dazu gebraucht, um mathematische Formeln

Mehr

6 Systematisches Testen von Programmen

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

Mehr

Information Systems Engineering Seminar

Information Systems Engineering Seminar Information Systems Engineering Seminar Algorithmische Prüfung der Planarität eines Graphen Marcel Stüttgen, 22.10.2012 FH AACHEN UNIVERSITY OF APPLIED SCIENCES 1 Planarität - Definition Ein Graph heißt

Mehr

Übungen zur Softwaretechnik

Übungen zur Softwaretechnik Technische Universität München Fakultät für Informatik Lehrstuhl IV: Software & Systems Engineering Markus Pister, Dr. Bernhard Rumpe WS 2002/2003 Lösungsblatt 9 17. Dezember 2002 www4.in.tum.de/~rumpe/se

Mehr

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen.

Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Teil B: Erweiterungen Jetzt sollt ihr von der Vorlage der Grundversion 1.0 ein eigenes Textadventure erstellen. Die folgenden Aufgaben und Ausführungen geben einige Hilfestellungen, welche (mindestens

Mehr

Testphase. Das Testen

Testphase. Das Testen Testphase VIS Projekt Freie Universität Berlin N.Ardet - 17.4.2001 Das Testen Testen ist das Ausführen eines Software- (Teil)systems in einer definierten Umgebung und das Vergleichen der erzielten mit

Mehr

6. Programmentwicklung

6. Programmentwicklung 6. Programmentwicklung Fertigungsprozess Qualitativ hochwertige Software ist ein Industrieprodukt -> Methoden der Industrie übertragen auf der Herstellprozess -> Herstellprozess gliedert sich in Phasen

Mehr

Qualitätssicherungskonzept

Qualitätssicherungskonzept Softwaretechnikpraktikum Gruppe: swp15.aae SS 2015 Betreuer: Prof. Gräbe Datum: 15.06.2015 Tutor: Klemens Schölhorn Qualitätssicherungskonzept Projektteam: Felix Albroscheit Dorian Dahms Paul Eisenhuth

Mehr

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein. Aufgabe 10 Binäre Bäume a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge, 28, 35, 31, 9, 4,, 17, 37, 25 ein. 1. Einfügen von : 3. Einfugen von 35: 2. Einfügen von 28: 28 28 10. Einfügen

Mehr

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einfache Arrays. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative student"

Mehr

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering II (IB) Testen von Software / Modultests Testen von Software / Modultests Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Programm-Tests Tests sollen zeigen, dass ein Programm das tut was es tun soll sowie

Mehr

1 topologisches Sortieren

1 topologisches Sortieren Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung

Mehr

SharePoint Demonstration

SharePoint Demonstration SharePoint Demonstration Was zeigt die Demonstration? Diese Demonstration soll den modernen Zugriff auf Daten und Informationen veranschaulichen und zeigen welche Vorteile sich dadurch in der Zusammenarbeit

Mehr

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Einführung in Java PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005 Gliederung 1. Was ist Java / Geschichte von Java 2. Prinzip der Plattformunabhängigkeit 3. Wie kommt man vom Quellcode zum Programm

Mehr

Übungen zu C++ Kapitel 1

Übungen zu C++ Kapitel 1 Übungen zu C++ Kapitel 1 Aufgabe 1 Ergänze den Text. a) Die sechs logischen Einheiten eines Computers sind Eingabe-Einheit, Ausgabe-Einheit, RAM, ALU, CPU, Plattenspeicher. b) Die Programme, welche Hochsprachenprogramme

Mehr

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler

Downloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5

Mehr

Semantik von Formeln und Sequenzen

Semantik von Formeln und Sequenzen Semantik von Formeln und Sequenzen 33 Grundidee der Verwendung von Logik im Software Entwurf Syntax: Menge von Formeln = Axiome Ax K ist beweisbar Formel ϕ beschreiben Korrektkeit Vollständigkeit beschreibt

Mehr

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten Das große x -4 Alles über das Wer kann beantragen? Generell kann jeder beantragen! Eltern (Mütter UND Väter), die schon während ihrer Elternzeit wieder in Teilzeit arbeiten möchten. Eltern, die während

Mehr

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Folge 19 - Bäume. 19.1 Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12 Grundlagen: Folge 19 - Bäume 19.1 Binärbäume - Allgemeines Unter Bäumen versteht man in der Informatik Datenstrukturen, bei denen jedes Element mindestens zwei Nachfolger hat. Bereits in der Folge 17 haben

Mehr

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN

PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,

Mehr

Software Engineering Klassendiagramme weiterführende Konzepte

Software Engineering Klassendiagramme weiterführende Konzepte Software Engineering Klassendiagramme weiterführende Konzepte Prof. Adrian A. Müller, PMP, PSM 1, CSM Fachbereich Informatik und Mikrosystemtechnik 1 Klassenattribut: static Implementierung in Java public

Mehr

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014)

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: 24.09.2014) Handbuch NAFI Online-Spezial 1. Auflage (Stand: 24.09.2014) Copyright 2016 by NAFI GmbH Unerlaubte Vervielfältigungen sind untersagt! Inhaltsangabe Einleitung... 3 Kundenauswahl... 3 Kunde hinzufügen...

Mehr

FUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING

FUTURE NETWORK 20.11.2013 REQUIREMENTS ENGINEERING 18/11/13 Requirements Engineering 21 November 2013 DIE GRUNDFRAGEN Wie erhält der Kunde den größten Nutzen? Wie kann der Kunde am besten spezifizieren, was er haben will? Welchen Detailierungsgrad braucht

Mehr

Übung 9 - Lösungsvorschlag

Übung 9 - Lösungsvorschlag Universität Innsbruck - Institut für Informatik Datenbanken und Informationssysteme Prof. Günther Specht, Eva Zangerle Besprechung: 15.12.2008 Einführung in die Informatik Übung 9 - Lösungsvorschlag Aufgabe

Mehr

Urlaubsregel in David

Urlaubsregel in David Urlaubsregel in David Inhaltsverzeichnis KlickDown Beitrag von Tobit...3 Präambel...3 Benachrichtigung externer Absender...3 Erstellen oder Anpassen des Anworttextes...3 Erstellen oder Anpassen der Auto-Reply-Regel...5

Mehr

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI Universität Osnabrück Drei-Schichten-Architektur 3 - Objektorientierte Programmierung in Java Vorlesung 6: 3-Schichten-Architektur Fachkonzept - GUI SS 2005 Prof. Dr. F.M. Thiesing, FH Dortmund Ein großer

Mehr

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss

Anleitung: Einrichtung der Fritz!Box 7272 mit VoIP Telefonanschluss Schließen Sie die AVM Fritz!Box, wie auf dem der Fritz!Box beiliegenden Schaubild beschrieben, an. Starten Sie den Internet Explorer oder einen beliebigen Browser (Mozilla Firefox, Google Chrome, Safari)

Mehr

Das Briefträgerproblem

Das Briefträgerproblem Das Briefträgerproblem Paul Tabatabai 30. Dezember 2011 Inhaltsverzeichnis 1 Problemstellung und Modellierung 2 1.1 Problem................................ 2 1.2 Modellierung.............................

Mehr

Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005

Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Klausur Software-Engineering SS 2005 Iwanowski 23.08.2005 Hinweise: Bearbeitungszeit: 90 Minuten Erlaubte Hilfsmittel: im Anhang, sonst keine Bitte notieren Sie Ihre Antworten ausschließlich auf dem Aufgabenblatt!

Mehr

Mit suchmaschinenoptimierten Übersetzungen erfolgreich mit fremdsprachigen Webseiten

Mit suchmaschinenoptimierten Übersetzungen erfolgreich mit fremdsprachigen Webseiten 1 Mit suchmaschinenoptimierten Übersetzungen erfolgreich mit fremdsprachigen Webseiten 2 Für das Auffinden im Internet spielt die Suchmaschinenoptimierung eine wichtige Rolle. Je besser die Texte auf der

Mehr

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer

Seminar Werkzeuggestütze. tze Softwareprüfung. fung. Slicing. Sebastian Meyer Seminar Werkzeuggestütze tze Softwareprüfung fung Slicing Sebastian Meyer Überblick Einführung und Begriffe Static Slicing Dynamic Slicing Erweiterte Slicing-Techniken Fazit 2 Was ist Slicing?? (I) Program

Mehr