24.05.11 DialogData GmbH & Co. KG Henning Luther Barthstraße 12 D-80339 München +49 89 89058950 [email_address] http://www. DialogData .de
FitNesse Software 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
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
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)
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
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 Testergebnis Zeigt 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

FitNesse

  • 1.
    24.05.11 DialogData GmbH& Co. KG Henning Luther Barthstraße 12 D-80339 München +49 89 89058950 [email_address] http://www. DialogData .de
  • 2.
  • 3.
    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 – WarumFitNesse? 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 – WarumFitNesse? 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 – TestDriven 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 EinfacheInput-Output Entscheidungen Input Execute Output und Vergleich
  • 8.
    Decision Table FixtureDas 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
  • 9.
  • 10.
    Script Table Fixture1. Zeile 2. Zeile 3. Zeile
  • 11.
    Script Table TestergebnisZeigt an, dass Exceptions aufgetreten sind Aufklappen um den Stacktrace einzusehen
  • 12.
    Weitere Tabellen QueryTable 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)
  • 13.
    Wiki Kann alsWiki 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
  • 14.
    Starten der Testsvon Aussen Kommandozeile Ant
  • 15.
    Was Fehlt? Exception-Handlingscheint 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
  • 16.
    Hürden Alle Akteuremü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
  • 17.
    Weiterführende Links Vortragvon David Hussman http://www.infoq.com/presentations/AutomatingBusinessValuewithFITandFitnesse FitNesse User Guide http://fitnesse.org/FitNesse.UserGuide

Hinweis der Redaktion

  • #3 Manager, Fachleute, Enduser, Tester, Entwickler
  • #5 Alle Akteure: Kunde-&gt; Geschäftsbezogene Sicht Fachabteilung-&gt; Fachliche Sicht Tester-&gt; Destruktive Sicht Programmierer-&gt; Technologische Sicht Programmierer testet nur dass, was er laut specc programmieren sollte. Ob specc richtig interpretiert ist 1. problem.
  • #6 Beim Schreiben von Tests fällt dem Kunden eher auf, was in der Spezifikation fehlt, falsch beschrieben ist oder vernachlässigt wurde.
  • #7 Lücken- und Fehlerhafte Speccs sind keine Seltenheit, Tests unterstützen die Specc mit konkreten Beispielen.