fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
2 minut

Słowo na niedzielę, o dobrych i złych testach


01.05.2011

Pisać testy jednostkowe do wszystkiego? Celować w 100% unit-test-code-coverage? Stosować TDD dla każdego rodzaju kodu? Na te pytania bardzo łatwo znaleźć w internecie odpowiedź i brzmi ona: TAK. Niestety nie jest to odpowiedź prawidłowa. Czasem lepiej testu nie napisać, niż go napisać. Czasem lepiej test skasować, niż go po raz dziesiąty poprawiać po zmianie w kodzie. Prawdziwą sztuką jest takie pisanie testów, aby czas spędzony na ich tworzeniu zwrócił się w dalszym życiu systemu. Sztukę tą szlifuje się przez lata praktyki i jest to zdecydowanie bardzo trudne zadanie. Ja cały czas jestem “w drodze”, tzn. pomimo ładnych kilku lat stosowania różnych podejść do testowania, różnych frameworków, przeczytaniu tysięcy stron książek, artykułów i blogów na ten temat nadal mam wrażenie, że więcej nie wiem niż wiem. No cóż… życie.

Bardzo ważnym krokiem w “testowej edukacji” jest uświadomienie sobie, że:

A suite of good unit tests is immensely valuable (…) However, a suite of bad unit tests is immensely painful

Nie każdy kod zasługuje na test. Nie każdy test zasługuje na utrzymywanie. Wiele testów jest po prostu do niczego.

Źródło: Steve Sanderson, “Writing Great Unit Tests: Best and Worst Practices” (btw, polecam lekturę wszystkich postów Steve’a z kategorii Testing, a na bloga zwróciłem uwagę dzięki twittowi by @rafek, dzięki!)

0 0 votes
Article Rating
8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
(Wojtek)szogun1987
13 years ago

Tłumacząc niedokładnie wypowiedź Grega Younga na 4Developers "Jeżeli masz 100% pokrycie kodu w testach to wstydź się, bo właśnie okradasz swojego szefa".

Dawid Kowalski
13 years ago

Amen,

a teraz zostaniesz rozerwany przez hordę zealotów za szerzenie herezji ;-)

Soltys
13 years ago

ja mam takie hasło "pisz testy jeżeli umiesz je pisać"

procent
13 years ago

@(Wojtek)szogun1987:
Bardo fajny cytat:)

procent
13 years ago

@Dawid Kowalski:
Heh, pisałem już na blogu różne rzeczy a chyba jeszcze nikt nie zmieszał mnie z błotem przy pomocy prawdziwie zealockiego komentarza próbującego nawrócić na właściwą ścieżkę:)

procent
13 years ago

@Soltys:
Hmm… z tym się raczej nie zgodzę. Nie da się nauczyć pisania dobrych testów bez napisania tysięcy złych. Więc unikanie praktyki "bo nie umiem" nie jest rozwiązaniem.

wojtek(szogun1987)
13 years ago

Grega niestety nie ma juz w Polsce ale jego idee promowane beda przez Slawka Sobotke min na Lubelskich dniach informatyki. Widze ze reszta imprezy bedzie dosyc dretwa ale dla tej jednej prelekcji warto odwiedzic ta impreze.

LaM
LaM
13 years ago

@Soltys
Nauka czyni mistrza. Zawaliłem sobie cała moją dyplomówke testami … już widzę , że duża część z nich to jedno wielkie utrapienie ;D

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również