Zastanawiasz się czasem po co piszesz testy? Poza tym, że tak trzeba, albo tak każą… Piszesz testy, żeby sprawdzić, czy kod działa, czy żeby udowodnić, że działa? Czy testy opierają się o wymagania biznesowe, czy o implementację? Poza dopisywaniem testów do odziedziczonego kodu, powinniśmy się raczej kierować wymaganiami, niż naszą interpretacją, nie uważasz?

I tutaj przychodzi nam z pomocą TDD. Nawet jeśli nie korzystasz na codzień z tej techniki, to ona jednak trochę układa w głowie. Pisząc testy przed kodem musisz opierać się o scenariusz biznesowy, bo implementacja jeszcze nie istnieje. W ten sposób lepiej projektujesz kod i skupiasz się na tym, co chcesz zrobić, a nie jak. Myślisz trochę bardziej jak weryfikator, a mniej jak twórca.

 

Trening czyni mistrza

Warsztaty TDD to jedne z moich ulubionych. Zarówno jako uczestnik, jak i prowadząca świetnie się na nich bawię. Powstaje dużo kodu, każdy ma trochę inne rozwiązanie, ale wszyscy mają podobne wyzwania. Podczas zabawy zdobywamy wiele umiejętności potrzebnych w codziennej pracy.

Nie tylko uczymy się pisać bardziej „testowalny” kod (skoro nie ma kodu bez testów, to ciężko inaczej). Uczymy się też lepiej projektować kod, bo mamy już w głowie cały zarys logiki biznesowej. No i wreszcie pracujemy z wymaganiami. Nie wszyscy programiści robią to na co dzień. Zazwyczaj dostajemy wymagania w formie rozbitych małych zadań. Tutaj mamy słowną narrację, z której musimy te wymagania wyłuskać

Jeśli chwilowo nie masz czasu ani możliwości na uczestniczenie w warsztatach, to zawsze możesz poćwiczyć w swoim zespole. Zorganizowanie Coding Dojo wymaga tylko trochę czasu i zaangażowania. Czas można wyłuskać ograniczając spotkania, piłkarzyki, albo przerwę na lunch. Zaangażowanie możesz wzbudzić we współpracownikach swoim entuzjazmem. Wejdź na stronę codingdojo.org i poczytaj o co chodzi. Potem wybierz kata, czyli problem do rozwiązania. Możesz obejrzeć jak pokazywałam sam proces TDD na moim kanale na YouTubie.

 

Dlaczego warto?

Pisanie testów pod wymagania biznesowe da Ci dużą przewagę na rynku pracy (niewielu programistów to robi) i poprawi komunikację. Zarówno testerzy jak i osoby bliżej biznesu mówią właśnie tym językiem, więc zdecydowanie łatwiej będzie się z nimi dogadać.

Tylko nie zrażaj się na początku. To niełatwa sztuka i to normalne, że na początku będzie pod górkę. Ale stawką jest lepszej jakości kod i Twoje umiejętności, więc chyba warto?