Frage

Je mehr ich über BDD lesen und wie es soll verbessert werden TDD desto verwirrender es scheint alles zu mir. Ich habe Zitate von Experten gefunden, die sagen, es geht um Design, sondern auch von anderen Experten, die sagen, dass es über die Analyse.

So wie ich sehe es derzeit so aus:

1) Analyse: BDD

wikipedia

  

Das Ergebnis der objektorientierten Analyse   ist eine Beschreibung dessen, was das System   funktionell erforderlich in der zu tun,   Form eines konzeptionellen Modells.

So nach BDD haben wir die Anforderungen (Geschichten und die Szenarien). Aber ich bin über das konzeptionelle Modell Teil nicht sicher.

2) Design: zB mit Werkzeugen wie resonsibility Driven Design mit CRC-Karten

3) Code: das Design Codierung, optional Testen verwenden (wie das, was sie sagen über TDD falsch gemacht, was ich auch nützlich finden)

Bin ich falsch, wie ich das sehen? Ich habe Probleme im Moment den Wald durch die Bäume zu sehen.

War es hilfreich?

Lösung

Kurz gesagt ist es mit dem zu tun Analyse .

BDD ist für "Acceptance Test Driven Development." - das heißt zu wissen, ob ein System im Test als für ein bestimmtes User Story-Szenario erwartet verhält

Als ich mit JBehave arbeitete wir haben es auf der Ebene User Story und hat nach wie vor „konventionellen“ TDD für die Zusammenarbeit zwischen den einzelnen Objekten und zwischen Subsystemen Handhabung.

Normalerweise verwenden Business-Systeme BDD Szenarien Business-Domain-Verhalten nicht zu testen, um die winzigen implementtion Details im Inneren des Systems zu beschreiben. Sie möchten die BDD-Szenarien auf der Domäne Expertenabstraktionsebene aufgeschlagen. Diese Szenarien würde nicht viel Sinn zu Domain-Experten machen und wäre sehr zerbrechlich, wenn sie jedes noch so kleine Detail der Implementierung beschrieben.

Ein BDD Szenario sagt was sollte das System für eine User Story tun aber nicht, wie es tut.

Andere Tipps

BDD ist über "ausführbare Spezifikationen" oder die Abnahmeprüfung zu schreiben aka Black-Box-Tests , die per definitionem, eine externe Perspektive des Testobjekts nimmt Testfälle ableiten .

So BDD nicht über Design sein kann, BDD ist über Testfunktionen / stories / scenarii, BDD ist näher an Analyse.

BDD - Verhalten Driven Development

Verhalten = ..in Kontext .. Entwicklung - ... in dem Bau von ...

Die Entwicklung in diesem Fall zeigt mir, dass die Analyse durchgeführt wurde und man ist etwas umzusetzen, die im Zusammenhang mit einem bestimmten Verhalten ist.

so die Frage zu beantworten, ich glaube, sein in dem Design .

Ich denke, von einer Architektur POV BDD über Design wäre. Ich brauche eine Anwendung zu entwickeln, die etwas tun kann, die später in der Abnahmeprüfung verwendet werden. Also, aus dem High-Level-Design möchte ich sicherstellen, dass ich für die verschiedenen Verhaltensanforderungen bin der Gestaltung, so dass ich nicht Überdimensionierung und Vervielfältigung begrenzen.

Es hilft, sicherzustellen, dass wir brauchen, um neu gestalten können nicht als der Benutzer hat mehr Zeit, um darüber nachzudenken, was hat sie eigentlich will, um zu sehen, wie die Anwendung durchführen wird.

BDD (oder TDD was das betrifft) nicht über nichts. Es ist eine Technik (im Fall von BDD, eher einen Ansatz), die Analyse unterstützt und Design (wie auch der lästige kleine Implementierungsschritt). Man hört oft den Satz „rot, grün, Refactoring“ mit TDD verbunden sind, und so gilt es für BDD: den Test erstellen und sehen, dass es nicht, den Test machen, indem die Code-Basis zu aktualisieren, dann überarbeiten, das System in einer verbesserten Form, während Sie erhalten die durchlaufenden Tests.

So BDD Analyse unterstützt, wenn Sie die Tests zu erstellen: Sie sollen das Verhalten in Form von Tests oder Beispielen erforderlich beschreiben. Es unterstützt Design wichtig, wenn Sie die Tests ausführen: Ihre Design-Entscheidungen werden daran gehindert, versehentlich erforderliches Verhalten brechen, und können durch die Analyse geführt werden. Aber es ist nicht eine der Analyse oder einen Entwurf für Sie; Sie müssen immer noch denken. Es ist ein Weg, sicherzustellen, dass während der Analyse und Konstruktionsschritte, Sie widersprechen sich nicht.

BDD und TDD noch einen sehr unglücklichen Namen haben, weil es eigentlich nicht decken, was sie verwendet werden.

  • Sie wollen nicht, während Ihres dev Zyklus für jede mögliche Ecke Fall-Tests zu schreiben, die etwas Tester ist abholen sollte.
  • Sie haben nicht Regressionen wollen, und Sie wollen sicher sein, Sie den Code schreiben Sie diese Iteration löschen müssen, so dass Sie ein wiederholbares Ergebnis
  • wollen
  • Sie haben keine detaillierte Designs zu Beginn zu tun, sondern eher einige Anforderungen notiere Sie dieses Mal beendet sehen wollen.

BDD / TDD eine der 2 ist in Ordnung, wenn Sie nicht eine einzige Zeile Code schreiben, bevor Sie ein Stück Code haben, der die Bit-Code beschreibt Sie sind dabei, zu schreiben. Dadurch, dass Sie in eine Zone erhalten werden.
Zwar gibt es keinen Beweis dafür, dass BDD / TDD Ihre dev Geschwindigkeit (wird nicht wahrscheinlich) verbessern wird es erheblich die Anzahl der Ausgaben reduzieren Sie nach dem Loslassen der Software zurück, die erwiesenermaßen.

BDD ist eine Weiterentwicklung von TDD, wo TDD den Druck auf bringt alles testen BDD entspannt dies und sagt, dass Sie nur das öffentliche Verhalten Ihrer Klassen testen sollten, da die Innereien wahrscheinlich ändern.

BDD ist so viel über Design, da es über die Analyse ist, aber ich glaube nicht, dass das ist Ihre Frage ist es? Sie wollen wissen, wie die Geschichten in Flussdiagramme und Architekturpläne zu übersetzen?

Da von dem, was ich aus Ihrer Frage bekommen, ist, dass Sie eine große Design vorne machen und dann versuchen, dass aus zu codieren. Das wird nicht mit BDD arbeiten, weil während erfüllen Ihre Geschichten, die Sie in unsystematische Weise schreiben sollten Ihren Code und Architektur automatisch erhalten. Es ist emergent Design genannt, so dass keine große Planungsphase ist.

In einem SCRUM oder wie weise System der wirklich gut funktioniert, weil das Geschäft Ihre Geschichten priorisiert. Sie starten von oben und ein spec / example schreiben für sie dann versuchen, das Beispiel zu wiederholen, dies zu erfüllen, bis Sie diesen Rückstand Punkt abgeschlossen haben und dann die nächsten abholen und wieder von vorn beginnen.

Ich hoffe, dass dies Ihre Frage beantwortet .. wenn nicht müssen Sie ein wenig klären, weil es ein Braod Thema ist. Kurz BDD ist eine reine Entwickler-Tool, nicht für Architekten, BA, ... Tester die BDD-Tools verwenden können, aber ich hoffe, dass nicht das einzige Werkzeug ist verwenden sie die Anwendung zu testen.

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