1-20 Flashcards

1
Q

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.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Navedite i ukratko objasnite tehnike rukovanja pogreškama u programskom
inženjerstvu.

A
  1. Izbjegavanje pogrešaka – ova metoda se koristi kada pogreške ne čine preveliku
    štetu, a mi ne možemo utjecati na njih
  2. 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)
  3. 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Opišite kako se može definirati kvaliteta programske podrške.

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

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

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ukratko objasnite glavna načela testiranja programske podrške.

A
  1. Iscrpno ispitivanje nije moguće - umjesto iscrpnog testiranja potrebna je optimalna
    aktivnost testiranja na temelju procjene rizika aplikacije
  2. 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
  3. 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
  4. Testiranjem dokazujemo postojanost grešaka - testiranjem smanjujemo vjerojatnost
    neotkrivenih nedostataka koji se nalaze unutar programa
  5. 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
  6. Testiranje u ranoj fazi – primjenjuje se radi poboljšanja projekta prije samog pisanja
    koda kako bi se izbjegle moguće greške
  7. 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Objasnite što je verificiranje, a što validiranje, te ih međusobno usporedite.

A

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?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Ukratko objasnite što su osiguranje kvalitete, kontrola kvalitete i testiranje programske
podrške.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Navedite i ukratko objasnite aktivnosti procesa testiranja uključujući završetak
testiranja i prateće aktivnosti.

A
  1. 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
  2. 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
  3. Implementiranje i izvršavanje testova
    - predstavlja proces primjene određenih testnih slučajeva i procedura u skladu s
    planom i dizajnom
  4. 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.
  5. 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.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Opišite što čini dokumentaciju procesa testiranja programske podrške i koja su glavna
obilježja dobro testnog slučaja.

A

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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Navedite i ukratko opišite elemente testnog plana.

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

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.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Navedite koje glavne faze uključuje životni ciklus razvoja programske podrške, koji
glavni modeli razvoja postoje.

A

Ž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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Objasnite gdje se u životnom ciklusu razvoja programske podrške nalaze osiguranje
kvalitete i testiranje, te što obuhvaća specificiranje zahtjeva.

A

Ž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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Skicirajte i ukratko objasnite testiranje modelom vodopada.

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Skicirajte i ukratko objasnite testiranje V modelom.

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Skicirajte i ukratko objasnite iterativni i rapidni ciklus razvoja i testiranje.

A

Kod iterativnog ili inkrementalnog ciklusa razvoja ciklus se sastoji od brojnih malih
inkrementalnih faza projekta koji mogu biti iterativni na razne načine, a služe
dodavanju novih funkcionalnosti.
Najčešće se povodi jedinično, regresijsko i integracijsko testiranje, no i razni drugi
testovi uz opterećenja prilagođena potrebama testiranja.

Kod RapidAppDevelopment-a imamo paralelni razvoj komponenata u okviru mini
projekata koji su i pojedinačno vidljivi, pa omogućuju reagiranje klijenta, te nakon
toga slijedi integracija.

17
Q

Skicirajte i ukratko objasnite testiranje kroz agilni razvoj.

A

Kod agilnog razvoja se testiranje se precizno definiraju potrebne faze i aktivnosti.
Testne aktivnosti se obavljaju konstantno, te ne postoji trenutak početka testiranja jer
se analiza zahtijeva i testiranje vrše paralelno s razvojem.
Prilikom početka svake faze, prije implementacije se proučavaju zahtjevi. Tijekom
faze implementacije zahtjeva, paralelno se vrši kreiranje testova, te se cijeli proces
prilagođava i po potrebi modificira prema promjenama koje će se dogoditi tijekom
izrade projekta. Ovim putem se promiče stvaranje poslovnih ideja koje definiraju
funkcionalnosti.

18
Q

Navedite i ukratko objasnite najznačajnije standarde testiranja programske podrške s
naglaskom na ISO/IEC/IEEE 29119.

A

Ne znam

19
Q

Objasnite razliku između razina testiranja (testing levels), vrsta testiranja (testing
types) i metoda testiranja (testing methods).

A

Razine testiranja- funkcionalno i nefunkconalno testiranje

Vrste testiranja- automatizirano, ručno, istraživačko i regresijsko.

Metode testiranja - gray-box, white-box i black-box

20
Q

Navedite glavne tipove testiranja programske podrške.

A

Ručno, automatizirano, istraživačko, regresijsko….