Test-driven development JUnit-Test. Lars Varain

Ähnliche Dokumente
Das Test-Framework JUnit ETIS SS04

Unit Tests mit Junit 4. Dario Borchers

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

Fortgeschrittenes Programmieren mit Java. Test Driven Development

Unit Tests. Programmiermethodik. Eva Zangerle Universität Innsbruck

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

Kurzanleitung JUnit. 1 Grundlagen. 1.1 Begriffsdefinitionen. 1.2 Empfehlungen

Enterprise JavaBeans Überblick

Unit Tests in der Testgetriebenen Entwicklung

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

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

Programmierpraktikum Java Entdecken. Merkblatt 3

Programmieren I. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

JUnit 4 Tutorial. Wolfgang Stöttinger

Programmierung 2 Studiengang MI / WI

Markus Wichmann. Testen von Java Code mit. JUnit

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java

Software Engineering Test Automatiserung und Junit, Test Driven ( test first) Development

Systematisches Testen

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

Programmiertechnik II

Unit Testing mit JUnit. Dr. Andreas Schroeder

Programmierung 2 Studiengang MI / WI

UE 2: Lexikalische Analyse (Scanner)

Testen mit JUnit. Motivation

Das automatisierte Testen mit JUnit

A very very very very short intro to. Testing

Testen mit JUnit. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl, Nora Koch 05/03

Unit Testing, SUnit & You

Effizientes Programmieren

Swp08-6 Verantwortliche: Yundensuren, Baigalmaa. Testkonzept

4 Testgetriebene Entwicklung mit PHPUnit

NTB Druckdatum: InI I

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

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

Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit

Ein erster Blick. Eclipse und Debugging. Anlegen von Projekten. Wissenswertes...

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

Unit Testing mit NUnit

Programmieren in Java

leicht zu schreiben sein. Wenn ein Test nicht leicht zu schreiben ist, werden wir ihn nicht schreiben.

SOFTWARE ENGINEERING 3 TESTVORBEREITUNGEN UND UNIT-TEST

JUnit. Unit testing unter Java

TESTEN OBJEKTORIENTIERTER PROGRAMME MIT JUNIT

JUnit (Version 4.x) Framework zur Unterstützung von Unit-Tests. Wir verwenden nicht JUnit 3.x. Ideen dahinter. Test-Methode

Konzeption. und prototypische Implementierung. eines Werkzeuges. für den funktionalen Klassentest

3 Unit Tests mit JUnit

Inhaltsverzeichnis. Geleitwort Einleitung... 13

Code verifizieren mittels

Software-Engineering Software-Management

Testen im Software- Lebenszyklus

Unit Tests und Fehlersuche

Refactoring Unit-Tests

Framework zur Unterstützung von Unit-Tests

Testen von Android- Anwendungen. 6. Juni 2013

Thema: Testen von objektorientierter Software

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015

Testen von Softwaresystemen. 13. Januar 2015

Open Source IDE - eclipse ETIS SS04

Test Driven Development

Anforderungsgetriebene Webentwicklung mit Grails:

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

Software - Testung ETIS SS05

eclipse - Entwicklungsumgebung und mehr ETIS SS05

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit

Benchmarking von Bilddatenstrukturen

Programmierprojekt. Anne0e Bieniusa Sommersemester 2014

Kapitel 5.2 Testwerkzeuge

Testautomatisierung. Märchen, Möglichkeiten und praktischer Nutzen. Richard Seidl 21. Januar 2013 TU Dresden. Medizin- und Informationstechnik AG

Pattern Techniken. Package Rename Package Umbenennen eines Packages. Package Move Package Verschieben eines Packages

Testen von graphischen Benutzeroberflächen. 26. Juni 2013

Testgetriebene Entwicklung JUnit. Seminar Datenverarbeitung Wintersemester 2006/07

Test-Driven Developement Eine Einführung

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

JGiven: Ein entwicklerfreundliches BDD-Framework für Java

am Beispiel von JUnit

Vom Testkonzept zu JUnit

Semesterprojekt Semantic Text Browsing. Ulf Leser, Philippe Thomas (, Lars Döhling)

Automatisiertes Testen mit dem Doctest-Modul

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld

Einführung in JUnit 4

Value Delivery and Customer Feedback

DV- Anwendungen in der Wirtschaft Projekt: ICEE-Filecollector QS: WhiteBox Tests

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven

SEQIS 10 things API Testing

Einstieg in die Informatik mit Java

Testen von grafischen Benutzeroberflächen

Komponentenbasierter Taschenrechner mit CORBA

Testen von webbasierten Benutzeroberflächen

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

zlib-lizenz (kompatibel zur GNU General Public License )

Praktische Übung 'JUnit-Test'

Überblick. Einleitung. Unit-Tests. JUnit. HelloWorld Beispiel. Praktische Beispiele. Referenzen

6. Interfaces Grundlagen der Programmierung 1 (Java)

Kapitel 10b Test-Automatisierung

Testgetriebenes Ajax. Johannes Link unabhängiger Softwarecoach Marco Klemm andrena objects ag

Programmierung für Mathematik (HS13)

Continuous Delivery. für Java Anwendungen. Axel Fontaine Software Development Expert

Fernuniversität in Hagen. Untersuchungen zum Selbsttest von JUnit

Transkript:

Test-driven development JUnit-Test Lars Varain

Inhalt Test-driven Development (TDD) Junit4 Beispiel

Inhalt Test-driven Development (TTD) Warum TDD? Zyklus Ausnahmebehandlung Junit4 Beispiel

Inhalt Test-driven Development (TDD) Junit4 Junit & eclipse Die Methoden Beispiel

Inhalt Test-driven Development (TTD) Junit4 Beispiel

Warum Zyklus Ausnahmen Warum TDD

Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung

Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar

Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar Tests sichern den Erhalt der vorhandenen Funktionalität bei Erweiterung und Überarbeitung

Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar Tests sichern den Erhalt der vorhandenen Funktionalität bei Erweiterung und Überarbeitung Refactoring verlängert die produktive Lebensdauer einer Software

Warum Zyklus Ausnahmen Warum TDD TDD ist qualitätsbewusste Programmierung Tests machen Fortschritte greifbar Tests sichern den Erhalt der vorhandenen Funktionalität bei Erweiterung und Überarbeitung Refactoring verlängert die produktive Lebensdauer einer Software Code lässt sich im Nachhinein schlecht testen

Warum Zyklus Ausnahmen Zyklus 1. Direktive Motivieren Sie jede Änderung des Programmverhaltens durch einen automatisierten Test

Warum Zyklus Ausnahmen Zyklus 1. Direktive Motivieren Sie jede Änderung des Programmverhaltens durch einen automatisierten Test 2. Direktive Bringen Sie Ihren Code immer in die einfachste Form

Warum Zyklus Ausnahmen Zyklus Junit: failure Junit: OK Junit: OK

Warum Zyklus Ausnahmen Ausnahmen

Warum Zyklus Ausnahmen Ausnahmen 1. Ausnahme Test läuft auf Anhieb

Warum Zyklus Ausnahmen Ausnahmen 1. Ausnahme 2. Ausnahme Test läuft auf Anhieb Test schägt weiterhin fehl

Warum Zyklus Ausnahmen Ausnahmen 1. Ausnahme 2. Ausnahme 3. Ausnahme Test läuft auf Anhieb Test schägt weiterhin fehl??? Test lässt sich nur unter erheblichem Aufwand erfüllen, wenn überhaupt

Tests sind Unit Tests

Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests

Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma

Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma Tests werden direkt in JAVA implementiert

Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma Tests werden direkt in JAVA implementiert Junit4 arbeitet mit Annotationen (@Test, @Before, @After, @BeforClass, @AfterClass, @RunWith, @Suite, @Ignore)

Tests sind Unit Tests Junit ist ein JAVA Framework zum schreiben und ausführen von automatisierten Tests Im Kern geschrieben von Kent Beck und Erich Gamma Tests werden direkt in JAVA implementiert Junit4 arbeitet mit Annotationen Eclipse hat ein eigenes JUnit tool

In Version 3.8.1 noch aufrufbar mit integrierter swinggui... junit.swingui.testrunner.run(testclass.class);... Ab Version 4.x ohne.

In Version 3.8.1 noch aufrufbar mit integrierter swinggui... junit.swingui.testrunner.run(testclass.class);... Ab Version 4.x ohne. Eclipse hat eine eigene gui Test Runner für Junit4

Jede Testfallmethode hat ein eigenes Testfallobjekt setup() testmethode1() teardown() Test1: Test1: setup() testmethode2() teardown()

Jede Testfallmethode hat ein eigenes Testfallobjekt setup() testmethode1() teardown() Test1: Test1: setup() testmethode2() teardown() Extrahieren eines gemeinsames Test-Fixture

Jede Testfallmethode hat ein eigenes Testfallobjekt setup() testmethode1() teardown() Test1: Test1: setup() testmethode2() teardown() Extrahieren eines gemeinsames Test-Fixture Gruppierung der Testfälle um eine gemeinsame Fixture

Test-Fixture

Test-Fixture Objekte der Testumgebung zu Instanzvariablen machen

Test-Fixture Objekte der Testumgebung zu Instanzvariablen machen Initialisieren dieser mit setup()

Test-Fixture Objekte der Testumgebung zu Instanzvariablen machen Initialisieren dieser mit setup() Resourcen wieder freigeben mit teardown()

Ziel: nach jedem erfolgreichen Kompiliervorgang alle gesammelten Unit- Tests automatisiert ausführen

Ziel: nach jedem erfolgreichen Kompiliervorgang alle gesammelten Unit- Tests automatisiert ausführen fasst alle Test-Klassen zusammen

Ziel: nach jedem erfolgreichen Kompiliervorgang alle gesammelten Unit- Tests automatisiert ausführen fasst alle Test-Klassen zusammen Kann auch noch weitere s integrieren

-Methoden

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual)

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual)

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual)

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta)

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta) assert(not)null(object object)

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta) assert(not)null(object object) assert(not)same(object expected, Object actual)

-Methoden Methoden der -Klasse, mit der zu testende Behauptungen über den Code aufgetsellt werden können assertequals(object expected, Object actual) assertequals(string expected, String actual) assertequals(int expected, int actual) assertequals(double expected, double actual, double delta) assert(not)null(object object) assert(not)same(object expected, Object actual) asserttrue(false)(boolean condition)

Beispiel Videothek Film kostet 2 für 2 Tage, danach 1,50 für jeden zusätzlichen Tag Bezahlt wird mit EURO nicht mit double Zusätzliche Filmkategorie Neuer Film Neuer Film kostet 3 für 2 Tage, danach 2 für jeden zusätzlichen Tag Anzahl der Videos die ein Kunde geliehen hat soll einsehbar sein Kunden werden in einer Liste abgelegt Liste hat add(), remove(), und get() Methoden

Noch Fragen?

Danke für die Aufmerksamkeit