Weitere ähnliche Inhalte Ähnlich wie Specification by example (20) Mehr von Markus Unterauer (11) Specification by example1. © Software Quality Lab www.software-quality-lab.com
Wie man den Kunden an Board holt
Markus Unterauer
Berater und Trainer
Specification by Example
- 1 -
2. © Software Quality Lab www.software-quality-lab.com
Es ist verdammt schwer herauszufinden,
was ein System können soll …
- 2 -
3. © Software Quality Lab www.software-quality-lab.com
Stille Post
- 3 -
[http://www.connexin.net/de/humor-witze/projekt-management/]
4. © Software Quality Lab www.software-quality-lab.com
Varianten
- 4 -
https://www.flickr.com/photos/neilmoralee/9863133426
https://www.flickr.com/photos/initial-reaction/5451653692
5. © Software Quality Lab www.software-quality-lab.com
Selbst wenn ICH es verstehe,
ist es richtig schwer dieses Verständnis weiterzugeben
…
- 5 -
6. © Software Quality Lab www.software-quality-lab.com
Auspack und freu
- 6 -
Herzlichst Gluckwuensch zu gemutlicher Weihnachtskerze Kauf
Mit sensazionell Modell GWK 9091 Sie bekomen nicht teutonische Gemutlichkeit fuer trautes
Heim nur, auch Erfolg als moderner Mensch bei anderes Geschleckt nach Weihnachtsganz
aufgegessen und laenger, weil Batterie viel Zeit gut lange.
Zu erreischen Gluckseligkeit unter finstrem Tann, ganz einfach Handbedienung von GWK 9091:
1. Auspack und freu.
2. Slippel A kaum abbiegen und verklappen in Gegenstippel B fuer
Illumination von GWK 9091.
3. Mit Klamer C in Sacco oder Jacke von Lebenspartner einfraesen und
laecheln fuer Erfolg mit GWK 9091.
4. Fuer eigens Weihnachtsfeierung GWK 9091 setzen auf Tisch.
5. Fuer kaput oder Batterie mehr zu Gemutlichkeit beschweren an:
wir, Bismarckstrasse 4.
Fuer neue Batterie alt Batterie zurueck fuer Sauberwelt in deutscher Wald. Viel Spass mit GWR
9091.
7. © Software Quality Lab www.software-quality-lab.com
Zeichne und freu
Bankkarte
gültig
PIN
Eingabe
korrekt
3. PIN
Eingabe
falsch
Geld
verfügbar
Karte
zurück-
weisen
PIN
erneut
anfordern
Karte
einbehalten
Geld
auszahlen
Geldbetrag
erneut
anfordern
- 7 -
12. © Software Quality Lab www.software-quality-lab.com
Grundprinzipien Specification by Example
Folie 12
Scope von Ziele
ableiten
Kollaboration
Konkrete
Beispiele
Lebende
Dokumentation
Wiederkehrende
Validierung
13. © Software Quality Lab www.software-quality-lab.com
Methoden zur Umsetzung der Prinzipien
Folie 13
Scope von Ziele
ableiten
Kollaboration
Konkrete
Beispiele
Lebende
Dokumentation
Wiederkehrende
Validierung
Story Telling User Stories mit
Akzeptanzkriterien
Automatisierte Tests
14. © Software Quality Lab www.software-quality-lab.com
Alles beginnt mit Geschichten …
- 14 -
15. © Software Quality Lab www.software-quality-lab.com
Smart Home
- 15 -
[https://www.flickr.com/photos/macblack/17577308444/]
https://www.loxone.com/dede/produkte/ueberblick/
16. © Software Quality Lab www.software-quality-lab.com
Die Geschichten in eine strukturierte Form
bringen …
- 16 -
17. © Software Quality Lab www.software-quality-lab.com
Eine „Morning“ User Story
- 17 -
Als arbeitender Papa
möchte ich rechtzeitig geweckt werden,
damit ich pünktlich in der Arbeit bin.
18. © Software Quality Lab www.software-quality-lab.com
User Story Rückseite
- 18 -
Gegeben ich brauche 30 Minuten zur Arbeit
Und ich habe um 9 Uhr das Daily Scrum Meeting
Und es gibt keine Verkehrsbehinderungen
Wenn ich „gemütlich Frühstücken“ aktiviert habe
Dann läutet der Wecker um 6:30
Und ich habe 2 Stunden Zeit zum Frühstücken.
Szenario
„normaler
Arbeitstag“
19. © Software Quality Lab www.software-quality-lab.com
Varianten
- 19 -
Wie kann ein Morgen
noch aussehen?
20. © Software Quality Lab www.software-quality-lab.com
User Story Rückseite
- 20 -
Gegeben ich brauche 30 Minuten zur Arbeit
Und ich habe um 9 Uhr das Daily Scrum Meeting
Und es gibt keine Verkehrsbehinderungen
Wenn ich „lange schlafen“ aktiviere
Dann ist die eingestellte Weckzeit 8:15
Und ich habe 15 Minuten Zeit zum Frühstücken.
Szenario
„Vorabend
Party“
21. © Software Quality Lab www.software-quality-lab.com
User Story Rückseite
- 21 -
Gegeben ich brauche normalerweise 30 Minuten zur Arbeit
Und ich habe um 9 Uhr das Daily Scrum Meeting
Und es gibt 20 Minuten Verzögerung
Wenn ich „gemütlich Frühstücken“ aktiviere
Dann ist die eingestellte Weckzeit 6:10
Und ich habe 2 Stunden Zeit zum Frühstücken.
Szenario
„Stau“
22. © Software Quality Lab www.software-quality-lab.com
Verhalten spezifizieren
Folie 22
Gegeben Dann
Wenn
Ausgangszustand ErgebnisAktion
24. © Software Quality Lab www.software-quality-lab.com
Behavior Driven Development (BDD)
- 24 -
Feature: User authentication
In order to protect access to the HMI
As a system administrator
I want that all users need to be authorized
Scenario: Autologin after 60 seconds
Given HMI started with default configuration
When user waits for 60 seconds at the login screen
Then Default user should be logged in automatically
Lebende Spezifikation, die
gleichzeitig zur Verifikation
verwendet wird
Test in „Gherkin“
geschrieben
25. © Software Quality Lab www.software-quality-lab.com
Hinter den Kulissen
- 25 -
[Given("HMI started with default configuration")]
public void GivenTheStartedHMIWithMachineConfiguration()
{
TestBase.loginForm = TestBase.app.Start();
}
[Then("(.*) user should be logged in automatically")]
public void ThenLoggedInUser(string user)
{
Assert.That(frameFunctions.UserGroup, Is.EqualTo(user));
}
Test step
implementation
Input value
pattern matcher
26. © Software Quality Lab www.software-quality-lab.com
Data Driven Test Specification
- 26 -
Szenariogrundriss: Plausbilitätsprüfung im Handbetrieb
Angenommen die Werte '<Werkstoff>', <Blechdicke>,
<Biegewinkel> im Handbetrieb
Wenn der Bediener die Vorberechnung startet
Dann ist 'UpperDeadPoint' <= 'MutePoint1'
Und 'ClampingPoint' <= 'LowerDeadPoint'
Und 'DecompressionPoint' <= 'LowerDeadPoint'
Und 'ClampingPoint' - 'MutePoint1' = 'MuteDistance1'
Beispiele:
| Werkstoff | Blechdicke | Biegewinkel |
| 1.0038 | 0,1 | 90,0 |
| 1.0038 | 1,0 | 90,0 |
| 1.0038 | 3,0 | 90,0 |
27. © Software Quality Lab www.software-quality-lab.com
Automatisieren
- 27 -
1
2
3
4
5
6
Specify
Implement test steps
Run tests
Implement
Continuous feedback from tests
Done!
30. © Software Quality Lab www.software-quality-lab.com
Features werden nicht gelesen
Folie 30
https://www.flickr.com/photos/11596438@N00/1491716378/in/photostream/
31. © Software Quality Lab www.software-quality-lab.com
Nutzen
- 31 -
▪ Frühzeitig Sonderfälle beachtet
▪ Weniger Fehler im Produkt
▪ Feedback zu große User Stories
Szenarien > 10
▪ Klarere User Stories
▪ Gemeinsames Verständnis
Product Owner, Entwickler, Tester
▪ Zuerst Funktion (WAS)
dann Lösung (WIE)
[https://www.flickr.com/photos/evablue/6184132023/]
32. © Software Quality Lab www.software-quality-lab.com
Do‘s and Don‘t‘s
▪ Halte die Szenarien kurz
▪ Teile ein komplexes Szenario in mehrere einfache auf
▪ Beschriebe Szenarien aus Sicht des Anwenders
▪ Halte Szenarien auf der gleichen Abstraktionsebene
▪ Verwende Keine technischen Begriffe (u.a. UI, REST)
▪ Verwende Begriffe aus der Fachdomäne
▪ Verwende konkrete Zahlen, Daten, Fakten
(also statt „Wert eingeben“ „5.212,65 eingeben“)
- 32 -
33. © Software Quality Lab www.software-quality-lab.com
Herausforderung - Werkzeugintegration
- 33 -
Requirements Engineering Tools Behavior Driven Development Tools
RE-
23RE-
23RE-
23
34. © Software Quality Lab www.software-quality-lab.com
Abschlussfolie
- 34 -
Gegeben die Abschlussfolie wird angezeigt
Wenn ein Teilnehmer eine Frage hat
Dann wird diese gerne von uns beantwortet.
35. © Software Quality Lab www.software-quality-lab.com
Best Books
- 35 -
Gojko Adzic
2011, Manning Verlag
ISBN-10: 1617290084
ISBN-13: 978-1617290084
Johannes Bergsmann, Markus Unterauer
2014, dpunkt.verlag GmbH
ISBN-10: 3864901499
ISBN-13: 978-3864901492
Markus Unterauer
2014, dpunkt.verlag GmbH
ISBN-10: 3864902312
ISBN-13: 978-3864902314
36. © Software Quality Lab www.software-quality-lab.com - 36 -
Markus Unterauer
Berater und Trainer, Head of Consulting
[m] markus.unterauer@software-quality-lab.com
Über die Vortragenden
37. © Software Quality Lab www.software-quality-lab.com
Academy | Consulting | Operational Services | Tool Expertise
INNOVATION MEETS QUALITY
Software Quality Lab
- 37 -