Das Ziel ist es, zu arbeiten mit Nicht-Programmierer, oft sogar völlig untechnische Personen, wie z. B. potenzielle Nutzer einer Geschäftsanwendung, können sich ein Bild davon machen, was die Anwendung tun soll, und es dann in Tests umsetzen. Während die Durchführung von Tests für sie sicherlich zu kompliziert ist, sollten sie in der Lage sein, über Tabellen mit Beispieldaten zu diskutieren, die z. B. in Word ausgefüllt wurden. Und das Tolle daran ist, dass diese Dokumente im Gegensatz zu herkömmlichen Spezifikationen mit Ihrer Anwendung leben, weil automatisierte Tests Sie dazu zwingen, sie zu aktualisieren.
Ver Einführung in Fit y Arbeitsablauf anpassen von James Shore und folgen Sie den Links zum Rest der Dokumentation, wenn Sie möchten.
Aktualisierung: Das hängt davon ab, was Sie unter Geschäftsregeln verstehen ;-) Manche Leute verstehen darunter etwas sehr Enges (wie z.B. Business Rules Engines etc.), andere etwas sehr Weites.
Meiner Meinung nach ist Fit ein Werkzeug, mit dem Sie geschäftliche (wie auch fachliche) Anwendungsfälle mit reichhaltigen realistischen Beispielen in einem Dokument niederschreiben können, das die Endbenutzer oder Fachleute (in einigen Bereichen) verstehen, überprüfen und diskutieren können. Gleichzeitig liegen diese Beispiele in maschinenlesbarer Form vor, so dass sie für automatisierte Tests verwendet werden können. Sie schreiben das Dokument weder selbst, noch beauftragen Sie andere damit. Stattdessen ist es ein Produkt der Zusammenarbeit und Diskussion, das das wachsende Verständnis für die Anwendung auf beiden Seiten widerspiegelt. Die Beispiele werden immer umfangreicher, je weiter man fortschreitet und je mehr Eckfälle gelöst werden.
Wichtig ist, was die Anwendung tun wird, nicht wie sie es tut. Es ist eine Form der funktionalen Spezifikation. Als solche ist sie recht breit angelegt und nicht wirklich nach Modulen, sondern eher nach Nutzungsszenarien gegliedert.
Die Tests, die aus den Beispielen hervorgehen, testen das externe Verhalten der Anwendung in Bezug auf Aspekte, die aus geschäftlicher Sicht wichtig sind. Ja, man könnte es Geschäftsregeln nennen. Aber schauen wir uns das Beispiel von Diego Jancic für die Kreditwürdigkeitsprüfung an, nur mit einer kleinen Abwandlung. Was ist, wenn ein Teil des Fit-Dokuments 1) die Auflistung von Attributen und deren Bewertungen und 2) die Bereitstellung von Kundendaten und die Überprüfung der Ergebnisse ist? Was sind dann die tatsächlichen Geschäftsregeln: die Bewertungstabelle (Attribute und deren Bewertungen) oder die Anwendungslogik, die die Bewertung für jeden Kunden berechnet (basierend auf der Bewertungstabelle)? Und welche werden getestet?
Fit/FitNesse-Tests scheinen eher für Akzeptanztests geeignet zu sein. Andere Tests (wenn man sich nicht um die Zusammenarbeit mit Kunden, Nutzern, Domänenexperten usw. kümmert, sondern einfach nur Tests automatisieren will) lassen sich wahrscheinlich einfacher auf herkömmliche Weise schreiben und pflegen. xUnit ist gut für Unit-Tests und API-Tests geeignet. Jedes Web-Framework sollte ein Tool für das Testen von Web-Applikationen/Diensten haben, das in den modify-build-test-deploy-Zyklus integriert ist, z. B. hat django einen kleinen Test-Client. Sie haben eine Menge zur Auswahl.
Und Sie können jederzeit Ihr eigenes Tool schreiben (oder vorzugsweise ein vorhandenes optimieren), um die Tests in Ihrem speziellen Interessengebiet besser zu unterstützen.
Ein weiterer allgemeiner Gedanke. Es ist oft (nicht immer!!!) besser, Ihre Tests, "Geschäftsregeln" und so ziemlich alles in einer Form von gut definierten Daten zu kodieren, die von einem einfachen, generischen Stück Code interpretiert werden. Dann ist es einfach, die Daten anderweitig zu verwenden: Dokumentation erstellen, auf ein neues Test-Framework migrieren, die Anwendung auf eine neue Umgebung/Programmiersprache portieren, die Konformität mit externen Regeln oder einem anderen System überprüfen (lassen Sie Ihrer Fantasie freien Lauf). Es ist viel schwieriger, solche Informationen aus dem Code herauszuziehen, z.B. aus einfachen, fest kodierten Unit-Tests oder Geschäftsregeln.
Fit speichert Testfälle als Daten. In einem sehr spezifischen Format, weil es für die Verwendung vorgesehen ist, aber dennoch. Ihre domänenspezifischen Tests können andere Formate wie einfaches CSV, JSON oder YAML verwenden.