Frage

Was ist der Sinn der Verwendung von Fit / FitNesse statt xUnit-style-Tests Integration? Es hat wirklich seltsam und sehr unklar Syntax meiner Meinung nach.

Ist es wirklich nur Produkt Besitzer schreiben Tests zu machen? Sie werden nicht! Es ist zu kompliziert für sie. Warum also sollte jemand Fit / FitNesse?

Aktualisieren Es ist also völlig geeignet für Business-Regeln Tests nur?

War es hilfreich?

Lösung

Der springende Punkt ist arbeitet mit Nicht-Programmierer, oft sogar vollständig technisch nicht versiert Leute wie Aussicht Nutzer einer Business-Anwendung, auf welcher Anwendung tun soll, und es dann in Tests unterzogen. Während der Arbeit an Tests Arbeit für sie sicherlich zu kompliziert ist, sollten sie in der Lage sein, Tabellen von Beispieldaten in beispielsweise ausgefüllt zu diskutieren Wort. Und die große Sache ist, im Gegensatz zu herkömmlicher Spezifikation, diese Dokumente mit Ihrer Anwendung leben, weil automatisierte Tests, die Sie zwingen, sie zu aktualisieren.

Siehe Introduction To Fit und Fit-Workflow von James Shore und die restlichen Dokumentation Links folgen, wenn Sie wollen.


Update: Hängt davon ab, was Sie von Geschäftsregeln bedeuten? ;-) Manche Leute es sehr eng (wie in Business Rules Engines usw.), andere --- sehr breit verstehen würden.

Wie ich es sehe, Fit ein Werkzeug, das Sie ins Geschäft aufschreiben kann (wie in Domäne) verwenden, Fälle mit reichen realistischen Beispielen in einem Dokument, das die Endbenutzer oder Domänenexperten (in einigen Domänen) verstehen können, überprüfen und diskutieren. Zur gleichen Zeit sind diese Beispiele in maschinenlesbarer Form, so dass sie verwendet werden, automatisierte Tests zu fahren, Sie weder schreiben das Dokument ganz alleine, noch requre sie es zu tun. Stattdessen ist es ein Produkt von callaboration und Diskussion, die wachsende Verständnis widerspiegelt, was Anwendung tun wird, auf beiden Seiten. Beispiele reicher als Sie beschlossen die Fortschritte und sind mehr Eckfällen.

Was Anwendung tun wird, nicht wie, ist wichtig. Es ist eine Form der funktionalen Spezifikation. Als solches ist es ziemlich breit und nicht wirklich von Modulen organisiert, sondern Nutzungsszenarien.

Die Tests, die in Aspekten testen Beispiele kommen externes Verhalten der Anwendung wichtig, aus betriebswirtschaftlicher Sicht. Ja, man könnte es Geschäftsregeln nennen. Aber läßt bei Diego Jancic dem Beispiel von Kredit-Scoring aussehen, nur mit einem kleinen Twist. Was passiert, wenn ein Teil der Anpassung Dokument 1) Attribute und ihre Partituren Liste und dann 2) Kundendaten bereitstellt und die Ergebnisse überprüft, dann die die tatsächlichen Geschäftsregeln sind: Bewertungstabelle (Attribute und ihre Werte) oder Anwendungslogik Berechnung der Punktzahl für jeden Kunden (basierend auf der Bewertungstabelle)? Und die getestet werden?

Fit / FitNesse Tests scheinen besser geeignet für die Abnahmeprüfung. Andere Tests (wenn Sie über die Zusammenarbeit mit den Kunden ist es egal, Benutzer, Domänenexperten usw., möchten Sie nur Tests automatisieren) wird wahrscheinlich einfacher sein, traditionellere Wege zu schreiben und zu pflegen in. xUnit ist schön für Unit-Tests und api-Tests. Jeder Web-Framework sollte ein Tool für Web-app / Service-Tests in seinem Modifikations-build-test-deploy Zyklus, zB integriert hat. django hat einen eigenen kleinen Test-Client. Sie haben viel zu bieten.

Und Sie können immer Ihr eigenes Werkzeug schreiben (oder vorzugsweise zwicken einige bestehende) zu einer besseren Passform (pun intended) einige Tests in Ihrer bestimmten Domäne von Interesse.


Eine allgemeinere Gedanken. Es ist oft (nicht immer !!!) besser Ihre Tests zu kodieren, „Geschäftsregeln“ und gerade über allem, in irgendeiner Form von gut definierten Daten, die durch ein einfaches, generisches Stück Code interpretiert wird. Dann ist es einfach, die Daten auf andere Weise zu nutzen: erzeugen Dokumentation, Migration zu neuen Test-Framework, Anschluss-Anwendung an die neue Umgebung / Programmiersprache, verwenden Sie die Konformität mit einigen externen Regeln oder einem anderen System zu überprüfen (nur Ihre Fantasie). Es ist viel schwieriger solche Informationen aus Code zu ziehen, zum Beispiel. Hardcoded Unit-Tests oder Geschäftsregeln einfach.

Fit speichert Testfälle Daten. In ganz bestimmtem Format, weil, wie es beabsichtigt ist, um verwendet zu werden, aber immer noch. Ihre Domain spezifische Tests verschiedene Formate wie einfache CSV, JSON oder YAML verwenden.

Andere Tipps

Die Idee ist, dass Sie (der Programmierer) ein leicht verständliches Format, wie ein Excel-Blatt. Dann tritt das Produkt Besitzer Informationen, die für die Menschen schwer zu verstehen ist, die nicht im Geschäft ist ... und Sie nur bestätigen, dass Ihr Code funktioniert wie der PO Fit erwartet läuft. Die Art und Weise verwendet, in xUnit kann für Programmierer als Eingang für leicht zu verstehen oder einfache Informationen verwendet werden. Wenn Sie gehen zu müssen, eine Menge seltsamer Beispiele mit mehreren Feldern in Ihrem xUnit Test eingeben, wird es wurde schwer zu lesen.

einen Fall vorstellen, in dem Sie haben zu entscheiden, ob ein Darlehen an einen Kunden zu geben, basierend auf dem Alter, verheiratet / Single, Anzahl der Kinder, Wage, Aktivität, ... Als Programmierer können Sie diese Informationen nicht schreiben; und ein Risikomanager einen xUnit Test nicht schreiben kann.

Senkt Redundanz in Regression und Fehlerprüfung. Bauen überschaubar Repository von Testfällen. Es ist wie Build einmal und benutzen Sie für immer.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top