Test Driven Development – najpierw testy!?!

Każdy program, każda jego funkcjonalność powinny być przetestowane po

d względem poprawnego działania. Sam proces testowania jest jednym z najżmudniejszych zadań w procesie produkcyjnym, zajmuje dużo czasu, a nie zawtestowaniesze daje zadowalające wyniki. Ponadto brak testów powoduje, że spada jakość oprogramowania. Jak temu przeciwdziałać? Pewną odpowiedzią jest wytwarzanie oprogramowania w oparciu o testowanie. Taki też by temat dwudniowych warsztatów (spotkania coach’ingowego) jakie prowadziłem 23-24 czerwca w Warszawie. Spotkania te były ukierunkowane na wytwarzanie oprogramowania w oparciu o testowanie, ale stanowiły także podsumowanie dwóch innych sesji, które dotyczyły odpowiednio: modelowania biznesowego (12.05.2008) i analizy i projektowania systemów informatycznych (17.06.2008).

Podejście oparte na testowaniu pochodzi wprost z Extreme Programming, o którym pisałem tutaj. Ciągłe testowanie to podstawowe działanie podczas pisania programu w metodzie XP. Programista jeszcze przed napisaniem danej procedury tworzy kod, który ma ją testować. W ten sposób wcześniej musi pomyśleć o wszystkich rzeczach, które mogą ’pójść źle’. Dzięki temu podczas pisania właściwego kodu procedury zabezpieczy ją przed tymi możliwościami. TDD nakazuje nam, aby test był niewielki, odnoszący się do niewielkiej części kodu. Napisany i zdany test jednostkowy pozwala przejść do fazy refactoringu. Co istotne, refaktoryzacji podlegać mogą także testy a cały cykl test-code-refactor powinien zająć około 10 minut. Według tego podejścia takie małe testy są bardzo ważne i radykalnie poprawiają jakość oprogramowania. Niestety nadal cięzko jest testować GUI oraz aplikacje wielowątkowe a także mimo bibliotekom Hibernate i Spring  kuleje testowanie baz danych.

W czasie tego szkolenia – spotkania coach’ ingowego sporo dykutowaliśmy o zaletach i wadach tego podejścia w kontekście podejścia ukierunkowanego na przypadki użycia. Co ciekawe jedno nie wyklucza drugiego. Do wad tej metody zaliczyliśmy:

  • ilość kodu -  niemalże dwukrotnie więcej,
  • zmiany w kodzie, które trzeba odzwierciedlić zmianami w testach co może wyglądać jak prowadzenie dwóch projektów w jednym,
  • dokumentacja – a raczej jej brak, chyba, że ktoś umie czytać kod testów

Natomiast do zalet:

  • redukcja czasu wyszukiwania błędów już napisanego kodu
  • krótszy czas implementacji
  • pokrycie kodu testami większe

Podsumowując szkolenie to uważam za bardzo ciekawe. Opinie tą także potwierdza ankieta, w której szkolenia i ja otrzymalismy same dobre i bardzo dobre noty.

Technorati Tagi: Agile,szkolenie,Test Driven Development,testowanie opragramowania
Podobne wpisy
UML – zastosowanie w biznesie

Po raz kolejny Centrum Promocji Informatyki zorganizowało seminarium związane z wykorzystaniem języka UML w biznesie. W tym przedsięwzięciu miałem swój więcej

Software Project Management GigaCon

Trzecia edycja konferencji Software Project Management GigaCon (25-26 września) to kolejna okazja na wymianę w szerszym gronie zagadnień związanych z więcej

XP + Prince2 = XPrince

Medotyka XPrince powstała z połaczenia metodyk Extreme Programming (XP) z Prince2 została opracowana w Poznaniu. Łączy w sobie najlepsze cechy więcej

Software Development GigaCon

Konferencje Software Development GigaCon  to największy przegląd dostępnych środowisk programistycznych. Dla występujących firm to miejsce kontaktu z potencjalnym klientem, okazja więcej

Reklama
MODESTO - licencje Enterprise Architect
Scroll to Top