Test-Driven Development

Odkryj niezwykłą metodykę programowania, która na zawsze odmieni twoją pracę

Zalety Test-Driven Development

Głównym założeniem Test-Driven Development jest tworzenie testów jednostkowych przed napisaniem kodu aplikacji. Poniżej przedstawiamy najważniejsze zalety stosowania tej techniki.

Zalety Test-Driven Development

Poznaj zalety TDD klikając na etykiety aby je odsłonić

Mniej defektów w aplikacji oraz zwiększona zarządzalność kodu w stosunku do czasu. Wykrywanie kodu, który nie jest zgodny z dobrymi praktykami programowania obiektowego.
Brak niejednoznaczności w odwzorowaniu wymagań. Czas na przemyślenie przypadków brzegowych, które mogą powodować krytyczne błędy w programie.
Skrócony ogólny czas poświęcony na rozwój aplikacji w porównaniu do użycia innych technik. Znacznie mniej ręcznego debugowania oraz manualnych testów end-to-end wykonywanych przez programistę.
Warstwa jednostkowych testów i zautomatyzowana regresja. Bezpieczna refaktoryzacja kodu.<
Szybka informacja zwrotna na temat złego designu kodu źródłowego oraz zwiększona skalowalność aplikacji.
Natychmiastowa informacja zwrotna na temat potencjalnie nowego błędu w kodzie. Testy jednostkowe stanowią zawsze aktualną dokumentację.

Jednakże...

Nie wszyscy menadżerowie dają się przekonać. Argumentem przeciwko Test-Driven Development jest dłuższy czas poświęcony na pisanie kodu. Według przeprowadzonych badań, całkowity czas trwania procesu (wliczając wyszukanie i naprawę błędów, nie tylko pisanie kodu) jest jednak krótszy w TDD niż w standardowym podejściu do programowania.

Skoro technika przynosi mnóstwo korzyści, to dlaczego nie jest stosowana w każdym projekcie programistycznym?

Wyzwania Test-Driven Development

Podstawowym wyzwaniem w stosowaniu Test-Driven Development jest brak odpowiednich umiejętności programistów. Wdrożenie TDD jest uzasadnione, gdy będzie stosowane przez wszystkie osoby w danym zespole czy firmie

W takim ekosystemie Test-Driven Development pozwala na ciągłe budowanie i rozwijanie aplikacji z zachowaną najwyższą jakością kodu, a w konsekwencji minimalizacją kosztów.

Co mówią specjaliści?

Mentorzy i guru programowania, w tym Michael Feathers, Nat Pryce, Ron Jeffries, Kent Beck, nie wyobrażają sobie podejścia do programowania innego niż TDD. Według przypuszczeń Allana Kelly’ego, osoby nie umiejące pisać przy użyciu techniki Test-Driven Development nie będą zatrudniane na stanowisku programisty po 2022 roku. Nawet jeśli to zbyt daleko idąca prognoza TDD jest metodyką, która w znacznym stopniu kształtuje branżę programistyczną już dziś.

Źródła: Boby George; Laurie Williams. An Initial Investigation of Test Driven Development in Industry. ACM, 2003. DOI 10.1145/952532.952753., James W. Newkirk; Alexei A. Vorontsov. Test-Driven Development in Microsoft .NET. Microsoft Press, 2004. ISBN 0735619484., Osherove, Roy. Art of Unit Testing: With examples in C#; Second Edition. Manning Publications, 2014. ISBN 9781617290893, Yahya Rafique, Vojislav B. Mišić. The Effects of Test-Driven Development on External Quality and Productivity: A Meta-Analysis.

Praktyczne stosowanie TDD

Test-Driven Development (mimo swojej nazwy) nie jest techniką służącą do testowania, nie koncentruje się także na pisaniu testów do istniejącego kodu czy na powielaniu pracy testera.

Cykl  Red - Green - Refactor 

Rozpoczynając przygodę z wytwarzaniem oprogramowania zgodnie z metodyką Test-Driven Development konieczna jest zmiana sposobu myślenia o całym procesie wytwarzania oprogramowania.

Zgodnie z założeniami Test-Driven Development, nasza praca opiera się o cykl Red-Green-Refactor, znany potocznie jako "mantra TDD". W cyklu tym najpierw tworzymy test, następnie implementujemy kod, który spełnia napisany test, a następnie dokonujemy refaktoryzacji czyli logicznego usprawnienia napisanego kodu.

W praktyce mantrę TDD powtarza się aż do ukończenia fazy implementacji. Tej samej metody, wzbogaconej o inne formy testowania używamy także podczas konserwacji produktu.

Dowiedz się więcej

Zapraszamy do odwiedzenia naszego projektu globalnego o nazwie Agile Quality Mentoring Board.

Za pośrednictwem AQMB tworzymy społeczność programistów, zajmującą się rozwojem Test-Driven Development. Misją AQMB jest przede wszystkim edukacja programistów oraz badania i naukowa analiza innowacyjności TDD.

Nasze szkolenia TDD

Zapraszamy do zapoznania się z naszą aktualną ofertą szkoleń. Specjalizujemy się przede wszystkim w szkoleniach z metodyki Test-Driven Development. Nie uznajemy kompromisu wobec jakości.

Zadbaj o ewolucję kariery i rozwój swojej wiedzy i skorzystaj z doświadczenia naszych trenerów. 

Kurs TDD w Sieci

Przedstawiamy autorski kurs TDD w języku polskim dostępny dla każdego! Kurs jest ciągle rozwijany. Autorem jest Dariusz Woźniak.

Darek jest filarem trenerskim Expertiv.  Jeżeli chciałbyś uczestniczyć w szkoleniu z jego udziałem zapoznaj się z naszą ofertą szkoleń i złóż zamówienie już dziś.

Zapraszamy także do śledzenia tweetów Darka!