Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Unit Testing i Test Driven Development PHP aplikacija

[es] :: PHP :: Unit Testing i Test Driven Development PHP aplikacija

[ Pregleda: 2412 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
..106.109.adsl.dyn.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Unit Testing i Test Driven Development PHP aplikacija15.03.2011. u 21:05 - pre 158 meseci
Ideja je opisati prakticnu upotrebu unit test i TDD nacina rada. Recimo:
1. Koju biblioteku koristite za unit testing, kao i koju aplikacija (recimo Zend studio i phpunit ili neku browser-operative biblioteku)
2. zasto bas taj princip u odnosu na neke druge oprobane ili ne oprobane metode
3. koliko detaljno i sta se najcesce testira
4. koliko utice na svakodnevni rad, tj da li se sa TDD metodom rada menja drasticno nacin pisanja od nacina rada kada se ne prave testovi
5. koje su prednosti, mane i problemi u radi i sta je najbolja praksa po vama.
6. prakticna iskustva zasto da ili mozda ne neki pristup
----
pa ovde komentar na neciji prethodni post ako je komentar konstruktivan a ne "meri duzinu".



Eto ja prvi:
1. Ne koristim nista
2. nisam bio naucen na vreme a onda bude nezgodno na gotov kod da se napisu testovi, a kod je vec xx puta debagovan uzivo i veoma je bitno da bude funkcionalan svaki dan.

5. prednosti su kobajagi "brzi" instant rezultati, a mane su testiranje nakon refaktoringa (zbog ovoga je jelte i izmisljen unit testing).

E sad, hteo bi da uvedem kao praksu pisanje testova i barem blagi tdd proces za buduce projekte, pa me zanimaju misljenja ljudi, odakle i kako poceti, na sta obratiti paznju, generalno iskustva sa ovim nacinima rada.



Mislim da je korisno i misljenje zasto ne koristiti unittestove, ali bez daljeg ubedjivanja na tu temu. Znaci iz iskustva "ne koristim zbog toga i toga, i necu da me neko ubedjuje, sam cu shvatiti da li gresim ili ne iz tudjih komentara i iskustava na temu". Voleo bi da se izbegne medjusobno ubedjivanje i prepucavanje, ko ima misljenje neka ga iznese, ko ima komentar ne neciji post neka ga iznese, ali nemojte da ubedjujete nekog u nesto jer mislim da upravo odatle teme odu u svima nepotrebni off.
Znaci nema potrebe da mene ili bilo koga neko direktno ubedjuje da treba napisati sav kod iz pocetka sa testovima i kako je to ili nije glupost i sl, imam svoje misljenje i stav koji su za neku drugu temu, drzimo se tematikje.

Unapred zahvalan svima!
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.dynamic.sbb.rs.



+19 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija15.03.2011. u 23:14 - pre 158 meseci
1. SimpleTest

2. Kad sam birao koji test-fw da koristim našao sam da mi najviše odgovara bez da moram da instaliram PEAR, što je uslov za PhpUnit.

3. Testiram manje celine (filtere, validatore, DB metode, ...) dok za krupnije celine nisam našao elegantan način testiranja (autentifikacija korisnika naprimer).

4. Usporilo je razvoj komponenti aplikacije jer moram kucati bar 2-3 puta više koda.

5. Prednost je "instant" provera aplikacije nakon refaktoringa, ili postavke aplikacije u drugačiji "enviroment". Mana je što ti testovi ne umeju sami da se napišu.

6. Našao sam veoma korisne testove koje Drupal7 nosi sa sobom, pa sam pokupio dosta ideja odatle umesto da izmišljam toplu vodu i napravim previd.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

krksi
PHP Developer
Beograd

Član broj: 281484
Poruke: 22
95.180.40.*



Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija16.03.2011. u 05:44 - pre 158 meseci
Pre svega svaka cast za temu !

Pa sto se mene tice, ja bas kao i @dakipro u vreme kad sam pocinjao sa programiranjem, a i kasnije, nisam bio naucen, kako on kaze, da koristim testove. Tako je ostalo i do dan danas. Da li je to lose ili ne, ne znam ni sam. Vodio sam razgovore na tu temu i sa dosta dobrim i iskusnim programerima, i mogu da kazem da se i njihova misljenja razlikuju. Za neke je to neophodno, za neke gubljenje vremena, a za neke je sasvim ok, ali ne i presudno. Tako da sam i ja u zabludi.

Sto se mog iskustva tice, ja sam ranije uglavnom imao problema sa ogromnim klasama i metodama, pa samim tim su i logicke greske bile cesce. To je jedan od razloga zasto sam krenuo da programiram tako da pisem sto krace metode i klase, tako da na prvi pogled odmah znam sta rade i gde je otprilike greska, ako je uopste ima. Ovakav nacin rada mi je sasvim ok i ne pravi mi previse problema.

Znam da u Javi postoje testovi koji mere performanse. Recimo koliko brzo je nesto uradjeno, koliko je memorije potrosilo itd. Po mom misljenju, to su jako korisni testovi i njih treba pisati. E sad, da li tako nesto postoji i u PHP-u, to ne znam. Zato ne bi bilo lose da ljudi koji ih koriste iznesu svoje vidjenje i svoje stavove.


Citat:

4. Usporilo je razvoj komponenti aplikacije jer moram kucati bar 2-3 puta više koda.


Ovo je deo koji me najvise brine sto se tice pisanja testova....


 
Odgovor na temu

Nikola Poša
Backend (PHP) developer
Beograd

Član broj: 173839
Poruke: 1616
*.adsl-1.sezampro.rs.



+33 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija16.03.2011. u 21:18 - pre 158 meseci
PHPUnit je što kažu de facto standard za pisanje unit testova u PHP-u. Ja sam se upustio u pisanje testova tek pre nešto manje od godinu dana. Pre toga sam imao stav kakav po tom pitanju ima većina programera, nešto tipa: "ma šta će meni to, to je gubljenje vremena", a i prosto mrzelo me je da učim nešto novo.

A onda sam ipak odlučio da se oprobam u toj sferi, tako što sam rešio da sve moje custom Zend Framework klase pokrijem unit testovima... I tako je sve počelo... Sada za sve što uradim pišem testove. I da, baš tako, prvo uradim, pa pišem testove, ili bar napravim osnovnu zamisao te neke klase, pa onda počnem da pišem odgovarajući unit test. Šta ću, nisam još uvek u potpunosti prihvatio taj proces koji se zove Test-driven development (TDD).

O benefitima pisanja testova ne treba trošiti reči... Jedina stvar koju bih ja dodao na sve to jeste što, po mom mišljenju, pisanje testova na neki način primorava programera da ta klasa za koju piše test bude stvarno kvalitetno napisana.

Nakon što sam ušao u taj svet unit testing-a, nekako drugačije gledam na kôd, izmenio sam pristup koji imam pri kodiranju, način rada, naravno, sve to u pozitivnom smislu. Počeo sam da kategorizujem klase na testibilne i one koje to nisu. Pri pisanju svake klase svo vreme razmišljam i težim tome da ona bude testabilna, što naravno za rezultat ima znatno kvalitetniji i čistiji kôd.
 
Odgovor na temu

vector_xyz
Siemens GmbH
Midwest USA

Član broj: 283487
Poruke: 12
*.hsd1.mi.comcast.net.



+2 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija17.04.2011. u 16:55 - pre 157 meseci
PHPUnit + Selenium = Fantastic Team
Professional Software Engineer, Web Developer. Embedded Systems, PSD, XHTML, CSS, jQuery, CodeIgniter, Qt, C++, C...
 
Odgovor na temu

vector_xyz
Siemens GmbH
Midwest USA

Član broj: 283487
Poruke: 12
*.hsd1.mi.comcast.net.



+2 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija17.04.2011. u 17:56 - pre 157 meseci
Excel moj dobri stari prijatelj u kojem pratim sve :D


Professional Software Engineer, Web Developer. Embedded Systems, PSD, XHTML, CSS, jQuery, CodeIgniter, Qt, C++, C...
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.dynamic.sbb.rs.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija18.04.2011. u 15:58 - pre 157 meseci
vector_xyz, jel se ovaj XLS automatski generise, ili ga ti rucno za svaki tab i za sva polja setujes? Kako ti ide workflow za ovakav report recimo? Pustis Unit test, pa onda selenium, pa onda ides rucno i stavku po stavku proveravas, pa sve to kroz browsere? sumnjam da ide nesto rucno, al da pitam...
jel imas neki centralizovan suite koji popunjava lokacije u tabelama i pokrece redom sve testove?
Ovako deluje prilicno ozbiljno i jako, a i pregledno, al kako prakticno izgleda raditi ovakve testove...

Ja sam se poigrao sa seleniumom, i itekako mi ima primenu pogotovo na vec gotovim projektima koji nemaju unit testove, ili gde bi dodavanje unit testova bilo skoro pa nemoguce ili neisplativo zbog velikog refaktoringa. Tu mi je selenium prava stvar za to, e sad, prakticno tek treba da se pokaze kako radi tacno... Takodje mi pada na pamet da se koristi kao makro, ono, neko vidi negde bug ili problem, snimi test i posalje ga i onda programer moze tacno da locira problem, korak po korak.

Jel imas neke primere gotovog selenium testa koji mozda mozes da okacis, cisto da vidimo koji pristup ti koristis?
 
Odgovor na temu

mlbrnda
Mladen Brndušić
Požarevac

Član broj: 114221
Poruke: 56
..9-207.static.isp.telekom.rs.



+7 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija17.05.2012. u 08:25 - pre 144 meseci
Pozzz svima,
rešio sam da malo oživim ovu temu, kako bi kolege još što šta odgovorili oko testiranja... Veoma sam zainteresovan za ovu temu, pogotovu iz razloga što je kod mene situacija sada potpuno ista kao kod dakipro kada je pokrenuo temu.

@dakipro Kakvo ti je sada mišljenje o testiranju i koje metode testiranja koristiš? Možeš li dati neku preporuku za početnike?
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Moderator
Član broj: 31848
Poruke: 1792
*.221.202.84.customer.cdi.no.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Unit Testing i Test Driven Development PHP aplikacija17.05.2012. u 09:37 - pre 144 meseci
Koristio sam na pocetku aktuelnog projekta phpunit, framework sam ovde pisao od 0 pa nije ni bilo nicega za testirati u browseru. Pravio sam lite verziju active-recorda i tu mi je kazi ga koristio phpunit jer sam mogao da testiram sve standardne metode. Onda sam morao da osposobim framework da bi ostale kolege mogle da ga koriste pa se tu preslo na standardno ctrl+F5 testiranje kroz browser. I od tada nista ne radim sa phpunitom, verujemo da je framework ispravan as-is, malo naidjes na otpor uprave dal je to dodatno vreme opravdano, malo te mrzi, malo mrzi kolege, nadjes dosta izgovora, i onda ostane lepo secanje na unit testove...
A trenutni framework je takav da vecina "unita" koristi 85% core komponenti, deo frameworka koji je prilicno testiran na ovaj ili onaj nacin. Ostatak pokrije F5 testing, a ideja je da framework ostane kao legacy ovom projektu, a za nove projekte da se neke stvari ponovo kroje od nule, kako bi framework bio bolje prilagodjen tom sledecem projektu, posto su projketi dugo vreme aktivni.
Sto kazu: Probali smo, videli smo da znamo, idemo dalje :)
 
Odgovor na temu

[es] :: PHP :: Unit Testing i Test Driven Development PHP aplikacija

[ Pregleda: 2412 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.