Software-Engineering Software-Management



Ähnliche Dokumente
Test-Driven Design: Ein einfaches Beispiel

Java: Vererbung. Teil 3: super()

Das Test-Framework JUnit ETIS SS04

Unit Tests in der Testgetriebenen Entwicklung

Software-Engineering und Optimierungsanwendungen in der Thermodynamik

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

Thema: Testen von objektorientierter Software

Testen mit JUnit. Motivation

Software-Engineering Grundlagen des Software-Engineering

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

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

Fortgeschrittenes Programmieren mit Java. Test Driven Development

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

Praktische Übung 'JUnit-Test'

Javadoc. Programmiermethodik. Eva Zangerle Universität Innsbruck

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

Java Einführung Umsetzung von Beziehungen zwischen Klassen. Kapitel 7

Einführung in die Informatik Tools

Programmieren in Java

Programmierkurs Java

Java Einführung Abstrakte Klassen und Interfaces

Übung Grundlagen der Programmierung. Übung 05: Arrays. Abgabetermin: xx.xx.xxxx. Java-Programm Testplan Testergebnisse

Einführung in die Programmierung

Programmiertechnik II

Musterlösungen zur Klausur Informatik 3

Lösungsvorschläge. zu den Aufgaben im Kapitel 4

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

Java Projekt: Tic Tac Toe + GUI

JUnit. Unit testing unter Java

SEP 114. Design by Contract

Einführung in die Programmierung für Wirtschaftsinformatik

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

Benutzeroberflächen. Java Teil 4

Einführung in die Java- Programmierung

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

Objektorientierte Programmierung. Kapitel 12: Interfaces

Eclipse 3.0 (Windows)

Algorithmen und Datenstrukturen

TCP/IP Programmierung. C# TimeServer Java6 TimeClient

Unit Tests und Fehlersuche

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Software Engineering in der Praxis

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

Objektorientierte Programmierung

Praktikum Informatik II Prof. Dr. Martin Trauth, Dr. Michael Männel

Vorkurs Informatik WiSe 15/16

Übersicht. Informatik 2 Teil 3 Anwendungsbeispiel für objektorientierte Programmierung

Tagesprogramm

Unit Testing mit JUnit. Dr. Andreas Schroeder

Übungen zu Einführung in die Informatik: Programmierung und Software-Entwicklung: Lösungsvorschlag

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

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

Test-Driven Design: Ein einfaches Beispiel

Java Einführung Collections

Sichtbarkeit & statische Methoden. Einsatz von Sichtbarkeit Einsatz statischer Methoden programmatische Realisierung 2 Beispielaufgaben

SILVERBALL MAX. Technische Info V10 Update

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

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

Überblick. Lineares Suchen

Fachgebiet Informationssysteme Prof. Dr.-Ing. N. Fuhr. Programmierung Prof. Dr.-Ing. Nobert Fuhr. Übungsblatt Nr. 6

5. Tutorium zu Programmieren

Übung zur Vorlesung Einführung in Software Engineering

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

Testgetriebene Entwicklung mit JUnit4

Java Kurs für Anfänger Einheit 5 Methoden

Programmieren I. Strategie zum Entwurf von Klassen. Beispiele. Design von Klassen. Dr. Klaus Höppner. Beispiel: Bibliothek

Objektorientierte Programmierung

Gliederung Grundlagen Schlüsselworte try-catch Fehlerobjekte Fehlerklassen Schlüsselwort finally Schlüsselwort throws selbst erstellte Exceptions

.NET Code schützen. Projekt.NET. Version 1.0

Prinzipien Objektorientierter Programmierung

Assoziation und Aggregation

Übung: Verwendung von Java-Threads

2. Semester, 2. Prüfung, Lösung

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

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber

5. Abstrakte Klassen. Beispiel (3) Abstrakte Klasse. Beispiel (2) Angenommen, wir wollen die folgende Klassenhierarchie implementieren:

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

Software Engineering Klassendiagramme Assoziationen

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

Synchronisation in Java. Invisible Web

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

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

Aufgabenblatt Nr. 5 Generizität und TicTacToe

Große Übung Praktische Informatik 1

Einführung in die Java- Programmierung

JUnit. Software-Tests

Fakultät Angewandte Informatik Lehrprofessur für Informatik

Dokumentation des Projektes Tic Tac Toe

MdtTax Programm. Programm Dokumentation. Datenbank Schnittstelle. Das Hauptmenü. Die Bedienung des Programms geht über das Hauptmenü.

2A Basistechniken: Weitere Aufgaben

Javakurs 2013 Objektorientierung

5. Abstrakte Klassen

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Transkript:

Software-Engineering Software-Management 12.3 Unit-Tests mit JUnit - Wissen, was der Sourcecode macht! Lösung Prof. Dr. Rolf Dornberger Software-Engineering: 12.3 Unit-Tests mit JUnit 30.04.2006 1

12.3 Unit-Tests mit JUnit Aufgabe 1: Unit-Tests mit JUnit in Eclipse Aufgabe 2: Euro-Klasse 30.04.2006 2

Aufgabe 1: Unit-Tests mit JUnit in Eclipse 1. JUnit Oberfläche in Eclipse 2. Tests erstellen und laufen lassen 3. Testauswertung 4. Test-Suites erstellen und laufen lassen 30.04.2006 3

Lösung 1: Unit-Tests mit JUnit in Eclipse: 1. JUnit Oberfläche in Eclipse JUnit vorhanden? 30.04.2006 4

Lösung 1: Unit-Tests mit JUnit in Eclipse: 1. JUnit Oberfläche in Eclipse JUnit Tab in Eclipse Test fehlgeschlagen Test erfolgreich 30.04.2006 5

Lösung 1: Unit-Tests mit JUnit in Eclipse: 2. Tests erstellen und laufen lassen Einen neuen Test erstellen Menu: File New JUnit Test Case Test in welchem Projekt? Klassenname Automatisch Konstruktor erstellen 30.04.2006 6

Lösung 1: Unit-Tests mit JUnit in Eclipse: 2. Tests erstellen und laufen lassen Quellcode des Unit-Tests: TestLargest.java import junit.framework.testcase; public class TestLargest2 extends TestCase { public TestLargest2(String name) { super(name); public void testsimple(){ assertequals(9, Largest.largest(new int[] {8,9,7)); 30.04.2006 7

Lösung 1: Unit-Tests mit JUnit in Eclipse: 2. Tests erstellen und laufen lassen Quellcode des Unit-Tests: Largest.java public class Largest { // Methode liesst int Array ein und gibt den grössten // int Wert des Arrays zurück. public static int largest(int[] list){ int index, max = Integer.MIN_VALUE; for (index = 0; index < list.length; index++){ if (list[index] > max){ max = list[index]; return max; 30.04.2006 8

Lösung 1: Unit-Tests mit JUnit in Eclipse: 2. Tests erstellen und laufen lassen Nachdem der Quellcode geschrieben wurde, geht es ans testen. Testklasse markieren. Menu: Run Run As 1 JUnit Test Test erfolgreich 30.04.2006 9

Lösung 1: Unit-Tests mit JUnit in Eclipse: 3. Testauswertung Da scheint was Schiefgelaufen zu sein. Test fehlgeschlagen Ausgeführte Testmethode Fehlerbeschreibung 30.04.2006 10

Lösung 1: Unit-Tests mit JUnit in Eclipse: 3. Testauswertung Quellcodeänderung der Klasse: Largest.java public class Largest { Anstelle von max = Integer.MAX_VALUE max = 0 public static int largest(int[] list){ int index, max = 0; for (index = 0; index < list.length-1;index++){ if (list[index] > max){ max = list[index]; return max; 30.04.2006 11

Lösung 1: Unit-Tests mit JUnit in Eclipse: 3. Testauswertung Test erfolgreich Test erfolgreich Ausgeführte Testmethode 30.04.2006 12

Lösung 1: Unit-Tests mit JUnit in Eclipse: 4. Test-Suites erstellen und laufen lassen Einen neuen Test erstellen: Menu: File New Other Java JUnit JUnit Test Suite Test in welchem Projekt? Test Suite Name Auswahl der Klassen Der Suite GUI Auswahl für JUnit. In Eclipse nicht nötig. 30.04.2006 13

Aufgabe 2: Euro-Klasse 1. Schreiben Sie die Euro-Klasse zu folgendem TestCase. 2. Überlegen Sie sich weitere Testfälle für die Euro Klasse. Gehen Sie nach dem Right- BICEP Konzept vor. (Euro-Beträge soll auf Cents genau angezeigt werden.) 3. Schreiben Sie einen Testfall, der prüft ob der Betrag richtig gerundet wird. (Verwenden Sie ein Delta von 0.001.) Schreiben Sie Euro.java so um, dass bei der Instanzierung durch new Euro(1.995) der oben geschriebene Test erfolgreich ist. (Tipp: Für die Rundung muss mit Cents gerechnet werden.) import junit.framework.testcase; public class EuroTest extends TestCase { public static void main(string[] args) { junit.swingui.testrunner.run(eurotest.class); public EuroTest(String name) { super(name); public void testamount(){ Euro two = new Euro(2.00); asserttrue(2.00 == two.getamount()); 30.04.2006 14

Lösung 2: Euro-Klasse 1. Die Euro-Klasse EuroTest: public class Euro { private double amount; public Euro(double amount) { this.amount = amount; public double getamount(){ return this.amount; 30.04.2006 15

Lösung 2: Euro-Klasse 2. Mögliche weitere Testfälle: Was passiert, falls mit new Euro(1.995) ein neues Objekt instanziert wird? Welches Ergebnis erwartet man? Was passiert, falls mit new Euro(null) ein neues Objekt instanziert wird? Was passiert, falls mit new Euro(0) ein neues Objekt instanziert wird? Was passiert, falls mit new Euro(1485033959335854832.00) ein neues Objekt instanziert wird? Was passiert, falls mit new Euro( zehn ) ein neues Objekt instanziert wird?... 30.04.2006 16

Lösung 2: Euro-Klasse 3. Zusätzlicher Testfall in EuroTest.java public void testrounding(){ Euro roundedtwo = new Euro(1.995); assertequals(2.00, roundedtwo.getamount(), 0.001); Umgeschriebene Euro-Klasse public class Euro { private long cents; public Euro(double euro) { cents = Math.round(euro * 100); public double getamount(){ return cents/100.0; 30.04.2006 17