Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasady pisania na forum Pro

Tematy na forum Pro mogą zakładać jedynie moderatorzy. W otwartych tematach może pisać każdy, kto ma coś fachowego do powiedzenia. Wszystkie posty nie wnoszące nic do tematu będą natychmiast usuwane, a ich autorzy dostaną ostrzeżenie.
Jeśli uważasz, że jakiś temat jest warty dyskusji na tym forum, zgłoś go w temacie Propozycje.

> Testowanie aplikacji
nospor
post
Post #1





Grupa: Moderatorzy
Postów: 36 559
Pomógł: 6315
Dołączył: 27.12.2004




Na wniosek ActivePlayera, zakładam temat o testowaniu aplikacji. O to treść wątku:

Chciałbym porozmawiać na temat testowania aplikacji php. Czy testujecie swoje aplikacje? Jeśli tak, to jakich narzędzi używacie? Czy w firmach w których pracujecie wdrożone jest continuous integration? Jak w praktyce wygląda praca nad testowaniem aplikacji? Czy używacie testów jednostkowych? Uważam że temat testowania aplikacji to coś ciekawego, o czym stosunkowo mało w polskim internecie - mysle ze moze to byc ciekawy temat do dyskusji.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
zordon
post
Post #2





Grupa: Zarejestrowani
Postów: 358
Pomógł: 78
Dołączył: 4.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Nikt chyba jeszcze nie wspomniał, że testy to rodzaj dokumentacji. Kiedy analizujesz nie swój bądź stary kod zamiast przeklikiwać przez podklasy często wystarczy obejrzenie testów, zwłaszcza funkcjonalnych, aby zrozumieć co dany kod robi, jak i dlaczego został stworzony.
Poza tym testy podczas pisania wyraźnie sygnalizują problem z designem kodu czy jego struktury. Główna zaleta TDD, chociaż osobiście rzadko używam tego podejścia - często wystarczy po prostu pisać testy na bieżąco. Jeśli nie jesteś w stanie przetestować jakiegoś fragmentu kodu bardzo często zaczynasz się zastanawiać, czy nie masz zbyt dużych zależności w kodzie, czy nie przydałoby się czegoś wstrzyknąć, wydzielić interface-u.
Testy to też nieodłączny atrybut refaktoringu. Ostatnio musiałem zrefaktoryzować spory fragment kodu odpowiedzialnego za budowanie zapytania SQL. To, że kod był dobrze pokryty testami oszczędziło mi naprawdę dużo stresu i pracy związanych z upewnianem się, że podczas dokonywania zmian nie popełniłem żadnych błędów, a query produkuje te same wyniki.
W firmie, której pracuję stosujemy ideę 'piramidy testów'. Liczba najprostszych(jednostkowych) testów powinna być jak największa i maleć w kolejnych warstwach, które testują większe, cięższe fragmenty aplikacji.
Tak więc nasza piramida wygląda tak:
- testy selenium
- testy 'akceptacyjne' - wykorzystanie prawdziwych webservice'ów, wewnętrznych żądań http, z podłożonym stanem bazy
- testy integracyjne - mockowanie webservice'ów, żądań http, ale wykorzystywanie podłożonego stanu bazy jeśli jest to konieczne
- testy jednostkowe, zarówno php jak i js. Generalna zasada to traktowanie pojedynczej klasy jako unit i mockowanie praktycznie całego 'świata zewnętrznego', oczywiście tam, gdzie ma to sens i jest to możliwe. W przypadku testów js czasami stosujemy bardziej funkcjonalne podejście, np gdy js polega na DOM-ie.

Ogólne podejście do testów w świecie php jest takie, że mało kogo na nie stać. Jedynie największe firmy i/lub bazujące długofalowo na jednym produkcie musi zapewnić odpowienią jakość i rozumie korzyści z tego płynące. Ubolewam nad tym, że stanowczo zbyt wiele projektów bazuje dziś na podejściu 'startupowym', gdzie liczy się tworzenie maksymalnej liczby ficzerów w najmniejszym możliwym czasie. Przy takim podejściu nie ma miejsca na testy, co później kończy się tak jak w przypadku firmy, w której byłem kiedyś na rozmowie: startup, który odpalił i istniał już chwilę na rynku w końcu dotarł do momentu, w którym zaczął się rozpadać, a szefostwo było w stanie zaproponować kosmiczne pieniądze komuś, kto ogarnie ten burdel tak żeby jego popularność (ruch) go nie zjadły.
Go to the top of the page
+Quote Post

Posty w temacie
- nospor   Testowanie aplikacji   26.04.2011, 08:44:53
- - wookieb   W świecie PHP mało kto używa CI (a nawet jeśli to ...   26.04.2011, 09:02:10
- - batman   Z testowaniem aplikacji PHP jest jeden problem. PH...   26.04.2011, 09:21:57
- - wookieb   Serwery CI możesz skonfigurować naprawdę na duży l...   26.04.2011, 09:26:58
- - batman   Konfiguracja konfiguracją, nie zapominaj jednak, ż...   26.04.2011, 10:02:42
- - wookieb   Nie wiem o jakiej formie builda mówisz ale można p...   26.04.2011, 10:05:29
- - pejott   Wreszcie jakiś nowy i ciekawy wątek w PRO, ale czy...   27.04.2011, 18:49:40
- - wookieb   A cóż takiego daje behat czego nie ma PHPUnit? (po...   27.04.2011, 19:06:02
- - pejott   Nie jestem ekspertem BDD, szczerze to dla mnie lek...   27.04.2011, 19:11:35
- - wookieb   Aha. Musiałbym sprawdzić czy wnosi coś nowego co j...   27.04.2011, 21:41:25
- - Zyx   Jeśli chodzi o zapotrzebowanie PHPUnit na pamięć, ...   30.04.2011, 07:36:25
- - .radex   Niestety nie testuję swoich aplikacji w takim stop...   30.04.2011, 20:51:20
|- - em1X   Cytat(.radex @ 30.04.2011, 21:51:20 )...   19.10.2013, 00:15:54
- - ActivePlayer   U mnie za każdym razem wygląda to podobnie:) Piękn...   1.06.2011, 09:22:28
- - cepa   ja uzywam CI, zarowno w domu jak i w pracy: - roz...   8.06.2011, 22:49:40
- - Ormin   Do swoich projektów w Symfony 1.4, używam wbudowan...   28.06.2011, 14:31:38
- - Hellz   Obecnie w konfiguracji: + jednostkowe - PHPUnit + ...   29.06.2011, 18:16:35
- - IceManSpy   Ostatnio trochę zainteresowałem się testami jednos...   27.08.2011, 16:02:15
|- - cepa   Cytat(IceManSpy @ 27.08.2011, 17:02:1...   27.10.2011, 08:15:46
- - LSM   Ostatnio pisałem klasę kompozytową dla "drzew...   25.09.2011, 22:37:05
- - cojack   Nie piszę testów jednostkowych jak mnie nikt do te...   4.11.2011, 16:07:32
|- - nasty   Cytat(cojack @ 4.11.2011, 17:07:32 ) ...   23.12.2011, 02:51:10
- - LSM   Ok, ale hermetyczność nie jest w stanie uchronić p...   4.12.2011, 15:36:32
- - zordon   Nikt chyba jeszcze nie wspomniał, że testy to rodz...   26.05.2014, 13:24:04
- - Matrix12   A czy BDD to nie rozszerzenie dla TDD ? Według mni...   3.08.2015, 20:42:52
- - Xelah   Bo testy jednostkowe a integracyjne czy funkcjonal...   4.08.2015, 08:13:50


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 - 06:58