Jak dziś rozwija się i testuje aplikacje? TDD vs. BDD vs. DDD

0
5507
mężczyzna testujący aplikację
Dziś rozwój aplikacji to coś więcej niż pisanie kodu i testowanie funkcjonalności | fot.: materiał partnera

W 2020 roku rynek aplikacji mobilnych zanotował wzrost o 1/3, a użytkownicy pobrali z samego tylko Google Play Store ponad 108 mld aplikacji. Dziś w dobie intensywnego rozwoju aplikacji i systemów trudno wyobrazić sobie rezygnację z wielu usług i ułatwień, jakie nam oferują. Szybki przelew za pomocą aplikacji bankowej, zakupy czy rezerwacje online stały się częścią naszej codzienności i rzadko zastanawiamy się, co kryje się za sekretem ich działania oraz jakie podejście stosują całe zespoły programistyczne zaangażowane w ich budową i testowanie. Sprawdźmy, jak proces powstawania aplikacji wygląda „od kuchni” oraz jakie podejścia ułatwiają dostarczanie funkcjonalnych cyfrowych produktów na rynek.

Była sobie aplikacja… 

Dziś programowanie jest jedną z najbardziej pożądanych kompetencji i umiejętności przyszłości. Podstaw programowania uczą się już nawet dzieci w wieku przedszkolnym i mogłoby się wydawać, że nie ma nic trudnego w stworzeniu prostej aplikacji, a następnie zleceniu testów testerom oprogramowania, którzy wychwycą nieprawidłowości. Zanim my, użytkownicy, pobierzemy taką aplikację i zainstalujemy ją w telefonie czy na komputerze, w jej rozwój angażują się programiści, testerzy oprogramowania, menedżerowie projektu, a nierzadko też całe zespoły produktowe. Nie będziemy analizować całego procesu wytwarzania oprogramowania, raczej przyjrzymy się różnym podejściom, które sprawiają, że pierwsza napisana linijka kodu ewoluuje do postaci w pełni funkcjonalnego produktu cyfrowego na naszym smartfonie czy tablecie.  

Najpierw sprawdźmy, czy to działa – czyli Test-Driven Development 

Wbrew temu, co napisaliśmy powyżej, aplikacja bardzo rzadko ma swój początek w pierwszej linijce kodu napisanej przez programistę. Czasem tworzenie aplikacji zaczyna się od jej… przetestowania. Jak to możliwe? Programista otrzymuje zadanie z zakładaną specyfikacją, więc wie, jak funkcjonalność ma działać. Zaczyna więc od napisania testów sprawdzających działanie tej funkcjonalności, a następnie powtarza cykl testowania do momentu uzyskania zadowalających wyników. Podejście Test-Driven Development sprawdza się w przypadku dużych projektów i pozwala zbudować lepiej działającą aplikację oraz zminimalizować ryzyko występowania błędów.  

Najpierw sprawdźmy, jak to działa – Behaviour-Driven Development 

Podejście BDD (Behaviour-Driven Development) jest często porównywane z TDD. W przypadku tego podejścia także zaczyna się pracę od przygotowania testów dla nieistniejącej jeszcze funkcjonalności oraz powtarza wspomniany wyżej cykl testowania. Różnicą jest to, że w trakcie pracy zespół programistów wykorzystuje dokumentację i testy napisane w języku naturalnym, czyli zbliżonym do tego, jakim porozumiewamy się na co dzień. Takie podejście ułatwia pracę nad aplikacją zarówno zamawiającemu, jak i zespołowi osób technicznych. Nam jako użytkownikom aplikacji i systemów takie podejście do tworzenia i testowania pozwala otrzymać lepiej funkcjonującą aplikację.  

Skupmy się na wartości, czyli Domain-Driven Design  

W podejściu DDD (Domain-Driven Design) zespół pracujący nad systemem czy aplikacją skupia się na tym, aby dostarczyć i zaimplementować zakładaną wartość biznesową. Być może brzmi to skomplikowanie, ale założenie jest proste: programista czy też programiści muszą mieć świadomość, jaka jest największa wartość tworzonego oprogramowania, a źródłem wiedzy w tym zakresie jest ekspert domenowy (Domain Expert). Jedną z zalet podejścia DDD jest pewność rezultatów oraz lepsze zrozumienie pomiędzy wszystkimi osobami zaangażowanymi w proces powstawania aplikacji, (czyli np. osobami decyzyjnymi w firmie zlecającej, działami, które będą korzystać ze wsparcia programistów) a zespołami dostarczającymi oprogramowanie.  

Podsumowanie 

Dziś rozwój aplikacji to coś więcej niż pisanie kodu i testowanie funkcjonalności. Być może ta wiedza nie przydaje się nam, gdy korzystamy z aplikacji, robiąc zakupy czy przelewy w internecie. Jednak zyskujemy świadomość, że tak chętnie pobierane przez nas aplikacje i całe systemy są budowane z coraz większą starannością i dbałością o szczegóły. Ułatwiają to odpowiednio dobrane podejścia stosowane przez eksperckie zespoły produktowe.  

Materiał partnera