Czas porozmawiać o ATDD! Chcesz dowiedzieć się więcej o ATDD lub odświeżyć swoją wiedzę na ten temat? Nie martw się! W tym artykule omówimy dokładnie, czym jest ATDD i jak wiąże się ono z BDD i TDD. Przedstawimy również najlepsze praktyki i omówimy całą metodologię krok po kroku!

W niniejszym przewodniku ATDD

Czym jest ATDD?

ATDD to praktyka ATDD. Podejście rozwojowe ATDD to framework, który obejmuje praktyki ATDD i BDD. ATDD oznacza rozwój oparty na testach akceptacyjnych.

ATDD to unikalne podejście do procesu tworzenia oprogramowania, które pomaga w opracowywaniu kodu automatyzacji poprzez najpierw napisanie scenariuszy testów akceptacyjnych, a następnie wdrożenie kodu we współpracy z uczestnikami nieposiadającymi wiedzy technicznej. ATDD łączy uczestników nieposiadających wiedzy technicznej, testerów i programistów w jednym środowisku, aby wspólnie pracowali nad tym samym produktem. Narzędzie ATDD nie jest przeznaczone do testowania, ale wspiera praktyki ATDD.

BDD kontra TDD

BDD opiera się na przykładach, w przeciwieństwie do ATDD, które opiera się na testach akceptacyjnych. TDD koncentruje się na testach jednostkowych, natomiast BDD koncentruje się zarówno na testach jednostkowych, jak i testach akceptacyjnych. ATDD wymaga, aby ekspert biznesowy współpracował z programistami przez cały proces rozwoju w celu wyjaśnienia i uzgodnienia, co powinno zostać zbudowane.

Jako programista możesz zadać sobie pytanie: co dokładnie oznaczają skróty ATTD i ATDD? ATTD oznacza programowanie oparte na testach akceptacyjnych. ATDD oznacza akceptację programowania opartego na testach i BDD jako jednej praktyki. ATDD jest podobne do TDD (programowania opartego na testach), ale wymaga dodatkowo napisania testów akceptacyjnych przed rozpoczęciem kodowania.

Agile kontra TDD

Agile obejmuje praktyki ATDD, TDD i BDD. ATTD jest podzbiorem ATDD. ATTD można uznać za wcześniejszą formę ATDD. W Agile podejście do rozwoju ATTD znane jest jako ATTD i ATBD (acceptance test-driven development) w XP (Extreme Programming). ATBD polega na współpracy ekspertów biznesowych z programistami w zakresie tego, co należy stworzyć.

W Scrumie testy akceptacyjne są tworzone przez grupę zwaną zespołem programistów, która współpracuje z ekspertem biznesowym reprezentującym użytkowników/klientów w celu omówienia, co należy zbudować dla konkretnej funkcji lub historii użytkownika. Testy akceptacyjne są tworzone w oparciu o ogólne wymagania/historie użytkowników, które reprezentują kryteria akceptacji. Testy akceptacyjne określają, w jaki sposób ustalić, czy kryteria akceptacji zostały spełnione. ATDD zostało zdefiniowane przez Dana Northa w 2003 roku. ATDD jest procesem bardzo podobnym do ATBD (Acceptance Test-Driven Development). ATBD różni się od ATDD tym, że ATBD określa również szczegóły implementacji, podczas gdy ATDD nie próbuje określać szczegółów implementacji – celem ATDD jest jedynie sprawdzenie, czy implementacja spełnia specyfikację wymagań.

Korzyści płynące z ATDD

ATDD ma wiele zalet. Należą do nich: większa satysfakcja klientów, lepsza jakość, niższe koszty, większa szybkość i wyższa wydajność. Zasady ATDD są zgodne z metodami kaskadowymi i zwinnymi. ATDD sprzyja również silniejszej współpracy między użytkownikami biznesowymi a programistami poprzez przełamywanie barier, eliminowanie niejasności i poprawę komunikacji w całym cyklu życia projektu.

ATDD wymaga od wszystkich zainteresowanych stron współpracy na każdym etapie procesu rozwoju. ATDD skraca czas potrzebny do stworzenia wysokiej jakości oprogramowania. ATDD zmniejsza również ilość odpadów poprzez ograniczenie konieczności ponownej pracy i naprawianie błędów na wcześniejszym etapie cyklu rozwoju. Prawidłowo wdrożone ATDD zwiększy Twoje szanse na sukces na każdym etapie cyklu życia projektu!

Zalety ATDD to zmniejszenie liczby błędów w kodzie produkcyjnym przy jednoczesnej oszczędności czasu i wysiłku związanego z ręcznym testowaniem. Zwiększa również wydajność programistów o 50%. Kluczem do sukcesu w przypadku ATDD jest rozpoczęcie od testów akceptacyjnych, a następnie przejście do testów integracyjnych przed przystąpieniem do testów jednostkowych.

 

Etapy związane z ATDD

Niezależnie od tego, czy stosuje się ATDD, testowanie akceptacyjne składa się z 5 etapów:

1) Pierwszym krokiem jest zrozumienie potrzeb biznesowych.

2) drugim krokiem jest napisanie historii użytkowników

3) Trzecim krokiem jest przygotowanie przypadków testowych.

4) Czwarty krok to analiza wad

5) Ostatnim krokiem jest wykonanie przypadków testowych w ramach struktury ATDD.

Co oznacza skrót ATDD?

Pełna forma ATDD to ATTD, które jest podzbiorem ATDD. ATTD to programowanie oparte na testach akceptacyjnych. ATDD to zarówno ATTD, jak i ATBD (programowanie oparte na testach akceptacyjnych). ATBD obejmuje praktyki ATTD, ATDD i BDD. ATBD różni się od ATDD tym, że ATBD określa również szczegóły implementacji, podczas gdy ATDD nie próbuje określać szczegółów implementacji – celem procesu ATDD jest jedynie sprawdzenie, czy implementacja spełnia wymagania specyfikacji.

Etapy testów akceptacyjnych:

1) zrozumienie potrzeb biznesowych;

2) pisanie historii użytkowników;

3) przygotowywanie przypadków testowych;

4) analizowanie wad, a na koniec

5) wykonywanie przypadków testowych zgodnie z wprowadzoną strukturą.

Wskazówki dotyczące prawidłowego stosowania ATDD

Wiedza na temat ATDD to jedno, ale wdrożenie tej struktury i procesu to zupełnie inna sprawa. Z doświadczenia wiem, że poniższe wskazówki są niezwykle pomocne:

  1. ATDD należy przeprowadzić na wczesnym etapie ATDD nie powinno zastępować testów jednostkowych ATDD jest techniką projektowania testów ATDD wymaga współpracy ATDD działa najlepiej, gdy dysponuje się dobrymi historiami użytkowników Wspólne sesje ATDD z programistami i testerami mogą być czasochłonne, ale ta współpraca pozwala uzyskać lepszy produkt końcowy ATDD działa najlepiej, gdy wymagania są jasne ATBD/ATDD wymaga dobrych przykładów, które pomagają w jasnym zrozumieniu wymagań.
  2. Kolejną doskonałą wskazówką dotyczącą przeprowadzania dobrych testów akceptacyjnych jest stosowanie narzędzi ATDD, takich jak Cucumber, JBehave lub Concordion. Frameworki ATDD zostały zaprojektowane specjalnie w celu organizowania scenariuszy testowych ATDD i zmniejszenia złożoności wdrażania ATDD.

Końcowe przemyślenia na temat ATDD

ATDD to technika projektowania testów, która ma wiele zalet, w tym zwiększenie satysfakcji klientów, lepszą jakość, obniżenie kosztów, zwiększenie szybkości i wydajności. ATDD wymaga współpracy wszystkich interesariuszy na każdym etapie procesu rozwoju, co zmniejsza straty poprzez ograniczenie konieczności ponownej pracy i naprawianie błędów na wcześniejszym etapie cyklu rozwoju.

ATDD zwiększa również produktywność programistów o 50%. ATTD lub ATBD są podzbiorami ATDD, przy czym ATTD oznacza programowanie oparte na testach akceptacyjnych, natomiast ATBD obejmuje zarówno praktyki testowania akceptacyjnego, jak i zasady BDD.

Kluczem do sukcesu w przypadku struktury ATDD jest wczesne rozpoczęcie pracy, nie zastępowanie testów jednostkowych, posiadanie dobrych historii użytkowników do definiowania wymagań, korzystanie z narzędzi takich jak Cucumber lub JBehave, jeśli są dostępne, oraz współpraca podczas sesji wyjaśniających wymagania przed