Upgrade to Pro — share decks privately, control downloads, hide ads and more …

BDD - Die Lösung aller Probleme?

BDD - Die Lösung aller Probleme?

Alle sprechen von BDD und davon, wie viele Probleme damit, vor allem beim Testen und Anforderungsmanagement, gelöst werden können. BDD verspricht eine bessere Kommunikation innerhalb des Teams und mit dem Kunden, eine lebendige Dokumentation und höhere Softwarequalität sowie die Entzerrung des Testens.

Klingt super! Aber BDD in neue und bestehende Projekte einzuführen, ist nicht ganz einfach. Es ergeben sich einige Stolpersteine die überwunden werden müssen. Wie binde ich den Kunden ein? Kann der Kunde selber Szenarien aufbauen? Wie überzeuge ich mein Team? Was muss ich bei der Einführung von BDD in bestehende Projekte beachten?

In meinem Vortrag gehe ich auf diese Probleme ein und zeige entsprechende Lösungswege auf.

Ina Einemann

April 22, 2015
Tweet

More Decks by Ina Einemann

Other Decks in Programming

Transcript

  1. Was ist BDD? Behavior Driven Development RED GREEN REFACTOR 1.

    Einen Test schreiben und prüfen, ob er fehlschlägt 2. Code ergänzen, damit der Test erfolgreich durchläuft 3. Den Code verbessern z.B. Wiederholungen löschen Die Basis ist TDD:
  2. Was ist BDD? Behavior Driven Development Story: Taschenrechner Feature: Zwei

    Zahlen Szenario: Zwei Zahlen addieren Gegeben eine Zahl 50 Und eine Zahl 80 Wenn ich Addieren wähle Dann ist das Ergebnis 130 Szenario: Zwei Zahlen multiplizieren Gegeben eine Zahl 5 Und eine Zahl 6 Wenn ich Multiplizieren wähle Dann ist das Ergebnis 30
  3. T T

  4. T T

  5. Impact Map Buchungs- webseite Mehr PKWs vermieten Marketingteam Mehr Kunden

    erreichen Mehrsprachig- keit Kunden Öfters PKWs mieten Aboservice Treueprogramm Freunde überzeugen Facebook Integration Business Goal Warum? Wer? Wie? Was? Stakeholder Capabilities Feature Vision
  6. Als Premium-Kunde möchte ich für bestimmte Tage Fahrzeuge abonnieren können,

    damit ich nicht mehrmals buchen muss. User Story Aboservice
  7. T T

  8. Sachliche Gründe Bedenken Lustlosigkeit Widerspruch Kritik & Beschwerden Ignoranz Aufregung

    Zustimmung Ausweichen Anpassung Schuldzuweisung Bequemlichkeit Angst Hoffnung Machtorientierung am Arbeitsplatz Pessimismus ANGESTREBTE VERÄNDERUNG DEMONSTRIERTES VERHALTEN GRUNDHALTUNG Ein erfolgreicher Veränderungsprozess bewegt wesentlich mehr als nur die angestrebte Veränderung auf der Sachebene
  9. Widerstand Bevorzugung des jetzigen Zustands Gründe für den Widerstand Ablehnung

    von Neuem Formen des Widerstands Aktiv Passiv Betonköpfe Mitläufer Saboteure Skeptiker T
  10. Widerstand Bevorzugung des jetzigen Zustands Gründe für den Widerstand Ablehnung

    von Neuem Formen des Widerstands Aktiv Passiv Mitläufer Skeptike Ich will nicht testen
  11. Widerstand Bevorzugung des jetzigen Zustands Gründe für den Widerstand Ablehnung

    von Neuem Formen des Widerstands Aktiv Passiv Skeptiker In dem Projekt PlaneShare läuft es viel besser. Es läuft doch!
  12. Widerstand Bevorzugung des jetzigen Zustands Gründe für den Widerstand Ablehnung

    von Neuem Formen des Widerstands Aktiv Passiv Betonköpfe Wir sind doch zufrieden! T
  13. Widerstand Bevorzugung des jetzigen Zustands Gründe für den Widerstand Ablehnung

    von Neuem Formen des Widerstands Aktiv Passiv Saboteure !!! Das wollen wir nicht!
  14. T T

  15. Als Premium-Kunde möchte ich für bestimmte Tage Fahrzeuge abonnieren können,

    damit ich nicht mehrmals buchen muss. User Story Aboservice
  16. Akzeptanzkriterien • Der Premium-Kunde soll bei einer Buchung auswählen können,

    ob die Buchung als Abo laufen soll • Der ausgewählte Termin ist der Starttermin • Er kann verschiedene Intervalle für sein Abo auswählen – Täglich • Er kann zwischen bestimmten Wochentagen oder allen Arbeitstagen auswählen – Wöchtlich • Rhythmus von jeder, zweiter, dritter…Woche – Monatlich • Bestimmter Wochentag (letzter Freitag im Monat) • Bestimmter Tag, wie der 1. eines Monats • Er kann einen Endtermin für sein Abo bestimmen – Bestimmtes Datum – Nach einer bestimmten Anzahl an Wochen • Er kann in seinem Kundenkonto die ausgewählten Abos einsehen, ändern und löschen • Er kann in seinem Kundenkonto die Kosten anzeigen • Er kann einen Zahlungsrhythmus für das Abo auswählen – Im Voraus – Je Termin – monatlich
  17. Workflow • Der Premium-Kunde soll bei einer Buchung auswählen können,

    ob die Buchung als Abo laufen soll • Der ausgewählte Termin ist der Starttermin • Er kann verschiedene Intervalle für sein Abo auswählen – Täglich • Er kann zwischen bestimmten Wochentagen oder allen Arbeitstagen auswählen – Wöchtlich • Rhythmus von jeder, zweiter, dritter…Woche – Monatlich • Bestimmter Wochentag (letzter Freitag im Monat) • Bestimmter Tag, wie der 1. eines Monats • Er kann einen Endtermin für sein Abo bestimmen – Bestimmtes Datum – Nach einer bestimmten Anzahl an Wochen • Er kann in seinem Kundenkonto die ausgewählten Abos einsehen, ändern und löschen • Er kann in seinem Kundenkonto die Kosten anzeigen • Er kann einen Zahlungsrhythmus für das Abo auswählen – Im Voraus – Je Termin – monatlich Starttermin auswählen Kundenkonto einsehen Zahlungsrhythmus festlegen Intervalle auswählen Endtermin auswählen
  18. Operationen • Der Premium-Kunde soll bei einer Buchung auswählen können,

    ob die Buchung als Abo laufen soll • Der ausgewählte Termin ist der Starttermin • Er kann verschiedene Intervalle für sein Abo auswählen – Täglich • Er kann zwischen bestimmten Wochentagen oder allen Arbeitstagen auswählen – Wöchtlich • Rhythmus von jeder, zweiter, dritter…Woche – Monatlich • Bestimmter Wochentag (letzter Freitag im Monat) • Bestimmter Tag, wie der 1. eines Monats • Er kann einen Endtermin für sein Abo bestimmen – Bestimmtes Datum – Nach einer bestimmten Anzahl an Wochen • Er kann in seinem Kundenkonto die ausgewählten Abos einsehen, löschen und ändern • Er kann in seinem Kundenkonto die Kosten anzeigen • Er kann einen Zahlungsrhythmus für das Abo auswählen – Im Voraus – Je Termin – monatlich Abo anlegen ändern löschen
  19. Simpel/Komplex • Der Premium-Kunde soll bei einer Buchung auswählen können,

    ob die Buchung als Abo laufen soll • Der ausgewählte Termin ist der Starttermin • Er kann verschiedene Intervalle für sein Abo auswählen – Täglich • Er kann zwischen bestimmten Wochentagen oder allen Arbeitstagen auswählen – Wöchtlich • Rhythmus von jeder, zweiter, dritter…Woche – Monatlich • Bestimmter Wochentag (letzter Freitag im Monat) • Bestimmter Tag, wie der 1. eines Monats • Er kann einen Endtermin für sein Abo bestimmen – Bestimmtes Datum – Nach einer bestimmten Anzahl an Wochen • Er kann in seinem Kundenkonto die ausgewählten Abos einsehen, löschen und ändern • Er kann in seinem Kundenkonto die Kosten anzeigen • Er kann einen Zahlungsrhythmus für das Abo auswählen – Im Voraus – Je Termin – monatlich Simpel Komplex
  20. Als Premium-Kunde möchte ich ein Intervall auswählen, damit mir ein

    PKW an wiederkehrenden Tagen zur Verfügung steht. User Story Aboservice
  21. T T

  22. T T

  23. Als Premium-Kunde möchte ich ein Intervall auswählen, damit mir ein

    PKW an wiederkehrenden Tagen zur Verfügung steht. User Story Aboservice
  24. Szenario Gegeben ein Kunde mit dem Namen <Max> Und <Max>

    hat den Nachnamen <Müller> Und <Max> hat die Adresse <Bremen> Und <Max> hat das Geburtsdatum <12.05.1987> Und <Max> hat den Status <Premium>
  25. Szenario Gegeben ein Kunde mit den folgenden Daten: kd_name kd_nachname

    kd_adresse kd_gebdatum kd_status Max Müller Bremen 12.05.1987 Premium Gegeben ein Kunde Max Und Max ist Premium Kunde
  26. Szenario Und bucht einen PKW für den 01.08.15 und aktiviert

    den Aboservice Gegeben ein Kunde Max Und Max ist Premium Kunde Und Max bucht einen PKW für den 01.08.2015 Und Max aktiviert den Aboservice
  27. Szenario Gegeben ein Kunde Max Und Max ist Premium Kunde

    Und Max einen PKW für den 01.08.2015 bucht Und Max den Aboservice aktiviert Wenn Max ein wöchentliches Intervall auswählt Dann ist der PKW auch für den 08.08.2015 gebucht Gegeben ein Kunde Max Und Max ist Premium Kunde Wenn Max einen PKW für den 01.08.2015 bucht Und Max den Aboservice aktiviert Und Max ein wöchentliches Intervall auswählt Dann ist der PKW auch für den 08.08.2015 gebucht
  28. Szenarien Gegeben ein Kunde Max Und Max ist Premium Kunde

    Und Max bucht einen PKW für den 01.08.2015 Und Max aktiviert den Aboservice Wenn Max hat ein wöchentliches Intervall auswählt Dann ist der PKW auch für den 08.08.2015 gebucht Gegeben ein Kunde Max Und Max ist Premium Kunde Und Max bucht einen PKW für den 01.08.2015 Und Max aktiviert den Aboservice Wenn Max hat ein monatliches Intervall auswählt Dann ist der PKW auch für den 01.09.2015 gebucht Gegeben ein Kunde Max Und Max ist Premium Kunde Und Max bucht einen PKW für den 31.08.2015 Und Max aktiviert den Aboservice Wenn Max hat ein monatliches Intervall auswählt Dann ist der PKW auch für den 30.09.2015 gebucht
  29. Szenario Outline Szenario Outline: Intervall Gegeben ein Kunde Max Und

    Max ist Premium Kunde Und Max bucht einen PKW für den <startdatum> Und Max aktiviert den Aboservice Wenn Max hat ein <intervall> Intervall auswählt Dann ist der PKW auch für den <zweites_datum> gebucht Beispiele: startdatum intervall zweites_datum bemerkung 01.08.2015 wöchentlich 08.08.2015 01.08.2015 monatlich 01.09.2015 31.08.2015 monatlich 30.09.2015 Letzer Monatstag
  30. T T

  31. T T

  32. T T

  33. Layer Gegeben ein Kunde Max Und Max ist Premium Kunde

    Und Max bucht einen PKW für den 01.08.15 Und Max aktiviert den Aboservice Wenn Max hat ein wöchentlichen Intervall auswählt Dann ist der PKW auch für den 08.08.15 gebucht Max meldet sich an Max wählt ein Fahrzeug aus Max wählt den 01.08.2015 Public void entersNameAndAddress (Persona user) { customer.enterFirstName (user.getFirstName() ); customer.enterLastName (user.getLastName() ); customer.enterAdress (user.getAddress() ); } Business Rule Business Flow Technical T
  34. T T

  35. Muss ich TDD nutzen? RED GREEN REFACTOR 1. Einen Test

    schreiben und prüfen, ob er fehlschlägt 2. Code ergänzen, damit der Test erfolgreich durchläuft 3. Den Code verbessern z.B. Wiederholungen löschen
  36. T T

  37. T T

  38. T T

  39. T T Szenarien - Nach und nach erstellen - Dem

    Kunden zur Verfügung stellen - Fachliche Ebene