BDD vs TDD vs ATDD: Kluczowe różnice

Ten przewodnik ma na celu opisanie różnych metod lub praktyk testowania, takich jak Behavioral Driven Development (BDD), Test-Driven Development (TDD) ), Rozwój oparty na testach akceptacyjnych (TDD). Pomoże również wyjaśnić kluczowe różnice między tymi technikami. Pod koniec tego artykułu należy zrozumieć, jak działa każda metoda, kluczowe różnice i ich szczególne role w procesie rozwoju.

Najpierw zacznijmy od programowania sterowanego testami.

Co to jest programowanie sterowane testami (TDD)?

Programowanie sterowane testami to metodologia testowania lub praktyka programistyczna wdrażana z perspektywy programisty. W tej technice inżynier QA zaczyna projektować i pisać przypadki testowe dla każdej małej funkcjonalności aplikacji. Ta technika jest próbą odpowiedzi na proste pytanie – czy kod jest prawidłowy? Głównym celem tej techniki jest modyfikacja lub napisanie nowego kodu tylko wtedy, gdy test zakończy się niepowodzeniem. W związku z tym powoduje mniejsze powielanie skryptów testowych. Ta technika jest bardzo popularna w ekosystemach zwinnego rozwoju. W podejściu TDD zautomatyzowane skrypty testowe są pisane przed funkcjonalnymi fragmentami kodu. Metodologia TDD obejmuje następujące kroki:

  1. Na podstawie wymagań określonych w dokumentach programista pisze zautomatyzowany przypadek testowy
  2. Testy te są wykonywane, aw niektórych przypadkach , kończą się niepowodzeniem, ponieważ zostały opracowane przed opracowaniem rzeczywistej funkcji.
  3. Zespół programistów następnie ponownie analizuje kod, aby test pomyślnie przeszedł.

Ponowne uwzględnienie odnosi się do procesu modyfikowania kodu bez zmiany jego głównej funkcjonalności lub zachowania.

Korzyści z programowania sterowanego testami:

  • Pomaga skrócić czas potrzebny na przeróbki
  • Pomaga bardzo szybko badać błędy lub błędy
  • Pomaga uzyskać szybszą informację zwrotną
  • Zachęca do opracowywania czystszych i lepszych projektów
  • Zwiększa produktywność programisty
  • Umożliwia każdemu członkowi zespołu rozpoczęcie pracy nad kodem w przypadku nieobecności określonego członka zespołu. Zachęca to do dzielenia się wiedzą i współpracy.
  • Daje programistom pewność łatwej zmiany dużej architektury aplikacji.
  • Skutkuje tworzeniem obszernego kodu, który jest elastyczny i łatwy w utrzymaniu

Rozumiem teraz wszystko na temat rozwoju opartego na zachowaniu.

Co to jest rozwój oparty na zachowaniu (BDD)?

Rozwój oparty na biznesie (BDD) to podejście do testowania wywodzące się z metodologii Test-Driven Development (TDD). W BDD testy opierają się głównie na zachowaniu systemów. To podejście definiuje różne sposoby tworzenia funkcji na podstawie jej zachowania. W większości przypadków do pisania przypadków testowych używa się metody Given-When-Then. Weźmy przykład dla lepszego zrozumienia:

  • Zakładając, że użytkownik wprowadził prawidłowe dane logowania
  • Gdy użytkownik kliknie przycisk logowania
  • Następnie wyświetl komunikat o pomyślnej walidacji

Jak pokazano powyżej, zachowanie jest zilustrowane w bardzo prostym języku angielskim, znanym również jako język współdzielony. Pomaga to wszystkim w zespole odpowiedzialnym za programowanie zrozumieć zachowanie funkcji.

Na przykład można spróbować przeprowadzić łatwy test w różnych przeglądarkach na podstawie zestawu instrukcji testowania na wielu urządzeniach, jak pokazano w wideo.

Wypróbuj bezpłatnie testowanie przeglądarki w chmurze urządzeń rzeczywistych

Najważniejsze korzyści wynikające z kierowania się zachowaniami Podejście programistyczne:

  • Pomaga dotrzeć do szerszego grona odbiorców poprzez użycie nietechnicznego języka
  • Koncentruje się na tym, jak system powinien zachowywać się z perspektywy klienta i programisty
  • BDD to opłacalna technika
  • Zmniejsza wysiłki potrzebne do zweryfikowania wszelkich błędów po wdrożeniu

Poniższy obraz przedstawia typową operację BDD:

Źródło obrazu: Tutorialspoint

W jaki sposób BDD pomaga w SDLC?

Debugowanie błędów na późniejszych etapach cyklu rozwojowego często okazuje się bardzo kosztowne ive. W większości przypadków główną przyczyną tego stanu rzeczy jest niejasność w rozumieniu wymagań. Należy upewnić się, że wszystkie wysiłki rozwojowe pozostają ukierunkowane na spełnienie z góry określonych wymagań. BDD umożliwia programistom wykonanie powyższego poprzez:

  • Umożliwienie zdefiniowania wymagań w standardowym podejściu przy użyciu prostego języka angielskiego
  • Zapewnienie kilku sposobów zilustrowania rzeczywistych scenariuszy zrozumienia wymagania
  • Zapewnienie platformy, która umożliwia zespołom technicznym i innym zespołom współpracę i zrozumienie wymagań

Co to jest programowanie oparte na testach akceptacji?

W technice ATDD (Acceptance Test-Driven Development), pojedynczy test akceptacyjny jest napisany z perspektywy użytkownika.Koncentruje się głównie na spełnianiu funkcjonalnego zachowania systemu. Ta technika jest próbą odpowiedzi na pytanie – Czy kod działa zgodnie z oczekiwaniami?

Uwaga: Programowanie sterowane testami akceptacji jest bardzo podobne do programowania sterowanego behawioralnie. Jednak kluczowa różnica między nimi polega na tym, że BDD koncentruje się bardziej na zachowaniu funkcji, podczas gdy ATDD skupia się na uchwyceniu dokładnych wymagań.

Ta technika poprawia współpracę między programistami, użytkownikami i kontrolerami jakości ze wspólnym celem w sprawie określenia kryteriów akceptacji. Oto niektóre z kluczowych praktyk w ATDD:

  • Analizowanie i omawianie rzeczywistych scenariuszy
  • Decydowanie o kryteriach akceptacji dla tych scenariuszy
  • Automatyzacja przypadków testów akceptacyjnych
  • Skupienie się na rozwoju tych przypadków wymagań

Korzyści z ATDD

  • Wymagania są bardzo jasno analizowane bez wszelkie niejasności
  • Zachęca do współpracy między członkami zespołu.
  • Test akceptacyjny służy jako przewodnik dla całego procesu rozwoju.

Kluczowe różnice: TDD vs BDD vs ATDD

Parametry TDD BDD ATDD
Definicja TDD to technika programistyczna, która koncentruje się bardziej na implementacji funkcji BDD to technika programistyczna, która koncentruje się na zachowaniu systemu ATDD to technika podobna do BDD, skupiająca się bardziej na przechwytywaniu wymagań
Uczestnicy Programista Programiści, klienci, QA Programiści, klienci, QA
Używany język Napisany w języku podobnym do używanego do tworzenia funkcji (np. Java, Python itp.) Prosty angielski, (Gherkin) Prosty angielski, Gherkin
Główny temat Testy jednostkowe Zrozumienie wymagań Pisanie testów akceptacyjnych
Używane narzędzia JDave, Cucumber , JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse Gherkin, Dave, Cucumber, JBehave, Spec Flow, BeanSpec, Concordian TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides

Zrozumienie działania tych metod może pomóc programistom i innym osobom zaangażowanym w oprogramowanie dowiedzieć się, która strategia najlepiej spełnia swoje zadanie. W zależności od rodzaju projektu i wyników, jakie ma on osiągnąć, można zastosować odpowiednią metodę (lub nawet połączenie metod), aby spełnić określone wymagania w najbardziej efektywny sposób.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *