Da li Vam se nekada u životu dogodilo da ste nešto zaboravili da kupite, obavite ili se nekom javite? I meni je, ljudi smo. Ponekad pomaže kada zabeležimo informacije, koje su tu da nas podsete na obaveze. Kod testiranja softvera planiranje sprovođenja test aktivnosti može nam pomoći da prevaziđemo neprijatne situacije. Često mi kažu da je pisanje dugačkog test plana koji niko ne čita ‘stara škola’. Međutim, postoji razlika između planiranja i test plana.

Test plan je dokument u kojem beležimo najvažnije informacije i usaglašene odluke vezane za test aktivnosti, poput šta se testira, šta su ciljevi testiranja, kako će se testiranje izvoditi na određenom nivou, ko će sprovoditi različite test zadatke, itd. Testiranju je, jednako poput razvoju softvera, potrebna dobra struktura, jer smo na taj način efikasniji, efektivniji i pre svega transparentni u vezi sa aktivnostima i njihovim rezultatima. Kreiranje test plana ‘tera’ vas da prethodno dobro razmislite (planirate) o svim bitnim detaljima vezanim za testiranje softvera na kojem radite, kao i da predviđate potencijalne rizike koji se mogu javiti. Zbog čega onda testeri vrlo često ne planiraju test aktivnosti i šta se događa kada planiranje zanemarimo?
Pojava agilne metodologije razvoja softvera sa sobom je donela i predrasude da je dokumentacija ‘a priori’ loša stvar i da je treba izbegavati ili svesti na vrlo često neupotrebljiv format. Nažalost, ovo je dovelo do toga da su i aktivnosti promišljanja i predviđanja narednih koraka na projektu svedene na minimum. Bavimo se tekućom i/ili možda narednom iteracijom i zapostavljamo širu, dugoročnu sliku.
Nedavno su me pitali ‘Čemu služi Test Plan, kad se vrlo često menja?’. Slažem se, Test Plan zna često da se menja, pogotovo raspored izvršavanja određenih aktivnosti i zadataka. Međutim, to je sve u skladu sa modernim razvojem softvera. Potrebno je pronaći meru, razdvojiti bitno od nebitnog, i one najvažnije informacije zabeležiti u nekom dokumentu (test plan) koji će biti dostupan i razumljiv svim zainteresovanim stranama.
Ukoliko ovo ne uradimo, i na vreme ne razradimo plan, onda se test aktivnosti uglavnom ne odigravaju onako kako bismo želeli. Navešću neke od problema na koje možete naići bez adekvatnog planiranja i primerenog test plana:
1. Organizacija - nema jasno definisanih uloga i odgovornosti
Nije redak slučaj da se zbog nejasne raspodele uloga neki važni zadaci ne odrade, kao i da neke zadatke odrađuju testeri koji nisu kvalifikovani za takve vrste ili nivoe testiranja. Određeni timovi jednostavno ne mogu da funkcionišu bez jasno definisanih uloga jer se neretko dešava da se odgovornost ‘prebacuje’ na onog drugog.
2. Svrha - nema jasno definisanih ciljeva testiranja
Bez jasno definisanog cilja testiranja postoji verovatnoća da bitne i kritične karakteristike softvera ne budu testirane na dovoljno detaljan i/ili na pravi način. Drugim rečima, bez test plana, timovi nemaju jasnu viziju koji pristup treba da primene pri testiranju određenog softvera. Isto tako, bez definisanog cilja teško je izmeriti razultate. Ako nemamo cilj, kako da znamo kada smo gotovi?
3. Komunikacija - loša saradnja između testera i programera
Komunikacija između programera i testera je jedan od najbitnijih faktora za isporuku kvalitetnog softvera. Loša komunikacija između ove dve role može dovesti do neprijavljenih i nerešenih problema, a samim tim i do nedovoljno informacija koje su neophodne za merenje napretka i povećanja stabilnosti softvera. Dobro razrađen test plan kao osnov ove komunikacije igra veliku ulogu u uspešnosti projekta.
Sve pomenuto za rezultat ima isporuku softvera koji nije dovoljno kvalitetan i ima defekte. Ponekad se veoma ozbiljni defekti potkradu u osnovnim funkcijama softvera, a već smo govorili o tome koliko ovakve stvari mogu da koštaju Vas i Vašu kompaniju (Koliko košta "tvoj" bug?).