![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 263 Pomógł: 0 Dołączył: 13.07.2003 Skąd: wawa Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Od dłuższego czasu drąże temat Test Driven Development, powoli w oparciu o nowe narzędzia wdrażam z ciekawymi konsekwencjami metodologie opartą o testy. Na bazie właśnie realizowanego projektu postanowiłem podzielić się swoimi spostrzeżeniami: 1. Dobra architektura aplikacji umożliwiająca testy jednostkowe to podstawa (dobry podział na model/akcje i BO). 2. Faktyczne pisanie testów zanim powstanie choćby jeden mm kodu - tzn. po stworzeniu dokumentacji funkcjonalnej (specyfikacji wymagań) piszemy pierwsze testy jednostkowe. 3. Zauroczyłem się w metodologii continues integration - praca tylko i wyłącznie w oparciu o system wersjonowania (cvs/svn) do tego pełna automatyzacja budowy aplikacji (ant, ew. phing) + testy - i to w całości codziennie, najlepiej co kilka minut. 4. Oszczędność czasu w późniejszyme etapie - dopóki nie napisze się pierwszej poważnej aplikacji w oparciu o TDD nie sposób zauważyć jej zalety, a są one nie wiarygodne, a szczególnie oszczędność czasu poświęcana na testowanie aplikacji przy wprowadzaniu zmian itp. Dobra a teraz krótko, jak działamy: - dla każdej metody piszemy test - im test dokładniejszy i ściślejszy tym lepiej, - wersjonujemy aplikację, - automatyzujemy proces instalacji aplikacji (ant, ew. phing), - codzienne buildy, - wykorzystujemy narzędzia wspierające proces testowania i automatycznego budowania aplikacji. Z czego ja korzystam? - continuum - automatyzacja całego procesu, raporty etc, - cvs - wersjonowanie, - PHPUnit 2, selenium - testy, Dodatkowo ciekawe linki wprowadzające: TDD Ciekawe podejście phpunit w wersji 3 w drodze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pytania, moje (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) 1. Z jakich narzędzi wy korzystacie wspierających waszą pracę na etapie testów, wdrożenia? 2. Znacie jakieś dobre narzędzie testujące funkcjonalnie GUI, symulujące użytkownika? Tzn, wypełnia sobie formularz, sprawdza poprawnosc zwracanych danych, mierzy czas generowania kolejnego ekranu itd - oczywiście wszystko ja definiuje w postaci testu (dane ktore ma wrzucic do forma, pola w formie itp). 3. Automatyzacja instalacji, w php znalazłem tylko phinga, póki co korzystam z Anta (tak jak w jednym z linków jest wspomniane - dobrze integruje się z pewnymi narzędziami),ale interesuje mnie pełna automatyzacja tego procesu - defacto pełne paczki (coś na kształt plików .war) samoinstalujące się (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) Chętnie poczytam wasze spostrzeżenia. Pozdrawiam, Patrycjusz Szydło |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Niestety - ale w moim zespole preferujemy inny tryb pracy z repozytorium i z kodem jako takim.
Polega on na tym, że jest wyraźny podział na zadania / bloki kodu które wykonują poszczególne osoby. To one tworzą sobie również testy na potrzeby swojego kodu. Dopiero gdy kod spełnia określone wymagania, jest wrzucany do repozytorium. Oczywiście - od tej zasady jest wiele wyjątków, nie zmienia to jednak faktu, że najczęstrzym sposobem uruchamiania testów polega na sprawdzeniu jednej klasy / biblioteki, a nie calości systemu. W takim przypadku wyraźna wizualizacja tego, co sie dzieje, wraz z np. kolorowaniem komunikatów (tak jak w SimpleTest) jest bardzo przydatna, i pozytywnie wpływa na postęp prac i morale (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) (widzisz, ile już ci się udało zrobić) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 02:37 |