View
13
Download
0
Category
Preview:
Citation preview
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven Development (BDD)
Bartłomiej Gajowczyk, Sylwester Grabowski
Wydział Informatyki i Zarządzania
Wrocław, 12 marca 2010
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Agenda
1 Wprowadzenie2 Idea BDD3 Historyjki i scenariusze4 BDD w Javie5 Przykłady6 Podsumowanie
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Cele prezentacjiPrawda o projektach
Cele prezentacji
przedstawienie podejścia BDD
wyjaśnienie cyklu w BDD
określenie zasad dotyczących BDD
omówienie historyjek użytkownika i scenariuszy
zaprezentowanie mechanizmów BDD stosowanych w Javie
wyjaśnienie praktyki BDD na przykładach
wykazanie korzyści płynących ze stosowania BDD
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Cele prezentacjiPrawda o projektach
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Idea BDD
Historia
Założenia, główne zasady
Cykl w BDD
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Historia
stosunkowo nowe podejście wywodzące się z TDD i ATDD
początki: 2003 rok - Dan Northodpowiedź na trudności w TDD:
’czym obiekt jest?’ kontra ’co obiekt robi?’
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Założenia, główne zasady
liczy się przede wszystkim zachowanie
minimalizacja formalizmów, maksymalizacja zrozumienia
naturalny język zrozumiały dla każdego
nazwy metod testowych powinny być zdaniami
łatwiejsze czytanie kodu i interpretacja testów
kod stanowi dokumentację
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Cykl w BDD (1)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Cykl w BDD (2) - poziom aplikacji
Zewnętrzny cykl:
tzw. wysokopoziomowy
dotyczy zachowania aplikacji
związany ze scenariuszem konkretnej historyjki użytkownika
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Cykl w BDD (3) - poziom obiektów
Wewnętrzny cykl:
tzw. niskopoziomowy
dotyczy zachowania obiektów
związany z akcjami wykonowanymi podczas pojedyńczegokroku w scenariuszu
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Behavior Driven DevelopmentCykl w BDD
Cykl w BDD (4)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Historyjki i scenariusze
Czym jest historyjka?
Jak powstają historyjki
Jak powinna wyglądać dobra historyjka
Scenariusze
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Czym jest historyjka?
1 wymaganie dotyczące systemu zapisane przez klienta2 składa się z trzech części:
tytułunarracjikryteriów akceptacji
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Budowa historyjki
1 tytuł - najlepiej w jednej lini, opisujący historyjkę
2 narracja - rola, opis funkcjonalności, korzyści:
As a [ROLE]I want [FEATURE]So that [BENEFIT]
3 kryteria akceptacji - zapisane jako scenariusz, określają kiedyhistoryjka jest kompletna:
Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]...
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Budowa historyjki
1 tytuł - najlepiej w jednej lini, opisujący historyjkę2 narracja - rola, opis funkcjonalności, korzyści:
As a [ROLE]I want [FEATURE]So that [BENEFIT]
3 kryteria akceptacji - zapisane jako scenariusz, określają kiedyhistoryjka jest kompletna:
Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]...
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Budowa historyjki
1 tytuł - najlepiej w jednej lini, opisujący historyjkę2 narracja - rola, opis funkcjonalności, korzyści:
As a [ROLE]I want [FEATURE]So that [BENEFIT]
3 kryteria akceptacji - zapisane jako scenariusz, określają kiedyhistoryjka jest kompletna:
Scenario 1: TitleGiven [context] And [some more context]...When [event]Then [outcome] And [another outcome]...
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powstają historyjki?
Historyjka powinna być produktem konwersacji kilku osób:
1 Analityk biznesowy rozmawia z udziałowcem o tym, jakacecha bądź wymaganie jest potrzebne (pomagającuporządkować to jako narrację).
2 Nastepnie tester pomaga zdefiniować krztałt historyjki wpostaci kryteriów akceptacji, determinując, które scenariuszemają znaczenie, a które można pominać.
3 Technik po analizie danej hisotoryjki określa jej koszt i możezaproponować inne rozwiązanie.
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powstają historyjki?
Historyjka powinna być produktem konwersacji kilku osób:1 Analityk biznesowy rozmawia z udziałowcem o tym, jaka
cecha bądź wymaganie jest potrzebne (pomagającuporządkować to jako narrację).
2 Nastepnie tester pomaga zdefiniować krztałt historyjki wpostaci kryteriów akceptacji, determinując, które scenariuszemają znaczenie, a które można pominać.
3 Technik po analizie danej hisotoryjki określa jej koszt i możezaproponować inne rozwiązanie.
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powstają historyjki?
Historyjka powinna być produktem konwersacji kilku osób:1 Analityk biznesowy rozmawia z udziałowcem o tym, jaka
cecha bądź wymaganie jest potrzebne (pomagającuporządkować to jako narrację).
2 Nastepnie tester pomaga zdefiniować krztałt historyjki wpostaci kryteriów akceptacji, determinując, które scenariuszemają znaczenie, a które można pominać.
3 Technik po analizie danej hisotoryjki określa jej koszt i możezaproponować inne rozwiązanie.
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powstają historyjki?
Historyjka powinna być produktem konwersacji kilku osób:1 Analityk biznesowy rozmawia z udziałowcem o tym, jaka
cecha bądź wymaganie jest potrzebne (pomagającuporządkować to jako narrację).
2 Nastepnie tester pomaga zdefiniować krztałt historyjki wpostaci kryteriów akceptacji, determinując, które scenariuszemają znaczenie, a które można pominać.
3 Technik po analizie danej hisotoryjki określa jej koszt i możezaproponować inne rozwiązanie.
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powinna wyglądać dobra historyjka? (1)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powinna wyglądać dobra historyjka? (2)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Jak powinna wyglądać dobra historyjka? (3)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Czym jest historyjka?Jak powstają historyjki?Jak powinna wyglądać dobra historyjka?Scenariusze
Scenariusze
Grupowanie scenariuszy podobnych:
Klient pobiera gotówkę (zakładamy że: bankomat działa ikarta jest ważna)
Klient pobiera gotówkę z nieważna kartą (zakładamy że:bankomat działa)
Klient pobiera gotówkę z niedziałającego bankomatu(zakładamy że: karta jest ważna)
Dalsza rozbudowa:
Co się stanie gdy karta będzie przeterminowana?
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Narzędzia do BDDBDD w JavieAdnotacje
Narzędzia
Narzędzia do BDD
BDD w Javie
Adnotacje kroków (na poziomie obiektów)
Adnotacje scenariuszy (na poziomie aplikacji)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Narzędzia do BDDBDD w JavieAdnotacje
Narzędzia do BDD
Frameworki wspierające BDD w różnych językach:
dla Ruby’ego - RSpec + Cucumber (http://rspec.info)
dla PHP - PHPSpec (http://www.phpspec.org)
dla Javy - JBehave (http://jbehave.org)
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Narzędzia do BDDBDD w JavieAdnotacje
BDD w Javie
JUnit - framework do testów jednostkowych
JBehave - framework do BDD
Hamcrest - lub inna ’biblioteka dopasowań’
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Narzędzia do BDDBDD w JavieAdnotacje
Adnotacje kroków (na poziomie obiektów)
@Given
@When
@Then
@Alias
@Aliases
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Narzędzia do BDDBDD w JavieAdnotacje
Adnotacje scenariuszy
@BeforeScenario
@AfterScenario
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Korzyści
Korzyści stosowania BDD
nacisk położony na to, co obiekt ma robić, a nie jak ma torobić
ułatwienie komunikacji pomiędzy osobami zaangażowanymi wprojekt (wspólny język)
kod staje się dokumentacją
scenariusze stanowią dodatkowe testy
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Przykładowe scenariuszePrzykłady w Eclipse
Przykładowe scenariusze
Scenariusze mogą mieć dowolną formę!
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Przykładowe scenariuszePrzykłady w Eclipse
Przykłady w Eclipse
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
WprowadzenieIdea BDD
Historyjki i scenariuszeNarzędzia
PodsumowaniePrzykłady
Przykładowe scenariuszePrzykłady w Eclipse
Bartłomiej Gajowczyk, Sylwester Grabowski Behavior Driven Development (BDD)
Recommended