fitnesse

17
27.08.22 1 DialogData GmbH & Co. KG Henning Luther Barthstraße 12 D-80339 München +49 89 89058950 [email protected] http://www.DialogData .de

Upload: thomas-moedl

Post on 16-Nov-2014

1.087 views

Category:

Technology


3 download

DESCRIPTION

FitNesse is an automated testing tool for software, based on Ward Cunningham's Framework for Integrated Test, designed to support acceptance testing rather than unit testing in that it facilitates detailed user-readable description of system function. By Henning Luther, DialogData

TRANSCRIPT

Page 1: FitNesse

08.04.231

DialogData GmbH & Co. KGHenning LutherBarthstraße 12

D-80339 München+49 89 89058950

[email protected]://www.DialogData.de

Page 2: FitNesse

2

FitNesseSoftware Development Collaboration Tool

Page 3: FitNesse

Was ist FitNesse?

Ein Werkzeug um die Zusammenarbeit in der Software Entwicklung zu verbessern

Ein Werkzeug zum Testen von Software Ein Wiki Ein eigenständiger Web-Server

– Keine zusätzliche Infrastruktur nötig

Page 4: FitNesse

4

Motivation – Warum FitNesse?

Möglichkeit für alle am Projekt beteiligten Akteure Software zu testen und Verhalten zu spezifizieren

– Schutz vor Betriebsblindheit des Einzelnen– Förderung der Kommunikation

Bietet eine unmissverständliche Kommunikationsgrundlage durch Tests

– Missverständnisse fallen beim Kommunizieren der Tests schneller auf

Page 5: FitNesse

5

Motivation – Warum FitNesse?

Kunde hat die Möglichkeit seine Anforderungen mit Hilfe von Tests zu überprüfen/überdenken

– Fehler und Lücken in den Spezifikationen fallen beim Schreiben/Lesen der Tests schneller auf

hohe Abdeckung durch Tests mehr Zusammenarbeit und Kommunikation das vom Kunden gewünschte System (Zufriedenheit)

Page 6: FitNesse

6

Workflow – Test Driven

Entwicklung der Tests während der Startphase– Unterstützt die Spezifikation– Refactoring der Anforderungen zu einem frühen

Zeitpunkt

Schreiben der Fixtures (Test-Brücken) wenn Businesslogik fertig gestellt ist.

Einrichtung der Testumgebung (Classpath) und Testen

Page 7: FitNesse

7

Decision Table

Einfache Input-Output Entscheidungen

Input Execute Output und Vergleich

Page 8: FitNesse

Decision Table Fixture

Das sollte man auf keinen Fall machen!(Kontrollstrukturen gehören in Businesslogik)

Wird nach der ersten Zeile ausgeführt

2. Spalte

1. Spalte

Das sollte man nicht machen!(Exception an FitNesse weiterreichen)

Wird für jede Zeile vor erstem Output aufgerufen

Page 9: FitNesse

Script Table

Komplexere Szenarien

Page 10: FitNesse

Script Table Fixture

1. Zeile

2. Zeile

3. Zeile

Page 11: FitNesse

Script Table TestergebnisZeigt an, dass Exceptions aufgetreten sind

Aufklappen um den Stacktrace einzusehen

Page 12: FitNesse

Weitere Tabellen

Query Table – Datensätze

Scenario Table – Aufruf durch andere Tabellen, für Teilszenarien

Comment Table – für Kommentare, schnelles Auskommentieren einer Tabelle

Import Table – importieren von Fixture-Paketen(Set-Up)

Page 13: FitNesse

Wiki

Kann als Wiki genutzt werden– Besitzt jedoch nur Basis-Features eines Wiki

Hierarchie von Wiki-Seiten in Baumstruktur– Test-Suites als Sammlung von Tests zur

gemeinsamen Ausführung Eigene Markup Sprache

Besitzt keinen Mehrwert für das Testen

Page 14: FitNesse

Starten der Tests von Aussen

Kommandozeile

Ant

Page 15: FitNesse

Was Fehlt?

Exception-Handling scheint nicht ausgereift– Keine Möglichkeit anzugeben, dass eine Exception erwartet

wird– Verhalten bei aufgetretener Exception kann nicht gesteuert

werden– Geworfene Exception muss FitNesse spezifische Nachricht

enthalten um in Tabelle angezeigt zu werden („message:<<lesbare Nachricht>>“)

Open Source, könnte selbst nachimplementiert werden

Page 16: FitNesse

Hürden

Alle Akteure müssen den Umgang erst erlernen

Alle Akteure müssen FitNesse als sinnvoll erachten

Schlüsselfigur Kunde muss stärker als gewöhnlich in den Entwicklungsprozess eingebunden werden

Page 17: FitNesse

Weiterführende Links

Vortrag von David Hussman– http://www.infoq.com/presentations/

AutomatingBusinessValuewithFITandFitnesse

FitNesse User Guide– http://fitnesse.org/FitNesse.UserGuide