TDD. mit JUnit & Mockito. Tobias Trelle, codecentric

Größe: px
Ab Seite anzeigen:

Download "TDD. mit JUnit & Mockito. Tobias Trelle, codecentric"

Transkript

1 TDD mit JUnit & Mockito Tobias Trelle, codecentric 1

2 Tobias Trelle Software codecentric AG Slideshare: GitHub:

3 2 Agenda TDD - Test Driven Development JUnit Mockito Zusammen in Aktion! 3

4 Tests should be written FIRST Fast: Einzeln und in Summe schnell ausführbar Isolated: Unabhängig voneinander und externen Faktoren Repeatable: Immer gleiche Ergebnisse liefern Self-validating: Test-Ergebnis ist ohne menschl. Aufsicht feststellbar Timely: Zeitnah 4

5 TDD Test Driven Development 5. 1

6 TDD Lifecycle 5. 2

7 TDD Lifecycle Red --> Green: Minimale Implementierung / "Fake it" Refactor: Code-Duplikation beseitigen Green --> Red: neuer Test Stets kleine bis kleinste Iterationen, diese führen zu Verallgemeinerungen 5. 3

8 Vorteile von TDD Schnelles Feedback Hohe Test-Abdeckung Code ist testbar Sicherheit bei Refactorings Testfall als Spezifikation der Implementierung 5. 4

9 Literatur

10 5. 5

11 JUnit

12 JUnit Java-Implementierung von xunit Test Framework Defacto-Standard im Java-Bereich 6. 2

13 Aktuelle stabile Version: 4.12 <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>4.12</version> <scope>test</scope> </dependency> 6. 3

14 JUnit Features Defintion von Test Fixtures Test-Ausführung Assertions Rules Definition Test-Suiten Integration in IDE / CI-Build 6. 4

15 JUnit - Einfaches Beispiel public class VnrGeneratorTest { private VnrGenerator generator; /** Unit under test. */ private LocalDateTime stichtag; /** Fixture public void setup() { generator = new VnrGenerator(); stichtag = LocalDateTime.of(2017, Month.FEBRUARY, 17, 0, 0); public void vnr_erzeugung() { // gegeben sei String sachgebiet = "LN"; String name = "Fasel"; // wenn String vnr = generator.neuevnr(sachgebiet, stichtag, name); } } // dann assertthat(vnr, is("ln f001")); 6. 5

16 TDD Live Coding #1 6. 6

17 Mockito

18 Tasty mocking framework for unit tests in Java to mock: etwas vortäuschen

19 7. 2 Aktuelle stabile Version: <dependency> <groupid>org.mockito</groupid> <artifactid>mockito-core</artifactid> <version>2.7.15</version> <scope>test</scope> </dependency> 7. 3

20 Mockito Features Mocking Spying Captors Verifying 7. 4

21 Mocken von Abhängigkeiten 7. 5

22 public class VnrGenerator { private VnrDao dao; VnrGenerator benötigt VnrDao public VnrGenerator(VnrDao dao) { this.dao = dao; } public String neuevnr(string sachgebiet, LocalDate stichtag, Stri final String sgdatum = // sachgebiet + "-" + // stichtag.format(datetimeformatter.iso_local_date); final String ersterbuchstabe = nachname.substring(0,1); final int lnr = ermittlelaufnummerzu(stichtag, ersterbuchstab } return sgdatum + "-" + String.format("%s%03d", ersterbuchstab private int ermittlelaufnummerzu(localdate stichtag, String erste return dao.naechstefreilaufnummer(stichtag, ersterbuchstabe); } }

23 7. 6 Mockito public class VnrGeneratorTest private VnrDao daomock; private VnrGenerator generator; /** Unit under test. */ private LocalDate stichtag; } /** Fixture public void setup() { generator = new VnrGenerator(daoMock); stichtag = LocalDate.of(2017, Month.FEBRUARY, 28); }...

24 7. 7 Mockito im public void vnr_erzeugung() { // gegeben sei String sachgebiet = "LN"; String name = "Fasel"; when( daomock.naechstefreilaufnummer(stichtag, "F") ).thenreturn(1); // wenn String vnr = generator.neuevnr(sachgebiet, stichtag, name); } // dann verify(daomock).naechstefreilaufnummer(stichtag, "F"); verifynomoreinteractions(daomock); assertthat(vnr, is("ln f001"));

25 7. 8 Mockito im Testfall - BDD public void vnr_erzeugung() { // gegeben sei String sachgebiet = "LN"; String name = "Fasel"; given( daomock.naechstefreilaufnummer(stichtag, "F") ).willreturn(1); // wenn String vnr = generator.neuevnr(sachgebiet, stichtag, name); } // dann then(daomock).should().naechstefreilaufnummer(stichtag, "F"); then(daomock).shouldhavenomoreinteractions(); assertthat(vnr, is("ln f001"));

26 7. 9 TDD Live Coding #

27 Grenzen von Mockito Finale Klassen / Methoden Statische Methoden Abhilfe: PowerMock für Mockito 7. 11

28 Danke für Ihre Aufmerksamkeit Tobias Trelle, codecentric TDD mit JUnit & Mockito - Tobias Trelle, codecentric AG 8

Iterativ. Inkrementell

Iterativ. Inkrementell Iterativ Inkrementell Build Release Test Qualität Architektur & Documentation Distributed Version Control Continuous Integration TDD Design Agile Architektur Dependency Feature Branches Mocks

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

Design for Testability in der Praxis David Völkel, codecentric AG

Design for Testability in der Praxis David Völkel, codecentric AG Design for Testability in der Praxis David Völkel, codecentric AG http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg David Völkel *

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

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java

FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java FWP Komponentenorientierte Softwareentwicklung Test-Driven-Development mit Java Hochschule München FK 07 SS 2009 Theis Michael - Senior Developer HVB Information Services GmbH März 2009 Grundlagen des

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

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

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

Spock und Geb (WebDriver) Wie können freie Werkzeuge zum strukturierten Testen von Web-Applicationen eingesetzt werden?

Spock und Geb (WebDriver) Wie können freie Werkzeuge zum strukturierten Testen von Web-Applicationen eingesetzt werden? Stuttgarter Test-Tage 21. & 22. März 2013 Spock und Geb (WebDriver) Wie können freie Werkzeuge zum strukturierten Testen von Web-Applicationen eingesetzt werden? Christian Baranowski Willkommen Christian

Mehr

CONTINUOUS DELIVERY. Entmystifiziert. codecentric AG

CONTINUOUS DELIVERY. Entmystifiziert. codecentric AG CONTINUOUS DELIVERY Entmystifiziert WIE SOFTWARE LIEFERN? 01.07.2014 2 WAS IST CONTINUOUS DELIVERY? Robust Wiederholbar Effektiv 01.07.2014 3 LANDSCHAFTEN Continuous Integration Public / Private Hybrid

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

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

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

Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit Komponenten-basierte Entwicklung Teil 6: Einführung in JUnit 31.10.14 1 Literatur und Web [6-1] Vigenschow, Uwe: Objektorientiertes Testen und Testautomatisierung in der Praxis. dpunkt, 2005 [6-2] Westphal,

Mehr

Beispiel: DB-Mock (1/7)

Beispiel: DB-Mock (1/7) Beispiel: DB-Mock (1/7) Aufgabe: DB, auf die vereinfachend nur lesend zugeriffen wird mocken warum: benötigte keine DB-Lizenz, garantiert gleiche Werte ohne aufwändiges reset, kein Zeitverlust durch Verbindungsaufbau

Mehr

Fabian Schmengler Pragmatisches Unit Testing. Meet Magento DE 2015

Fabian Schmengler Pragmatisches Unit Testing. Meet Magento DE 2015 Fabian Schmengler Pragmatisches Unit Testing Meet Magento DE 2015 1 Agenda Grundlagen: Warum automatisierte Tests? Tests und TDD mit Magento: Überblick und Beispiel Ausblick auf Magento 2 2 Warum Automatisiertes

Mehr

A very very very very short intro to. Testing

A very very very very short intro to. Testing A very very very very short intro to Testing Testen ist Teil von V&V V&V Validierung und Verifikation Validierung Erstellen wir das richtige Produkt? Soll gewährleisten, dass das Softwaresystem die Kundenerwartungen

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

Unit Tests in der Testgetriebenen Entwicklung

Unit Tests in der Testgetriebenen Entwicklung Unit Tests in der Testgetriebenen Entwicklung Reduzierung des Testanteils am Gesamtsoftwareentwicklungsaufwand -- neue Strategien und Tools -- Hauptseminar Systemorientierte Informatik Christian Krauß

Mehr

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

Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Automatisierte Regressionstests per Knopfdruck sparen Zeit und Ressourcen sichern die Qualität schonen die Nerven Dipl.-Inf (FH) Matthias Müller 09.06.2010 Regressionstests Unter einem Regressionstest

Mehr

Geister, Gurken und Halbmetalle. Tools für Web-UI-Acceptance-Tests. Malte Clasen http://malteclasen.de

Geister, Gurken und Halbmetalle. Tools für Web-UI-Acceptance-Tests. Malte Clasen http://malteclasen.de Geister, Gurken und Halbmetalle Tools für Web-UI-Acceptance-Tests Malte Clasen http://malteclasen.de Folien und Code http://malteclasen.de/blog Herbstcampus 2013 Geister, Gurken und Halbmetalle 2 Problem:

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

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

Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt

Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt Gutes Benehmen Akzeptanztest-getriebene Software-Entwicklung in einem Web-Projekt 1 David Tanzer Bakk. Techn. (JKU Linz) Certified Scrum Master Freiberufler seit 2006 http://davidtanzer.net business@davidtanzer.net

Mehr

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb

DevOps bei den ID Build-Automatisierung statt Silo-Betrieb DevOps bei den ID Build-Automatisierung statt Silo-Betrieb SWS Entwicklertreffen vom 1.10.2015 Benno Luthiger 1.10.2015 1 Ausgangslage Kundenwunsch: Stabiles System, das schnell reagiert ( Betrieb) Neue

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

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber

Konsequent agile Entwicklung mit funk4onaler Programmierung. Michael Sperber Konsequent agile Entwicklung mit funk4onaler Programmierung Michael Sperber Individualso4ware branchenunabhängig Scala, Clojure, Erlang, Haskell, F# Schulungen, Coaching www.acave- group.de funkaonale-

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

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

Testen mit Pfefferminzgeschmack

Testen mit Pfefferminzgeschmack Testen mit Pfefferminzgeschmack Birgit Kratz MT AG Ratingen Schlüsselworte Unit-Tests, Mock-Objekte, TDD, BDD, Java Einleitung In Gesprächen mit Kollegen zum Thema Testen kommt immer wieder die Aussage,

Mehr

Refactoring Unit-Tests

Refactoring Unit-Tests def test_validate_e_mail @user.e_mail = '' assert!@user.save assert_equal ["is invalid", "can't be blank"], @user.errors.on(:e_mail) @user.e_mail = 'dhjxfgjdxfj' assert!@user.save assert_equal "is invalid",

Mehr

Open-Source-Werkzeugkasten für Software-QS. 05.05.2011 10:15-11:15 Uhr Zagrebsaal I

Open-Source-Werkzeugkasten für Software-QS. 05.05.2011 10:15-11:15 Uhr Zagrebsaal I Open-Source-Werkzeugkasten für Software-QS 05.05.2011 10:15-11:15 Uhr Zagrebsaal I 1 Speaker Tobias Joch inovex GmbH Head of Solution Development leichtgewichtige und hochskalierende (Web-) Anwendungen

Mehr

CONTINUOUS DELIVERY. codecentric AG

CONTINUOUS DELIVERY. codecentric AG CONTINUOUS DELIVERY AGENDA Einstieg Was ist Continuous Delivery Welche Ziele werden verfolgt? Voraussetzungen Technisch Organisatorisch Kulturell Umsetzung und Einführung 6 Disziplinen der Continuous Delivery

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

Effizientes Programmieren

Effizientes Programmieren Effizientes Programmieren Praktikum (14.06.2016) Christopher Pietsch Agenda 1 2 3 4 5 6 1 / 32 (14.06.2016) Teil 1 von Softwareentwicklungsmethoden 2 / 32 (14.06.2016) Methodenlose Softwareentwicklung

Mehr

CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011. Statische Code-Analyse für Groovy & Grails mit CodeNarc

CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011. Statische Code-Analyse für Groovy & Grails mit CodeNarc Statische Code-Analyse für Groovy & Grails mit CodeNarc CamelCaseCon 2011 Vortrag von Stefan Glase am 07.09.2011 OPITZ CONSULTING GmbH 2011 Folie 1 Stefan Glase, OPITZ CONSULTING Software-Entwickler Java

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

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

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

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

Inhaltsverzeichnis. Geleitwort Einleitung... 13

Inhaltsverzeichnis. Geleitwort Einleitung... 13 5 Geleitwort..................................................... 11 Einleitung..................................................... 13 1 Einführung.......................................................

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

Literatur und Web. Komponenten WS 2014/15 Teil 8/Mocks

Literatur und Web. Komponenten WS 2014/15 Teil 8/Mocks Literatur und Web [8-1] Vigenschow, Uwe: Objektorientiertes Testen und Testautomatisierung in der Praxis. dpunkt, 2005 [8-2] Westphal, Frank: Testgetriebene Entwicklung mit JUnit & FIT. dpunkt, 2006 [8-3]

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

extreme Programming (XP)

extreme Programming (XP) Softwaretechnik SS2005 Tobias Giese Masterstudiengang Informatik HS-Harz Agenda Allgemeines Vorgehensmodell Kommunikation und Arbeitsphilosophie Entwicklungsphasen / Extreme Rules Planung Entwurf Implementierung

Mehr

Testen und Debuggen von Webanwendungen

Testen und Debuggen von Webanwendungen Testen und Debuggen von Webanwendungen Leif Singer leif.singer@inf.uni-hannover.de Seminar Aktuelle Software-Engineering-Praktiken für das World Wide Web 16.06.2010 Übersicht Grundlagen Usability-Tests

Mehr

Web-Anwendungen mit Arquillian testen

Web-Anwendungen mit Arquillian testen Michael Kotten open knowledge @michaelkotten @_openknowledge Wozu denn testen? Ich mach doch keine Fehler! Wozu denn testen? > Notwendig bei komplexen Systemen > Sicherung von > Qualität > Funktionalität

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

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag

Refactoring von Legacy Systemen. Jochen Winzen jochen.winzen@andrena.de andrena objects ag Refactoring von Legacy Systemen Jochen Winzen jochen.winzen@andrena.de andrena objects ag Was ist ein Legacy System Ein Legacy System hat folgenden Eigenschaften: + Besitzt die geforderte Funktionalität

Mehr

Tipps & Tricks für das Testen von Microservices

Tipps & Tricks für das Testen von Microservices Tipps & Tricks für das Testen von Microservices Jörg Pfründer Hypoport AG EUROPACE EUROPACE 15% der Immobilienkredite Deutschlands EUROPACE 15% der Immobilienkredite Deutschlands ca. 3 Mrd Euro / Monat

Mehr

Echolot Qualitätssicherung mit Sonar

Echolot Qualitätssicherung mit Sonar Echolot Qualitätssicherung mit Sonar Thomas Haug thomas.haug@mathema.de www.mathema.de Motivation Sonar Überblick Demo Fazit Motivation Sonar Überblick Demo Fazit Sometimes the developers manage to maintain

Mehr

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.

Wer bin ich. > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre. Copyright 2010, MATHEMA Software GmbH 1 Wer bin ich > Senior Consultant, Architekt und Trainer (MATHEMA Software GmbH) > 25+ Jahre Software > 12+ Jahre Java Enterprise > 7+ Jahre.Net > Schwerpunkte Software

Mehr

Design for Testability in der Praxis Referent: David Völkel

Design for Testability in der Praxis Referent: David Völkel Design for Testability in der Praxis Referent:DavidVölkel http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg DavidVölkel anti pattern

Mehr

Aufgaben Objektentwurf

Aufgaben Objektentwurf Aufgaben Objektentwurf (Einschub zum 5. Tutorium) Tutorium 6 13. März 2009 Svetlana Matiouk, Uni Bonn Ferientutorien zur Vorlesung Softwaretechnologie WS 2008 6. Treffen, Aufgabe 1 Vorwärtsmodellierung

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

JGiven: Ein entwicklerfreundliches BDD-Framework für Java

JGiven: Ein entwicklerfreundliches BDD-Framework für Java JGiven: Ein entwicklerfreundliches BDD-Framework für Java Dr. Jan Schäfer 27. November 2015 Warum BDD? Typischer JUnit-Test @ T e s t p u b l i c v o i d s h o u l d I n s e r t P e t I n t o D a t a b

Mehr

Continuous Everything

Continuous Everything Continuous Everything Development, Integration, Deployment, DevOps Peter Hormanns cusy GmbH, Berlin Vortrag OpenRheinRuhr 5./6. November 2016 de.slideshare.net/cusyio/continuous-everything Kapitel you

Mehr

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung

Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Gegenseitige Beeinflussungen von Testautomatisierung, Testmanagement und Entwicklung Jan Düttmann Archimedon Software + Consulting GmbH & Co. KG Marienstraße 66 32427 Minden Stephan Kleuker Hochschule

Mehr

Scriptbasierte Testautomatisierung. für Web-Anwendungen

Scriptbasierte Testautomatisierung. für Web-Anwendungen Scriptbasierte Testautomatisierung für Web-Anwendungen Scriptbasierte Testautomatisierung + Web-Anwendung: Erstes Einsatzgebiet, Ergebnisse aber allgemein übertragbar + Test aus Benutzersicht - Nicht Unit-Test,

Mehr

Agile Methoden. David Tanzer. Oliver Szymanski

Agile Methoden. David Tanzer. Oliver Szymanski Agile Methoden David Tanzer Oliver Szymanski Ziel von Softwareentwicklung Anforderungen zuverlässig und effizient in lauffähige Software verwandeln. Ziel von Softwareentwicklung Bedürfnisse des Kunden

Mehr

Stefan Roock stefan.roock@akquinet.de. Bernd Schiffer bernd.schiffer@akquinet.de. Beispiel Grails

Stefan Roock stefan.roock@akquinet.de. Bernd Schiffer bernd.schiffer@akquinet.de. Beispiel Grails Stefan Roock stefan.roock@akquinet.de Bernd Schiffer bernd.schiffer@akquinet.de Beispiel Grails Brauchen wir neue Technologien für agile Entwicklung? Herzlich Willkommen! Stefan Roock akquinet AG, Hamburg

Mehr

Agile Entwicklung für ios und Android

Agile Entwicklung für ios und Android XPDays Germany 2015 1 Agile Entwicklung für ios und Android Ilja Mutschnik und Simon Hartmann 2 Scrum Xcode Java Swift Continuous Integration Android Studio AppCode Agile Development Objective-C TDD Continuous

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

SEQIS 10 things API Testing

SEQIS 10 things API Testing SEQIS 10 things API Testing SEQIS 10 things API Testing Herzlich Willkommen! Reinhard Salomon SEQIS Geschäftsleitung SEQIS 10 things Programm 2014 20.03.14 Business Analyse Einführung in den BABOK Guide

Mehr

TDD für iphone OS. xpdays 2009. Tammo Freese

TDD für iphone OS. xpdays 2009. Tammo Freese TDD für iphone OS xpdays 2009 Tammo Freese Inhalt Unit Testing für iphone OS Mockobjekte für iphone OS TDD für iphone OS? Unit Testing auf dem iphone Vor iphone OS 3.0: kaum dokumentiert nur auf dem Entwicklungsrechner

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 12: Metawissen Java Bibliotheken, Maven Robert Jakob Albert-Ludwigs-Universität Freiburg, Germany SS 2013 Robert Jakob (Univ. Freiburg) Programmieren in Java JAVA 1 / 33

Mehr

Testgetriebenes Ajax. Johannes Link unabhängiger Softwarecoach http://johanneslink.net. Marco Klemm andrena objects ag http://andrena.

Testgetriebenes Ajax. Johannes Link unabhängiger Softwarecoach http://johanneslink.net. Marco Klemm andrena objects ag http://andrena. Johannes Link unabhängiger Softwarecoach http://johanneslink.net Marco Klemm andrena objects ag http://andrena.de Agenda Was ist Testgetriebene Entwicklung (TDD)? Herausforderungen bei Ajax-Applikationen

Mehr

Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren

Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren Lean Modeling - Software Systeme einfach und präzise mit natürlicher Sprache spezifizieren Dr. Christian Wende und Dr. Tobias Nestler, DevBoost GmbH 21. Mai 2014, Karlsruher Entwicklertag 2014, Dresden

Mehr

Gestatten: Hudson. Augmented Development. Thomas Kruse. Sun Campus Ambassador thomas.kruse@sun.com

Gestatten: Hudson. Augmented Development. Thomas Kruse. Sun Campus Ambassador thomas.kruse@sun.com Gestatten: Hudson Augmented Development Thomas Kruse Sun Campus Ambassador thomas.kruse@sun.com 1 Zum Referenten Thomas Kruse Java Entwickler seit 1998 Mitgründer der Java Usergroup Münsterland: jug-muenster.de

Mehr

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007

Eclipse Equinox als Basis für Smart Client Anwendungen. Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Eclipse Equinox als Basis für Smart Client Anwendungen Christian Campo, compeople AG, 5.7.2007 Java Forum Stuttgart 2007 Übersicht Definition / Architektur Smart Client Smart Client mit RCP / Equinox Gesamtfazit

Mehr

Software Engineering in

Software Engineering in Software Engineering in der Werkzeuge für optimierte LabVIEW-Entwicklung Folie 1 Best Practices Requirements Engineering Softwaretest Versionsmanagement Build- Automatisierung Folie 2 Arbeiten Sie im Team?

Mehr

Prüfung Software Engineering II (IB)

Prüfung Software Engineering II (IB) Hochschule für angewandte Wissenschaften München Fakultät für Informatik und Mathematik Studiengruppe IB 4 A Sommersemester 2015 Prüfung Software Engineering II (IB) Datum : 20.07.2015, 12:30 Uhr Bearbeitungszeit

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

Wie wird mein Code testbar? Referent: David Völkel

Wie wird mein Code testbar? Referent: David Völkel Wie wird mein Code testbar? Referent:DavidVölkel http://commons.wikimedia.org/wiki/file:pit_crew_hudson_valley.jpg http://commons.wikimedia.org/wiki/file:carservice.jpg DavidVölkel anti pattern hardtotestcode

Mehr

INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN?

INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN? INTEGRATION TEST HELL ODER WIE INTEGRATIV SOLL ICH TESTEN? David Völkel XPDays Germany 14.11.2013 ÜBER MICH David Völkel IT-Consultant für codecentric Twitter: @davidvoelkel Schwerpunkte: Test-Driven Development

Mehr

Effektiver Einsatz von Code-Reviews

Effektiver Einsatz von Code-Reviews Effektiver Einsatz von Code-Reviews Version: 1.4 Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de info@oio.de 18. Java Forum Stuttgart 2015 Ihr Sprecher Thorsten Maier Trainer,

Mehr

Struts 2 Das Imperium schlägt zurück?

Struts 2 Das Imperium schlägt zurück? Struts 2 Das Imperium schlägt zurück? Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim Tobias Kieninger www.oio.de info@oio.de Java, XML und Open Source seit 1998 ) 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

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

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

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell

Wie ich lernte die API zu lieben. 19. März 2013. bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Burp- Wie ich lernte die zu lieben 19. März 2013 bernhard.groehling@sicsec.de 08142-4425 037 sic[!]sec GmbH Industriestraße 29-31 82194 Gröbenzell Burp- Was erwartet uns? Das erwartet euch Theorie:

Mehr

Continuous Integration

Continuous Integration Embedded & Software Engineering Continuous Integration technik.mensch.leidenschaft März 2015 DIN EN ISO 9001 Was ist CI? Was ist Continuous Integration? l Continuous Integration (CI) kommt von Xtreme Programming

Mehr

Test-Driven Developement Eine Einführung

Test-Driven Developement Eine Einführung Test-Driven Developement Eine Einführung 2007 by Tobias Hagen Im Rahmen der Veranstaltung Aktuelle Themen der Informatik bei Prof. Dr. Friedbert Kaspar Hochschule Furtwangen University Übersicht Einführung...

Mehr

Rene Schneider GEBIT Solutions GmbH. Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung

Rene Schneider GEBIT Solutions GmbH. Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung Rene Schneider GEBIT Solutions GmbH Integrity - ein innovatives Tool zur Acceptance-Test-Automatisierung Über mich Über mich Software Consultant bei GEBIT Solutions Über mich Software Consultant bei GEBIT

Mehr

Testgetriebene Web-Entwicklung mit Ruby on Rails

Testgetriebene Web-Entwicklung mit Ruby on Rails Testgetriebene Web-Entwicklung mit Ruby on Rails Thomas Baustert www.b-simple.de www.b-simple.de 1 Agenda Rails Einführung Test-Unterstützung in Rails Testgetriebene Web-Entwicklung mit Rails Live Demo

Mehr

Der EMF-generierte Code. 7. November 2012

Der EMF-generierte Code. 7. November 2012 Der EMF-generierte Code 7. November 2012 Überblick Wie sieht der aus einem EMF-Modell generierte Code aus? Wie ist die Beziehung zwischen Modell und Code? Wie kann generierter Code durch handgeschriebenen

Mehr

Der Weisheit letzter Schluss:

Der Weisheit letzter Schluss: Der Weisheit letzter Schluss: Maven 2 in der Java Entwicklung Web Site: www.soebes.de Blog: blog.soebes.de Email: info@soebes.de Dipl.Ing.(FH) Karl Heinz Marbaise Agenda 1. Was ist Maven? 2. Features von

Mehr

Praktische Übung 'JUnit-Test'

Praktische Übung 'JUnit-Test' Praktische Übung 'JUnit-Test' Starten Sie für die folgende Übung Eclipse und laden Sie das Testprojekt von folgender URL: http://pi.informatik.uni-siegen.de/berlik/swt/currency.zip Darin ist die Klasse

Mehr

aformatik Training & Consulting GmbH & Co. KG Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss

aformatik Training & Consulting GmbH & Co. KG Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss aformatik Training & Consulting GmbH & Co. KG 1 Eine Einführung in das automatisierte Testen mit dem Robot-Framework Thomas Gauss Fahrplan Agenda aformatik Training & Consulting GmbH & Co. KG 2 Vorstellung

Mehr

Christian Meder inovex. Sauberes Grün QS für Android

Christian Meder inovex. Sauberes Grün QS für Android Konferenz Christian Meder inovex Sauberes Grün QS für Android Sauberes Grün: QS für Android W-JAX, 2011 Christian Meder inovex GmbH Chief Technology Officer 09.11.2011 1 Speaker Christian Meder Schwerpunkte

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

Anforderungsgetriebene Webentwicklung mit Grails:

Anforderungsgetriebene Webentwicklung mit Grails: ne mit Grails: und dem 26.01.2012 und dem Gliederung und dem Projektumfeld Agentur mit weniger als 5 Mitarbeitern Schwerpunkte: mit Typo 3 / PHP ios App-Entwicklung für ipad und iphone und dem Folie 1

Mehr

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

Überblick. Einleitung. Unit-Tests. JUnit. HelloWorld Beispiel. Praktische Beispiele. Referenzen Testen mit JUnit 1 Überblick Einleitung Unit-Tests JUnit HelloWorld Beispiel Praktische Beispiele Referenzen 2 Einleitung Irren ist menschlich Überprüfung auf Knopfdruck Entwicklung richtiger Tests ->

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

Software Engineering I

Software Engineering I Software I Übungsblatt 1 + 2 Claas Pinkernell Technische Universität Braunschweig http://www.sse.cs.tu-bs.de/ Seite 2 Welche Werkzeuge? Programmiersprache Java Integrierte Entwicklungsumgebung Eclipse

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

Prozessautomatisierung mit BPMN 2.0 und Java. bernd.ruecker@camunda.com

Prozessautomatisierung mit BPMN 2.0 und Java. bernd.ruecker@camunda.com Prozessautomatisierung mit BPMN 2.0 und Java bernd.ruecker@camunda.com Bernd Rücker camunda services GmbH Demo Was ist Prozessautomatisierung mit BPMN 2.0 Prozessautomatisierung mit Process Engine Monitoring

Mehr

public class SternchenRechteckGefuellt {

public class SternchenRechteckGefuellt { Java programmieren: Musterlösungen Konsolen-Aufgaben Aufgabe 1: Gefüllte Rechtecke zeichnen Schreiben Sie ein Programm, das ein durch Sternchen gefülltes Rechteck zeichnet. Der Benutzer soll Breite und

Mehr

Build Management. Präsentation von Daniel Mies daniel.mies@1und1.de

Build Management. Präsentation von Daniel Mies daniel.mies@1und1.de Build Management Präsentation von Daniel Mies daniel.mies@1und1.de Agenda 1&1 Member of United Internet Build Management mit Maven Motivation Kompilieren & Paketieren Dependency Management Software Analyse

Mehr

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

SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld SAP Software Engineering live Agile! Agiles Projektmanagement und Clean Code im SAP-Umfeld SAP Software Engineering live Agile! SAP Ali Kaveh Software Engineering live Agile! Certified Scrum Master Solution

Mehr

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP)

MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) MOBILE ENTERPRISE APPLICATION PLATFORM (MEAP) Oliver Steinhauer.mobile PROFI Mobile Business Agenda MOBILE ENTERPRISE APPLICATION PLATFORM AGENDA 01 Mobile Enterprise Application Platform 02 PROFI News

Mehr