Sind BDD Tests Abnahmetests?
Oder, wenn Sie BDD-tests, brauchen Sie etwas, das wie Fitnesse?
InformationsquelleAutor der Frage pondermatic | 2009-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Oder, wenn Sie BDD-tests, brauchen Sie etwas, das wie Fitnesse?
InformationsquelleAutor der Frage pondermatic | 2009-04-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
BDD "tests" bestehen auf mehreren verschiedenen Ebenen der Granularität, den ganzen Weg bis zu den ersten Projekt-vision. Die meisten Menschen wissen über die Szenarien. Ein paar Leute erinnern, dass BDD begann mit dem Wort "sollte" als Ersatz für JUnit "test" - als Ersatz für TDD. Der Grund, warum ich "tests" in Anführungszeichen, weil der BDD ist nicht wirklich über die Prüfung; er konzentrierte sich auf die Suche nach den Orten, wo es einen Mangel oder Missverhältnis von Verständnis.
Weil der Fokus, die Gespräche sind viel wichtiger als die BDD-tools.
Ich werde das nochmal sagen. Die Gespräche sind viel wichtiger als die BDD-tools.
Abnahme nicht wirklich Mandat, die Gespräche, und arbeitet in der Regel von der Annahme aus, dass die tests, die Sie schreiben, sind die richtigen tests. In BDD-wir gehen davon aus, dass wir nicht wissen, was wir tun (und wahrscheinlich nicht wissen, dass wir nicht wissen). Dies ist der Grund, warum wir Dinge wie "Given, When, then" - so dass wir Gespräche rund um die Szenarien und /oder unit-Ebene Beispiele. (Das sind die zwei Ebenen, die meisten Leute sind vertraut mit - dem äquivalent von Akzeptanztests und unit-tests - aber es geht auf der Skala).
Wir nennen Sie Sie nicht "acceptance tests", da können Sie nicht Fragen, eine business-person "Bitte helfen Sie mir mit meinem acceptance test". Sie werden sich bei Ihnen mit einem wirklich seltsam, zusammengekniffenen Blick und dann entlassen Sie als dass geek girl. 93% von Ihnen wollen nicht, dass.
Versuchen "ich möchte mit dir reden über ein Szenario, wo..." statt. Oder, "Können Sie mir ein Beispiel nennen?" Entweder diese sind gut. Fordern Sie "Acceptance tests" anfängt, die Leute denken, dass Sie eigentlich testen, was impliziert, dass Sie wissen, was Sie tun, und wollen einfach nur, um sicherzustellen, dass Sie haben es getan. An diesem Punkt, die Gespräche konzentrieren sich eher darauf, wie schnell man die falsche Sache aus, anstatt über die Tatsache, die Sie bekommen, die für die falsche Sache.
Und Sie sind immer die falschen Dinge aus. Wirklich, ehrlich, das sind Sie. Auch wenn Sie denken, Sie sind nicht, es ist nur, weil Sie nicht verstehen zweiter Ordnung Unwissenheit. Sie wissen nicht, dass Sie nicht wissen, und das ist OK, solange Sie gefunden haben, die Orte, wo Sie könnte wissen, die Sie nicht kennen. (Sie finden nicht alle von Ihnen. Lassen Sie sich nicht von der Kategorisierung paradox halten Sie auf in der Nacht.)
Der einzige Weg, um wirklich es richtig zu bekommen alle die Anforderungen an der front, und Sie wissen, was passiert, wenn Sie versuchen, die. Das ist richtig. Es ist Wasserfall. Denken Sie daran, die überstunden? Die Arbeit am Wochenende? Die sieben Jahre, in denen nicht eine Sache, die Sie erstellt haben es gemacht, um die Produktion? Wenn Sie vermeiden wollen, dass Sie nur noch eine chance: nehmen Sie an, Sie irren sich, haben einige Gespräche darüber, dass es weniger falsch ist, dann akzeptiere, dass du bist noch falsch und gehen für Sie sowieso. Das schreiben von tests zu früh heißt, Sie haben auch mehr chance, falsch zu sein, und jetzt ist es schwieriger zu ändern und jeder denkt, dass du Recht hast und die Uhr misst deine Geschwindigkeit und du bist jetzt verpflichtet zu sein falsch für weitere 2 Wochen. Und - noch schlimmer - Sie sind dabei, um zu testen, ob Sie falsch sind, auch.
Wieder. Die Gespräche sind viel wichtiger als die BDD-tools.
Bitte, bitte, nicht fixieren auf die Werkzeuge. Die tools sind nur ein Mechanismus für die Erfassung der Gespräche und sicherstellen, dass Sie bekommen, spielte in den code ein. Szenarien sind nicht als Ersatz für Gespräche, mehr als eine 3 x 5-index-Karte ist ein Ersatz für Anforderungen.
Gesagt haben, dass, wenn Sie muss beginnen Sie mit einem tool, setzen Schlank hinter Fitnesse, so dass es ausführen kann, schöne Gegeben /Wenn /Thens die zimmerreserviereung, ohne das Durcheinander mit Fit Tabellen und Spielpläne. GivWenZen basiert auf Schlanken und entweder von Ihnen Felsen. FitSharp ist das äquivalent für die von Ihnen in der .NETTO-Platz. Oder nutzen Sie einfach Gurke oder SpecFlow, oder klopfen ein wenig custom-DSL*dass die Arbeit gut für Jahre.
Transparenz: *ich schrieb, dass man. Und die bits der JBehave. Ich wünschte, wir hatte es als "Dont-Konzentrat-auf-BDD-Werkzeuge-Verhalten". Ich könnte stark engagiert in anderen bits des BDD. Plus Dan North kauft mir ein Bier, wenn ich diese Meldung aus, so ist es nicht gerade unparteiische Beratung.
Unabhängig - haben die Gespräche bereits. Es ist nur die Menschen. Gehen Sie sprechen.
InformationsquelleAutor der Antwort Lunivore
Ich weiß nicht, ob es so etwas, streng genommen, als "BDD-test". BDD ist eine Philosophie, die vorschlägt, wie Sie am besten interagieren und Zusammenarbeit mit Stakeholdern, um ein Komplexes Projekt abzuschließen. Es nicht direkt machen, alle Vorschriften für die beste Möglichkeit zum schreiben von tests. In anderen Worten, werden Sie wahrscheinlich immer noch alle üblichen Arten von tests (einschließlich der Akzeptanz-tests) im Rahmen eines BDD-Philosophie-Projekt.
Beim hören von "BDD-frameworks", der Sprecher in der Regel bedeutet, einen Rahmen für das schreiben alle Ihre üblichen Arten von tests, aber mit einem BDD-twist. Zum Beispiel, in RSpec, schreibst du noch unit-tests; fügen Sie einfach die BDD-Geschmack zu Ihnen.
InformationsquelleAutor der Antwort John Feminella
Ich gerne unterscheiden zwischen "Spezifikationen" und "Test."
Wenn ich die Abdeckung einer Methode namens
GetAverage(IEnumerable<int> numbers)
ich schreiben werde, um eine mehr oder weniger standard unit-test.Wenn ich die Abdeckung einer Methode namens
CalculateSalesTax(decimal amount, State state, Municipality municipality)
bin ich noch zu schreiben, das Gerät zu testen, aber ich nenne es eine Spezifikation, denn ich werde zu ändern es (1) um zu überprüfen, das Verhalten der routine, und (2) da der test selbst wird, dokumentieren sowohl die routine und die Akzeptanz-Kriterien.Berücksichtigen:
InformationsquelleAutor der Antwort Jay
JBehave (und NBehave vor kurzem Hinzugefügt, die gleiche Unterstützung) arbeiten mit regulären test-Dateien, so dass, während viele andere frameworks hinzufügen "BDD Geschmack tounit tests" der text basiert Verhaltens-Vorgaben/Beispiele erstellt, die mit JBehave sind geeignet für Abnahmeprüfungen. Und Nein, Sie brauchen nicht fitnesse.
Um eine Idee zu bekommen, wie es funktioniert ich schlage vor,JBehaves 2min tutorial.
InformationsquelleAutor der Antwort Cellfish
Während BDD ist größer als der Umfang von nur tests, aber es gibt tatsächlich BDD-tests. Diese tests sind Unit-Tests, Folgen Sie den BDD Sprache.
Gegebenen Ausgangssituation (die vorgegebenen)
Wenn ein Ereignis Auftritt,
dann sicher einige Ergebnisse.
Gibt es ein paar gute BDD-frameworks zur Verfügung, je nach Ihrer bevorzugten Sprache.
JBehave für Java
RSpec für Ruby
NBehave .NET
InformationsquelleAutor der Antwort David Yancey
Für BDD-Tests im Flex können Sie versuchen, GivWenZen-flex-check it out http://bitbucket.org/loomis/givwenzen-flex.
Cheers,
Kris
InformationsquelleAutor der Antwort Kris
xBehavior BDD-tests gut umgesetzt werden robo-driven user-Akzeptanz-Kriterien.
xSpecification BDD Prüfungen werden in der Regel unit-tests und sind wahrscheinlich akzeptabel sein, Benutzer-Akzeptanz-Kriterien.
InformationsquelleAutor der Antwort Chris Marisic