FitNesse

Post on 16-Nov-2014

1.087 views 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 of FitNesse

08.04.231

DialogData GmbH & Co. KGHenning LutherBarthstraße 12

D-80339 München+49 89 89058950

info@DialogData.dehttp://www.DialogData.de

2

FitNesseSoftware Development Collaboration Tool

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

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

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)

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

7

Decision Table

Einfache Input-Output Entscheidungen

Input Execute Output und Vergleich

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

Script Table

Komplexere Szenarien

Script Table Fixture

1. Zeile

2. Zeile

3. Zeile

Script Table TestergebnisZeigt an, dass Exceptions aufgetreten sind

Aufklappen um den Stacktrace einzusehen

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)

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

Starten der Tests von Aussen

Kommandozeile

Ant

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

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

Weiterführende Links

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

AutomatingBusinessValuewithFITandFitnesse

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