Rozwój oparty na zachowaniu - wprowadzenie
Behavior Driven Development (BDD) to proces tworzenia oprogramowania, który pierwotnie wyłonił się z Test Driven Development (TDD).
Według Dana Northa, który jest odpowiedzialny za ewolucję BDD, „BDD wykorzystuje przykłady na wielu poziomach, aby stworzyć wspólne zrozumienie i niepewność w dostarczaniu oprogramowania, które ma znaczenie”.
BDD używa przykładów, aby zilustrować zachowanie systemu, które są napisane czytelnym i zrozumiałym językiem dla wszystkich zaangażowanych w rozwój. Te przykłady obejmują -
Przekonwertowane na wykonywalne specyfikacje.
Używany jako testy akceptacyjne.
BDD - kluczowe cechy
Rozwój oparty na zachowaniu skupia się na -
Zapewnienie wspólnego procesu i wspólnych narzędzi promujących komunikację z twórcami oprogramowania, analitykami biznesowymi i interesariuszami w celu współpracy przy tworzeniu oprogramowania w celu dostarczenia produktu o wartości biznesowej.
Co system powinien robić, a nie jak powinien być wdrażany.
Zapewnienie lepszej czytelności i widoczności.
Weryfikacja nie tylko działania oprogramowania, ale także tego, czy spełnia ono oczekiwania klienta.
Pochodzenie BDD
Koszt naprawy wady wzrasta wielokrotnie, jeśli defekt nie zostanie wykryty we właściwym czasie i naprawiony w momencie wykrycia. Rozważmy następujący przykład.
Pokazuje to, że bez prawidłowego uzyskania wymagań naprawienie usterek wynikających z niezrozumienia wymagań na późniejszym etapie byłoby kosztowne. Ponadto produkt końcowy może nie spełniać oczekiwań klienta.
Potrzeba godziny to podejście do rozwoju, które -
Opiera się na wymaganiach.
Koncentruje się na wymaganiach w trakcie rozwoju.
Zapewnia spełnienie wymagań.
Podejściem programistycznym, które może zająć się powyższymi wymaganiami, jest BDD. Zatem rozwój oparty na zachowaniu -
Wyprowadza przykłady różnych oczekiwanych zachowań systemu.
Umożliwia pisanie przykładów w języku z wykorzystaniem terminów domeny biznesowej, aby zapewnić łatwe zrozumienie przez wszystkich zaangażowanych w rozwój, w tym klientów.
Pobiera od czasu do czasu przykłady w drodze rozmów z klientem.
Koncentruje się na wymaganiach klienta (przykładach) w całym rozwoju.
Używa przykładów jako testów akceptacyjnych.
Praktyki BDD
Dwie główne praktyki BDD to:
Specyfikacja na przykładzie (SbE)
Rozwój sterowany testami (TDD)
Specyfikacja na przykładzie
Specyfikacja według przykładu (SbE) wykorzystuje przykłady w rozmowach, aby zilustrować reguły biznesowe i zachowanie oprogramowania, które ma zostać zbudowane.
Specyfikacja na podstawie przykładu umożliwia właścicielom produktów, analitykom biznesowym, testerom i programistom wyeliminowanie typowych nieporozumień dotyczących wymagań biznesowych.
Rozwój oparty na testach
Programowanie sterowane testami w kontekście BDD przekształca przykłady w czytelne dla człowieka, wykonywalne specyfikacje.
Programiści używają tych specyfikacji jako wskazówek do wdrażania kolejnych nowych funkcji. Skutkuje to oszczędną bazą kodu i zestawem automatycznych testów regresyjnych, które utrzymują koszty utrzymania na niskim poziomie przez cały okres eksploatacji oprogramowania.
Agile BDD
W zwinnym tworzeniu oprogramowania metoda BDD jest wykorzystywana do wspólnego zrozumienia oczekujących specyfikacji.
Poniższe kroki są wykonywane w Agile BDD -
Deweloperzy i właściciel produktu wspólnie piszą oczekujące specyfikacje w zwykłym edytorze tekstowym.
Właściciel produktu określa zachowania, których oczekuje od systemu.
Twórcy
Wypełnij specyfikacje tymi szczegółami zachowania.
Zadawaj pytania na podstawie ich zrozumienia systemu.
Bieżące zachowania systemowe są brane pod uwagę, aby sprawdzić, czy nowa funkcja przerwie którąkolwiek z istniejących funkcji.
Manifest Agile i BDD
Manifest Agile stwierdza, co następuje:
Odkrywamy lepsze sposoby tworzenia oprogramowania, robiąc to i pomagając innym. Dzięki tej pracy doszliśmy do wartości -
Individuals and interactions - ponad Procesy i narzędzia
Working software - ponad Kompleksowa dokumentacja
Customer collaboration - ponad negocjacje umowy
Responding to change - ponad Zgodnie z planem
Oznacza to, że podczas gdy elementy po prawej stronie mają wartość, bardziej cenimy elementy po lewej stronie.
BDD dostosowuje się do manifestu Agile w następujący sposób -
Manifest Agile | Wyrównanie BDD |
---|---|
Osoby i interakcje nad procesami i narzędziami. | BDD polega na prowadzeniu rozmów. |
Działające oprogramowanie ponad obszerną dokumentację. | BDD koncentruje się na ułatwianiu tworzenia oprogramowania o wartości biznesowej. |
Współpraca z klientem zamiast negocjacji umowy. | BDD koncentruje się na scenariuszach opartych na pomysłach z ciągłą komunikacją z klientem w miarę postępu prac. Nie opiera się na żadnych obietnicach. |
Reagowanie na zmianę zgodnie z planem. | BDD stawia na ciągłą komunikację i współpracę, która ułatwia przyswajanie zmian. |