Testtechniken-Praktikum WS 2005/06 1 Testgetriebene Entwicklung Andreas Höfer Dr. Matthias Müller mit Beiträgen von Johannes Link.

Slides:



Advertisements
Ähnliche Präsentationen
Software Engeniering II
Advertisements

PHP Extension und Application Repository
Persistente Domänenmodelle mit JPA 2.0 und Bean Validation
Prüfung objektorientierter Programme -1
Phasen und ihre Workflows
mit Entwicklungsumgebungen (Eclipse) Software verbessern
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
Qualitätssicherung von Software Prof. Dr. Holger Schlingloff Humboldt-Universität zu Berlin und Fraunhofer FIRST.
On a Buzzword: Hierachical Structure David Parnas.
Warum ist der Nachthimmel dunkel
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Was ist Refactoring? Bevor man die Integration angeht, mag es angebracht sein, den.
Erfahrungen aus Tests komplexer Systeme
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Aufgaben des Testens Vergleich des Verhaltens einer Software mit den an sie gestellten.
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Testing Frameworks im Internet Testing Framework (xUnit, unit testing)
Testgetriebene Entwicklung
Universität Stuttgart Institut für Kernenergetik und Energiesysteme Regeln für Tester - best practice 1 Prüfe das eigene Programm nie als Einziger Testen.
es gibt (fast) nichts, was nicht anders gemacht werden könnte
Cassey - Common Answer Set Evaluation sYstem Jean Gressmann Benjamin Kaufmann Robert Lenk.
Das Test-Framework JUnit
Das Test-Framework JUnit
Programmiermethodik SS 07 Prof. Albert Zündorf
A. Zündorf, SE Group Reverse Engineering K2 1 Übersicht 1.Quelltextanalyse mit regulären Ausdrücken 2.Compilertechniken 3.Prozessanalyse 4.Dynamische Analyse.
1 WS 2012 Software-Engineering II Aspektorientierung.
Fachgebiet Software Engineering Übersicht © Albert Zündorf, Kassel University Software Engineering I m Vorlesung im Wintersemester 2010/11 m.
Software Design Patterns Extreme Programming (XP).
1DVG3 - Einführung Einführung DVG3. DVG3 - Einführung 2.
Information Retrieval: Methoden zur Selektivitätsabschätzung
Prof. Dr. Gerhard Schmidt pres. by H.-J. Steffens Software Engineering WS 2006 / 2007Folie 1 Agile Vorgehensweisen Hintergrund –in den letzten Jahren hat.
Akkusativ Präpositionen
Framework for Integrated Test (FIT)
Testgetriebene Entwicklung (TDD)
Your name Bedeutung von Internet- Technologien Gruppe 1 Andreas Feuerstein Philipp Hochratner Christian Weinzinger.
Beschreibungen: Wie siehst du aus?
Testtechniken-Praktikum WS 2005/06 1 Testen mit Mock- Objekten Andreas Höfer Dr. Matthias Müller.
Prof. Dr. Walter F. Tichy Dr. Matthias Müller Sommersemester 2006 Empirische Softwaretechnik.
Ippon!Soft Best Practises Ein Workshop der FXPUG ( )
Clean Code Software-Entwicklung als Handwerkskunst Thomas Nagel, November 2011.
Infopoint Silver Scherrer
Testtechniken-Praktikum WS 2005/06 1 Besprechung Java-Test/Aufgabe 1 Andreas Höfer Dr. Matthias Müller.
Testtechniken-Praktikum WS 2005/06 1 Performanztests mit JUnitPerf Andreas Höfer Dr. Matthias Müller.
Blackbox-Testverfahren
Röntgen Dies ist ein Test der neuen Sony Photo software.
Testtechniken-Praktikum WS 2005/06 1 Arbeiten mit JUnit Andreas Höfer Dr. Matthias Müller Mit Beiträgen von Johannes Link.
TDD mit MSTest Stefan Lieser Web:
TDD mit MSTest Stefan Lieser
Stefan Lieser Web:
Testvorbereitungen, Unit Test
Best Practices der sicheren Programmierung mit.NET Andrea Janes.
Horw Präsentation Themenarbeit SWE Wyder Aaron Studiengang Informatik SS Semester Juni 2008 Ist Design tot? Evolutionäre.
Einfaches Erstellen von Präsentationen aus Einzelfolien heraus.
Lightning Talk von Andreas Güntzel Model Driven Software Development CODE GENERIERUNG MIT ANY.
„Continuous Delivery“
Unit Testing Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Planung von Softwareprojekten WS 2014/15 Christoph Stollwerk.
Nominative & Accusative Basic Rules for Relative Pronouns in German:
Weg mit Fehlern, die kein Entwickler versteht …
TDD mit MSTest Stefan Lieser Web:
Everybody does Refactoring right? Marko Schulz
Test-Driven Development
XML Seminar: XP und XML 1 XP and XML Gregor Zeitlinger.
Stefan Lieser Wer erstellt regelmäßig Unit Tests?
Software - Testung ETIS SS05.
Special Combinations Verb + Preposition Verb + Preposition.
Test 1 Test 2 Test 3. Test 4 Test 5 Test 6 Test 7 Test 8 Test 9.
8.6 – Correctly modify stem change verbs. 28.A.1a, 28.B.2b 8.7 – Separate prefix of separable verbs while observing correct sentence structure. 28.A.1a,
Lineare Optimierung Nakkiye Günay, Jennifer Kalywas & Corina Unger Jetzt erkläre ich euch die einzelnen Schritte und gebe Tipps!
Refactoring Andreas Martens Der Weg zum lesbaren Code.
Extreme Programming IEEE-Special von Michael Glögl Gehalten am
Interrogatives and Verbs
Systemanalyse BA Heidenheim 2002.
Test.
 Präsentation transkript:

Testtechniken-Praktikum WS 2005/06 1 Testgetriebene Entwicklung Andreas Höfer Dr. Matthias Müller mit Beiträgen von Johannes Link

Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 2 Was bedeutet das? Synonyme: Synonyme: Test-First Development (TFD) Test-First Development (TFD) Test-Driven Development (TDD) Test-Driven Development (TDD) Programmierer schreibt Unit-Tests Programmierer schreibt Unit-Tests Kunde spezifiziert Akzeptanztests Kunde spezifiziert Akzeptanztests Keine Testtechnik sondern Festhalten der Spezifikation in Code Keine Testtechnik sondern Festhalten der Spezifikation in Code

Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 3 Test/Code/Refactor grün rot Schreibe einen Test der fehlschlägt. Schreibe gegebenenfalls gerade soviel Code, dass der Test übersetzt werden kann. grün rot Schreibe einen Test der fehlschlägt. Schreibe gegebenenfalls gerade soviel Code, dass der Test übersetzt werden kann. rot grün Schreibe gerade soviel Code, dass alle Tests erfolgreich laufen. rot grün Schreibe gerade soviel Code, dass alle Tests erfolgreich laufen. grün grün Eliminiere Duplikationen und andere üble Gerüche im Code. grün grün Eliminiere Duplikationen und andere üble Gerüche im Code.

Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 4 Zustandsdiagramm: Test- getriebene Entwicklung Zustandsdiagramm idealisiert Zustandsdiagramm idealisiert Testcode vor Anwendungscode Testcode vor Anwendungscode Kleine Schritte Kleine Schritte Inkrementelles Design Inkrementelles Design Grün (Alle Tests laufen) Rot (Mindestens ein Test scheitert) umstrukturieren Anwendungscode schreiben Testcode schreiben Keine Ideen für mehr Testcode

Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 5 Umstrukturierung (Refactoring) A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. [Fowler 99] A change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior. [Fowler 99] Regressionstests stellen sicher, dass sich beobachtbares Verhalten nicht ändert. Regressionstests stellen sicher, dass sich beobachtbares Verhalten nicht ändert. Refactoring des Testcodes Anwendungscode als Test des Testcodes Refactoring des Testcodes Anwendungscode als Test des Testcodes Deshalb möglichst nie beides gleichzeitig ändern Deshalb möglichst nie beides gleichzeitig ändern Nicht immer möglich (z.B. Schnittstellenänderung) Nicht immer möglich (z.B. Schnittstellenänderung)

Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 6 Ziel der Umstrukturierung Ziel ist eine einfache Form Ziel ist eine einfache Form Die einfache Form ist erreicht, wenn der Code… Die einfache Form ist erreicht, wenn der Code… alle seine Tests erfüllt. alle seine Tests erfüllt. vom Zielpublikum verstanden werden kann. vom Zielpublikum verstanden werden kann. jede Intention der Programmierer ausdrückt. jede Intention der Programmierer ausdrückt. keine duplizierte Logik enthält. keine duplizierte Logik enthält. möglichst wenig Klassen und Methoden umfasst. möglichst wenig Klassen und Methoden umfasst. Reihenfolge entscheidend! Reihenfolge entscheidend!

Testtechniken-Praktikum WS 2005/06 Andreas Höfer – Dr. Matthias Müller 7 Referenzen Kent Beck Testdriven Development: By Example Addison-Wesley, 2002 Kent Beck Testdriven Development: By Example Addison-Wesley, 2002 Martin Fowler Refactoring Addison-Wesley, 1999 Martin Fowler Refactoring Addison-Wesley,