My two cents
Kad sam se sreo prvi puta sa pojmom testiranja, svidila mi se ideja i odlučio se poigrati sa time.
Napravio sam vlastiti engine za testiranje (ne vjerujem da baš po pravilima struke) …ali ono, radilo je.
Onda sam jedno mjesec dana pisao testove da istestiram čitavu funkcionalnost tadašnjeg servisa kojeg sam razvijao i bilo je poprilično cool kliknuti button i gledati pred očima kako se testovi vrte. Testiranje je trajalo čak jedno 15-ak sekudni i nakon toga bi dobio čitavu analizu kako su koji prošli, ako je negdje nešto puklo…itd.
Tih 15 sekundi računala je bilo zamjena za minimalno sat vremena posla ručnog testiranja.
Ono, sve…od kreiranja novog usera, verifikacije registracije…do akcija sa tim userom …pa do u konačnici brisanja tog usera iz baze …bez da se išta sprčka.
Testove sam vrtio na frontend strani i oni su doslovno šaltali podstranice projekta i prolazili kroz sve funkcionalnosti. Na taj način i backend funkckionalnost je morala odrađivati svoj dio posla da bi neki kompletni zadatak bio uspješno izvršen…tako da je u suštini sve bilo testirano.
Nakon toga sam postao ovisan o testiranju. Ako sam razvio i najmanju novu funkcionalnost imao sam potrebu pokrenuti testove da vidim jel što potrgano. I bilo je baš pozitivno oduševljenje na taj način otkriti kada se neka sitničica potrga skroz neočekivano.
S druge strane, ja sam postao ovisan pisati testove i za neke glupe detalje i bilo je upitno ono što @jorgovan kaže. Koliko je to sve bilo isplativno.
Slažem se i sa @belmin ovom opaskom
Mislim da je dobro pokriti s testovima barem neke veće cjeline i onda ako baš nešto kritično pukne unutar te veće cjeline, lako će se otkriti da je u sustav upao neki kardinalni bug koji sve stopira.
A testirati baš svaki detalj koji se razvija, to je onda duplo teži razvoj i veliko pitanje isplativosti.
Da bi se išta testiralo, unaprijed se treba znati da će aplikacija preći određenu kompleksnost…i onda su testovi isplativiji što se ranije s njima krenulo. Jer se time štedi svo ono vrijeme koje će biti izgubljeno nedostatkom testova, a prije ili kasnije će ionako postati potrebni.
S druge strane, ako sustav neće biti prekompleksan, onda su testovi u startu samo teret što se tiče efektivnosti posla. Ali procjena ovoga može biti varljiva i to je onda opet veliki plus za testove.
Sve zajedno da bi se postigla efektivnost sa testovima, treba dobro istražiti i koje su sve opcije i načini testiranja. Kako neki standardi pomažu testiranju.
…načuo sam čak nešto kada se drži nekih standarada, da se testovi mogu automatski kreirati i dodavati na projekt. To mi je za sada recimo ne zamislivo kako se izvodi…
Kako god, nebi bilo efikasno niti pročitati 100 knjiga o testiranju, ali ako ih već ima stotinjak, sigurno da bi bilo korisno ući dublje u tematiku prije osmišljavanja vlastitih rješenja. (Kao što sam ja, kada sam bio nadobudan xd)
Suma sumaru:
Ozbiljan sustav bi definitivno pokrivao testovima, ali površnim testovima.
Također bi testirao kritične točke.
Za sve ostalo su testeri korisnici koji će se žaliti ako nešto ne radi. 