2010-02-10 4 views
7

Wie ich es verstanden habe, gibt es ein paar Fälle, wenn Sie FitNesse verwenden möchten.Verwenden von FitNesse statt NUnit

  • Sie möchten eher einen Abnahmetest als einen Komponententest durchführen.
  • Sie möchten es als Kommunikationswerkzeug mit dem Stake Holder verwenden.
  • Sie möchten eher groß angelegte Tests als granulare Tests durchführen.
  • Sie möchten, dass Nicht-Techniker die Tests schreiben.

Meine persönliche Meinung und Erfahrung ist:

  • Ich Akzeptanz tun können Test-Tools wie NUnit verwenden. Fitnesse ist im Grunde nur ein Framework zum Aufrufen von öffentlichen Methoden auf einer .NET-Assembly, die mit NUnit to durchgeführt werden kann.
  • Die Stakeholder sagen mir, was sie wollen. Sie sind selten daran interessiert, Fitnesse-Tests zu schreiben. Sie scheinen andere/bessere/wichtigere Dinge zu tun.
  • Mit FitNesse können Sie umfangreiche Tests durchführen. Soweit ich weiß, müssten Sie alle Eingaben für diese umfangreichen Tests in einen einfachen Texteditor in einem Webbrowser eingeben. Wie wäre das einfacher als das Lesen der Eingabedaten aus einer Textdatei auf der Festplatte oder einer Excel-Datei oder einer Datenbank? Sicher, Sie könnten den Pfad zu der Datei auf der Festplatte in der Weboberfläche angeben, aber welchen Nutzen hätte dies, wenn Sie NUnit verwenden, um dieselbe Datei zu lesen?
  • Diese nicht-technischen Personen müssen Code schreiben, der einer sehr spezifischen Syntax in einem Texteditor auf einer Website folgt, der später .NET-Assemblys aufrufen wird. Der .NET-Code wird unordentlich, da die nicht-technische Person die Programmierung nicht kennt, aber er gibt immer noch an, wie die Assembly funktionieren soll.

Kann jemand andere Meinungen zu diesem Thema teilen? Wie war FitNesse für Sie wertvoll?

+0

Ich finde es seltsam, dass jemand diese Frage, aber nicht upvote. Ist das bei SO so üblich? –

+0

Gibt es nebenbei irgendwelche .NET/Fitnesse-Akzeptanztest-Tutorials? – HichemSeeSharp

Antwort

1

Die typische Antwort auf Ihre Frage ist

„Higher Level-Tests (wie Akzeptanz) groß sind, bis Sie das Problem zu finden. An diesem Punkt, wenn Sie Unit-Tests nicht haben dann das einzige, was Sie wissen, ist, dass etwas ist kaputt - nicht speziell was ist kaputt oder wo der Fix angewendet werden sollte. "

4

FitNesse ist für einen ganz anderen Zweck als NUnit konzipiert. Das Durchführen von Akzeptanztests mit NUnit bedeutet zunächst, dass die gesamte Testsuite in Code geschrieben werden muss. FitNesse wurde mit der Absicht entwickelt, dass Sie Ihre Tests in einem bestimmten Grad der Vorbereitung in Daten schreiben können. Dies sind sehr unterschiedliche Betriebsmodi, und sie gelten für sehr unterschiedliche Ressourcen. Sie ermutigen auch zu sehr unterschiedlichen Sichtweisen auf die Welt - ein FitNesse-Testfalldesigner geht davon aus, dass eine sehr einfache, unkomplizierte Transformation stattfinden wird, während ein NUnit-Benutzer sehr viel darüber weiß, wie diese Transformation funktioniert und Haken hat in das System, die nichts mit der Transformation selbst zu tun haben.

Wenn Sie Stakeholder nicht dazu bringen können, Anwendungsfälle und Funktionstests zu schreiben, dann brauchen Sie eine Vertretung für diese Stakeholder, und hier kommt eine traditionelle QA-Abteilung ins Spiel. Ohne einen Stakeholder zu haben, ist das nicht Eine Entschuldigung dafür, es nicht zu tun.

Der Vorteil der Verwendung von FitNesse zum Lesen Ihrer Daten über ein benutzerdefiniertes Format ist ziemlich einfach: Es ist eine Standardmethode zum Eingeben von Testfällen.Wenn Sie den Nutzen darin nicht sehen, müssen Sie möglicherweise einige Zeit damit verbringen, den Pfad zu beschreiten, den Sie beschreiben, denn schließlich werden Sie einige Wände treffen und vielleicht werden sie Ihnen helfen zu verstehen.

8

Also ja, Sie könnten Abnahmetests in nUnit schreiben, aber das vermisst den Punkt. Fitnesse sollte eine alternative Benutzeroberfläche für Ihre Anwendung sein, die einen detaillierten Ablauf von Aussagen zum Ausdruck bringt:

Der Benutzer tut dies Der Benutzer macht die nun der Benutzer diese

sieht Idealer Schicht, die die Fitness ist in der Lage sitzt direkt über der obersten Ebene der Anwendung, um die endgültige Rendering-Ebene zu ersetzen.

Unit-Test-Tools sind nicht wirklich dafür entwickelt, können Sie es tun? Sicher. Aber es ist komisch.

Eine andere Sache, meiner Meinung nach, ist, dass Sie ein bisschen weg in der Idee sind, dass Sie wollen, dass nicht-technische Leute die Tests schreiben. Fitnesse ist ein Werkzeug für die Zusammenarbeit. Sie sollten die Tests mit den Interessengruppen schreiben, geben und Feedback erhalten. Dann hat es den Vorteil, die Dokumentation zu sein. Ein Jahr später, wenn jemand wissen möchte, warum das System so funktioniert, wie es funktioniert, können Sie die Tests auf eine Weise durchführen, die ein BA verstehen kann (anders als nUnit) und gut sagen, hier sollten wir es ändern ?