![]() |
![]() |
![]()
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: Zarejestrowani Postów: 487 Pomógł: 7 Dołączył: 7.01.2004 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Witam.
patrycjusz widze, że rozpocząłeś ciekawy temat a odpowiedzi jak na lekarstwo. Jakiś czas temu korzystałem jeszcze z biblioteki SimpleTest (dalej ST), którą opisywał chmolu w php Solutions. Przyznam, że nie wykorzystywałem wszystkich możliwości ST, nawet stubów. Były to proste testy z kilkoma assertami uruchamiane z poziomu eclipse dzięki wtyczce. Jakiś czas temu w pracy pojawił się temat php Unit 3. Przyznam, że podchodziłem do całości dość sceptycznie ponieważ pamiętam jeszcze wersję 2. i coś gdzie nie było nic specjalnego. Teraz php Unit to nowa jakość. Elastyczna architektura, przemyślane konstrukcje oparte na interfejsach nie wymuszające dziedziczenia, bardzo dobra (jeszcze rozwijana) dokumentacja. Bez problemu stworzyłem swojego ConsoleReportera (acz nie obyło się bez grzebania w kodzie). Niestety nie ma żadnego przełącznika by móc podać własne klasy (niby jest Do instalacji itp korzystam z Phinga, ale raczej z tego względu, że nie ma nic innego, co by było bardziej sprawne i przyjemniejsze w obsłudze (vide Maven 2). Niestety wsparcie dla PU3 w Phingu jest jeszcze niezbyt dopierszczone i wymaga poprawek. Phinga używam również dlatego, że bądź co bądź jest w nim też wsparcie dla phpdoca. Niestety brakuje jakiegoś wielkiego repozytorium wtyk tak jak dla wcześniej wspomnianego Mavena. Zatem moje odpowiedzi: 1. php Unit 3 2. brak, chociaż ST ma web-testera, acz nie korzystałem (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) 3. Phing |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 21:34 |