TDD (Test-driven development)

Pišete li testove? Ako da, gdje ste ih učili? Koliko mislite da su bitni? Koje testing frameworke koristite?

Ne govorim nužno samo o PHP-u.

Sumanjam da ces ovdje dobit takav odgovor, buduci da je to pre-strucna tematika za vecinu ovih klinaca koji se tu nalaze :smile:

Ono sto ti ja mogu reci iz iskustva … testove ne pisem, no vece projekte i portale provjeravam po segmentima.

  1. Optimizacija SQL-a …
  2. Ranjivosti samog code-a
  3. Brzina ucitavanja i load servera na X konstantnih korisnika

Ima jedan fini webic, zove se load impact gdje se simulra da ti N korisnika u realnom vremenu rošta po site-u i rade tipa 100 requestova u sekundi. Prije nego to pokrenes fino napravis logging da ti logira slow query-e … i monitoras sve SQL procese recimo … pa vidis gdje ti je usko grlo … sto bi trebalo popraviti i sl.

Mogli bi se tu dosta pisati … no trenutno sam kratak s vremenom :slight_smile: Ako te nesto specificno zanima … pitaj.

1 Like

Ma nemam nešto posebno za pitati nego me zanimalo koliko webmajstora testira svoj kod, točnije kako ga testira, pa da možebitno razmjenimo malo iskustva.

Ali evo zanimljivo za load impact, morati ću provjeriti o čemu je riječ.
Kako misliš “testiraš po segmentima”? Jel bi htio malo detaljnije? :]

moze, kad dodjem na komp. ne tipka mi se tolko po ipadu :slight_smile:

Pa testiram po segmentima, dakle prvo bazu (provjeravam brzinu izvođenja query-a … dali se moze bolje nesto povezati, napraviti drugacije … i opcenito kvalitetu baze). To je nebitno kod 1 ili 20 ili 50 istovremenih korisnika … no ako je projekt velik … i kad se radi o tisucama otvaranja dnevno onda je taj segment baze jako bitan u pogledu brzine otvaranja stranice, manjog loada servera a i manje potrosnje rama.

Drugi segment je ranjivost same aplikacije, dakle pretezito SQL injection i nacin na koji je handlana autorizacija, prijenos podataka i sl. Pogledaj ovaj tool http://bit.ly/1xPxUbg - ja koristim nesto slicno :slight_smile:

Treci segment recimo to tako hardwerski … ako se radi recimo projekt tipa “Njuskalo” na kojem je ogroman broj ljudi u svakom trenutku … onda naravno treba dobra masina za sve to handlati. Vece projekte stavljam na odvojene VPS servere gdje imaju sve dedicated. Najblaze receno u ovom segmentu se određuje koliko jaka mora biti masina da bi hendlala neki predviđeni broj korisnika overall i u nekom trenutku. Naravno ovo se radi samo nakon sto su prva 2 segmenta dobro odrađena, buduci da ako ne code i baza neoptimizirana … nece ti pomoci ni 32x xeon cpu-a ni 64 GB rama.

Isto tako … za vece web projekte preporucam svakako ngnix web server buduci da je ukupan load i footprint jedno 60% manji od apache-a. A za bazu … treba posebno podesiti konfiguraciju allowed resursa … buduci da nije ista konfiguracija baze za hosting shared server ili za vps server koji ima 1 veliki projekt/portal.

Nadam se da sam pomogao :slight_smile:

Testira li neko Javascript ? Ja sada na poslu se moram baciti na testiranje VueJS komponenata koje sam napisao, a nisam nikad to radio :slight_smile: Vidim preporuka je Karma, i da se lako konfigurisati sa Webpackom.

@in4hr (iako je tema prestara) ja mislim da si ti promasio cijelu poantu, to sto ti radis nije TDD, ovdje se misli na automatizovane testove.

Trebati ces neki framework za testiranje kao Jasmine, Qunit… Karma je runner koji moze raditi sa mnogim frameworcima. Koristim Jasmine.

Da upravu si, na to sam mislio.I dokumentaciji od VueJS se navodi Jasmine :slight_smile:

Za javascript mocha i chai