06.1. - Testiranje softvera Flashcards
(24 cards)
zašto se provodi testiranje softvera
testiranje se provodi da bi se pokazalo da program obavlja traženu funkcionalnost i da bi se otkrili nedostaci prije samog početka korištenja programa
što mogu detektirati rezultati testnog izvršavanja programa
- greške u radu
- neočekivane vrijednosti obrada
- informacije o nefunkcionalnim svojstvima programa
koji su ciljevi testiranja
- pokazati razvojnom timu i naručitelju da softver udovoljava specifikacijama
- utvrditi situacije u kojima ponašanje sustava nije ispravno, nepoželjno je ili ne udovoljava traženim specifikacijama
zašto je softver bolje testirati ranije, a zašto kasnije
ranije:
- pogreške se pronalaze u ranijim fazama razvoja programa
- ispravljanje pogrešaka jeftinije
kasnije:
- ušteda vremena i napora
- razviti softver što brže
- testiranje u svim kasnijim fazama (troškovi permanentnog testiranja manji od troškova ispravljanja pogrešaka pri kasnijem testiranju)
što uključuju troškovi procesa testiranja
- pripremanje za testiranje
- sređivanje test podataka
- pripremanje samih testova
- izvođenje testova
- postupci ispravljanja svih vrsta pogrešaka
- ponovno testiranje promijenjenog dijela softvera
- ponovno testiranje cjelokupnog softvera
na koji se način organizira testiranje
- testirati najkritičniji dio sustava (u vidu korisnika)
- testirati najteži i najkompleksniji dio sustava (u vidu programiranja)
- softver koji je “težak” za korištenje pogodan je za pojavu “ljudske greške”
- softvere koji najmanje izgleda da bi mogao sadržavati pogreške, uglavnom je pogodan pogreškama
navedi dva načina testiranja
- alfa testiranje - provodi ga stvarni korisnik kod projektanta
- beta testiranje - provodi ga korisnik u svom okruženju
navedi dvije osnovne razine testiranja
- testiranje komponenti - odnosi se na testiranje funkcionalnosti komponenti
- integracijsko testiranje - testiranje se fokusira na interakciju između komponenti te na funkcionalnost i izvođenje sustava kao cjeline
objasni testne podatke i testne slučajeve
testni podaci - ulazi koji su izmišljeni kako bi se testirao sustav
testni slučajevi - ulazi koji testiraju sustav i predviđeni izlazi temeljeni na tim ulazima ako sustav funkcionira u skladu sa specifikacijom
navedi tipove testiranja komponenti
- testiranje crne kutije
- testiranje ekvivalentnim paritetom
- testiranje bijele kutije
- testiranje staza
objasni testiranje crne kutije
- program se smatra crnom kutijom
- testni slučajevi temelje se na specifikaciji sustava
- ponašanje sustava može se odrediti proučavajući ulaze i s njima povezane izlaze
- tester je usredotočen na funkcionalnost, ne na implementaciju sustava
- naziva se i funkcionalno testiranje
objasni testiranje ekvivalentnim paritetom
- ulazni podaci i izlazni rezultati često pripadaju u različite klase gdje su svi članovi srodne klase (pozitivni brojevi, negativni brojevi…)
- svaka od ovih klasa je jedna ekvivalentna particija gdje se program ponaša na jednak (ekvivalentni) način za svakog člana klase
- testni slučaj treba odabrati iz svake particije
objasni testiranje bijele kutije
- testovi proizlaze iz poznavanja strukture sustava i implementacije
- stvaranje testnih slučajeva u skladu sa strukturom programa
- cilj: ispitati sve naredbe programa (ne sve staze)
- naziva se i strukturalno testiranje
objasni testiranje staza
- cilj je osigurati da se nizom naredbi testnih slučajeva može ispitati svaka staza u programu najmanje jedanput
- polazište - dijagram toka programa koji pokazuje čvorove (mjesta odluke) i lukove (kontrolni tokovi)
što je dijagram toka programa
- opisuje kontrolu toka programa
- svaka grana prikazana je kao odvojena staza, a petlje su prikazane strelicom koja pokazuje povrat u čvor uvjeta
- koristi se pri izračunavanju kompleksnosti ciklusa
navedi tipove integracijskog testiranja
- top-down testiranje
- bottom-up testiranje
- testiranje sučelja
- “stres”testiranje
- objektno-orijentirano testiranje (Testiranje scenarijem)
- radionica za testiranje
objasni integracijsko testiranje
- testovi cijelog sustava ili podsustava sastoje se od integriranih komponenti
- može biti kao test crne kutije s testovima sastavljenim prema specifikaciji
- glavna poteškoća - lokaliziranje pogrešaka otkrivenih prilikom testiranja
- korak po korak smanjuje problem lokaliziranja pogrešaka
objasni top-down testiranje
koristi improvizirane elemente na nižim razinama (izmišljene podatke koje u konačnom sustavu dostavljaju moduli nižih razina (stubs)
objasni bottom-up testiranje
koristi improvizirane upravljačke programe koji simuliraju pozive modulima koje se testiraju na nižoj razini (drivers)
objasni testiranje sučelja
- provodi se tek kad su moduli ili podsustavi integrirani u veći sustav
- svaki modul ima različito sučelje preko kojeg se taj modul poziva od strane drugih komponenti
- ciljevi: otkriti mane vezane uz pogreške sučelja i pogrešne pretpostavke o radu sučelja
objasni “stresno” testiranje
- primjenjuje se pri potpuno integriranom sustavu
- dvije funkcije:
1. ispitati krajnje granice sustava uz maksimalno opterećenje - mogu se otkriti prikrivene manjkavosti
2. ispitati ponašanje sustava - provjerava se neprihvatljiv gubitak aktivnosti ili podataka - vrlo značajan oblik testiranja za distribuirane sustave
objasni objektno-orijentirano testiranje
- podržava i testiranje komponenti i integracijsko testiranje
- problemi:
-> objekti kao zasebne komponente često veći od pojedinih funkcija
-> objekti integrirani u podsustave su slabo povezani
-> ponovno upotrijebljeni objekti - nema pristupa izvornom kodu
objasni testiranje temeljeno na scenariju
- najučinkovitiji pristup
- identificirati scenario iz use-cases i zamijeniti ga dijagramom slijeda (prikazuju se objekti uključeni u scenario)
objasni radionice za testiranje
- testiranje - skupa faza (laboratorijska faza)
- primjenjuju se razni alati kako bi se smanjilo vrijeme i troškovi testiranja