Posljednjih godina dosta intenzivno sudjelujemo u pripremi tehničkih specifikacija za nove informacijske sustave, a poslije i u praćenju razvoja i testiranju gotovih rješenja. Sve više se diže svijest kod proizvođača informacijskih sustava, ali i kod korisnika, da više nema formalnog prihvaćanja isporučenih sustava na „lijepe oči“, koje obično bude uvod u dugogodišnje korekcije i nadopune svega onoga što je trebalo biti uključeno, a nije.
Korisnik je osvijestio nužnost jasne specifikacije vlastitih zahtjeva, ali i kasnije verifikacije, validacije i testiranja isporučenog rješenja u skladu sa svakom stavkom iz postavljenih zahtjeva. Čini nam se kako je to malo zateklo proizvođače softvera, ali i sve ostale sudionike u tom procesu. Zbog toga nastojimo dizati svijest o važnosti ovog područja i kako putem raspoloživih normi i metodologija osigurati da se u svakom projektu razvoja novog informacijskog sustava postigne željena kvaliteta na zadovoljstvo svih sudionika. U nastavku malo više o tome kako to postići.
Što je V, V & T?
V, V & T je kratica koja se koristi kada govorimo o verifikaciji, validaciji i testiranju programske opreme. Svaka od tih aktivnosti ima značajnu ulogu u dostizanju željene kvalitete programske opreme koja se pušta u produkciju.
Verifikacija programske opreme može se provesti za cjelokupni tijek procesa razvoja, za cijeli programski sustav ili njegove komponente, kako bi se odredilo da li svaka faza razvoja zadovoljava standarde struke, specifikacije, dobru praksu ili konvencije. To se čini: pregledom ugovorne i projektne dokumentacije, inspekcijama, kontrolnim listama, itd., kako bi se odredila korektnost, kompletnost, konzistentnost i točnost razvojnih postupaka i njihovih rezultata i dobio odgovor na pitanje – da li se programski proizvod radi ili se radio na dovoljno dobar način.
Validacija programske opreme provodi se na kraju životnog ciklusa njenog razvoja, da bi se procijenilo da li ona zadovoljava vanjske i unutarnje propise, poslovna pravila i potrebe korisnika, te da li su specifikacije zahtjeva dobro postavljene. Evaluiraju se rezultati svake faze razvoja programske opreme, počevši od specifikacije zahtjeva korisnika, planiranja kvalitete, oblikovanja, kodiranja, testiranja, instalacije, pa do operativnog rada i održavanja. Ispituje se da li u specifikacijama zahtjeva ima pogrešaka, što su njihove posljedice, te da li postoji konzistentna sljedivost tijekom njenog razvoja. Rezultat validacije, osim evaluacije rezultata razvoja programske opreme, može biti zahtjev promjene specifikacija zahtjeva.
Testiranje programske opreme, kao dio verifikacije i validacije, snažno je inkorporirano u proces njenog razvoja i može uključivati različite vrste testiranja. Proizvođač programske opreme trebao bi imati svoju politiku testiranja kao i strategiju testiranja. Strategija testiranja usmjerava na načine donošenja plana testiranja i oblikovanje okvira testiranja. Mora postojati procedura testiranja, opis način pripreme testnih slučajeva, opis načina izvršenja testiranja, izrade izvješća o nesukladnostima, izrade testnih logova, te završno izvješćivanje o svim provedenim postupcima i rezultatima.
Zašto je važno uspješno planirati i provesti VVT proces?
Testiranje programske opreme najslabija je karika životnog ciklusa njenog razvoja i primjene u svakom poslovnom sustavu. Dva su glavna fokusa ovog problema: stav proizvođača i stav korisnika programske opreme.
Što se tiče stava proizvođača programske opreme, najnovija istraživanja najbolje svjetske prakse u industriji programske opreme, osobito njene validacije, verifikacije i testiranja (VVT proces), pokazuju da se ovom aspektu u njenoj proizvodnji ne posvećuje dovoljna pozornost. Na sceni je tzv. 4. softverska kriza, koju između ostalog karakterizira i dalje neodrživ odnos između troškova razvoja i održavanja programske opreme. Programska oprema postaje sve kompleksnija, metode i alati njenog razvoja sve su zahtjevniji, u nju se ugrađuje sve veći broj programskih kodova, sve je veća konkurencija među softverskim kućama, vrijeme u kojem je nužno isporučiti nove programske proizvode, sve je kraće. Zbog toga se VVT proces u životnom ciklusu razvoja programske opreme najčešće svodi na najmanju moguću mjeru. Jedan od odgovora na ovaj problem jest unaprijediti dosadašnje načine testiranja programske opreme. Budući da cijena pogreške u programskom proizvodu eksponencijalno raste s vremenom njenog otkrivanja (zakonitost 1 : 10 : 100 : 1000), ovo područje je danas moguće unaprijediti primjenom ekonomije kvalitete njene proizvodnje. U fokusu takvog pristupa su razvijene metode planiranja kvalitete, metrike kvalitete, nadzor ostvarenja parametara kvalitete, integracija sistemskog i programskog inženjerstva s ekonomijom kvalitete i primjena adekvatnih normi kvalitete.
Što se tiče korisnika programske opreme, oni moraju biti svjesni da njeni proizvođači i distributeri prodaju i isporučuju programske proizvode koji tijekom razvoja nisu dovoljno ispitani, istestirani i provjereni. U takvim proizvodima nalazi se još neprihvatljiva razina pogrešaka u aplikacijama, koje se otkriju tek tijekom operativne primjene programskih proizvoda, dakle naknadno kroz njihovo tzv. održavanje. Odnos između troškova razvoja i troškova održavanja izrazito je nesrazmjeran, jer su troškovi održavanja 2, 5, 10, pa i 20 puta veći od troškova razvoja. Kako troškove razvoja snosi proizvođač programske opreme, a troškove njenog održavanja njihov korisnik, jasan je i interes ovog drugog da se sadašnje stanje poboljša. To je moguće učiniti striktnijim testiranjem prihvatljivosti u fazi nabave novih programskih proizvoda.
Danas se ovo područje nastoji unaprijediti primjenom više razine znanja o VVT aktivnostima, primjenom normi, primjenom alata za testiranje i podizanjem cijelog ovog područja na višu razinu.
Navedene činjenice ishodište su za ponudu tržištu novih usluga – izobrazbi iz ovog područja, konzultantskih usluga za organizaciju i vođenje VVT procesa te suradnju u neposrednom testiranju u operativnim projektima.
Pristup provedbi VVT procesa
Verifikacija, validacija i testiranje (VVT) može se provoditi prema različitim normama i smjernicama. Neke od njih su:
- ISO/IEC 25010 Systems and software engineering — Systems and software Quality Requirements and Evaluation (SQuaRE) — System and software quality models;
- ISO/IEC/IEEE 29119 Software and systems engineering — Software testing;
- ISO/IEC/IEEE 12207 Systems and software engineering — Software life cycle processes
- Najbolje prakse sukladno International Software Testing Qualifications Board.
Preporuča se koristiti Quality-Based Testing (QBT) pristup koji se temelji na karakteristikama kvalitete programske opreme, kako je prikazano na sljedećoj slici. Na taj način se osigurava da su testovima pokrivene funkcionalne i nefunkcionalne karakteristike kvalitete neophodne za ostvarenje željene razine kvalitete programske opreme.
Uobičajeno je za VVT proces na razini jednog projekta pripremiti Plan testiranja temeljen na navedenim normama i smjernicama, kao i pojedinačne testne planove za pojedine testne događaje. U skladu s planovima i navedenim pristupom provode se svi testovi isporučene programske opreme, kako bi se potvrdilo da su svi postavljeni zahtjevi zadovoljeni u testnom i produkcijskom okruženju.
VVT aktivnosti mogu se podijeliti po fazama projekta te mogu uključivati različite vrste provjere:
- Vizualni pregled
- Demonstraciju
- Analizu
Pri tome mogu postojati različite vrste testiranja. Neke od njih su:
- Interni testovi (dry run)
- Testovi integracije
- Korisničko testiranje (UAT)
- End-to-End testiranje
- Regresijsko testiranje
- Finalno prihvaćanje sustava.
Okvir za upravljanje verifikacijom, validacijom i testiranjem prikazan je na sljedećoj slici:
Da bi se sve navedene VVT aktivnosti uspješno provele, od iznimne važnosti je pri samom definiranju informacijskog sustava i razradi tehničkih specifikacija sve jasno postaviti i razraditi, ali o tome u nekom od sljedećih članaka.