105
Verifikacija softvera Dinamiˇ cka analiza softvera Milena Vujoˇ sevi´ c Janiˇ ci´ c www.matf.bg.ac.rs/~milena Matematiˇ cki fakultet, Univerzitet u Beogradu

Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Verifikacija softvera— Dinamicka analiza softvera —

Milena Vujosevic Janicic

www.matf.bg.ac.rs/~milena

Matematicki fakultet, Univerzitet u Beogradu

Page 2: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Pregled

1 Testiranje i razvoj softvera

2 Vrste testiranja

3 Tehnike testiranja

4 Nacini testiranja

Milena Vujosevic Janicic Verifikacija softvera

Page 3: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Pregled

Znacenja poglavljaTestiranje i razvoj softvera — koja je uloga i gde je mestotestiranja u procesu razvoja softvera?Vrste testiranja — sta tacno proveravamo?Tehnike testiranja — gde pronaci dobre test primere?Nacini testiranja — manuelno ili automatsko testiranje?

Milena Vujosevic Janicic Verifikacija softvera

Page 4: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Dinamicka verifikacija softvera

Dinamicka verifikacija softvera obuhvata ...... tehnika ispitivanja ispravnosti koda u toku njegovog izvrsavanja.

Najcesci vid verifikacije softvera je ...... testiranje. Testiranje se cesto koristi kao sinonim za verifikacijusoftvera. Testiranje se cesto koristi i kao sinonim za validaciju iverifikaciju softvera. Testiranje se cesto koristi i kao sinonim zabrigu o kvalitetu softvera. Testiranje je ipak samo vazan deoverifikacije softvera, vazan deo validacije softvera, a V&V jevazan deo brige o kvalitetu softvera.

Milena Vujosevic Janicic Verifikacija softvera

Page 5: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Ali stalno treba imati u vidu...

Edsger Wybe Dijkstra (Tjuringova nagrada 1972)

”Program testing can show the presence of bugs,never their absence”

Testiranje ne moze da dokaze ispravnost softvera...Pravilnim i sistematicnim testiranjem podizemo nivo pouzdanosti ismanjujemo verovatnocu da greske promaknu.Testiranje se ne radi nasumicno, vec je vazno poznavatimetodologiju, procese i principe testiranja.

Milena Vujosevic Janicic Verifikacija softvera

Page 6: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Pregled

1 Testiranje i razvoj softveraCena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

2 Vrste testiranja

3 Tehnike testiranja

4 Nacini testiranja

Milena Vujosevic Janicic Verifikacija softvera

Page 7: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Testiranje i razvoj softvera

Razvoj softveraSoftver se implementira prema zahtevima korisnika sa ciljemresavanja realnog problema ili kreiranja potrebnefunkcionalnosti.Testiranje predstavlja vazan deo zivotnog ciklusa razvojasoftvera.Svako ponasanje softvera koje se ne slaze sa zahtevimauzrokovano je nekakvom ljudskom greskom u razvoju softvera ipredstavlja defekt koji cini softver manje kvalitetnim.U zavisnosti od namene softvera, smanjen kvalitet softveramoze da ima najrazlicitije posledice.

Milena Vujosevic Janicic Verifikacija softvera

Page 8: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Testiranje i razvoj softvera

Metodologije razvoja softveraU okviru razvoja softvera, cilj je da se maksimizuje profitpravljenjem prozvoda visokog kvaliteta ali u vremenskim ibudzetskim granicama.Najzastupljenije i trenutno najpopularnije metodologije razvojasoftvera promovisu paralelnu implementaciju i pisanje testovaza svaku od celina koja se razvija u okviru softverskog sistema

Milena Vujosevic Janicic Verifikacija softvera

Page 9: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Testiranje i razvoj softvera

GreskeSa porastom slozenosti projekta, raste i znacaj testiranja iprovera celokupnog softverskog sistema kako bi se izbegliishodi koji mogu da uniste ceo projekat.Kao sto znamo, greske se ne mogu izbeci jer je to stvar ljudskeprirode

Vreme - cenaPozeljno je sve greske detektovati sto ranije u fazi razvojasoftvera jer je ispravljanje gresaka jeftinije i brze u ranijimfazama razvoja softvera.Primer

Milena Vujosevic Janicic Verifikacija softvera

Page 10: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Milena Vujosevic Janicic Verifikacija softvera

Page 11: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Milena Vujosevic Janicic Verifikacija softvera

Page 12: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Faza analize zahtevaCena greske = vreme potrebno da se utvrde i zapisu novi zahtevi

Faza kodiranjaCena greske = dodatno vreme programera.Vreme moze da varira u zavisnosti od kompleksnosti greske, ali jeznacajno manje nego kada se ispravlja greska koju pronade nekodrugi. Kada programer pronade sam svoju gresku, on obicnorazume problem i zna kako da ga resi.

Milena Vujosevic Janicic Verifikacija softvera

Page 13: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Faza integracije kodaCena greske = dodatni rad programera i drugih inzinjeraU ovoj fazi vreme za ispravljanje greske je obicno dva puta duze jerkada se problem desi na visem nivou potrebno je da se najprepronade koji to tacno kod ili konfiguracija su bili pogresni.

Milena Vujosevic Janicic Verifikacija softvera

Page 14: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Sistemsko testiranjeCena greske = dodatni rad programera i drugih inzinjera, dodatanrad program menadzera i QA timaU ovoj fazi greska zahteva da QA tester bude u stanju dareprodukuje i dokumentuje sve korake koji su potrebni da se opisegreska, QA tester treba da prijavi gresku, da joj da prioritet, da sesastane sa developerima (programerma) i da to prodiskutuje. Kadaprogrameri isprave gresku, kod mora ponovo da se integrise utestno okruzenje, druge vrste testiranja treba da se ponovo odrade,i za tu gresku mora da se utvrdi da je stvarno popravljena. Defekattakode mora da se isprati u okviru sistema za pracenje defekata.

Milena Vujosevic Janicic Verifikacija softvera

Page 15: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Testiranje prihvatljivostiCena greske = dodatni rad programera i drugih inzinjera, dodatanrad program menadzera, QA tima i kupca/korisnikaOvo zahteva komunikaciju izmedu testra za proveru pruhvatljivostisa testerima sistemskog testiranja. Tester sistemskog testiranja cepokusati da reprodukuje gresku i da utvrdi da li je to greska ilisistem radi u skladu sa dizajnom. Ako reprodukovanje greske nijemoguce, onda se nastavlja komunikacija sa testerom provereprihvatljivosti. Ako reprodukovanje greske jeste moguce, onda jepotrebno da se dokumentuju koraci reprodukovanja greske i da seprodu sve faze kao i kod pronalazenja greske u prethodnoj fazi.Kada se greska ispravi, kod mora ponovo da se uvede u okruzenje zatestiranje prihvatljivosti tako a korisnik moze da nastavi testiranje.

Milena Vujosevic Janicic Verifikacija softvera

Page 16: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Cena gresake u kontekstu vremena otkrivanja

Program u upotrebiCena greske = dodatni rad programera i drugih inzinjera, dodatanrad program menadzera, QA tima i kupca/korisnikaPrijava greske prati slican postupak kao kod testiranjaprihvatljivosti, ali su posledice znacajno vece, a ispravljen kod trebada se isporuci svima

Milena Vujosevic Janicic Verifikacija softvera

Page 17: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Uloga testera u razvoju softvera

Projekti se vode na najrazlicitije nacineBriga o kvalitetu softvera obuhvata razna pravila i procedure,koji su razliciti u zavisnosti od vrste projekata koje firma radi,ali i od zrelosti i velicine firmeU zavisnosti od firme i projekta, QA tim moze i ne mora dapostoji

Milena Vujosevic Janicic Verifikacija softvera

Page 18: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Koga okriviti?

Milena Vujosevic Janicic Verifikacija softvera

Page 19: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Uloga testera u razvoju softvera

Moguce su razlicite raspodele obaveza i timova:programeri su istovremeno i testeriprogrameri i testeri rade zajednoprogrameri i testeri su potpuno razdvojeni (nekada cak i fizickina razlicitim lokacijama)

Cesti problemi na relaciji programer-testerLosa komunikacijaMedusobno nerazumevanjeNetrpeljivost

Milena Vujosevic Janicic Verifikacija softvera

Page 20: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Tester u supermarketu

Milena Vujosevic Janicic Verifikacija softvera

Page 21: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Osobine testera

Dobar tester poseduje ...osnovno razumevanje programiranja i procesa razvoja softvera,poznavanje procedura i procesa testiranja,poznavanje alata i skript jezika,poznavanje cestih gresaka i propusta, kao i nesvakidasnjihslucajeva upotrebe,kreativnost i potrebu za stalnim usavrsavanjem...

Formalna edukacijaNe postoji skola za testiranje, niti smer za testiranje.Knjige, kursevi i sertifikati.

Milena Vujosevic Janicic Verifikacija softvera

Page 22: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Vazno je pratiti trendove i najnovija saznanja

Neformalna edukacijaMeetup-ovi — QA Serbia http://www.qaserbia.rs/

Konferencije — Belgrade Test Conferencehttps://bg-testconference.rs/

Milena Vujosevic Janicic Verifikacija softvera

Page 23: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Faze testiranja softvera

Ulazni kriterijumiZa pocetak procesa testiranja, postojanje koda nije neophodno.Dovoljno je imati samo jasno definisane zahteve korisnika jertestiranje pocinje analizom tih zahteva. Tj, da bi zapocelitestiranje, potrebno je da postoji specifikacija zahteva sistema(eng. System Requirements Specification) koji treba da se izgradikao i specifikacija zahteva softvera koji treba da se izgradi(eng. Software Requirements Specification).

Test slucaj (engl. test case) ...

... je dokument koji definise ulaze u sistem i ocekivane izlaze za teulaze.

Milena Vujosevic Janicic Verifikacija softvera

Page 24: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Faze testiranja softvera

Osnovne faze testiranjaTestiranje softvera se u opstem slucaju sastoji od cetiri faze pricemu svaka faza obuhvata veliki broj aktivnosti.

PlaniranjeAnaliza, dizajn i implementacija testovaIzvrsavanjeEvaluacija testova

Milena Vujosevic Janicic Verifikacija softvera

Page 25: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Planiranje

Planiranje (eng. Test planning)

... predstavlja pripremu za ceo proces testiranja i ukljucujedefinisanje zadataka koje je potrebno sprovesti kao i nacin njihovogizvrsavanja.

Planiranje definise:vrste testova koje ce biti sprovedeneopseg testiranja, pristup, strategije i metode testiranjakriterijum zavrsetkapotrebne resurse i dogovara nacin komunikacije izmeduclanova tima

Milena Vujosevic Janicic Verifikacija softvera

Page 26: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Planiranje

Plan testiranja ...... zavisi od primenjene metodologije razvoja softvera i prilagodavase svakom konkretnom projektu.

Rezultat planiranja je skup dokumenata ...... koji sadrze opsti pogled na sistem koji ce se testirati, aktivnostikoje ce biti izvrsene kao i alate koji ce biti korisceni.

Milena Vujosevic Janicic Verifikacija softvera

Page 27: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Analiza, dizajn i implementacija testova

Analiza, dizajn i implementacija testova (eng. Test analysis, designand implementation)...

... obuhvata pravljenje detaljne specifikacije nacina na koje ce seaktivnosti predvidene planom izvrsiti.

Analiza, dizajn i implementacija testovaIspituje se mogucnost testiranja odredenih delova koda,prikupljaju potrebni podaci i preciziraju zahtevi korisnika.Kreiraju se i precizna uputstva kako ce se vrsiti testiranjesistemaRezultat ove faze je skup test slucajeva i test procedura kojace biti koriscene u fazi izvrsavanja testova.Samo izvrsavanje moze biti rucno i automatsko

Milena Vujosevic Janicic Verifikacija softvera

Page 28: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Izvrsavanje testova

Izvrsavanje testova (eng. Test execution) ...

... je proces konkretne primene test slucajeva i test proceduraformiranih na osnovu plana, analize, dizajna i implementacije. Ovafaza podrazumeva i odredivanje prioriteta izvrsavanja testova,pripremu testova za automatizovano testiranje (ukoliko je ono deoprocesa testiranja) i organizaciju testova za sto efikasnijeizvrsavanje.

Milena Vujosevic Janicic Verifikacija softvera

Page 29: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Izvrsavanje testova

Izvrsavanje testova ...... se vrsi radi provere funkcionalnosti sistema.... obuhvata i dodatnu aktivnost pracenja statusa problema.Ova aktivnost podrazumeva eliminaciju prijavljenih problemakao i potvrdivanje da je problem resen.... ponovno izvrsavanje testova posle popravke gresakaKomunikacija tester - programer

Milena Vujosevic Janicic Verifikacija softvera

Page 30: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Evaluacija testova

Evaluacija testova (eng. Test evaluation) ...

... obuhvata procenu kriterijuma zavrsetka testiranja i izvestavanje.Svaka izmena u kodu, cak i koja podrazumeva popravljanje gresaka,moze da dovede do novih gresaka. Iz tog razloga se, za razliciteoblasti testiranja, definise kriterijum zavrsetka testiranja u odnosuna rezultate izvrsavanja test skritpova, procenta neresenih bagovaili preostalog vremena za testiranje. Proces evaluacija ukljucuje ipregled rezultata dobijenih analizom izlaza test slucajeva.

Kreiranje izvestaja (eng. Test Summary Report) ...

... je opis sta je testirano. Na osnovu ovog izvestaje se utvrduje dali je implementirani sistem spreman za koriscenje u skladu sakorisnickim zahtevima.

Milena Vujosevic Janicic Verifikacija softvera

Page 31: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Cena gresake u kontekstu vremena otkrivanjaUloga testera u razvoju softveraFaze testiranja softvera

Evaluacija testova

Izlazni kriterijumi (eng. Exit Criteria) ...

... odreduju da li je testiranje kompletirano i da li je aplikacijaspremna za koriscenje u skladu sa korisnickim zahtevima. UkljucujuTest Summary Report, izracunavanje raznih metrika i izvestaj odefektima (eng. Defect Analysis Report).

Aktivnosti zatvaranja testiranjaTestiranje se zatvara kada je softver isporucen korisniku, madamoze se desiti i u nekim drugim situacijama, na primer, kada jeprojekat otkazan ili je neki cilj postignut. Tokom ove faze, testskriptovi i dokumentacija se arhiviraju, dok se primenjeni procestestiranja analizira i diskutuje o tome sta je bilo dobro, a sta ne.

Milena Vujosevic Janicic Verifikacija softvera

Page 32: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Pregled

1 Testiranje i razvoj softvera

2 Vrste testiranjaTestiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

3 Tehnike testiranja

4 Nacini testiranja

Milena Vujosevic Janicic Verifikacija softvera

Page 33: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Vrste testiranja — sta se proverava

Razlicite podele testiranja softvera

Funkcionalno testiranje (funkcionalnost aplikacije) — obuhvatatestiranje na razlicitim nivoima, testove prihvatljivosti,regresione testove, istrazivacke testove...Nefunkcionalno testiranje (neophodni tehnicki kvalitetiaplikacije)

Podela po nivoima testiranja

Mogu se testirati pojedinacni moduli, grupe modula (vezanihnamenom, upotrebom, ponasanjem ili strukturom) ili ceo sistem. Uskladu sa pomenutom podelom, prema nivou testiranja, razlikujemotestove jedinice koda, komponentne, integracione i sistemsketestove.

Milena Vujosevic Janicic Verifikacija softvera

Page 34: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Testiranje jedinica koda

Testiranje jedinica koda (eng. Unit testing)

Proverava se funkcionisanje delova sistema koji se nezavisnomogu testirati.U zavisnosti od konteksta i programske paradigme, to mogubiti podprogrami, klase, manje ili vece celine formirane odtesno povezanih jedinica.Ovom vrstom testiranja prolazi se svaki i najmanji deo sistema.Jedinicni testovi definisani su standardom IEEE Standard forSoftware Unit Testing.Dobra podrska u alatima za automatsko izvrsavanje iproveravanje ovih testova (sastavni deo razvojnog okruzenja)

Milena Vujosevic Janicic Verifikacija softvera

Page 35: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Testiranje jedinica koda

Testiranje jedinica kodaCilj jedinicnih testova je dokazivanje da izolovani delovi kodaimaju predvidenu funkcionalnost.Ukoliko kod komunicira sa mrezom, bazom podataka ili fajlsistemom, to se u okviru testova apstrahuje u nekakvefiksirane vrednosti. Ukoliko kod komunicira sa drugim klasama,modulima ili komponentama sistema, i to se apstrahuje.Dozvoljena je samo direktna komunikacija sa memorijom.Testiranje metodama bele kutijeTestove pise programerUkoliko postoje greske unutar jedinice koda, one bi trebalo dabudu otkrivene u ovoj fazi.

Milena Vujosevic Janicic Verifikacija softvera

Page 36: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Komponentno testiranje

Komponentno testiranje (eng. Component testing)

... proverava komponente sastavljene od vise jedinica koda.Jedinice koda koje su proverene da ispravno rade u izolaciji,sada se testiraju na nivou komponente i proverava sekomunikacija izmedu jedinica koda.Neformalno, komponenta je skup povezanih jedinica koda kojeimaju zajednicki interfejs prema ostalim komponentama.Komponente se proveravaju odmah po njihovom kreiranju pricemu se testiranje moze vrsiti izolovano od ostatka sistema, uzavisnosti od izabranog modela razvoja.

Milena Vujosevic Janicic Verifikacija softvera

Page 37: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Komponentno testiranje

Komponentno testiranjeKomponentno testiranje je veoma slicno sa testiranjem jedinicakoda, samo sto su komponente malo veceSama jedinica koda je u prethodnoj fazi testianja izolovana upotpunosti od spoljasnjeg sistema, dok je u okvirukomponentnog testiranja sada napustena izolacija na nivousame komponente, ali i dalje ostaje izolacija u okvirupovezanosti sa drugim komponentama i spoljasnjim sistemom.S obzirom da se u komponentnom testiranju integrisu osnovnejedinice koda, ovo je vrsta integracionog testiranja, ali nanizem nivou.Komponentno testiranje moze raditi programer a moze itester, u zavisnosti od vrste projekta

Milena Vujosevic Janicic Verifikacija softvera

Page 38: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Integraciono testiranje

Integraciono testiranje (eng. Integration testing)

... proverava saradnju izmedu komponenti koji predstavljajujednu celinu sistema.Ispituje se da li su veze izmedu komponenti dobro definisane irealizovane, tj. da li komponente komuniciraju na nacin opisanu specifikaciji projekta.Tokom integracionog testiranja mogu se naci propusti ukomunikaciji izmedu komponentiIntegracionim testovima proverava se da razlicite komponentesistema rade ispravno zajedno.Testiranje metodama crne kutijeTestiranje koje rade testeri

Milena Vujosevic Janicic Verifikacija softvera

Page 39: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Sistemsko testiranje

Sistemsko testiranje (eng. System testing) ...

... obuhvata proveravanje sistema kao celine.Ispituje se da li je ponasanje sistema u skladu sa specifikacijomzadatom od strane klijenta.Ovde se zahteva i potpun pristup bazi i hardverskim delovimasistema.Sistemsko testiranje moze da ukljucuje i funkcionalne inefunkcionalne aspekte sistemaU sistemsko testiranje nekada se ubrajaju istrazivackotestiranje i testiranje prihvatljivosti, a nekada se ove dve vrstetestiranja izdvajaju nezavisno.

Milena Vujosevic Janicic Verifikacija softvera

Page 40: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Istrazivacko testiranje

Istrazivacko testiranje (eng. Exploratory testing)

Tokom istrazivackog testiranja testeri pronalaze i proveravajudruge eventualne pravce koriscenja softverskog sistema.Ovo podrazumeva istaknutu kreativnost testera. Ova vrstatestiranja obuhvata aktivnosti prepoznavanja, kreiranja iizvrsavanja novih test slucajeva (onih koji nisu bili predvidenitest planom).Istrazivacko testiranje uglavnom ima smisla kada je aplikacija usvom finalnom obliku, kada tester moze videti i drugealternativne pravce koriscenja sistema koji ranije nisu mogli bitipredmet testiranja.Ukoliko se ova faza testiranja preskoci, postoji opasnost daneke funkcionalnosti sistema ne budu pokrivene testovima.

Milena Vujosevic Janicic Verifikacija softvera

Page 41: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Testovi prihvatljivosti

Testovi prihvatljivosti (eng. Acceptance testing)

... treba da omoguce klijentima i korisnicima da se sami uvereda je napravljeni softver u skladu sa njihovim potrebama iocekivanjima.Validacija softveraOvu vrstu testiranja izvode i procenjuju korisnici, a razvojnitim im pruza pomoc oko tehnickih pitanja, ukoliko za tim imapotrebe.Klijent moze da proceni sistem na tri nacina: referentnimtestiranjem, pilot testiranjem i paralelnim testiranjem.

Milena Vujosevic Janicic Verifikacija softvera

Page 42: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Testovi prihvatljivosti

Referentno testiranjeKod referentnog testiranja, klijent generise test slucajeve kojipredstavljaju uobicajne uslove u kojima sistem treba da radi. Ovetestove izvode korisnici kako bi procenili da li je softverimplementiran u skladu sa ocekivanjima.

Pilot testiranjePilot testiranje podrazumeva instalaciju sistema na privremenojlokaciji i njegovu upotrebu. U ovom slucaju, testiranje se vrsisimulacijom svakodnevnog rada na sistemu.

Milena Vujosevic Janicic Verifikacija softvera

Page 43: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Testovi prihvatljivosti

Paralelno testiranjeParalelno testiranje se koristi tokom razvoja, kada jedna verzijasoftvera zamenjuje drugu ili kada novi sistem treba da zameni stari.Ideja je paralelno funkcionisanje oba sistema (starog i novog) cimese korisnici postepeno privikavaju i prelaze na koriscenje novogsistema.

Milena Vujosevic Janicic Verifikacija softvera

Page 44: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Nefunkcionalno testiranje

Nefunkcionalni zahtevi sistemaBrzina, efikasnost, otpornost na otkaze, uklapanje u okruzenje ukojem ce se sistem koristiti.

Testiranje performansiTokom testiranja performansi, izvrsavaju se testovi konfiguracije,kapaciteta, kompatibilnosti kao i regresioni testovi.

Testovima konfiguracije ...... ispituje se ponasanje sistema u razlicitim hardverskim isoftverskim okruzenjima. Razlicite konfiguracije namenjene surazlicitim korisnicima sistema. Ovim testovima proveravaju se svekonfiguracije sistema.

Milena Vujosevic Janicic Verifikacija softvera

Page 45: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Nefunkcionalno testiranje

Testovima kapaciteta ...... proverava se ponasanje sistema pri obradama velikih kolicinapodataka. Proverava se i ponasanje sistema u slucaju kada skupovipodataka postignu svoje maksimalne kapacitete.

Testovima kompatibilnosti ...... proverava se nacin ostvarivanja komunikacije sistema sa drugimspoljnim sistemima.

Milena Vujosevic Janicic Verifikacija softvera

Page 46: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Testovi bezbednosti

Testovi bezbednostiPri testiranju vazna karakteristika je bezbednost sistema.Testovima bezbednosti proverava se da li su odredenefunkcionalnosti dostupne iskljucivo onim korisnicima kojima sunamenjene.Proveravaju se i dostupnost, integritet i poverljivost svihskupova podataka.

Milena Vujosevic Janicic Verifikacija softvera

Page 47: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Instalaciono testiranje

Instalaciono testiranjeOva vrsta testiranja izvodi se instaliranjem softvera naklijentskoj masini.Prilikom instaliranja, sistem se konfigurise u skladu saokruzenjem.Ukoliko je potrebno, sistem se povezuje sa spoljnim uredajimai sa njima uspostavlja komunikaciju.Instalacioni testovi se izvrsavaju u saradnji sa korisnicima.Ispituje se da li uslovi na klijentskoj masini i okruzenjunegativno uticu na neke funkcionalne ili nefunkcionalne osobinesistema.Kada rezultati testiranja zadovoljavaju potrebe klijenta,testiranje se prekida i sistem se formalno isporucuje.

Milena Vujosevic Janicic Verifikacija softvera

Page 48: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje jedinica kodaKomponentno i integraciono testiranjeSistemsko testiranjeRegresiono testiranje

Regresiono testiranje ...

Regresiono testiranje ...... se radi nakon izmena u razvoju sistema, da bi se utvrdilo da nijedoslo do loseg rada nekih funkcija koje nisu bile obuhvaceneizmenama. Regresioni testovi garantuju da su performanse novogsistema barem jednake performansama starog.Regresioni testovi se sprovode i za testiranje funkcionalnih osobinasoftvera (tj ne mora da bude vezano samo za performanse).

Milena Vujosevic Janicic Verifikacija softvera

Page 49: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Pregled

1 Testiranje i razvoj softvera

2 Vrste testiranja

3 Tehnike testiranjaTestiranje crne kutijeTestiranje bele kutije

4 Nacini testiranja

Milena Vujosevic Janicic Verifikacija softvera

Page 50: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Strategije testiranja

Plan testiranja ...... nastaje u fazi planiranja testiranj i to je dokument koji sadrziinformacije o fokusu i obimu testiranja, definise kriterijumpokrivenosti, rasporede testiranja, osobine koje se testiraju iprocenjuje potrebne resurse.Prilikom planiranja testiranja, potrebno je definisati pristuptestiranju koji daje odgovor sta zelimo da testiramo i kako zelimo toda ostvarimo.

Milena Vujosevic Janicic Verifikacija softvera

Page 51: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Strategije testiranja

Strategija testiranja ...... je vodic koji se prati za postizanje ciljeva testiranja i izvrsavanjetestova koji se pominju u planu testiranja. U okviru strategijetestiranja, definisu se ciljevi, okruzenja, pristupi, automatizacija itehnike, nepredvidene situacije i analiza rizika.Definisanje strategije testiranja je najvazniji dokument vezan zatestiranje.

OdnosAko je plan testiranja destinacija, onda je strategija testiranjauputstvo, mapa, kako da se na tu destinaciju stigne.

Milena Vujosevic Janicic Verifikacija softvera

Page 52: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Kako pronaci dobre test primere?

Strategije testiranjaMetod odredivanja reprezentativnog skupa podataka nad kojima cese vrsiti testiranje:

Visok potencijal otkrivanja gresakaRelativno mala velicinaRelativno velika brzina izvrsavanjaVisok stepen poverenja u pouzdanost softvera

Pokrivenost koda (engl. coverage)

Znacenje pojma pokrivenosti zavisi od konteksta u kojem se javlja.Uopsteno, pokrivenost je broj nekih elemenata programa (engl.items) ispitanih testovima u odnosu na ukupan broj tih elemenata.

Milena Vujosevic Janicic Verifikacija softvera

Page 53: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Gde pronaci dobre test primere?

Specifikacija programa

Testiranje crne kutije (engl. black box testing) — generisanje testprimera bez razmatranja interne strukture koda vec iskljucivo naosnovu specifikacije. Ovakav nacin testiranja se fokusira naponasanje sistema, posmatrano iz korisnickog ugla. Zadatak testeraje da sistemu pruzi ulaze, a zatim da proveri izlaze u odnosu nadatu specifikaciju.

Drugi nazivi su i ...

... funkcionalno testiranje (engl. functional testing), testiranjeponasanja (engl. behavioural testing), testiranje vodeno podacima(engl. data driven testing).

Milena Vujosevic Janicic Verifikacija softvera

Page 54: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Gde pronaci dobre test primere?

Kod programa

Testiranje bele kutije (engl. white box testing) — generisanje testprimera na osnovu interne strukture koda, npr jedinicni testovi.Kriterijum pokrivenosti koda: broj izvrsenih putanja, broj izvrsenihinstrukcija, broj izvrsenih grana...

Drugi nazivi su i ...

... strukturno testiranje (engl. structural testing), testiranje vodenologikom (engl. logic driven testing).

Milena Vujosevic Janicic Verifikacija softvera

Page 55: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Gde pronaci dobre test primere?

Specifikacija i kod programa

Testiranje sive kutije (engl. gray box testing)— mesovita strategijaPredstavlja sredinu izmedu modela crne i bele kutije. Kod tehnikaovog modela postoji neki uvid u unutrasnju strukturu sistema, aline u toj meri kao kod modela bele kutije.Koristiti se kod komponentnog i integracionog testairanjaTehnika koju koriste i programeri i testeri

OdnosTestiranje crne kutije je testiranje iz ugla korisnika dok je testiranjebele kutije testiranje iz ugla programera.

Milena Vujosevic Janicic Verifikacija softvera

Page 56: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje crne kutije

Fokus na ulazu i izlazu

Milena Vujosevic Janicic Verifikacija softvera

Page 57: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje crne kutije

Isprobavanja svih mogucih ulaza (engl. exhaustive input testing)

Za netrivijalne programe nije moguce koristiti ovu tehniku.

a · x2 + b · x + c = 0Resenje

r = −b ±√

b2 − 4 · a · c/(2 · a)

Ako se svaka promenljiva tipa int(32), broj razlicitih test primera zapotpuno testiranje je

232 · 232 · 232 = 296

Milena Vujosevic Janicic Verifikacija softvera

Page 58: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje crne kutije

Metod crne kutijeCilj tehnika ovog modela da pronadu prihvatljiv broj testslucajeva (tj. kombinacija ulaza) koji ce otkriti sto vise gresaka.Takav cilj se ostvaruje postavljanjem nekih pretpostavki oispitivanom softveru.Prednost ovog pristupa jeste mogucnost potpunog razdvajanjaprogramera i testera.

Milena Vujosevic Janicic Verifikacija softvera

Page 59: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Metod klasa ekvivalencije

Testiranje pomocu klasa ekvivalencije (engl. equivalence classtesting)...

... je tehnika koja se koristi da smanji broj test slucajeva naprihvatljiv nivo, pritom odrzavajuci razumnu pokrivenosttestovima. Ovde se pokrivenost odnosi na procenat svihmogucih ulaza koji ce biti ispitan testovima.Ovu jednostavnu tehniku koriste intuitivno skoro svi testeri,iako oni mozda nisu svesni da je to formalna metodaoblikovanja testova.Klasa ekvivalencije predstavlja skup podataka koji se tretirajujednako od strane modula ili koji treba da proizvedu istirezultat.

Milena Vujosevic Janicic Verifikacija softvera

Page 60: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Metod klasa ekvivalencije

Klase ekvivalencijeIz tacke gledista testiranja, sve vrednosti podataka u okvirujedne klase su ekvivalentne svim ostalim vrednostima u okvirute klase. Konkretno, ocekujemo da:

Ako jedan test slucaj u jednoj klasi ekvivalencije detektujegresku, svi ostali test slucajevi u okviru iste klase ekvivalencijece verovatno detektovati istu gresku.Ako jedan test slucaj u jednoj klasi ekvivalencije ne detektujegresku, nijedan drugi test slucaj u okviru iste klaseekvivalencije verovatno nece detektovati gresku.

Koraci za koriscenje testiranja pomocu klasa ekvivalencije sujednostavni. Prvo, identifikujemo klase ekvivalencije. Zatim,pravimo test slucaj za svaku klasu ekvivalencije.

Milena Vujosevic Janicic Verifikacija softvera

Page 61: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Tabela : Pravila organizacije pri zaposljavanju

Godine Pravilo0-16 Ne zaposliti16-18 Moze se zaposliti samo sa pola radnog vremena18-55 Moze se zaposliti sa punim radnim vremenom55-99 Ne zaposliti

Broj validnih test slucajeva moze se smanjiti sa 100 (testiranje zasvaku godinu starosti) na 4 (testiranje jedne godine starosti zasvaku klasu ekvivalencije, npr 10, 17, 30, 70). Nevalidni testslucajevi -5, 105.

Milena Vujosevic Janicic Verifikacija softvera

Page 62: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Metod klasa ekvivalencije

Cesto je lakse identifikovati ispravne klase ekvivalencije odneispravnih.

Milena Vujosevic Janicic Verifikacija softvera

Page 63: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Metod granicnih vrednosti

Testiranje granicnih vrednosti (engl. boundary value testing)

Testiranje pomocu klasa ekvivalencije je najosnovnija tehnikaoblikovanja testova i ona nas vodi do ideje o testiranjugranicnih vrednosti.Testiranje granicnih vrednosti se fokusira na granice zato stose tu krije mnogo gresaka.Greska koju programeri cesto cine je pogresno kodiranjetestova nejednakosti. Primer toga je pisanje > znaka umesto≥ znaka.

Milena Vujosevic Janicic Verifikacija softvera

Page 64: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Metod granicnih vrednosti

Testiranje granicnih vrednostiKoraci za koriscenje testiranja granicnih vrednosti su jednostavni.

Identifikujemo klase ekvivalencije.Identifikujemo granice svake klase ekvivalencije.Pravimo test slucaj za svaku granicnu vrednost birajuci jednutacku na granici, jednu tacku ispod granice i jednu tacku iznadgranice. Ispod i iznad su relativni termini i zavise od jedinicavrednosti podataka.Tacke ispod i iznad granice mogu biti u drugim klasamaekvivalencije i treba voditi racuna da se testovi ne duplriaju.Vise dimenzija u klasama ekvivalencije, realni brojevi

Milena Vujosevic Janicic Verifikacija softvera

Page 65: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Tabela : Pravila organizacije pri zaposljavanju

Godine Pravilo0-16 Ne zaposliti16-18 Moze se zaposliti samo sa pola radnog vremena18-55 Moze se zaposliti sa punim radnim vremenom55-99 Ne zaposliti

Primecuje se problem na granicama svake klase. Starost 16 jeukljucena u dve razlicite klase ekvivalencije (kao sto su i 18 i 55).Prvo pravilo kaze da ne zaposljavamo osobe sa 16 godina. Drugopravilo kaze da se osobe sa 16 godina mogu zaposliti sa polaradnog vremena. Ovo je greska u specifikaciji sistema.

Milena Vujosevic Janicic Verifikacija softvera

Page 66: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Tabela : Ispravljena pravila organizacije pri zaposljavanju

Godine Pravilo0-15 Ne zaposliti16-17 Moze se zaposliti samo sa pola radnog vremenom18-54 Moze se zaposliti sa punim radnim vremenom55-99 Ne zaposliti

Validni test slucajevi u ovom primeru su naredne vrednosti nagranici ili blizu granice: {-1, 0, 1}; {15, 16, 17}; {18, 19}; {54, 55,56}; {98, 99, 100}.

Milena Vujosevic Janicic Verifikacija softvera

Page 67: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Tabele odlucivanja

Tabele odlucivanja (engl. decision table)

Izrada tabela odlucivanja je tehnika za prikaz slozenihposlovnih pravila u lako citljivom obliku pomocu koje se mogunapraviti i test slucajevi.Prvu grupu redova tabele cine uslovi nad ulazom, a drugumoguce akcije.Kolone tabele predstavljaju pravila koja jedinstvenojkombinaciji uslova dodeljuju odgovarajuce akcije.

Milena Vujosevic Janicic Verifikacija softvera

Page 68: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Tabele odlucivanja

Tabele odlucivanjaUslovi pravila mogu biti binarni ili sa vise od dve vrednosti. Izprvih se moze direktno izvesti tacno jedan test slucaj, dok izdrugih moze vise njih.Izbor razlicitih test slucajeva iz jednog pravila moze se vrsiti ukombinaciji sa drugim tehnikama, kao sto su klaseekvivalencije ili granicne vrednostiKada imamo vise pravila kod kojih akcija ne zavisi od vrednostinekog uslova mozemo ih spojiti u jedno pravilo (engl. tablecollapsing). Takav uslov u novom pravilu oznacavamo sa ’-’ inazivamo nebitnim (engl. don’t care).

Milena Vujosevic Janicic Verifikacija softvera

Page 69: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

BankaKlijent zahteva isplatu gotovine na bankomatu neke banke.Sistem treba da odluci da li ce da odobri isplatu.Odlucivanje vrsi pomocu podataka o sredstvima na racunu i odozvoljenom minusu.Nacin odlucivanja je prikazan tabelom odlucivanja

Milena Vujosevic Janicic Verifikacija softvera

Page 70: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Tabela odlucivanja za zahtev isplate gotovinePravilo 1 Pravilo 2 Pravilo 3

UsloviDovoljno sredstava na racunu Da Ne NeDozvoljen minus - Da Ne

AkcijeIsplata odobrena Da Da Ne

Prvo pravilo je dobijeno spajanjem dva pravila. Kada imadovoljno sredstava na racunu, nezavisno od toga da li je minusdozvoljen ili ne, isplata se odobrava.Iz drugog pravila moze se izvesti test slucaj tako sto se za ulazuzme da korisnik nema dovoljno sredstava na racunu i da muje dozvoljen minus. Zatim se izlaz iz programa poredi saocekivanom akcijom, a to je da je isplata odobrena.

Milena Vujosevic Janicic Verifikacija softvera

Page 71: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Dijagrami stanja

Dijagram stanja (engl. state-transition diagram) ...

... kompaktno opisuje kompleksne zahteve sistema i njegov nacininterakcije sa spoljasnjim svetom. Primenjuje se kod sistema cijeakcije zavise od akcija izvrsenih u proslosti i koji reaguju naspoljasnje dogadaje.

Milena Vujosevic Janicic Verifikacija softvera

Page 72: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Dijagrami stanja

Osnovnu strukturu dijagrama cine:

Stanje Cuva znanje o proslim dogadajima i definise reakcijuna buduce.

Prelaz Promena iz jednog stanja u drugo.Dogadaj Nesto izvan sistema sto preko interfejsa izaziva prelaz.Akcija Operacija sistema izazvana prelazom.

Milena Vujosevic Janicic Verifikacija softvera

Page 73: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Dijagrami stanja

Dijagrami stanjaU svakom trenutku sistem se nalazi u nekom od konacnomnogo stanja i ceka na neki dogadaj.Kombinacija stanja i dogadaja odreduje stanje u koje sistemprelazi.Pri prelasku sistem moze da izvrsi jos neku akciju, obicnopravljenje nekih izlaza.Ovakav sistem se moze modelovati konacnim automatom(engl. finite state machine).Dijagram stanja je jedan od nacina prikaza takvog modela.

Milena Vujosevic Janicic Verifikacija softvera

Page 74: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Posmatramo softverski sistem za maloprodaju koji ima ugradenuopciju za otvaranje i zatvaranje (fioke) kase.

Milena Vujosevic Janicic Verifikacija softvera

Page 75: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Dijagrami stanja

Generisanje test slucajevaTest slucajeve mozemo da pravimo obilaskom, jer dijagramstanja predstavlja vrstu usmerenog grafa.Pri pravljenju skupova test slucajeva mozemo zahtevatirazlicite nivoe pokrivenosti, pri cemu se pravi kompromisizmedu pokrivenosti i kolicine testova.Primer dobrog komprimisa je skup testova koji omogucava dase svaki prelaz ispita bar jednom.Pored toga, mozemo zahtevati da se svako stanje ili svakaputanja kroz dijagram obidu bar jednom.

Milena Vujosevic Janicic Verifikacija softvera

Page 76: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Test slucajeviOtvori, zatvori, ugasi programJedan primer test slucaja koji aktivira svaki prelaz datogdijagrama bar jednom dat je sledecim nizom naredbi: otvori,otvori, zatvori, zatvori, ugasi program.Pri izvrsavanju navedenih naredbi proverava se da li sistemreaguje u skladu sa zadatim zahtevima.

Milena Vujosevic Janicic Verifikacija softvera

Page 77: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Tabele stanja

Tabele stanjaKonacni automat koji modeluje sistem se moze prikazati itabelama stanja (engl. state transition tables).Osnovna prednost tabela stanja jeste njihov sistematicnipristup, prikazuju sve moguce kombinacije stanja i dogadaja.Takvim pristupom mogu da se uoce situacije u kojimaponasanje sistema nije definisano, sto moze da spreci pojavugresaka.Kod tabela stanja, iz svakog reda se moze direktno izvestijedan test slucaj.

Milena Vujosevic Janicic Verifikacija softvera

Page 78: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Tabela stanja koja odgovara prikazanom dijagramu stanja

Trenutno stanje Dogadaj Akcija Naredno stanjeZatvorena otvori obavesti OtvorenaZatvorena zatvori - ZatvorenaZatvorena ugasi program - Zatvorena

Otvorena otvori - OtvorenaOtvorena zatvori obavesti ZatvorenaOtvorena ugasi program - Nedefinisano

Milena Vujosevic Janicic Verifikacija softvera

Page 79: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Test slucajeviProblematican dogadaj nastaje kada korisnik sistema zeli daugasi program. Opasnost od ostavljanja otvorene kase nijenavedena u dijagramu stanja, ali jeste u tabeli stanja.Moguca resenja su da sistem upozori korisnika i sprecizatvaranje programa ili da automatski zatvori kasu.

Milena Vujosevic Janicic Verifikacija softvera

Page 80: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Pogadanje gresaka

Pogadanje gresaka (engl. error guessing) ...

Ova tehnika se oslanja na iskustvo i procenu testera. To jeumetnost pogadanja gde bi greska mogla da bude skrivena. Za ovutehniku ne postoje specificni alati niti upustva.

Milena Vujosevic Janicic Verifikacija softvera

Page 81: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Metod klasa ekvivalencije

Milena Vujosevic Janicic Verifikacija softvera

Page 82: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje metodama bele kutije

Testiranje bele kutije (eng. white box testing)

Ovakav nacin testiranja podrazumeva znanje o unutrasnjojstrukturi softvera.Testove najcesce pise programer, ali moze i testerProgramer/tester kreira test slucajeve na osnovu izucavanjaimplementacijeOva vrsta testiranja je skupa i sprovodi se obicno za sistemekod kojih su greske skuplje

Milena Vujosevic Janicic Verifikacija softvera

Page 83: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje metodama bele kutije

Testiranje bele kutijeOvom vrstom testiranja ispituju se razlicite putanje krozprogramKoristi se najcesce za pisanje jedinicnih testova, ali moze i zaintegraciono i sistemsko testiranjeMogu se testirati putanje kroz jedinicu koda, putanje izmedurazlicitih jedinica koda za vreme integracije, i putanje izmedupodsistema za vreme sistemskog testiranja.

Milena Vujosevic Janicic Verifikacija softvera

Page 84: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Osnovni koraci

Osnovni koraci1 Razumevanje koda2 Pisanje testova i njihovo izvrsavanje

Zbog prvog koraka, najcesce ovu vrstu testiranja sprovode samiprogrameri

Milena Vujosevic Janicic Verifikacija softvera

Page 85: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje bele kutije

Tehnike testiranja bele kutijeAnalogno ispitivanju svih kombinacija ulaza kod tehnikazasnovanih na modelu crne kutije, moze se zahtevatiispitivanje svih putanja kroz program.Medutim, takav pristup je nepraktican, a cesto i nemoguc zbogprevelikog broja mogucih putanja kroz programZbog toga tehnike nastoje da omoguce kreiranje prakticnoprihvatljivog broja test slucajeva, ali i da obezbede visok nivopokrivenosti.Pre pocetka testiranja, odgovarajuci nivo pokrivenosti trebabiti izabran.

Milena Vujosevic Janicic Verifikacija softvera

Page 86: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Pokrivenost

PokrivenostPokrivenost putanja (Path Coverage) Mera prolaska kroz moguce

putanje (potpuna pokrivenost: sve moguce putanjeprograma su izvrsene bar jednom)

Pokrivenost naredbi (Statement Coverage) Mera izvrsavanjanaredbi programa (potpuna pokrivenost: svakanaredba programa je izvrsena bar jednom)

Pokrivenost grana/odluka (Branch/Decision Coverage) Meraprolaska kroz grane programa (potpuna pokrivenost:svaka odluka u programu je doneta bar jednom)

Path Coverage = (Number of paths exercised / Total Number of paths in the program) x 100 %Statement Coverage = (Number of Statements Exercised / Total Number of Statements) x 100 %Decision Coverage = (Number of decisions outcomes tested / Total Number of decision Outcomes) x 100 %

Milena Vujosevic Janicic Verifikacija softvera

Page 87: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Pokrivenost

PokrivenostPokrivenost uslova (Condition Coverage) Mera ispitivanja uslova

programa (potpuna pokrivenost: svaki uslov u svakojodluci je uzeo sve moguce vrednosti bar jednom)

Pokrivenost visestrukih uslova (Multiple Condition Coverage) Meraispitivanja visestrukih uslova programa (potpunapokrivenost: svaka moguca kombinacija uslova usvakoj odluci je ispitana bar jednom)

Pokrivenost funkcija (Function Coverage) Mera poziva svihfunkcija programa

... ...

Milena Vujosevic Janicic Verifikacija softvera

Page 88: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

if (a > 0) { x = x + 1; }if (b = = 3) { y = 0; }

Test a=6, b=3 pokriva sve naredbe, ali ne isve putanje

Milena Vujosevic Janicic Verifikacija softvera

Page 89: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

Putanja 1 2 3 4 5 6 7 2 8 pokriva sve naredbePutanja 1 2 3 5 6 7 2 3 4 5 6 7 2 8 pokriva sve naredbe i svakaodluka je doneta na razlicite nacine bar jednom

Milena Vujosevic Janicic Verifikacija softvera

Page 90: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Hijerarhija pokrivenosti

Pokrivenost putanja\/

Pokrivenost visestrukih uslova\/

Pokrivenost uslova\/

Pokrivenost odluka\/

Pokrivenost naredbi

Milena Vujosevic Janicic Verifikacija softvera

Page 91: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Pokrivenost koda

Kako izracunati nivo pokrivenosti koda?Postoje razliciti alati za izracunavanje nivoa pokrivenostitestovima https://stackify.com/code-coverage-tools/

Alati mogu da budu sastavni deo alata za razvoj softvera ili semogu pokretati nezavisnogcov, Cobertura, CodeCover, Coverage.py, Emma, Gretel,Hansel,JaCoCO, JCov ...Visual Studio Testing Tools https://docs.microsoft.com/en-us/visualstudio/test/improve-code-quality (opcijaAnalyze Code Coverage)EclEmma (JaCoCO za Eclipse http://www.eclemma.org/,ranije Emma za Eclipse)...

Milena Vujosevic Janicic Verifikacija softvera

Page 92: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Kako izabrati putanje?

Neka pravilaBolje je imati vise manjih putanja kroz vise test primera negojednu komplikovanu putanjuNajbolje je kada su putanje male varijacije drugih putanjiPetlja moze da ima beskonacno mnogo putanja:

Preskoci petljuProdi jednom kroz petljuProdi dva dva puta kroz petljuAko postoji maksimalan broj prolaza n, prodi n-1 i n puta krozpetlju

AutomatizacijaDa li se i sta u postupku izbora putanji moze automatizovati?

Milena Vujosevic Janicic Verifikacija softvera

Page 93: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Kako izabrati putanje?

Testiranje baznih putanja (engl. basis path testing)

je sacinjeno od sledecih koraka:1 Izvodenje grafa toka upravljanja iz softverskog modula2 Izracunavanje ciklomaticne kompleksnosti grafa (C)3 Odabir skupa C baznih putanja4 Pravljenje test slucaja za svaku baznu putanju5 Izvrsavanje ovih testova

Milena Vujosevic Janicic Verifikacija softvera

Page 94: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje baznih putanja

Ciklomaticna kompleksnost (engl. cyclomatic complexity)

... je metrika koja se koristi da se izracuna kompleksnost softvera.To je kvantitativna mera broja linearno nezavisnih putanja kroz kodprograma. Izracunava pomocu jednacine:

C = grane − cvorovi + 2 ∗ broj_povezanih_komponenti

Kreiranjem i izvrsavanjem svih baznih test slucajeva, garantuje se ipokrivenost grana i pokrivenost naredbi zato sto skup baznihputanja pokriva sve grane i cvorove grafa kontrole toka.

Milena Vujosevic Janicic Verifikacija softvera

Page 95: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Primer

C = 10 - 7 + 2 = 5, algoritam: u svakom cvoru odluke promenitiodluku, pocevsi od najdonjeg

Osnovni problem: pretpostavka o mogucnosti izbora ovih putanja ikako odabrati putanje koje su dostizne.

Milena Vujosevic Janicic Verifikacija softvera

Page 96: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje crne kutijeTestiranje bele kutije

Testiranje grafa toka podatka

Testiranje grafa toka podatka (engl. data flow graph)

... koristi graf kontrole toka da istrazi ispravnost upotrebepodatakaAnomalije upotrebe podataka ukljucuju:

Promenljive koje se koriste a nisu inicijalizovaneInicijalizovane promenljive koje se ne koristePromenljive koje su vise puta definisane pre upotrebeDealokacija promenljive pre prve upotrebe...

Milena Vujosevic Janicic Verifikacija softvera

Page 97: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Pregled

1 Testiranje i razvoj softvera

2 Vrste testiranja

3 Tehnike testiranja

4 Nacini testiranja

Milena Vujosevic Janicic Verifikacija softvera

Page 98: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Automatizacija u testiranju

Podela automatizacijeNacin generisanja test primeraNacin izvrsavanja test primera

Generisanje test primera ...

... se moze automatizovati samo za neke vrste testiranja (na primerza metode bele kutije, za neke nefunkcinalne testove... vise o tomekasnije u nastavku kursa). Za vecinu funkcionalnog testiranjaneophodno je manuelno generisati test primere.

Milena Vujosevic Janicic Verifikacija softvera

Page 99: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Automatizacija u testiranju

Izvrsavanje test primeraValidacija softvera testiranjem najcesce zahteva rucnoizvrsavanje testova.U mnogim slucajevima je moguce automatizovati izvrsavanjetestiranja.Tehnike automatizacije procesa testiranja — sastavni deo alataza razvoj softvera, alati za kontinuiranu integraciju softvera,alata za testiranje specificnih vrsta softvera...

Milena Vujosevic Janicic Verifikacija softvera

Page 100: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Automatizacija u testiranju

Izvrsavanje test primeraAutomatsko izvrsavanje test primera u okvriu alata za razvojsofvteraNajcesce vezano za testiranje jedinica kodaxUnit framework (JUnit, CppUnit ...)Obicno povezan i sa automatskim racunanjem pokrivenostikoda

Milena Vujosevic Janicic Verifikacija softvera

Page 101: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Alati za kontinuiranu integraciju softvera

Konitunirana integracija ...... je neophodna za razvoj softvera gde clanovi time unose izmenena dnevnom nivou. Svaku izmenu je potrebno objediniti sa tekucimstanjem koda, potvrditi automatskom izgradnjom koda itestiranjem kako bi se detektovala potencijalne greske u najkracemvremenskom roku. Prilikom svakog objedinjavanja, sistem jeintegrisan (sve promene do tog trenutka su objedinjene u projekat),izgraden (kod je kompajliran u paket ili u izvrsni fajl), testiran(pokrecu se automatski testovi), arhiviran (verzionisan i sacuvan) iprimenjen (ucitan na sistem gde se moze izvrsavati). Ovakvimpristupom se smanjuje cena projekta, vreme projekta i rizik priobjavljivanju novih verzija.

Milena Vujosevic Janicic Verifikacija softvera

Page 102: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Alati za kontinuiranu integraciju softvera

Kontinuirana integracija softveraJenkins https://jenkins.io/BuildbotTravis CIGitLab CICircle CITeamCity by JetbrainsBamboo by Atlassian....

Milena Vujosevic Janicic Verifikacija softvera

Page 103: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Testiranje veb aplikacija

SeleniumSelenium je softver otvorenog kodaSelenium je skoro standard za automatizovano testiranje vebaplikacijaSelenium podrzava testiranje veb aplikacija u gotovo svimdostupnim pretrazivacimaTest skriptovi mogu biti pisani u razlicitim programskimjezicima kao sto su C#, Java, Ruby, Python i Perl i pokretanina Windows, Macintosh ili Linux platformama.Koriscenje Selenium-a za testiranje softvera vezanog zakorisnicki interfejs i finansijske aplikacije — Master rad, SuzanaRadotic, Matematicki fakultet.

Milena Vujosevic Janicic Verifikacija softvera

Page 104: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Ali stalno treba imati u vidu...

Edsger Wybe Dijkstra (Tjuringova nagrada 1972)

”Program testing can show the presence of bugs,never their absence”

Testiranje ne moze da dokaze ispravnost softvera...Pravilnim i sistematicnim testiranjem podizemo nivo pouzdanosti ismanjujemo verovatnocu da greske promaknu.Testiranje se ne radi nasumicno, vec je vazno poznavatimetodologiju, procese i principe testiranja.

Milena Vujosevic Janicic Verifikacija softvera

Page 105: Verifikacijasoftvera · 2019-01-30 · Planiranje Analiza,dizajniimplementacijatestova Izvrˇsavanje Evaluacijatestova MilenaVujoˇsevi ´cJani ˇci´c Verifikacijasoftvera. Testiranjeirazvojsoftvera

Testiranje i razvoj softveraVrste testiranja

Tehnike testiranjaNacini testiranja

Literatura

LiteraturaA Practitioner’s Guide to Software Test Design, Lee Copeland

Literatura na srpskomTestiranje — Iz materijala za izradu master rada „Automatskogenerisanje test primera uz pomoc staticke analize i resavacaZ3” student Ana Dordevic, mentor Milena Vujosevic Janicic,Matematicki fakultetPregled osnovnih tehnika testiranja — Seminarski rad uokviru kursa Metodologija strucnog i naucnog rada, LazarMrkela, Ivan Milic Matematicki fakultet

Milena Vujosevic Janicic Verifikacija softvera