Czym jest Behavior-Driven Development?

Czym jest Behavior-Driven Development?
Behavior-Driven Development (BDD) polega na tworzeniu oprogramowania przez opisywanie jego zachowania z perspektywy jego udziałowców. Przyjrzyjmy się bliżej definicjom i wyjaśnieniom dotyczącym BDD.

Dan North, który ukuł to pojęcie próbuje w swojej pracy na nowo zdefiniować testy jednostkowe pisane zgodnie z metodą TDD (Test-Driven Development), dodać do tego testy akceptacyjne (UAT - User Acceptance Test) i ostatecznie połączyć je w jedno (nierozumiane bezpośrednio), tworząc BDD. Podstawą tej metody jest próba możliwie najpełniejszego poznania potrzeb, celów i oczekiwań klienta oraz wytworzenie oprogramowania spełniającego te założenia.

Testy akceptacyjne opierają się w niej zazwyczaj o historyjki (user stories) pisane w następującym formacie:

"Jako [rola]..., chcę [funkcja]..., by [korzyść]..." (ang. As a..., I want..., so that...)

Kryterium akceptacji dla historyjki przybiera formę:

"Zakładając, że..., jeśli..., to (wtedy)..." (ang. Given..., when..., then...).

 

Dan North wyjaśnia jak rozumieć BDD, gdzie słówko "test" zostaje zastąpione przez słówko "zachowanie" (ang. behavior). Liz Keogh dodaje, że BDD uzupełnia lukę dla "powinno". Wiadomym jest, że wymagania są w wielu przypadkach niejednoznaczne, a musimy je opisywać w sposób zero-jedynkowy - albo coś ma się wydarzyć, albo nie. Dzięki temu możemy zdefiniować jednoznacznie weryfikowalny przypadek testowy. Czasami jednak musimy wyeksplorować obszary niejednoznaczne, stąd też pojęcie "zachowania" często odwołującego się do kontekstu użycia aplikacji przez użytkownika.

Całościowo BDD ma na celu zbudowanie właściwego oprogramowania w pierwszej próbie. Oczywiście jest to nie do osiągnięcia, ale na końcu na pewno będzie mniej poprawek - komentuje Janet Gregory.

 

Narzędzia stosowane w BDD:

  • JBehave dla języka Java,
  • RSpec (Cucumber) dla Ruby.

 

Dan North wyjaśnia BDD [EN]: http://www.viddler.com/v/c54123a

Prezentacja Gojko Adzica o mitach BDD [EN]:

Gojko Adzic - BDD: Busting the myths from NDCOslo on Vimeo.

 

Źródła:

 

43281

Powiązane szkolenia

05-06
czerwca
2023
Jarosław Hryszko
online
Praktyka testowania
1 750PLN
Testowanie aplikacji internetowych
12
Wolnych miejsc
Rezerwuj
06-07
marca
2023
Arnika Hryszko
online
Praktyka testowania
1 770PLN
Testowanie użyteczności
9
Wolnych miejsc
Rezerwuj
20-21
kwietnia
2023
Rafał Stańczak
online
Dobre praktyki testowania
1 700PLN
Testowanie w metodykach Agile
12
Wolnych miejsc
Rezerwuj
23-24
marca
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
1 770PLN
Testowanie aplikacji mobilnych - Android
9
Wolnych miejsc
Rezerwuj
12-13
czerwca
2023
Krzysztof Skarbiński
online
Automatyzacja testowania
1 800PLN
Testowanie REST API dla początkujących w języku python
11
Wolnych miejsc
Rezerwuj
27-28
lutego
2023
Krzysztof Kołodziejczyk
online
Języki programowania dla testerów
1 800PLN
JavaScript dla testerów oprogramowania
9
Wolnych miejsc
Rezerwuj
10-12
kwietnia
2023
Krzysztof Kołodziejczyk
online
Praktyka testowania
3 000PLN
Tester gier
11
Wolnych miejsc
Rezerwuj
13
marca
2023
-09
kwietnia
2023
Krzysztof Kołodziejczyk
online
Automatyzacja testowania
5 500PLN
Praktyka automatyzacji testowania
5
Wolnych miejsc
Rezerwuj

To powinno Cię zainteresować