fitnesse
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, DialogDataTRANSCRIPT
08.04.231
DialogData GmbH & Co. KGHenning LutherBarthstraße 12
D-80339 München+49 89 89058950
[email protected]://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