Myśli, porady, tutoriale na temat środowiska Eclipse (i nie tylko)...

niedziela, 2 marca 2008

TDD czy CDD?

Od początku jak zaczynałem pisać tego bloga miałem założenie, że będzie tutaj 75% treści o Eclipsie, a 25% o sprawach ogólniejszych związanych z wytwarzaniem oprogramowania. Jak widać, na razie 99% postów dotyczy Eclipse'a, więc pora zacząć to zmieniać. Dzisiaj na InfoQ trafiłem na ciekawą dyskusję między Bobem Martinem i Jimem Coplienem na temat wad i zalet TDD (Test Driven Developement) oraz CDD (Contract Driven Developement). Czy naprawdę profesjonalistą jest tylko ten kto pisze testy zanim napisze kod produkcyjny?

2 komentarze:

Ris pisze...

Nie chodzi o to czy jest profesjonalistą :) Tylko oto, że potem jest mniej pracy przy zmianach.

Lukasz pisze...

Żeby to było takie proste, napisałeś testy to reszta już z górki :-P
Racja, że testy należy pisać. Przed, po, obojętne, byle były. Obrazują jak należy używać nasz kawałek kodu, jak wywoływać metody, jaki flow trzeba przejść, etc.
Test sprawdza nasz tok myślenia, czy to co założyliśmy w tym kawałku kodu, faktycznie robi to co myślimy.
I najważniejsze, każdy test należy rozpatrywać osobno, jakby nie było reszty aplikacji, tylko nasza klasa, metoda i test, który ją testuję. I tu trzeba tak zestawić środowisko testowe, żeby to było możliwe, albo w ogóle myśleć w taki sposób o aplikacji, kawałki kodu, które muszą ze sobą współpracować.

Wiem, że są to sprawy oczywiste, ale tak to jest, to co jest oczywiste, nie zawsze do nas dociera :D

A jak zmieni się specyfikacja, to i tak trzeba będzie testy poprawić ;-)