Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Testowanie oprogramowania, automatyzacja instalacji, Luźna dyskusja, narzędzia, ciekawe linki
patrycjusz
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
splatch
post
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
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 5.10.2025 - 21:34