Lekcija 12 Flashcards
12.1. Šta je testiranje softvera? Koji su ciljevi testiranja? Nacrtajte model testiranja. Šta pokazuje testiranje softvera? Koja je razlika između verifikacije i validacije softvera? Zašto služe verifikacija i validacija?
- Testiranje služi da se proveri da li program radi I da se otkriju neke greške u programu pre nego što se pusti u upotrebu. Testiranje ima 2 cilja:
- Da pokaže inženjeru I kupcu da program radi
- Da otkrije situacije u kojima program ima greške
- Validacija – potvrđivanje ispravnosti – da li smo razvili ispravan proizvod
- Verifikacija – provera – da li razvijamo proizvod na ispravan način
- Cilj verifikacije je da proveri da li rade svi funkcionalni I nefukcionalni
zahtevi, dok je cilj valdiacije da potvrdi da softver zadovoljava očekivanja kupca
12.2. Koji faktori utiču na nivo poverenja korisnika u softver? Šta je inspekcija i recenzija softvera? Koje su prednosti inspekcije u odnosu na testiranje softvera?
- Svrha softvera
- Očekivanja korisnika
- Tržišno okruženje
- Inspekcija I recenzija proveravaju sistemske zahteve korisnika I ispravnost koda.
Prednosti su to što softver ne mora da radi da bi se izvršila inspekcija I bolje otkriva greške
12.3. Nacrtajte model tradicionalnog procesa testiranja softvera. Objasnite svaku fazu procesa testiranja. Koja je razlika ručnog i automatskog testiranja? Objasnite zašto testiranje može samo da utvrdi prisustvo grešaka, a ne i njihovo odsustvo
Crtanje lmao
12.4. Šta je razvojno testiranje softvera? Koji nivoi (granulacije) testiranja u razvoju se koriste? Dajte kratak opis svakog nivoa testiranja softvera u fazi razvoja.
- Razvojno testiranje predstavlja sva testiranja koje rade članovi razvojnog tima. To su - Jedinično testiranje (jedinice program ili klase objekata)
- Testiranje komponenata (integrisanje vie jedinica čine komponentu)
- Testiranje sistema (kada se neke ili sve komponente spoje I testiraju)
12.5. Testiranje jedinice: Šta je to? Šta je testiranje klase, šta obuhvata? Kako se testiraju operacije klasa u njihovoj hijerarhiji, tj. da li se ista operacija klase mora da testira i u njenoj pod- klasi ? Kako se biraju slučajevi za testiranje jedinica? Koje se strategije testiranja mogu izabrati? Opišite svaku od njih. Šta je regresiono testiranje? Objasnite kako upotreba automatskih testova i platforme za testiranje, kao što je Junit, uprošćavaju regresiono testiranje?
- Testiranje osnovnih softverskih jedinica (metode ili klase). Metoda se
testira tako što se menjaju ulazni parametri, a klasa tako što se testiraju
sva svojstva koja ona sadrži (operacije, atribute, stanja objekata) I u
svakoj podklasi ukoliko postoje. - Slučajevi za testiranje su normalni (bez greške) I nenormalni ( koji mogu imati grešku). Strategije testiranja mogu biti:
- Testiranje particija (grupe koje trebaju da imaju slični izlaz)
- Testiranje zasnovano na smernicama (rezultat predhodnih grešaka)
- Regresivno testiranje predstavlja ponavljanje starog testa na novi kod
kako bi proverili da li izbacuje neku novu grešku.
12.6. Testiranje komponenata: Šta se testira kod softverskih komponenti? Koji tipovi grešaka se mogu javiti kod testiranja interfejsa? Koje kategorije grešaka postoje kod interfejsa? Koja su opšta pravila za testiranje komponenata?
- Testira se interfejs komponente. Greške koje se mogu javiti su:
- Loše korišćenje interfejsa
- Nerazumevanje interfejsa
- Vremenske greške
- Opšta pravila za testiranje su:
- Ispitajte kod I proverite kako radi ako su mu parametri ekstremne
vrednosti - Proverite interfejs sa “null” pokazivačima
- Projektujte testove da prouzrokuju komponentu da padne
- Generisanje test sa mnogo više poruka nego što će ih biti u praksi
- Ako komponente komuniciraju, napravite testove koje menjaju
redosled njihove komunikacije
12.7. Testiranje sistema: Šta obuhvata testiranje sistema? Koja je razlika testiranja sistema i testiranje komponenti? Šta se očekuje of testiranja sistema? Šta je testiranje slučajeva korišćenja? Kako odrediti slučajeve korišćenja za testiranje? Koja svojstva sistema se testiraju? Da li se vrši i automatizovani testiranje sistema?
- Proverava da li komponente rade dobro zajedno. Testiranje nekog slučaja koji prolazi kroz više komponenata I vraća informaciju korisniku. Oni se definišu u skladu sa specifikacijom komponenti I iskustvom upotrebe sistema.
Svojstva za testiranje:
- Funkcije kojima se pristupa iz menija
- Kombinacija funkcija kojima se pristupa iz menija
- Tamo gde ima unosa korisnika, testirati tačne I netačne ulaze
- Može se testirati I automatizovano, pri čemu se unosi i predviđeni rezulat
12.8. Šta je razvoj vođen testovima? Dajte grafički prikaz procesa testiranja funkcije softvera u fazi razvoja. Kako se vrši automatsko testiranje inkremenata sa JUnit? Koje povoljnosti nudi razvoj softvera koji je vođen testovima? Koji su problemi ručnog testiranja? Koje su prednosti automatskog testiranja? Kada se koristi razvoj softvera vođen testovima? Šta treba da odredi testiranje sistema? Kada se postižu najbolji rezultati primene razvoja vođenog testovima?
- Predstavlja pristup razvoju programa u kome se vrši I razvoj koda I
njegovo testiranje istovremeno.
Povoljnosti koje nudi su:
- Pokrivanje koda (rani test koji na početku otkriva defekte koda)
- Regresiono testiranje (paralelno razvijanje testova I koda)
- Uporšćeno uklanjanje grešaka (prikazuje grešku ako test nije
prošao) - Dokumentacija sistema (ovi testovi predstavljaju jedan oblik
dokumetacije)
Najčešće se koristi za razvoj novog softvera.
12.9. Napišite scenario koji bi mogao da se upotrebi za projektovanje testova za stanicu za prikupljanje podataka o vremenskim prilikama.
To je proces testiranja određene verzije sistema koji se koristi van rada
projektnog tima. Cilj je da se proizvođač softvera uveri da je sistem dobar za upotrebu. On mora da ima ranije definisanu funkcionalnost, zavisnosti I da konstantno radi prilikom norlamnog korišćenja. Treba izvršiti sa sve testCase-ove I ponoviti ukoliko oni javalju grešku.
12.10.Testiranje softvera za isporuku: Šta je to? Ko vrši testiranje sistema spremnog za isporuku? Zašto? Šta je cilj testiranja softvera za isporuku. Kako se vrši testiranje sistema za isporuku? Koliko testova je potrebno izvršiti?
- To je testiranje koje vrši kupac. Potrebno je da bi se kupac uverio da
softver radi dobro. - Alfa testiranje - korisnici I razovjni tim rade zajedno na testiranju softvera
- Beta - kada imamo radnu verziju softvera koju testiraju pojedini korisnici
- Test prihvatanja - kada kupci testiraju sistem da vide da li je on spreman za korisćenje
- Test prihvatanja pri ovoj metodi nema posebne aktivnosti, zato što su
korisnici radili sve vreme zajedno sa razvojnim timom. Rizik testa
prihvatanja je u slučaju da test nije tipičan I ne izražava sve potrebe
korisnika.