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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 Überblick Semantische Qualität von Software Teststrategien und prinzipien Testgetriebene Softwareentwicklung Welche Arten von Tests sind möglich? Wann haben wir genug getestet? Codeüberdeckung Datenüberdeckung Was tun, wenn die Daten fehlen? Mock-Objekte benutzen Taentzer Softwarequalität

3 Semantische Qualität Die semantische Qualität von Software bezieht sich auf die Erfüllung der Anforderungsspezifikation: Erfüllung der funktionalen Anforderungen: Funktionalität: Korrektheit, Vollständigkeit, Sicherheit, Fehlertoleranz Erfüllung der folgenden nichtfunktionalen Anforderungen: Effizienz: Wirtschaftlichkeit, Zeitverhalten, Verbrauchsverhalten Taentzer Softwarequalität

4 Nachweismöglichkeiten für semantische Qualität Testen: exemplarische Programmausführungen, um Fehler (Defekte) zu finden Zusicherungen: Konsistenzeigenschaften, die während der Programmausführung überprüft werden Verifikation: Nachweis, dass alle Programmausführungen bestimmte Eigenschaften erfüllen Welche Vor- und Nachteile haben diese verschiedenen Nachweismöglichkeiten? Taentzer Softwarequalität

5 Repräsentative Tests Wir können im Allgemeinen nicht alle möglichen Eingaben austesten. (Warum?) Deshalb wählen wir eine möglichst aussagekräftige Menge von Testfällen aus. Ein Testfall ist repräsentativ, wenn er eine neue Kombination von Eingabedatenkategorien prüft (in Blackbox- und Whitebox-Tests) oder einen neuen Pfad im Programm durchläuft (nur in Whitebox-Tests). Testziel: Alle möglichen Kombinationen von Eingabedatenkategorien und alle Pfade des Programms sind getestet. Taentzer Softwarequalität

6 Identifikation von repräsentativen Testfällen (datengetrieben) Zum datengetriebenen Testen einer funktionalen Einheit (z.b. Methode) hat sich das folgende Verfahren aus [OB88] bewährt: 1. Erstelle ein Modell der Eingabedatenstrukturen: Welche Datenkategorien gibt es für die Parameter? Welche Objekte der Umgebung müssen berücksichtigt werden? 2. Zerlege den Datenraum jeder Kategorie in Wahlmöglichkeiten 3. Wie viele Kombinationen von Wahlmöglichkeiten gibt es? 4. Welche Kombinationen sind möglich? Welche Abhängigkeiten gibt es zwischen den identifizierten Wahlmöglichkeiten? 5. Für jede mögliche Kombination von Wahlmöglichkeiten werden passende Werte gewählt und ein Testfall geschrieben. Dieser enthält auch den Erwartungswert. Taentzer Softwarequalität

7 Beispiel für datengetriebene Tests Taentzer Softwarequalität [OB88]

8 Beispiel für datengetriebene Tests Mögliche Testläufe: [OB88] Taentzer Softwarequalität

9 Beispiel für datengetriebene Tests Kategorien und Wahlmöglichkeiten: Taentzer Softwarequalität [OB88]

10 Beispiel für datengetriebene Tests Eine Kombination von Wahlmöglichkeiten: Ist diese Kombination möglich? [OB88] Taentzer Softwarequalität

11 Beispiel für datengetriebene Tests Wahlmöglichkeiten mit Abhängigkeiten: [OB88] Taentzer Softwarequalität

12 Beispiel für datengetriebene Tests Wahlmöglichkeiten mit Abhängigkeiten: Taentzer Softwarequalität [OB88]

13 Beispiel für datengetriebene Tests Auszeichnung von Wahlmöglichkeiten, die Fehler produzieren: [OB88] Taentzer Softwarequalität

14 Beispiel für datengetriebene Tests Auszeichnung von Wahlmöglichkeiten, die Fehler produzieren: Diese werden nicht in Kombination mit anderen geprüft. [single] identifiziert Testfälle, die auch nicht in Kombination geprüft werden müssen. Taentzer Softwarequalität [OB88]

15 Beispiel für datengetriebene Tests Ein konkreter Testfall für die angegebene Kombination: Ein Testfall pro zu prüfender Kombination Skaliert diese Testmethode? [OB88] Taentzer Softwarequalität

16 Einsatz in der testgetriebenen Entwicklung Vorgehensweise: beschreibe wesentliche Testfälle schon mit den Anforderungen folge dem vorgestellten Verfahren zur Identifikation von repräsentativen Testfällen programmiere alle repräsentativen Testfälle führe die Testfälle aus: Fehler, da die Funktionalität noch fehlt implementiere die Funktionalität führe die Testfälle aus: Code solange ändern, bis alle Tests durchlaufen führe Refactorings durch Taentzer Softwarequalität

17 Mock-Objekte Was tun, wenn bestimmte Ressourcen (Komponenten) noch nicht zum Testen zur Verfügung stehen? Beispiele: Datenbanken, Dateien, Server, Softwarekomponenten Was tun, wenn eine Methode schwer testbar ist, weil Eingabeparameter nur sehr umständlich, eingeschränkt oder gar nicht erstellbar sind? Beispiele: Uhrzeit, GUI, Netzwerkfehler Mock-Objekte: Attrappen, die echte Objekte simulieren Sie implementieren dieselben Schnittstellen wie die echten Objekte. Sie unterstützen den Komponententest. (Warum?) weitere Informationen: Taentzer Softwarequalität

18 Beispiel: Mock-Objekte (manuell) VerzeichnisTest Vorlesungsverzeichnis <<interface>> Course getnextparticipant() MockCourse getnextparticipant() public Person getnextparticipant() { //... Person p1 = new Person( Meier ); //... return p1; } Lecture getnextparticipant() public Person getnextparticipant() { return getmanagement(). getnextparticipant();} Taentzer Softwarequalität

19 Beispiel: Mock-Objekte mit Mockito import static org.mockito.mockito.*; public void firstcoursetest(){ //arrange Course c=mock(mockcourse.class); when(c.getnextparticipant()).thenreturn( new Person( Maier )); //act String result=c.getnextparticipant(); //assert assertequals( Meier", result.tostring()); } Taentzer Softwarequalität

20 Werkzeuge für das Testen mit Mock-Objekten Wie wird getestet? Unit-Testing mit Mock-Objekten Mock-Objekt erzeugen Das erwartete Verhalten aufnehmen Mock-Objekt auf Abspielen des Verhaltens schalten Was kann getestet werden? Aufruf von Methoden (auch die Anzahl und Reihenfolge) Rückgabewerte Werfen von Exceptions Verhalten zwischen mehreren Mock-Objekten Werkzeuge für Java: EasyMock: Mockito: Taentzer Softwarequalität

21 Zusammenfassung Semantische Qualitätsprüfungen: Testen, Zusicherungen, Verifikation Testen ist eine analytische Qualitätssicherungsmaßnahme. Testen hilft, Fehler zu finden. Es kann nicht die Abwesenheit von Fehlern zeigen. Zentrale Frage: Wann haben wir genug getestet? Repräsentative Testfälle decken die möglichen Eingabewerte optimal ab und testen alle möglichen Programmabläufe (in Whitebox-Tests). Mock-Objekte: falls die echten Daten für das Testen noch fehlen Taentzer Softwarequalität

22 Literatur [Mye95] Glenford J. Myers: Methodisches Testen von Programmen, Oldenbourg Verlag, 1995 [Lin05] Johannes Link u. a.: Softwaretests mit JUnit. Techniken der testgetriebenen Entwicklung. 2. Auflage. dpunkt, 2005 [OB88] T. Ostrand, M. Balcer: The category-partition method for specifying and generating functional tests, Communication of the ACM, gorypartition88.pdf Taentzer Softwarequalität

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

Re-Engineering: Test-First-Ansatz. Dr. Thorsten Arendt Marburg, 17. Dezember 2015 Re-Engineering: Test-First-Ansatz Dr. Thorsten Arendt Marburg, 17. Dezember 2015 Re-Engineering Patterns [Demeyer et al.] 2 Software-Evolution WS 2015/2016 Überblick Probleme Wie ändert man Teile eines

Mehr

Testgetriebene Entwicklung mit JUnit4

Testgetriebene Entwicklung mit JUnit4 Testgetriebene Entwicklung mit JUnit4 Seminarvortrag im Fach Fortgeschrittenes Programmieren in Java, Dozent: Prof. Klinker Datum: 30.04.2010 Referent: Marius Schmeding Ausgangsfragen... Wie testet man

Mehr

Softwaretests mit Junit

Softwaretests mit Junit Softwaretests mit Junit Techniken der testgetriebenen Entwicklung Bearbeitet von Johannes Link überarbeitet 2005. Taschenbuch. XVI, 416 S. Paperback ISBN 978 3 89864 325 2 Format (B x L): 16,5 x 24 cm

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

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

Testgetriebene Entwicklung

Testgetriebene Entwicklung Testgetriebene Entwicklung Arbeitskreis Objekttechnologie Norddeutschland Hamburg, 18.03.2002 Frank Westphal freier Berater, Hamburg Tammo Freese OFFIS, Oldenburg westphal@acm.org tammo.freese@offis.de

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

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

Programmierprojekt: So0ware Tests. Anne6e Bieniusa Sommersemester 2017

Programmierprojekt: So0ware Tests. Anne6e Bieniusa Sommersemester 2017 Programmierprojekt: So0ware Tests Anne6e Bieniusa Sommersemester 2017 Testen Kernfrage: Erfüllt die So0ware ihre Anforderungen / SpezifikaGon? FunkGonale Anforderungen Korrekte Ergebnisse bei Berechnungen

Mehr

Verbesserung des Entwicklungsprozesses durch testgetriebene Entwicklung und kontinuierliche Integration

Verbesserung des Entwicklungsprozesses durch testgetriebene Entwicklung und kontinuierliche Integration Verbesserung des Entwicklungsprozesses durch testgetriebene Entwicklung und kontinuierliche Integration Stefan Rossbach Institut für Informatik Freie Universität Berlin 07.07.2011 Überblick Testen von

Mehr

Wiederholung Sortiert nach Lebenszyklusphase Sortiert nach Testziel Sortiert nach der Methode, um an Testfälle zu kommen

Wiederholung Sortiert nach Lebenszyklusphase Sortiert nach Testziel Sortiert nach der Methode, um an Testfälle zu kommen Testen Wiederholung Sortiert nach Lebenszyklusphase Sortiert nach Testziel Sortiert nach der Methode, um an Testfälle zu kommen JUnit Tests = Komponententests Stress Test White Box Test Integrationstests

Mehr

JUnit. Software-Tests

JUnit. Software-Tests JUnit Software-Tests Übersicht Einleitung JUnit Jia Li Grundlegendes Diana Howey Hendrik Kohrs Praktische Einbindung Benjamin Koch Zili Ye Einleitung in allgemeines Testen Automatische Tests Testen ist

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

Wiederholung. Testen. Tests nach Methode zum Ableiten der Testfälle White Box Test Black Box Test

Wiederholung. Testen. Tests nach Methode zum Ableiten der Testfälle White Box Test Black Box Test Testen Tests nach Lebenzykusphase Unit, Komponententests Integrationstets Systemtests Abnahmetests, Validierung Tests nach Testziel Lasttest Penetrationstests Funktionale Tests... Wiederholung Tests nach

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

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

Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Übungsblatt Programmierung und Software-Entwicklung Generizität, Interfaces, Listen, Sortieralgorithmen & JUnit Aufgabe : Die allgemeine Object-Liste Gegeben sei folgendes UML-Klassendiagramm: MyObjectList

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

Software Entwicklung 1. Spezifikation von Prozedureigenschaften. Spezifikation prozeduraler Programme. Warum Spezifikationen?

Software Entwicklung 1. Spezifikation von Prozedureigenschaften. Spezifikation prozeduraler Programme. Warum Spezifikationen? Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Spezifikation von Prozedureigenschaften Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27

Mehr

1. Einführung 1.1. Definitionen

1. Einführung 1.1. Definitionen 1 1. Einführung 1.1. Definitionen Unter Testen versteht man den Prozess des Planens, der Vorbereitung und der Messung mit dem Ziel, die Eigenschaften eines IT-Systems festzustellen und Unterschiede zwischen

Mehr

Continuous Integration mit VSTS Dieter Rüetschi

Continuous Integration mit VSTS Dieter Rüetschi Continuous Integration mit VSTS Dieter Rüetschi (ruetschi@ability-solutions.ch) 1 2 Warum ist Continuous Delivery so wichtig? Geschwindigkeit schnell auf dem Markt Unterstützung und Teil des ALM 3 DevOps

Mehr

Property Based Testing

Property Based Testing Property Based Testing Nicolai Mainiero sidion Testen ist schwer Testen ist schwer Warum? Alle Pfade durch den Code aufzuzählen ist aufwendig. Selbst vermeintlich einfache Systeme können komplex sein.

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

Testen von Android- Anwendungen. 6. Juni 2013

Testen von Android- Anwendungen. 6. Juni 2013 Testen von Android- Anwendungen 6. Juni 2013 Taentzer Software-Praktikum 2013 91 Überblick Entwicklung von Testfällen informelle Beschreibung der Testfälle auf Basis der Anwendungsfallbeschreibungen Implementierung

Mehr

1 Programmierfehler und ihre Behebung

1 Programmierfehler und ihre Behebung 1 Programmierfehler und ihre Behebung (kleiner lebenspraktischer Ratgeber) Grundsätze: Jeder Mensch macht Fehler... insbesondere beim Programmieren. Läuft ein Programm, sitzt der Fehler tiefer. Programmierfehler

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

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

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

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

Software-Refactoring. 29. Mai 2013

Software-Refactoring. 29. Mai 2013 Software-Refactoring 29. Mai 2013 Überblick Was ist Refactoring und wozu dient es? Welche Refactorings gibt es? Refactoring-Katalog: www.refactoring.com Wann, wo und wie führt man Refactorings durch? Wie

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

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

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

Softwarequalitätsmanagement. 24. April 2013

Softwarequalitätsmanagement. 24. April 2013 Softwarequalitätsmanagement 24. April 2013 Überblick Welche Qualitätsmodelle gibt es für Produkte und Prozesse? Welche Qualitätsanforderungen leiten sich daraus ab? Auf welche Weise kann Qualitätsmanagement

Mehr

Test-Driven Design: Ein einfaches Beispiel

Test-Driven Design: Ein einfaches Beispiel Test-Driven Design: Ein einfaches Beispiel Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 05/03 2 Ziele Veranschaulichung der Technik des Test-Driven Design am Beispiel

Mehr

Testen. SEPR Referat: Testen - Oliver Herbst

Testen. SEPR Referat: Testen - Oliver Herbst Testen Inhalt 1. Grundlagen des Testens 2. Testen im Softwarelebenszyklus 3. Statischer Test 4. Dynamischer Test 5. Besondere Tests 2 1. Grundlagen des Testens 3 Grundlagen des Testens Motivation erfüllt

Mehr

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 3. Dokumentieren und Testen Advanced Programming Techniques Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen zu Schnittstellen Was bedeutet Orthogonalität / Separation of Concerns?

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

Programmieren. JUnit-Tests. Heusch -- Ratz -- Institut für Angewandte Informatik

Programmieren. JUnit-Tests. Heusch -- Ratz --   Institut für Angewandte Informatik Programmieren JUnit-Tests Heusch -- Ratz -- KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Testgetriebene Entwicklung (auch testgesteuerte Programmierung, engl. test first development

Mehr

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode

Städtisches Gymnasium Olpe Java Ht Informatik - Q1 Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode Die Klasse List im Abitur Methoden und Beispielcode Hier alle wichtigen Methoden. Ein Beispielcode folgt im Anschluss. Beispielcode Es gibt eine Klasse Benutzerverwaltung, welche eine Liste mit Benutzern

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

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

Testen persistenter Objekte 1

Testen persistenter Objekte 1 Testen persistenter Objekte Roman Heilig und Tom Kretschmer Seminar Bildanalyse und Simulation mit Java im SS 2004 Universität Ulm Testen persistenter Objekte 1 Gliederung Einführung CRM-System Persistente

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

M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: Ausdruck des vorab bekannt gemachten Quelltextes

M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: Ausdruck des vorab bekannt gemachten Quelltextes NACHNAME: Poly SEMESTER: M5 M6 M3 M4 M7 VORNAME: Nom-Kenner VERTIEFUNG: FV IM ANLAGE, HILFSMITTEL: Ausdruck des vorab bekannt gemachten Quelltextes UNBEDINGT BEACHTEN: Bevor Sie mit der Bearbeitung beginnen,

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

Fragen Arthur Zaczek. Dez 2015

Fragen Arthur Zaczek. Dez 2015 Arthur Zaczek Dez 2015 1 Ihre Fragen 2015 2 Allgemeines 2.1 Sinnhaftigkeit Ich bitte um Verzeihung, aber ich hatte in diesen Semester nicht die Zeit, die ich für diese Lehrveranstaltung gebraucht hätte,

Mehr

Formale Verifikation von Software. 10. Juli 2013

Formale Verifikation von Software. 10. Juli 2013 Formale Verifikation von Software 10. Juli 2013 Überblick Wann ist formale Softwareverifikation sinnvoll? Welche Techniken gibt es? Was ist Model Checking und wie kann man es zur Verifikation einsetzen?

Mehr

11. Komponenten Grundlagen der Programmierung 1 (Java)

11. Komponenten Grundlagen der Programmierung 1 (Java) 11. Komponenten Grundlagen der Programmierung 1 (Java) Fachhochschule Darmstadt Haardtring 100 D-64295 Darmstadt Prof. Dr. Bernhard Humm FH Darmstadt, 10. Januar 2006 Einordnung im Kontext der Vorlesung

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

Testen und Debugging

Testen und Debugging Testen und Debugging Testklassen, Unit Tests Blackbox Test, Whitebox Test Regressionstesten Zusicherungen mit assert Debugger Informatik II: Objektorientierte SW-Entwicklung, Algorithmik, Nebenläufigkeit

Mehr

TDD. mit JUnit & Mockito. Tobias Trelle, codecentric

TDD. mit JUnit & Mockito. Tobias Trelle, codecentric TDD mit JUnit & Mockito Tobias Trelle, codecentric AG @tobiastrelle 1 Tobias Trelle Software Architekt @ codecentric AG Twitter: @tobiastrelle Slideshare: http://de.slideshare.net/tobiastrelle/ GitHub:

Mehr

Testen von SOA-Anwendungen mit dem BPEL Testframework

Testen von SOA-Anwendungen mit dem BPEL Testframework Testen von SOA-Anwendungen mit dem BPEL Testframework Stefan Kühnlein IBM Deutschland Enterprise Application Solution GmbH Hollerithstr. 1 81829 München 0160/8848611 Stefan.Kuehnlein@de.ibm.com IBM Deutschland

Mehr

Warum? Wie? Algorithm Tests Diverses. Unit Tests. Datamining und Sequenzanalyse. Kai Dührkop, Markus Fleischauer

Warum? Wie? Algorithm Tests Diverses. Unit Tests. Datamining und Sequenzanalyse. Kai Dührkop, Markus Fleischauer Unit Tests Datamining und Sequenzanalyse Kai Dührkop, Markus Fleischauer Warum? Code without tests is bad code. It doesn t matter how well written it is; it doesn t matter how pretty or object-oriented

Mehr

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware

Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Effiziente Überwachung von Laufzeiteigenschaften in Soft- und Hardware Normann Decker 1 Philip Gottschling 2 1 Institut für Softwaretechnik und Programmiersprachen Universität zu Lübeck decker@isp.uni-luebeck.de

Mehr

Testgetriebene Entwicklung

Testgetriebene Entwicklung Testgetriebene Entwicklung Thomas Schwotzer 1 Einführung Qualitätssicherung ist das wesentliche Thema der Softwareproduktion. Uns fällt es oft nicht schwer, Software zu schreiben. Uns fällt es aber sehr

Mehr

Ü B U N G E N Z U V E R L Ä S S L I C H E E Z S A U F G A B E 5 : S O F T WA R E - E N T W U R F U N D -T E S T

Ü B U N G E N Z U V E R L Ä S S L I C H E E Z S A U F G A B E 5 : S O F T WA R E - E N T W U R F U N D -T E S T A U F G A B E 5 : S O F T WA R E - E N T W U R F U N D -T E S T In dieser Aufgabe werden Sie einen abstrakten Datentyp zur Verwaltung einer Prioritätswarteschlange implementieren und testen. Sie können

Mehr

Enterprise JavaBeans Überblick: 8. Test-Driven Development. 8.1 Einleitung 8.2 Beispiel 8.3 Anwendung mit Eclipse und dem JBoss Application Server

Enterprise JavaBeans Überblick: 8. Test-Driven Development. 8.1 Einleitung 8.2 Beispiel 8.3 Anwendung mit Eclipse und dem JBoss Application Server Enterprise JavaBeans Überblick 1. Überblick Komponententechnologien 2. Einführung 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

SEP 114. Design by Contract

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

Mehr

Abschnitt 11: Korrektheit von imperativen Programmen

Abschnitt 11: Korrektheit von imperativen Programmen Abschnitt 11: Korrektheit von imperativen Programmen 11. Korrektheit von imperativen Programmen 11.1 11.2Testen der Korrektheit in Java Peer Kröger (LMU München) in die Programmierung WS 16/17 931 / 961

Mehr

Modellgetriebene Entwicklung von Webanwendungen: eine erste Analyse

Modellgetriebene Entwicklung von Webanwendungen: eine erste Analyse Modellgetriebene Entwicklung von Webanwendungen: eine erste Analyse 25. Oktober 2012 Taentzer Modellgetriebene Softwareentwicklung 59 Überblick Anforderungsanalyse auf zwei Ebenen: Analyse einer konkreten

Mehr

xii 5.3 Debugging Einplanung der Fehlersuche in Produkt und Prozess Vorbereitung und Ausführung des Debugging

xii 5.3 Debugging Einplanung der Fehlersuche in Produkt und Prozess Vorbereitung und Ausführung des Debugging xi I Warum überhaupt testen? 1 1 Komplexe Systeme führen zu Fehlern... 3 1.1 Kommunikation.............................................. 3 1.2 Gedächtnis... 6 1.3 Fachlichkeit... 6 1.4 Komplexität... 7

Mehr

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1

Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Beuth Hochschule Parameter-Übergabe-Mechanismen WS17/18, S. 1 Parameter-Übergabe-Mechanismen in Java und in anderen Sprachen. 1. Methoden vereinbaren mit Parametern Wenn man (z.b. in Java) eine Methode

Mehr

Software Engineering II (IB) Testen von Software / Modultests

Software Engineering II (IB) Testen von Software / Modultests Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 21:17 Inhaltsverzeichnis Programm-Tests.................................. 2 Ziele des Testens..................................

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

hue13 January 30, 2017

hue13 January 30, 2017 hue13 January 30, 2017 1 Abgabehinweise Beachten Sie unbedingt diese Hinweise, sonst erhalten Sie keine Punkte aus dieser Abgabe! Für Details siehe z.b. Folien der nullten Zentralübung 1.1 Namen und Matrikelnummern

Mehr

UnitTest mit dem SQL-Developer Testgetriebene Entwicklung mit Oracle Werkzeugen

UnitTest mit dem SQL-Developer Testgetriebene Entwicklung mit Oracle Werkzeugen Testgetriebene Entwicklung mit Oracle Werkzeugen Thomas Papendieck, Consultant OPITZ-CONSULTING Bad Homburg GmbH Vodafone D2 GmbH. Alfred-Herrhausen-Allee 1, 65760 Eschborn, 02.11.2010 OPITZ CONSULTING

Mehr

Refactoring C# Legacy Code

Refactoring C# Legacy Code Refactoring C# Legacy Code Stefan Lieser @StefanLieser http://refactoring-legacy-code.net http://er.jsc.nasa.gov/seh/13index.jpg Houston, we ve had a problem. Wandelbarkeit https://pixabay.com/de/chamäleon-hautnah-exotische-grün-1414084/

Mehr

1. Zweckdes Dokuments

1. Zweckdes Dokuments Testplanung Testplanung 1.Zweck des Dokuments 2.Testziele 3.Teststrategie 4. Inkrementeller Test 5. Dokumentation der Tests 6. Performance Test 7. Literaturreferenzen 1. Zweckdes Dokuments Dokumentation

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

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation

Softwareentwicklungspraktikum Sommersemester 2007. Testdokumentation Softwareentwicklungspraktikum Sommersemester 2007 Testdokumentation Auftraggeber Technische Universität Braunschweig

Mehr

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29

Inhaltsverzeichnis. Teil 1 Grundlagen der Objektorientierung 29 Vorwort von James Gosling, Sun Microsystems 15 Vorwort an Kursleiter 16 Vorwort des Übersetzers 24 Projekte, die in diesem Buch detailliert besprochen werden 25 Danksagungen 27 Teil 1 Grundlagen der Objektorientierung

Mehr

Software-Engineering Software-Management

Software-Engineering Software-Management 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

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

SE Besprechung. Übung 6 Softwaretests

SE Besprechung. Übung 6 Softwaretests SE Besprechung Übung 6 Softwaretests SE, 15.12.09 Dustin Wüest Tutoren für Informatik IIa Modellierung Voraussetzung Informatik IIa (oder vergleichbar) erfolgreich besucht Aufgaben Korrektur der Aufgaben

Mehr

Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung

Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung Antonia Bücklers Softwaretests Testgetriebene Entwicklung (TDD) vs wissenschaftliche Methode TDD Case Study Zusammenfassung - Antonia Bücklers 2 prüft und bewertet Software auf Erfüllung der spezifischen

Mehr

SOA Testing. Tobias Bosch OPITZ CONSULTING GmbH München

SOA Testing. Tobias Bosch OPITZ CONSULTING GmbH München SOA Testing Tobias Bosch OPITZ CONSULTING GmbH München Schlüsselworte SOA, SOA Suite, OSB, Testing, Mock Einleitung SOA-Anwendungen sind verteilte Systeme und verwenden viele Schnittstellen, um zu kommunizieren:

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

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

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch

14. Java Klassen. Klassen (Java) vs. Records (Pascal) Klassen - Konzeptuell. Klassen - Technisch Klassen (Java) vs. Records (Pascal) 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Pascal RECORDs in Pascal sind reine

Mehr

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite!

JUnit a Cook s Tour. Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren. Unterlagen als PDF auf der Übungsseite! JUnit a Cook s Tour Ziel des Frameworks Framework in Java Automatisierter Ablauf von Testfällen Testläufe kombinieren Design des Frameworks Beginne bei Nichts Schritt für Schritt aus passenden Mustern

Mehr

Komponenten-basierte Entwicklung Teil 8: Einführung in Mocks

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

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

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Dr. Dietrich Boles Aufgaben zu UE22-NutzungVonKlassen (Stand 28.09.2012) Aufgabe 1: Entwickeln Sie in Eclipse auf der Basis der vorgestellten Java-GUI-Klassen ein Java- Programm, das

Mehr

Tutoraufgabe 1 (Verifikation):

Tutoraufgabe 1 (Verifikation): Prof. aa Dr. M. Müller C. Aschermann, J. Hensel, J. Protze, P. Reble Allgemeine Die Hausaufgaben sollen in Gruppen von je 3 Studierenden aus der gleichen Kleingruppenübung (Tutorium) bearbeitet werden.

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

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3

Kernprozess zur System- und Softwareentwicklung. Logische Systemarchitektur f 1. f 2 f 3. f 4 Funktion. Technische Systemarchitektur SG 1 SG 2 SG 3 Systems Engineering Systems Engineering ist die gezielte Anwendung von wissenschaftlichen und technischen Ressourcen! zur Transformation eines operationellen Bedürfnisses in die Beschreibung einer Systemkonfiguration

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

Funktionales Testen. Software-Praktikum Andreas Zeller Universität des Saarlandes

Funktionales Testen. Software-Praktikum Andreas Zeller Universität des Saarlandes Funktionales Testen Software-Praktikum Andreas Zeller Universität des Saarlandes Test-Taktiken Funktional black box Strukturell white box Tests basieren auf Test deckt soviel spezifiziertes Verhalten wie

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 06: Das Visitor Pattern Prof. Dr. Peter Thiemann (vertreten durch Luminous Fennell) Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg)

Mehr

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung

14. Java Klassen. Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung 275 14. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, statische Felder und Methoden, Datenkapselung Klassen (Java) vs. Records (Pascal) 276 Pascal RECORDs in Pascal sind

Mehr

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.

7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc. 7.1.5 Java RMI Remote Method Invocation (http://java.sun.com/products/jdk/rmi) (http://java.sun.com/j2se/1.3/docs/guide/rmi/spec/rmitoc.html) bietet leider nur begrenzte Verteilungsabstraktion Unterstützung

Mehr

Sichtbarkeiten, Klassenmember und -methoden

Sichtbarkeiten, Klassenmember und -methoden Sichtbarkeiten, Klassenmember und -methoden Prof. Dr.-Ing. Thomas Schwotzer 11. November 2017 1 Einführung Wir haben uns mit Klassen und Objekten beschäftigt. Wir wissen nun, dass Objekte anhand von Klassen

Mehr

Softwarequalität. Gabriele Taentzer Philipps-Universität Marburg. Sommersemester 2016

Softwarequalität. Gabriele Taentzer Philipps-Universität Marburg. Sommersemester 2016 Softwarequalität Gabriele Taentzer Philipps-Universität Marburg Sommersemester 2016 Organisation der LV Umfang: 6 SWS, 9 ECTS Punkte Veranstalter: Gabriele Taentzer, Stefan John Kontakt: taentzer@mathematik.uni-marburg.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

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

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik

Programmieren II. Innere Klassen. Heusch 10, Ratz 5.2.1, Institut für Angewandte Informatik Programmieren II Innere Klassen Heusch 10, 13.10 Ratz 5.2.1, 9.8 KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft www.kit.edu Innere Klassen Bisher kennen wir nur Klassen, die entweder zusammen

Mehr

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich

Informatik II. Übungsstunde 6. Distributed Systems Group, ETH Zürich Informatik II Übungsstunde 6 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich Ablauf Besprechung der Vorlesung Uebungsbezogene Themen: Statisches & Dynamisches Type Checking Zeit zum Programmieren...

Mehr