Your SlideShare is downloading. ×
0
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
AdvancedTdd
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

AdvancedTdd

3,009

Published on

A power workshop during JAX 2007 on advanced techniques of test-driven development. It deals with acceptance tests using FIT as well as with mock objects, GUI testing and Groovy as a testing language …

A power workshop during JAX 2007 on advanced techniques of test-driven development. It deals with acceptance tests using FIT as well as with mock objects, GUI testing and Groovy as a testing language for Java.

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,009
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Fortgeschrittene Techniken der Testgetriebenen Entwicklung JAX Powerworkshop, 23.04.2007 Tammo Freese, Johannes Link
  • 2. Agenda • Testgetriebene Entwicklung im Überblick • Akzeptanztests mit FIT • Unit Tests mit JUnit/Mockobjekte mit EasyMock • Legacy Code und Code Coverage • Testen von GUIs und Web-Applikationen • Testen mit Skriptsprachen • Diskussion
  • 3. Motivation • Software hat Geschäftswert durch zwei Qualitäten • Funktionale Qualität (Funktionalität, Fehlerfreiheit) • Strukturelle Qualität (Design/Codestruktur für Weiterentwicklung) • Hinzufügen neuer Funktionalität gefährdet funktionale und strukturelle Qualität • Verbesserung der strukturellen Qualität gefährdet die funktionale Qualität
  • 4. Testgetriebene Entwicklung • Testgetriebene Programmierung: Motiviere jede Verhaltensänderung am Code durch einen automatisierten Test (ständige Absicherung der funktionalen Qualität) • Refactoring: Vereinfache das Code-Design soweit wie möglich (funktionale Qualität ist durch Tests abgesichert) • (Häufige Integration: Integriere den Code so häufig wie nötig)
  • 5. Entwickler schreiben Unit Tests • testen Komponenten des Systems in Isolation • geben uns konkretes Feedback • ermöglichen sichere Änderungen • sichern Erhalt der vorhandenen Funktionalität • müssen bei jeder Integration zu 100% laufen • können funktionale Tests auf Systemebene nicht ersetzen!
  • 6. Kunden spezifizieren Akzeptanztests • testen das System überwiegend als Ganzes • geben unseren Kunden Vertrauen in die gelieferte Software • klären die Anforderungen frühzeitig an konkreten Beispielen • machen den Projektfortschritt sichtbar • müssen vom Kunden erstellt und gepflegt werden können • Unsere Aufgabe ist es, den entsprechenden Rahmen für ihre Automatisierung zu schaen!
  • 7. Akzeptanztests mit FIT • FIT: Framework for Integrated Test • Zum Schreiben und Ausführen automatischer Akzeptanztests • Testdaten werden tabellarisch erstellt (in HTML, mit Excel oder im Wiki) • Anbindung ans System in Java • Portierung für aktuelle Sprachen verfügbar • http://fit.c2.com
  • 8. Drei Fixture-Klassen • ColumnFixture testet Ein-/Ausgabewertemengen. • ActionFixture spielt ein Benutzerszenario durch und ist deshalb gut für GUI-orientierte Tests geeignet. • RowFixture prüft eine Ergebnismenge von Objekten mit ihren Attributen.
  • 9. Column Fixture (1)
  • 10. Column Fixture (2) import fit.ColumnFixture; public class AccountTransferFixture extends ColumnFixture { public String sourceAccount;

×