1-20 Flashcards
Objasnite pojmove i navedite primjere za pojmove pogreška, greška, kvar i incident u
programskom inženjerstvu i povežite ih s definiranjem zahtjeva.
Pogreška - čini osoba, te pogrešku predstavlja loša ideja ili akcija
Greška - čini sustav, te ona predstavlja loš dizajn, stanje, nedostatak unutar aplikacije
Kvar - nastaje tijekom rada sustava, odnosno predstavlja pogrešno ponašanje, loše
funkcioniranje ili rezultat greške
Incident – predstavlja vidljivi učinak kvara u sustavu
Navedite i ukratko objasnite tehnike rukovanja pogreškama u programskom
inženjerstvu.
- Izbjegavanje pogrešaka – ova metoda se koristi kada pogreške ne čine preveliku
štetu, a mi ne možemo utjecati na njih - Detekcija pogrešaka – detekcija pogrešaka predstavlja testiranje i otklanjanje
pogrešaka pomoću Unit, Integration i System testing-a (testiranja). Nakon napisanog
koda, dolazi do testiranja pomoću kojeg se detektiraju pogreške koje se nakon toga
ispravljaju kako bi aplikacija tj. Projekt bili što bolji (kako bi što bolje radili) - Tolerancija pogreške – tolerancija pogreške se odnosi na one pogreške na koje
možemo utjecati ali one ne prave veliku štetu pa ih možemo tolerirati.
Opišite kako se može definirati kvaliteta programske podrške.
Kvaliteta programske podrške se može definirati pomoću:
- kompatibilnost sa zahtjevima i potrebama korisnika
- dobre karakteristike proizvoda kao što su brzina rada, malo zauzeće memorije
i brzina pokretanja
- lakoća održavanja i promjena u programu
- kvalitetne dokumentacije, zahtjeva i dizajna
- kompatibilnost sa standardima odnosno usklađenost s ISO standardima
- rad u ekstremnim uvjetima (npr. ne stabilna internetska veza)
Objasnite što je testiranje programske podrške, koji su glavni ciljevi testiranja, u kojim
se fazama razvoja programa može obavljati i kada završava
Testiranje programske podrške je postupak vrednovanja sustava ili njegove
komponente s ciljem utvrđivanja zadovoljavaju li se ili ne zadovoljavaju navedeni
zahtjevi. To je u biti postupak usporedbe produkta sa zadanim funkcionalnim
specifikacijama.
Glavni ciljevi testiranja programske podrške su:
- poboljšanje kvalitete
- verifikacija i validacija
- procjena pozdanosti
Vrijeme testiranja programske podrške:
1. Tijekom faze prikupljanja zahtjeva, analize i verificiranja zahtjeva
2. Tijekom dizajniranja s namjerom unapređenja samog dizajna (Usability
test)
3. Prilikom testiranja od strane programera
4. Prilikom testiranja nakon napisanog koda (od strane testera)
Testiranje je neprekidan proces, ali završava odlukom uprave i dogovorom tima koji
radi na projektu.
Ukratko objasnite glavna načela testiranja programske podrške.
- Iscrpno ispitivanje nije moguće - umjesto iscrpnog testiranja potrebna je optimalna
aktivnost testiranja na temelju procjene rizika aplikacije - Testiranje povezanih grešaka – tu zbog jedne pogreške nastane još više pogrešaka, a
nakon što se glavna pogreška ispravi i ostale pogrešku nestanu - Pesticide paradox - ukoliko se provede isti niz ponovljenih testova, metoda neće biti
korisna za otkivanje novih nedostataka, te se testni slučajevi trebaju redovito
pregledavati, dorađivati i dodavati - Testiranjem dokazujemo postojanost grešaka - testiranjem smanjujemo vjerojatnost
neotkrivenih nedostataka koji se nalaze unutar programa - Zabluda nepostojanja grešaka – nemoguće je pronaći sve pogreške, jer one ovise i o
radu sustava na koje osoba ne može utjecati - Testiranje u ranoj fazi – primjenjuje se radi poboljšanja projekta prije samog pisanja
koda kako bi se izbjegle moguće greške - Testiranje ovisi o vrsti projekta - pristup testiranja ovisi o vrsti projekta. Pošto je svaki
projekt zaseban, tako će i svaki pristup testiranju biti zasebno
Objasnite što je verificiranje, a što validiranje, te ih međusobno usporedite.
Verificiranje je proces provjere ili procjene programskog proizvoda i pripadajuće
dokumentacije kako bi se provjerila ispunjenost zahtjeva i/ili uvjeta zadanih na samom
početku određene razvojne faze
Validacija je proces provjere ili procjene programskog proizvoda i pripadajuće
dokumentacije kako bi se ustanovilo jesu li ispunjeni navedeni specifični zahtjevi
Prilikom verificiranja pitamo se: Pravimo li neki proizvod pravilno?, dok se prilikom
validacije pitamo: Izrađujemo li pravi proizvod?
Ukratko objasnite što su osiguranje kvalitete, kontrola kvalitete i testiranje programske
podrške.
Osiguranje kvalitete je osiguranje koje se odnosi na djelatnosti koje osiguravaju
pravilnu implementaciju procesa, procedure i standarda, te osigurava kvalitetu
software-a koji zadovoljava sve tražene zahtjeve. Isto tako osiguranje kvalitete je
fokusirano na proces i procedure testiranja, a ne samo na provođenje testiranja.
Kontrola kvalitete predstavlja djelatnosti koje osiguravaju pravilno pisanje
dokumentacije i definiranje zahtijeva, te pregled i osiguranje da ne nastanka grešaka.
Testiranje predstavlja aktivnost koja osigurava identifikaciju grešaka koje su nastale
unutar programa
Navedite i ukratko objasnite aktivnosti procesa testiranja uključujući završetak
testiranja i prateće aktivnosti.
- Planiranje i nadziranje testiranja
- tu se definiraju vrste testova koje će se provesti, metode i strategije testiranja, kao i
kriterij završetka testiranja
- tu kao rezultat imamo skup dokumenata koji predstavljaju općeniti pogled na sustav
i aktivnosti koje će biti provedene, te strategije i alate koji će se koristiti
- planiranje se provodi tijekom cijelog projekta - Analiza i dizajn testova
- cijeli sustav se analizira, te se identificiraju problemi koji će se testirati. Ovdje kao
rezultat imamo skup testnih slučajeva i procedura.
- obuhvaćene aktivnosti su:
- analiza korisničkih zahtjeva
- validacija korisničkih zahtjeva i specifikacija
- specifikacija dizajna testova - Implementiranje i izvršavanje testova
- predstavlja proces primjene određenih testnih slučajeva i procedura u skladu s
planom i dizajnom - Prijava i rješavanje problema prije završetka testiranja
- prate se statusi problema i testnih slučajeva, te se rade procjene potreba za dodatnim
testovima. Na samom kraju se rade izvještaji s opisanim procesima testiranja. - Završetak testiranja
- Prilikom završetka testiranja prikupljaju se podaci o svim testnim aktivnostima kako
bi se moglo napraviti zaključivanje testiranja, alata, te analiza činjenica i brojeva
- Isto tako provjerava se što je od zahtjeva isporučeno, te jesu li obrađene sve greške
- Na samom kraju se završava i arhivira testware odnosno skripte i testne okoline
kako bi se mogli upotrijebiti u budućnost.
Opišite što čini dokumentaciju procesa testiranja programske podrške i koja su glavna
obilježja dobro testnog slučaja.
Dokumentaciju procesa testiranja programske podrške čine plan testiranja, scenariji
testiranja, testni slučajevi i matrica izvedivosti.
Plan testiranja se odnosi na strategiju testiranja, potrebne resurse, testne okoline,
ograničenja i raspored aktivnosti. Tu se rade pretpostavke testiranja, liste testnih
slučajeva, te pristupi testiranju
Scenariji testiranja predstavlja dio aplikacije koji se testira
Testni slučajevi predstavljaju skup koraka, uvjeta i ulaza koji su korišteni prilikom
testiranja.
Matrica izvedivosti pomaže praćenju ispunjavanja zahtjeva, pronalaženju uzroka pogrešaka, praćenju dokumentacije.
Glavna obilježja dobrog testnog slučaja su da je:
- učinkovit – dobro pronalazi pogreške
- primjeran - predstavlja i druge (što god to značilo -.-“)
- razvojan - jednostavan za održavanje
- ekonomičan - jeftin odnosno isplativ
Navedite i ukratko opišite elemente testnog plana.
Elementi testnog plana su:
- Podatci o testnoj okolini -
- Vrste testova
- Testni slučajevi
- Lista funkcionalnosti
- Mogući rizici
Pokazuje strategiju po kojoj će se testovi izvršiti;
podatke o test okolini ,raspored testiranja(po prioritetima),
vrsti testova(koje testove ćemo provesti(usability test,performance test, smoke test,…),
testne slučajeve(koraci po kojima ćemo testirat),
listi funkcionalnosti(opis što i kako treba raditi) i
rizicima(što se može dogoditi)
Objasnite što je izvješće o greškama u testiranju programske podrške, kako se ono
piše i što čini životni ciklus prijavljene greške.
Izvješće o greškama u testiranju programske podrške ili bug report predstavlja
dokument u kojem se nalazi opis svake pogreške(buga) koja se je pojavila unutar
aplikacije, na kojoj verziji se pojavila i što je napravljeno kada se je pojavila tj. na koji
način je izazvana.
Način na koji se piše bug report je taj da opišemo aplikaciju, odnosno
funkcionalnosti koje trebaju biti omogućene u aplikaciji (a nisu radi pogreške
odnosno buga), o kojoj pogreški (o kojim pogreškama) se radi i na kojim verzijama
aplikacije se pogreška javlja, analiza zahtijeva i što je potrebno ispraviti na aplikaciji,
te što aplikacija trenutno može odraditi.
Navedite koje glavne faze uključuje životni ciklus razvoja programske podrške, koji
glavni modeli razvoja postoje.
Životni ciklus razvoja programske podrške uključuje analizu zahtjeva, dizajn
rješenja, programiranje, testiranje i puštanje proizvoda na korištenje.
Glavni modeli razvoja su:
- fazni model - aktivnosti razvoja dijele se u faze koje se izvršavaju
slijedno odnosno jedna nakon druge
- iterativni model – projekt se dijeli na manji broj perioda u kojima se vrše
aktivnosti razvoja
- agilni model – sličan iterativnom modelu, no na manje formalan način
kombinira aktivnosti razvoja programa
Objasnite gdje se u životnom ciklusu razvoja programske podrške nalaze osiguranje
kvalitete i testiranje, te što obuhvaća specificiranje zahtjeva.
Životni ciklus razvoja programske podrške uključuje analizu zahtjeva, dizajn
rješenja, programiranje, testiranje i puštanje proizvoda na korištenje. Nalazi se u svim
ciklusima jer je potrebno voditi dokumentaciju i provoditi testiranje u svakom dijelu
razvoja aplikacije.
Specificiranje zahtjeva obuhvaća detaljni opis svakog zahtjeva što klijent traži od
programera kako bi programer znao što točno treba napraviti, a tester što treba
testirati
Skicirajte i ukratko objasnite testiranje modelom vodopada.
Kod testiranja modelom vodopada svaka faza traje dok se ne završe aktivnosti u
okviru nje i tek se tad prelazi u sljedeću fazu (zahtjevi, dizajn, implementacija,
testiranje).
Prilikom testiranja radi se analiza funkcionalnih zahtjeva, definiraju se testni planovi,
program se testira, te se prijavljuju problemi. Osim testera uz njih sudjeluju i
programeri koji uklanjaju probleme koji se otkriju prilikom testiranja.
- prednost: definira se faza testiranja programa, što olakšava planiranje testova
- nedostatak: faze testiranja je u praksi dosta teško odvojiti, pa zna doći do
naknadnog otkrivanja grešaka i vraćanja u prethodne faze
Skicirajte i ukratko objasnite testiranje V modelom.
V model predstavlja modifikaciju vodopadnog modela u kojoj postoji odgovarajuća faza
testiranja za svaku fazu razvoja programa, a ispitivanje se vrši paralelno s razvojem. Nakon
svake faze, prije prelaska u sljedeću fazu razvoja se pravi plan provjere trenutne faze, te je
uvjet za prelazak u sljedeću fazu definiranje načina na koji će biti testirani rezultati prethodne
faze.