Test jednostkowy (unit test) to fragment kodu, który sprawdza inny fragment kodu - to najprostsza definicja jaką udało mi się znaleźć. Poza podstawowym celem jakim jest eliminacja błędów, dzięki używaniu testów jednostkowych zyskamy m.in
- redukcje kosztów
- bezproblemowy refactoring
- wyższą jakość kodu
Eliminacja błędu jest tym bardziej kosztowna im projekt jest dalej posunięty w czasie. Szczególnie eliminacja błędów na etapie wdrożenia zabiera dużo czasu i zasobów. Co gorsze wpływa negatywnie na nasz profesjonalizm w oczach klienta, a może nawet mieć swoje skutki w postaci kar umownych, czy nawet zerwania umowy.
Nie wyobrażam sobie przeprowadzania refactoringu bardziej złożonych struktur bez wcześniejszego napisania testów jednostkowych. Refactoryzacje można przedstawić w trzech krokach: test - code - refactor. Jeżeli nasz kod nie przechodzi testów, otrzymujemy czerwony pasek (np. w Simpletest). Następnie staramy się napisać poprawny kod i otrzymać zielony pasek. Dopiero teraz możemy zając się właściwą refactoryzacją, stosując odpowiednie przekształcenia czy wzorce projektowe. Co istotne, refaktoryzujemy także testy, a nie tylko kod aplikacji.
Same pisanie testów nie jest łatwe i także wymaga wprawy. Trzeba również tak projektować kod aplikacji aby był łatwo testowalny. Czas jaki poświęcimy na opanowanie tej sztuki na pewno pozytywnie wpłynie na nasze umiejętności programistyczne.
O poszczególnych aspektach testów jednostkowych opowiem w następnych postach. Na razie zapraszam do obejrzenia slajdów z mojej prezentacji na ten temat. (ps. Tak wiem, nie wysiliłem się stosując domyślny szablon PowerPointa, obiecuje że następnym razem bardziej przyłożę się do prezentacji).
Dodaj mój rss to swojego czytnika.


Thursday, September 4, 2008 8:53 am
Pierwszy…
Thursday, April 17, 2008 11:01 pm
teorii
slajd 42 - to tylko kwestia sposobu mierzenia
Friday, April 18, 2008 12:38 am
To jest właśnie minus zastosowania statements coverage…