Einführung und Einteilung. Software Engineering 1. Book. Pieter van den Hombergh. 5. Februar Vor allem: Testen!

Größe: px
Ab Seite anzeigen:

Download "Einführung und Einteilung. Software Engineering 1. Book. Pieter van den Hombergh. 5. Februar Vor allem: Testen!"

Transkript

1 Einführung und Einteilung Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 5. Februar 2014 HOM/FHTeL Einführung und Einteilung 5. Februar /1 Software Engineering 1 Literatur Vor allem:! HOM/FHTeL Einführung und Einteilung 5. Februar /1 Book Literatur Objektorientiertes und Testautomatisierung in der Praxis oder von Software und Embedded Systems Wir benutzen zu den Vorlesungen, im Praktikum und im Projekt: Autor Uwe Vigenschow, der Firma oose.de. Verlag, ISBN dpunkt.verlag GmbH, Heidelberg, ISBN Preis 39 Euro oder Verlag, ISBN dpunkt.verlag GmbH, Heidelberg, ISBN Preis 39,90 Webseite Selbststudium für die nächste Woche: Studieren der Kapitel 1-4, Seiten 3-25 Nächste Woche möglicherweise ein Quiz zu diesen Kapiteln. HOM/FHTeL Einführung und Einteilung 5. Februar /1 1

2 Mariner 1 Im Jahr 1962 wurde die Trägerrakete der Mariner 1-Venussonde 290 Sekunden nach dem Start kontrolliert zerstört, da sie von der vorgesehenen Flugbahn abwich. Der Schaden belief sich auf ca. 18,5 Mio. $. Was war los? Der fehlerhafte Code für eine Schleife über die Werte 1, 2 und 3: DO 5 K = 1, 3 steht folgendermaßen im Programm: DO 5 K = 1. 3 Dieses sieht der Kompiler: DO5K = 1.3 und das ist die Deklaration der Variabele DO5K!! Kleine Ursache, große Folgen! HOM/FHTeL Einführung und Einteilung 5. Februar /1 Code der Venussonde Mariner 1 IF ( TVAL.LT. 0.2E -2) GOTO 40 DO 40 M = 1, 3 W0 = (M -1)*0.5 X = H * E -2* W0 DO 20 N0 = 1, 8 EPS = 5.0*10.0**( N0-7) CALL BESJ (X, 0, B0, EPS, IER ) IF ( IER.EQ. 0) GOTO CONTINUE DO 5 K = 1. 3 T(K) = W0 Z = 1.0/( X **2)* B1 ** E -4* B0 **2 D(K) = 3.076E -2*2.0*(1.0/ X*B0*B E -4**( B0 **2 -X*B0*B1 ))/ Z E(K) = H **2* * W0/ SIN (W0 )*Z H = D(K)-E(K) 5 CONTINUE 10 CONTINUE Y = H/W CONTINUE HOM/FHTeL Einführung und Einteilung 5. Februar /1 Das Ariane-Feuerwerk Herabfallende Trümmer, nach der Selbstzerstörung der Ariane-501 Rakete, am 4. Juli Die AR-501 explodierte durch einen Softwarefehler: die Geschwindigkeit passte nicht in die dazu reservierte Variabelengröße. Neue Techniken sind notwendig, um derartigen Unfälle vorzubeugen. Quelle Foto: ESA HOM/FHTeL Einführung und Einteilung 5. Februar /1 2

3 Ariane code declare vertical_veloc_sensor : float ; horizontal_veloc_sensor : float ; vertical_veloc_bias : integer ; horizontal_veloc_bias : integer ; begin declare pragma suppress ( numeric_error, horizontal_veloc_bias ); begin sensor_get ( vertical_veloc_sensor ); sensor_get ( horizontal_veloc_sensor ); vertical_veloc_bias := integer ( vertical_veloc_sensor ); horizontal_veloc_bias := integer ( horizontal_veloc_sensor ); exception when numeric_error => calculate_vertical_veloc (); when others => use_irs1 (); end ; end irs2 ; HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist schief gegangen? Standardgemäßig werden Wertebereiche auf Gültigkeit geprüft. Das kann aber auch unterdrückt werden, was im nächsten Abschnitt passiert: declare pragma suppress(numeric_error,horizontal_veloc_bias); Die vom Geschwindigkeitssensor ermittelte horizontale Geschwindigkeit wird in die intern benutzte Einheit umgerechnet und an die Steuerungssoftware weitergeleitet. Diese Umrechnung geschieht in der nachstehenden Codezeile, wobei der Wert in den Datentyp Integer umgewandelt wird: horizontal_veloc_bias := integer(horizontal_veloc_sensor); HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist schief gegangen? - Fortsetzung Genau hier findet, ungefähr 30 Sekunden nach dem Start, ein Integerüberlauf statt, der nicht abgefangen wird, weil der dazugehörige Test zuvor im Code abgeschaltet wurde. Bei der Ariane 4 gab es dabei nie Probleme; die Ariane 5 erreichte aber im selben Moment eine fünffache Geschwindigkeit. Das Risikomanagement war überzeugt davon, dass nur Hardware- und keine Softwarefehler auftreten könnten. [Mehr Details dazu Objektorientiertes und Testautomatisierung in der Praxis von Uwe Vigenschow ( HOM/FHTeL Einführung und Einteilung 5. Februar /1 3

4 Ist eine robustere Sprache die Lösung? Ein Komma anstelle eines Punkts führt in C++ zu einer Endlosschleife: while (x > 0,1)... In Java nicht, da die 1 nicht automatisch in ein True umgewandelt wird. Der Kompiler würde nörgeln. Also immer Java? Das ist auch keine Lösung. Die momentane Lösung: Frühzeitig Tests aufstellen (Sprachunabhängig) und regelmäßig ausführen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Einführung Wieso testen? Produktstandpunkt Das Programm soll korrekt sein, tun was der Auftragsgeber möchte. Die Software soll zuverlässig sein, nicht crashen. Stabilität: Die Software sollte nicht außer Tritt kommen, wenn der Benutzer sie falsch bedient. Prozessstandpunkt der Software trägt zur Verbesserung des Softwareprozesses bei. Kommunikation mit Kollegen Austausch von Code, der mit einem Test versehen ist. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist? Eine Definition: ist die Aktivität des Ausführens (eines Teils) eines Programms, mit dem Ziel, Fehler zu finden. Eine vollwertige Aktivität, die zum Entwicklungsprozess gehört. Was leistet und nicht leistet: Zeigen (beweisen), dass ein Programm keine Fehler enthält. Nur das Gegenteil ist möglich: belegen, dass ein Programm Fehler enthält. HOM/FHTeL Einführung und Einteilung 5. Februar /1 4

5 Arten von Tests Ein unit test testet auf diese Weise 1 (oder eine kleine Menge) Klassen. Ein Integrationstest benutzt man, wenn man 2 oder mehrere kleine Teile zusammenfügt. Ein Regressionstest dem gegenüber soll (in einer automatisierter Weise) das ganze Programm testen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Unit testen Black-box testing Softwaretest ohne Kenntnisse des exakten, internen Funktionierens des Moduls. Beispiel: von MyStack White-box testing Strukturelles basic path testing: Alle mögliche Kontrollpfade im Programm verfolgen und daraus den Test aufbauen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Wie stelle ich einen Unittest auf? Einfaches Beispiel, ein Stack (Stapel, Keller): Methoden: push Aufdrücken. pop Abnehmen. peek Oberstes betrachten. isempty Zustand abfragen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 5

6 Java Vertrag class MyStack implements Stack; Methoden Stack interface: p u b l i c i n t e r f a c e Stack { v o i d push ( O bject ) ; // put e l e m e n t O b ject peek ( ) ; // r e t u r n top e l e m e n t O b ject pop ( ) ; // remove and r e t u r n top e l e m e n t boolean isempty ( ) ; // s t a c k empty } Dieser Vertrag ist nicht ausreichend Wasserdicht. Wo besteht Verbesserungsbedarf? HOM/FHTeL Einführung und Einteilung 5. Februar /1 Wie stelle ich einen Unittest auf? 2 Schreibe: class StackTest Die Annotierte setup () stack = new MyStack( teardown( ) stack = public final void atestpush() Testmethoden wie nachstehend p u b l i c v o i d t e s t P u s h ( ) { S t r i n g t= H a l l o ; s t a c k. push ( t ) ; a s s e r t E q u a l s ( t, ( S t r i n g ) s t a c k. peek ( ) ) ; } Eine Methode ist eine Testmethode wenn sie Annotation hat. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Klassendiagramm TestCase <<interface>> Stack TestRunner StackTest MyStack HOM/FHTeL Einführung und Einteilung 5. Februar /1 6

7 Stubs, Drivers und Mock Stubs Oft braucht man noch andere Klassen, um die zu testende Klasse funktionieren zu lassen. Die sind aber noch nicht fertig! Oder zu umständlich für den Test. (Datenbankverbindung o.ä.) Sonderklassen, die das Verhalten der zukünftigen Klassen simulieren. Sind auch als Mock-Objekte bekannt. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Bedeutung von Unittests Unittests sind wichtig, weil sie es erlauben kleine Teile der Software zu testen. Man sieht immer wieder, dass eventuelle Fehler sich in kleinen Teilen der Software befinden und man muss so nicht stundenlang suchen, um herauszufinden wo sich der Fehler genau aufhält. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Integrationstests Gute Unittests ausgeführt, aber doch Probleme, wenn 2 oder mehr Klassen auf einmal zusammenarbeiten sollen. Möglichen Ursachen könnten sein: Mehrere Personen schreiben zusammen die Software. Wie klar die Vereinbarungen auch sind, immer wieder kann es zu Missverständnissen kommen. Das kann aber auch auftreten, wenn mann alleine arbeitet! HOM/FHTeL Einführung und Einteilung 5. Februar /1 7

8 Bedeutung von Integrationstests Wieso sind Integrationstests wichtig? So früh wie möglich testen schränkt die Suche nach Fehlern ein. Kein big-bang Unterfangen. Deshalb ist es gut, inkrementell vor zu gehen. Jedes mal, wenn man zwei zueinander passende Klassen fertig hat, führt man einen Integrationstest durch. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Was ist ein Regressionstest? Ein Test, der das ganze Programm testet. Vorzugsweise völlig automatisiert. Durch Ausführen eines Kommandos (dem Test-Start), weiß der Benutzer des Tests, ob das Programm richtig funktioniert (dem Tests gemäß) oder ob noch irgendwo Fehler verborgen sind. Ist eine Sammlung einzelner Tests. Besteht aus einer Menge von Szenarien Umfasst Simulationen von normalen und abnormalen Situationen. HOM/FHTeL Einführung und Einteilung 5. Februar /1, 2 Normale Fälle Alle Handlungen und alle Eingaben (vom Benutzer, externe Eingaben und Konfigurationsdateien), die eine normale Auswirkung des Programms zur Folge haben sollten. Ausnahmebedingungen. (Exceptions) Falsche Eingabe des Benutzers oder falsche Eingabe durch Konfigurations- oder Eingabedateien. Außerordentlicher Systemzustand, z.b. das Erzeugen einer Ausgabedatei funktioniert nicht weil... HOM/FHTeL Einführung und Einteilung 5. Februar /1 8

9 3 Verknüpfung Usecases und vorgeschlagene Szenarien: Sind eine grundlegende Beschreibung wie die Software benutzt werden soll. Mehrere Benutzungsszenarien für einen Usecase. Also pro Usecase ein oder mehrere Szenarien im Regressionstest. Andersherum: Aus den Unit- und Integrationstests die man schreibt, Szenarien für den Regressionstest ableiten. (Werfe nie einen guten Test weg!) HOM/FHTeL Einführung und Einteilung 5. Februar /1 Wie baut man einen guten Regressionstest auf? Scenario Expected / Actual 1: Completely correct inputfile Output1 Output1 2: Completely correct inputfile Output2 Output2 3: Missing XML closing tag Error msg 1 Error msg 1 4: Non matching open and closing Error msg 2 Error msg 2 tag 3: XML file with unknown tag Error msg 3 Output5 Tabelle : Scenario 5 in abnormal situation Diese Tabelle ist nur ein Beispiel uas einer Anwending mit XML Datein. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Regressionstests, weshalb wichtig? Jeder kann diese Tests ausführen ohne große Vorkenntnisse vom System: Es muss nur ein Kommando abgesetzt werden, um in einem Augenblick zu sehen, ob das Programm richtig oder gar nicht funktioniert. Wenn man einmal die Basisversion der Software zum Laufen gebracht hat, ist es einfach zu sehen, ob beispeilsweise eine bestimmte (funktionelle) Änderung oder ein Refactoring keine nachteilige Auswirkung hat, indem man einen Regressionstest ausführt. HOM/FHTeL Einführung und Einteilung 5. Februar /1 9

10 Testing framework Was ist ein Framework? Eine Art von Gerüst: Es gibt Form und Richtung der Software an, die man schreibt. Softwareteile mit mehr oder weniger der gleichen Struktur. Jedes Framework umfasst wiederverwendbare Teile mit Basisfunktionalität. Spezifisch ausgerichtet für das Problem, das man lösen möchte. Einige Vorteile von Frameworks: Zeitgewinn Eine gleiche Struktur vereinfacht das Verstehen. HOM/FHTeL Einführung und Einteilung 5. Februar /1 Beispiele von test- JUnit, Mother 1 of all unit. Quelloffen, wie die Meisten. Frameworks in anderen Sprachen CppUnit für C++. Nunit für die.net Welt (in C#). PyUnit für Python XMLUnit SQLunit PHPUnit Etc. 1 Actually smalltalk was earlier HOM/FHTeL Einführung und Einteilung 5. Februar /1 Und was kostet es? Ein weiterer Nebeneffekt der Frameworks ist, dass die meisten Frameworks quelloffen und weit verbreitet sind. JUnit und die darauf setzenden Testtools sind Standards in der Java Welt. Aber, abhängig vom Produkttyp (in Zusammenhang mit den Risiken) können Tests sehr viel kosten. Im Normalfall zwischen 20 und 40% der gesamten Entwicklungskosten. In manchen kritischen Fällen sogar über 50%. Das sind hauptsächlich Gehaltskosten. HOM/FHTeL Einführung und Einteilung 5. Februar /1 10

11 Tips Schreibe deine Tests, bevor du mit dem Programm selbst anfängst. Teste von Anfang an. Teste gründlich, und achte vor allem auf die Randfälle. Entwickle für jeden Usecase mindestens einen Test. Und wann bin ich Fertig? Eigentlich nie HOM/FHTeL Einführung und Einteilung 5. Februar /1 11

Einführung und Einteilung

Einführung und Einteilung Einführung und Einteilung Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 5. Februar 2014 HOM/FHTeL Einführung und Einteilung 5. Februar 2014 1/1 Einführung und

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

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1

JUnit - Test Driven Development. Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 JUnit - Test Driven Development Bernhard Frey, Thorsten Stratmann, Jackson Takam, Michel Müller 1 Gliederung 1.Einleitung 1.1 Geschichte 1.2 Was sind Unit-Tests? 1.3 Failures/Errors 1.4 Ziele und Nutzen

Mehr

Code verifizieren mittels

Code verifizieren mittels Code verifizieren mittels Unit- und Regressionstests Institut für Numerische Simulation, Universität Bonn Seminarreihe Technische Numerik Wozu sollen gut sein? Was für Testarten gibt es? Wie funktionieren

Mehr

Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler

Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler Ariane 5 - Luftfahrt Berühmt-berüchtigte Software-Fehler Christian Weyand Universität Koblenz - Landau Ariane 5 - Luftfahrt p.1 Das Ariane - Programm Gründung der European Space Agency (ESA) mittlerweile

Mehr

Systematisches Testen

Systematisches Testen Systematisches Testen SEP 136 Unit Testing Objektorientierte Entwicklung Entwicklung von vielen unabhängigen Einheiten (Klassen, Methoden), aus denen das Gesamtprogramm zusammengesetzt wird. Ziel: Wenn

Mehr

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept Testkonzept 1.Einführung Um die Zuverläsigkeit und die Qualität der Software und des gesamten Systems zu verbessern, sind Tests durchzuführen. Die Testreihe läst sich in drei Stufen einteilen, nülich Komponententest,

Mehr

extern, also zwischen Menschen intern, also im internen Kommunikationsprozess bei der Transformation

extern, also zwischen Menschen intern, also im internen Kommunikationsprozess bei der Transformation 3 1 Komplexe Systeme führen zu Fehlern»Das einzige Mittel, den Irrtum zu vermeiden, ist die Unwissenheit.«1 Für uns bietet diese Erkenntnis kaum eine Möglichkeit, Fehler zu vermeiden. Also wollen wir uns

Mehr

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG

Unit-Test Theorie und Praxis. Stephan Seefeld, INGTES AG Unit-Test Theorie und Praxis Stephan Seefeld, INGTES AG Inhalt Was sind Unit-Test? NUnit für.net Demo Seite 2 Quellen Für diesen Vortrag verwendete Quellen: dotnet User Group Berlin Brandenburg http://www.dotnet-berlinbrandenburg.de/

Mehr

Unit Tests mit Junit 4. Dario Borchers

Unit Tests mit Junit 4. Dario Borchers Unit Tests mit Junit 4 Dario Borchers Agenda Warum testgetriebene Entwicklung von Software? - Motivation Was ist testgetriebene Entwicklung? - Prozess der testgetriebenen Entwicklung - Arten von Tests

Mehr

Programmieren 2 04 Testen und Testautomatisierung

Programmieren 2 04 Testen und Testautomatisierung Programmieren 2 04 Testen und Testautomatisierung Bachelor Medieninformatik Sommersemester 2016 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Das Programm funktioniert super!...denkt

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form

Mehr

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally

1 Organisatorisches. 2 Compilezeit- und Laufzeitfehler. 3 Exceptions. 4 Try-Catch-Finally Themen der Übung CoMa-Übung VI 1 Organisatorisches Compilezeit- und Laufzeitfehler 3 Try-Catch-Finally TU Berlin 8.11.01 Bewertung der OA 5 fehlerhaft, Madeleine arbeitet dran CoMa-Übung VI (TU Berlin)

Mehr

Software Engineering in der Praxis

Software Engineering in der Praxis Software Engineering in der Praxis Praktische Übungen Dirk Wischermann Marc Spisländer Lehrstuhl für Software Engineering Friedrich-Alexander-Universität Erlangen-Nürnberg 18. Dezember 2006 Inhalt Nachlese

Mehr

Thema: Testen von objektorientierter Software

Thema: Testen von objektorientierter Software Seminar Simulation und Bildanalyse mit Java Thema: Testen von objektorientierter Software Uta Dienst 1. Teil: Einführung in den Software-Test 2. Teil: JUnit-Einführung Uta Dienst 17.11.2003 2 1. Teil:

Mehr

Qualität von Software - Prof. Schlingloff, Lackner - SS2013 DYNAMISCHER TEST. Whitebox Testen mit JUnit

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

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 2. Einführung Java EE 5 Plattform 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5.

Mehr

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST Gliederung 2 0. 1. 2. 3. Vorstellung Testvorbereitungen Planungsphase Definitionsphase Implementierungs-, Abnahme-und Einführungsphase Testphasen

Mehr

JUnit 4 Tutorial. Wolfgang Stöttinger

JUnit 4 Tutorial. Wolfgang Stöttinger JUnit 4 Tutorial Wolfgang Stöttinger JUnit 4 Tutorial... 1 1 Einführung in JUnit 4... 3 1.1 Wie funktioniert JUnit?... 3 1.2 Annotations... 3 1.2.1 Test Annotation... 3 1.2.2 Before Annotation... 3 1.2.3

Mehr

Unit Tests und Fehlersuche

Unit Tests und Fehlersuche Unit Tests und Fehlersuche SE 1 - Softwareentwicklungspraktikum Test Deadline! Sinnvolle Tests kompilierbar im CVS d.h. Schnittstellen zu Strategiemethoden etc. schon erstellen Kommentieren! Besser ein

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 10: Ein Interpreter für While Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1

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

Markus Wichmann. Testen von Java Code mit. JUnit

Markus Wichmann. Testen von Java Code mit. JUnit Markus Wichmann Testen von Java Code mit JUnit Demotivation... Am Anfang war der Zeitdruck... Hilfe, ich habe doch keine Zeit zum Testen! Ich schreibe einfach keine Tests, dadurch werde ich schneller fertig

Mehr

Stapel (Stack, Keller)

Stapel (Stack, Keller) Stapel (Stack, Keller) Eine wichtige Datenstruktur ist der Stapel. Das Prinzip, dass das zuletzt eingefügte Element als erstes wieder entfernt werden muss, bezeichnet man als LIFO-Prinzip (last-in, first-out).

Mehr

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014 Programmierprojekt Anne0e Bieniusa Sommersemester 2014 Phasen der So;ware- Entwicklung Planungsphase DefiniConsphase Entwurfsphase ImplemenCerungsphase Testphase Wasserfall- Modell Einführungs- und Wartungsphase

Mehr

Mock-Objekte. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825

Mock-Objekte. Universität Karlsruhe (TH) Fakultät für Informatik Lehrstuhl für Programmiersysteme. Forschungsuniversität gegründet 1825 Universität Karlsruhe (TH) Forschungsuniversität gegründet 1825 Mock-Objekte Verschiedene Testhelfer Ein Stummel (engl. stub) ist ein nur rudimentär implementierter Teil der Software und dient als Platzhalter

Mehr

Unit Testing, SUnit & You

Unit Testing, SUnit & You HUMBOLDT-UNIVERSITÄT ZU BERLIN MENSCH-TECHNIK-INTERAKTION ARBEITSGRUPPE SOFTWARETECHNIK (INSTITUT FÜR INFORMATIK) ARBEITSGRUPPE INGENEURPSYCHOLOGIE (INSTITUT FÜR PSYCHOLOGIE) Unit Testing, SUnit & You

Mehr

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum

Web-Testen mit JUnit und HttpUnit. Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum 1 Web-Testen mit JUnit und HttpUnit Kai Schmitz-Hofbauer Lehrstuhl für Software-Technik Ruhr-Universität Bochum 2 Inhalt Entwicklertests in der Praxis Unit-Testing JUnit HttpUnit Praktisches Beispiel Bewertung

Mehr

Das Test-Framework JUnit ETIS SS04

Das Test-Framework JUnit ETIS SS04 Das Test-Framework JUnit ETIS SS04 Gliederung Motivation TestFirst Grundlagen Assert TestCase Lebenszyklus TestCase UML-Diagramm TestCase TestSuite Zusammenfassung 2 Motivation (I) Kostspielige Folgen

Mehr

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls

Testen mit JUnit. Apcon Workplace Solutions Member of itelligence. Testen von Java-Code mit JUnit. ÿstruktur eines Testfalls Testen von Java-Code mit JUnit ÿmotivation ÿjunit-testklassen ÿjunit-testfälle ÿstruktur eines Testfalls Henning Wolf APCON Workplace Solutions GmbH wolf@jwam.de Motivation: Werkzeugunterstützung für Tests

Mehr

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Aufgabenblatt Nr. 5 Generizität und TicTacToe Aufgabenblatt Nr. 5 Generizität und TicTacToe 1 Generische Sortier-Methode 1.1 Aufgabe: Entwickeln einer generischen Sortiermethode für Objekte mit der Schnittstelle Comparable Ihnen ist aus der Vorlesung

Mehr

JUnit. Unit testing unter Java

JUnit. Unit testing unter Java JUnit Unit testing unter Java Was ist Junit? einfaches Framework zum Schreiben von wiederholbaren Tests Besonders geeignet für unit testing Erlaubt Hierarchie von Testsuites Schreiben eines Test Case 1.

Mehr

Erster Bug: eine Motte

Erster Bug: eine Motte SOFTWAREFEHLER Der erste Bug Erster Bug: eine Motte Der Begriff Bug (deutsch: Motte) stammt aus dem Jahre 1945, als Ingenieure in einem Schaltrelais eines Computers (Harvard Mark II-System) eine Motte

Mehr

Proseminar Software Desaster. ARIANE 5 Absturz des Flugs 501

Proseminar Software Desaster. ARIANE 5 Absturz des Flugs 501 Proseminar Software Desaster ARIANE 5 Absturz des Flugs 501 Mathias Riedl 4.12.2002 Gliederung: 1. Einleitung: Rückschlag für Raumfahrt 2. Allgemeine Beschreibung des Vorfalls a. Ablauf des Countdowns

Mehr

Schnittstellen, Stack und Queue

Schnittstellen, Stack und Queue Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In

Mehr

Objektorientiertes Testen und Testautomatisierung in der Praxis

Objektorientiertes Testen und Testautomatisierung in der Praxis Objektorientiertes Testen und Testautomatisierung in der Praxis Konzepte, Techniken und Verfahren von Uwe Vigenschow 1. Auflage Objektorientiertes Testen und Testautomatisierung in der Praxis Vigenschow

Mehr

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Testen von graphischen Benutzeroberflächen. 26. Juni 2013 Testen von graphischen Benutzeroberflächen 26. Juni 2013 Überblick Testarten Methoden-, Klassen-, Komponenten-, Systemtests Motivation für automatisches Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien

Mehr

Unit Testing mit NUnit

Unit Testing mit NUnit Unit Testing mit NUnit Vortrag in der Praktikumsveranstaltung SWAT Sommersemester 2013 Michael Fiedler 16. Mai 2013 1 / 22 Überblick 1 Erinnerung: Unit-Tests 2 NUnit 3 Kurze Vorführung

Mehr

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.

Innere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste

Mehr

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck Unit Tests Programmiermethodik Eva Zangerle Universität Innsbruck Überblick Einführung Java Ein erster Überblick Objektorientierung Vererbung und Polymorphismus Ausnahmebehandlung Pakete und Javadoc Spezielle

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

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik

5. Dokumentieren und Testen Advanced Programming Techniques. Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 5. Dokumentieren und Testen Advanced Programming Techniques Wintersemester 2009 / 2010 Prof. Dr. Bernhard Humm Hochschule Darmstadt, FB Informatik 1 Prof. Dr. Bernhard Humm, Hochschule Darmstadt, FB Informatik:

Mehr

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren I. Übersicht. Vorlesung 12. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 2 Übersicht Testen ist eine der wichtigsten, aber auch eine der Zeitaufwändigsten Arbeitsschritte der Softwareentwicklung.

Mehr

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung

1. Motivation 2. Begriffsklärung 3. Komponententests 4. Integrationstests 5. Integrationsstrategien 6. Zusammenfassung Übersicht s s Gregoire Kemgne 1 Motivation Problem: Software wird immer größer und komplexer, dadurch ist diese immer schwerer zu überschauen Ein Projekt benötigt mehr Zeit und/oder Entwickler. Lösung:

Mehr

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang

Testen mit JUnit. Martin Wirsing. Ziele. in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang Testen mit JUnit Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 12/04 2 Ziele Lernen Unit Tests zu schreiben Lernen mit Unit-Testen mit JUnit durchzuführen 3 Testen Da

Mehr

Unit Testing mit JUnit. Dr. Andreas Schroeder

Unit Testing mit JUnit. Dr. Andreas Schroeder Unit Testing mit JUnit Dr. Andreas Schroeder Überblick Was dieses Video behandelt Warum Testen? Was sind Unit Tests? Der Teufelskreis des Nicht-Testens JUnit Unit Test Vorteile Test-Inspiration Wann aufhören?

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Java Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff

Java Schulung. Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit. Prof. Dr. Nikolaus Wulff Java Schulung Objektorientierte Programmierung in Java Teil IV: Testen mit JUnit Prof. Dr. Nikolaus Wulff JUnit JUnit ist das Opensource Testframework. Es existieren Portierungen für fast alle objektorientierten

Mehr

Effizientes und effektives Testen von Embedded SW mit Google Test. Michael Bernhard

Effizientes und effektives Testen von Embedded SW mit Google Test. Michael Bernhard Effizientes und effektives Testen von Embedded SW mit Google Test Michael Bernhard 1 Agenda Warum testen? Wie testen? Google Test und Google Mock Toolintegration Schlussfolgerung 2 Die Norm fordert es

Mehr

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1 Fachhochschule Stralsund Fachbereich Maschinenbau Lehrgebiet Informatik Prof. Dr.-Ing. Ch.Wahmkow Arbeitsblätter für die Lehrveranstaltung OOP I. Aufbau eines Java-Programmes JAVA 1 Escape-Sequenzen zur

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

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum Starthilfe für C# Inhaltsverzeichnis Allgemeines... 2 Bezugsquellen... 2 SharpDevelop... 2.NET Runtime... 2.NET SDK... 2 Installation... 2 Reihenfolge... 2 Vorschlag für eine Ordnerstruktur... 3 Arbeit

Mehr

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015

Systematisches Testen der Funktionalität von Softwaresystemen. 17. Juni 2015 Systematisches Testen der Funktionalität von Softwaresystemen 17. Juni 2015 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von

Mehr

Java-Schulung Grundlagen

Java-Schulung Grundlagen Java-Schulung Grundlagen Java 2 Standard Edition JDK 5 / 6 31.05.2008 Marcel Wieczorek 1 Themenübersicht Basiswissen Objektorientierung Datentypen Fehlerbehandlung Sonstiges Einführung Klassen, Strings

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

Warum Programme Verträge schließen sollten

Warum Programme Verträge schließen sollten 1 Warum Programme Verträge schließen sollten RALF HINZE Institut für Informatik, Lehrstuhl Softwaretechnik, Universität Freiburg Georges-Köhler-Allee, Gebäude 079, 79110 Freiburg i. Br. Email: ralf@informatik.uni-bonn.de

Mehr

Java für C++ Programmierer

Java für C++ Programmierer Java für C++ Programmierer Alexander Bernauer bernauer@inf.ethz.ch Einführung in die Übungen zu Informatik II (D ITET) FS2010 ETH Zürich Ziel Allgemeiner Überblick Kennenlernen der Suchbegriffe Warum Java?

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

ALP II Dynamische Datenmengen

ALP II Dynamische Datenmengen ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung

Mehr

Wie entwerfe ich ein Programm?

Wie entwerfe ich ein Programm? Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +

Mehr

am Beispiel von JUnit

am Beispiel von JUnit Aufbau eines Testwerkzeugs am Beispiel von JUnit Üblicher Ansatz für Tests und Fehlersuche: Print-Befehle, Debugger-Ausdrücke, Test-Skripte möglichst über globale Variable debug steuerbar Command Pattern

Mehr

Übersicht. Vorstellung des OO-Paradigmas

Übersicht. Vorstellung des OO-Paradigmas Java, OO und UML Vorstellung des OO-Paradigmas Übersicht Umsetzung des OO-Paradigmas in Java Einführung (seeeeeehr rudimenter) in UML zur graphischen Darstellung von OO Grammatik und Semantik von Java

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

Lösungen zum Test objektorientierter Software

Lösungen zum Test objektorientierter Software Lösungen zum Test objektorientierter Software Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 14. März 2013 HOM/FHTeL Lösungen zum Test objektorientierter Software

Mehr

Qualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012

Qualitätssicherung von Software am Beispiel von Unit Testing. Klaus Kusche, Mai 2012 Qualitätssicherung von Software am Beispiel von Unit Testing Klaus Kusche, Mai 2012 Inhalt Motivation Definition von Unit Tests, Einordnung in der QA, Nutzen Einordnung im V-Modell (==> Tafel) Inhalt,

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Testen im Software- Lebenszyklus

Testen im Software- Lebenszyklus TestNG TestNG Testen im Software- Lebenszyklus White-Box vs Black-Box Testing White-Box-Testing Black-Box-Testing Test-Driven Development (TDD) testgetriebene Entwicklung zuerst werden die Unit-Tests erstellt.

Mehr

The Art of Unit Testing

The Art of Unit Testing The Art of Unit Testing 01.02.2011 Marco Heimeshoff Heimeshoff@gmx.de Übersicht Grundlagen des Unit Testing Test Driven Development Stubs & Mocks Behavior Driven Design The Art of Unit Testing Definition

Mehr

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen

Info: Standard DO-178B. 5. Mocking. Zusammenspiel von Klassen testen. Allgemein: Klassen testbar machen Info: Standard DO-178B Zertifizierung Federal AviationAdministration (FAA), Software für Luftverkehrssysteme durch Standard DO-178B für requirement-based Tests and Code Coverage Analyse DO-178B-Levels

Mehr

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

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

Mehr

Testen von grafischen Benutzeroberflächen

Testen von grafischen Benutzeroberflächen Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit

Mehr

Handbuch für die Erweiterbarkeit

Handbuch für die Erweiterbarkeit Handbuch für die Erweiterbarkeit Inhalt Pakete für die Erweiterbarkeit... 2 Actions... 2 Items... 2 Itemset... 2 Die UseCaseNewAction... 3 Eigene Shapes... 4 Der Shape Container... 5 User Objects... 6

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Testen von graphischen Benutzeroberflächen. 24. Juni 2015

Testen von graphischen Benutzeroberflächen. 24. Juni 2015 Testen von graphischen Benutzeroberflächen 24. Juni 2015 Überblick Motivation für das automatische Testen von graphischen Benutzeroberflächen Entwicklungsprinzipien für GUIs Capture / Replay Testmethode

Mehr

Code und Qualität 2: Testing

Code und Qualität 2: Testing Code und Qualität 2: Testing Proseminar Objektorientiertes Programmieren mit.net und C# Trung Hieu Dao Institut für Informatik Software & Systems Engineering Agenda Motivation Unit Tests in Visual Studio

Mehr

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML. JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung

Mehr

UE 2: Lexikalische Analyse (Scanner)

UE 2: Lexikalische Analyse (Scanner) UE 2: Lexikalische Analyse (Scanner) Testen siehe Testanleitung auf Homepage! diese Woche in der UE: Softwaretesten mit JUnit Eine Einführung" UB-UE2-Angabe.zip: (neu seit 21.10.2004) Compilerklassen (Token.java,

Mehr

Einführung in die C-Programmierung

Einführung in die C-Programmierung Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).

Mehr

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Fortgeschrittenes Programmieren mit Java. Test Driven Development Fortgeschrittenes Programmieren mit Java Test Driven Development Test getriebene Programmierung Benedikt Boeck Hochschule für Angewandte Wissenschaften Hamburg 6. November 2009 B. Boeck (HAW Hamburg) Test

Mehr

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger

Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Universität Augsburg, Institut für Informatik Sommersemester 2005 Prof. Dr. Werner Kießling 15. Oktober 2005 Dr. Alfons Huhn, Timotheus Preisinger Informatik II Hinweise: Die Bearbeitungszeit beträgt 90

Mehr

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 14/15. Kapitel 11. Fehler und Ausnahmen 1 Kapitel 11 Fehler und Ausnahmen Fehler und Ausnahmen 1 Ziele Fehlerquellen in Programmen und bei der Programmausführung verstehen Das Java-Konzept der Ausnahmen als Objekte kennenlernen Ausnahmen auslösen

Mehr

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 -

Informatik I - Programmierung Globalübung Hoare-Kalkül. Thomas Weiler. Fachgruppe Informatik RWTH Aachen. T. Weiler, RWTH Aachen - 1 - Informatik I - Programmierung Globalübung 11.11.2003 Hoare-Kalkül Thomas Weiler Fachgruppe Informatik RWTH Aachen T. Weiler, RWTH Aachen - 1 - Ariane 5 Die Ariane 5 ist das jüngste Modell der Trägerrakete

Mehr

Software Engineering. 3. JUnit und ANT. Franz-Josef Elmer, Universität Basel, HS 2012

Software Engineering. 3. JUnit und ANT. Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering 3. JUnit und ANT Franz-Josef Elmer, Universität Basel, HS 2012 Software Engineering: 3. JUnit und ANT 2 Unit Testing Unit Test: Automatischer Test welcher eine Einheit (z.b. Modul,

Mehr

1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2

1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 1. Einführung und Unit Testing Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Organisation Unit Testing

Mehr

Test Driven Development

Test Driven Development Test Driven Development Definition & Motivation [~15min] Demo [~10min] Stubs & Mocks [~15min] Übliche Fehler [~5min] Folie 1 TDD [Kent Beck] Schreibe keine Zeile Code ohne einen fehlschlagenden (roten)

Mehr

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen

Allgemein: Klassen testbar machen. 5. Mocking. Mocks programmieren. Zusammenspiel von Klassen testen 5. Mocking Allgemein: Klassen testbar machen Wie werden Klassen testbar Entwicklung von Mocks mit der Hand Einführung in JMock Spezifikation von Mocks mit JMock Wann ist Mocking-Werkzeug sinnvoll Literatur:

Mehr

Qualität, Fehler un Testvorgehen

Qualität, Fehler un Testvorgehen , Fehler un Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek Software Engineering 20. Februar 2013 HOM/FHTeL, Fehler un 20. Februar 2013 1/23 , Fehler un Pieter van den Hombergh Fontys

Mehr

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte)

1. Typen und Literale (6 Punkte) 2. Zuweisungen (6 = Punkte) Praktische Informatik (Software) Vorlesung Softwareentwicklung 1 Prof. Dr. A. Ferscha Hauptklausur am 01. 02. 2001 Zuname Vorname Matr. Nr. Stud. Kennz. Sitzplatz HS / / / Punkte Note korr. Fügen Sie fehlende

Mehr

Objektorientierte Programmierung OOP Programmieren mit Java

Objektorientierte Programmierung OOP Programmieren mit Java Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum

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

C# im Vergleich zu Java

C# im Vergleich zu Java C# im Vergleich zu Java Serhad Ilgün Seminar Universität Dortmund SS 03 Gliederung Entstehung von C# und Java Überblick von C# und Java Unterschiede und Gemeinsamkeiten Zusammenfassung und Ausblick Entstehung

Mehr

Vom Testkonzept zu JUnit

Vom Testkonzept zu JUnit Testen und Testkonzept Dipl.-Inf. (FH) Christopher Olbertz 2. Dezember 2014 Testen und Testkonzept Warum testen? Wichtig, obwohl bei Programmierern unbeliebt Stellt weitgehend korrekte Funktionsweise eines

Mehr

Framework zur Unterstützung von Unit-Tests

Framework zur Unterstützung von Unit-Tests JUnit Framework zur Unterstützung von Unit-Tests Automatisierte Ausführung von Tests Ideen dahinter Testgetriebene Entwicklung: Erst testen, dann programmieren Alle Testfälle häufig ausführen (nach jeder

Mehr

Übung: Algorithmen und Datenstrukturen SS 2007

Übung: Algorithmen und Datenstrukturen SS 2007 Übung: Algorithmen und Datenstrukturen SS 2007 Prof. Lengauer Sven Apel, Michael Claÿen, Christoph Zengler, Christof König Blatt 4 Votierung in der Woche vom 21.05.0725.05.07 Aufgabe 9 Waggons rangieren

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Parallele Programmierung... 15-2 15.1 Die Klasse java.lang.thread... 15-2 15.2 Beispiel 0-1-Printer als Thread... 15-3 15.3 Das Interface java.lang.runnable... 15-4 15.4 Beispiel 0-1-Printer

Mehr

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme.

Klausur zur Informatik A WS 2001/2002 Name: Korrektor: Punkte: a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Aufgabe 1 a) Zeichnen Sie zu der nachstehenden Syntax in EBNF die passenden Syntaxdiagramme. Drei0 ::= 0 3 6 9 Drei1 ::= 1 4 7 Drei2 ::= 2 5 8 Drei ::= Drei0 Drei0 Drei1 Drei2 Drei2 Drei1 b) Gegeben sei

Mehr

Einführung in die Informatik Tools

Einführung in die Informatik Tools Einführung in die Informatik Tools Werkzeuge zur Erstellung von Softwareprojekten Wolfram Burgard 8.1 Motivation Große Softwareprojekte werden schnell unübersichtlich. Änderungen im Code können leicht

Mehr

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11

Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Übungen zur Vorlesung Einführung in die Informatik Wintersemester 2010/11 Fakultät für Informatik Lehrstuhl 1 Dr. Lars Hildebrand Carla Delgado-Battenfeld Fatih Gedikli Tobias Marschall Benjamin Schowe

Mehr