41-60 Flashcards
Ukratko objasnite što je i kako se izvodi statička analiza programskog koda.
????
Ukratko objasnite heuristiku koja se primjenjuje kod testiranja jedinica koda.
- Unit testovi se kreiraju nakon što se završi dizajn objekta
– Black-box testiranje - test funkcionalnog modela
– White-box testiranje - test dinamičkog modela - Radi se razvoj testnih slučajeva – Cilj: Pronaći efektivan broj testnih slučajeva
- Radi se provjera testnih slučajeva s ciljem eliminiranja duplikata
- Provjera izvornog koda – Ponekad štedi vrijeme
- Radi se kreiranje testne cjeline
- Radi se opis testnog predviđanja – Često rezultat prvog uspješnog testiranja
- Izvode se testni slučajevi – Testiranje se provodi pri svakoj promijeni koda (“regresijsko
testiranje”) - Uspoređuju se rezultati testiranja s predviđenim rezultatima– Radi se automatizacija
ukoliko je moguća.
Objasnite postupak izmjene programskog koda (refactoring), te njegovu povezanost
s testiranjem jedinica koda.
Refactoring (refaktoriranje) je proces inkrementalnog poboljšanja postojećeg koda jer se
smatra da se iz prvog pokušaja ne može napravi najbolje rješenje.
Sloboda u refektoriranju u prvom redu omogućena je unit testingom s kojim treba početi što
prije tako da se svakom promjenom mogla pronaći pogreška.
Pošto je refaktoriranje proces poboljšanja dizajna postojećeg koda nakon što je već napisan,
to isto tako podrazumijeva promijene kao što je promjena naziva varijabli s ciljem povećanja
jasnoće, te arhitekturalne promijene odvajanja logike korisničkog sučelja od domenske logike
ako su preblisko povezani.
Objasnite što je AAA (Arrange, Act, Assert) uzorak testiranja jedinica koda i na
kratkom primjeru objasnite provedbu takvog testiranja.
Dijelovi unit testa koji čine AAA uzorak su:
- dogovaranje preduvjeta testa (arrange)
- izvođenje djelovanja koji se ispituje (act)
- utvrđivanje da se očekivano ponašanje dogodilo (assert)
Unit test po takvom uzorku može čitati bilo tko, te se često naziva i Given, When,
Then. Given some preconditions, When the target of the test is executed, Then some
expected behavior should have occurred
Objasnite na primjeru provedbu razvoja pokretanog testiranjem (Red, Green,
Refactor) kroz testiranje jedinica koda.
??
Navedite najčešće zahvate izmjene programskog koda (refactoringa)
Ukoliko je kod napisan usporedno s unit testovima, ti testovi će uvelike pomoći da promjene
ne utječu na određeno ponašanje, pa će promjene utjecati na uređenost koda, a ne na
ponašanje. Bez unit testova ne bismo znali da je poremećeno ponašanje čak možda dok
rješenje ne bude implementirano.
Pošto je refaktoriranje proces poboljšanja dizajna postojećeg koda nakon što je već napisan,
to isto tako podrazumijeva promijene kao što je promjena naziva varijabli s ciljem povećanja
jasnoće, te arhitekturalne promijene odvajanja logike korisničkog sučelja od domenske logike
ako su preblisko povezani.
Objasnite što je, navedite obilježja i oblike provedbe testiranja prenosivosti
programske podrške (portability testing).
Testiranje prenosivosti programske podrške omogućava jednostavnost prelaska proizvoda sa
jednog operacijskog sustava, hardware-a ili platforme na drugi operacijski sustav, hardware
ili platformu.
Objasnite testiranje kompatibilnosti (backward compatibility testing).
Test kompatibilnosti testira novu verziju proizvoda i provjerava podržava li ta verzija rad sa
starom verzijom proizvoda. Primjer Word 2010 dokument, radi li u Word-u 2016.
Objasnite pojam comparison testing, te navedite i objasnite dva tipa takvog testiranja
Comparison testing je usporedba proizvoda sa njegovom prethodnom verzijom i/ili sličnim
proizvodom. Postoje dva tipa comparison testiranja, direktna usporedba(direct comparison)
i objektivna usporedba(objective comparison). Direktna usporedba testira više proizvoda u
isto vrijeme, dok objektivna usporedba testira jedan po jedan proizvod.
Objasnite testiranje usklađenosti (compliance testing).
Testiranje usklađenosti se sastoji od testiranja internih odnosno unutarnjih i eksternih
odnosno vanjskih standarda proizvoda. Interni standardi su standardi koje postavlja sama
kompanija, dok su eksterni standardi “industrijski” standardni kao ISO standard.
Objasnite pojam gorilla testing.
Gorilla testiranje je temeljito testiranje jednog zasebno dijela(modula ili funkcionalnosti)
proizvoda od strane developera ili testera, gdje je cilj testiranja provjeravanje robusnosti
proizvoda. Testovi se mogu ponavljati kako bi se uvjerilo da ne postoje bug-ovi unutar samog
proizvoda. Ovo testiranje se još naziva i “Frustrating Testing”.
Objasnite mutacijsko testiranje (mutation testing).
To je tip white-box testiranja kod kojeg se modificira mali dio programskog koda koji se
nakon modifikacije naziva mutacija. Mutacijsko testiranje koristi se za potvrdu unit testova.
Ukoliko je unit test dobar on će otkriti svaku mutaciju i pasti testiranje. S druge strane
ukoliko je unit test loš, on će ignorirati mutaciju, te će taj test proći.
Objasnite pojam recovery testing.
Recovery testing služi za određivanje stabilnosti i nastavka rada sustava nakon što se dogodi
pad sustava ili katastrofa. Na primjer, program prima informacije preko ethernet kabela i
dolazi do od spajanja kabela, program bi trebao nastaviti gdje je stao prije odspajanja.
Objasnite pojam sanity testing.
Sanity testing je testiranje nove verzije programa kod koje se odlučuje je li nova verzija
programa dovoljno dobra kako bi se kreiralo opširno testiranje.
Objasnite pojam smoke testing.
Smoke testing je testiranje koje služi za potvrdu rada najvažnijih funkcionalnosti proizvoda.
Kod ovakvog testiranja se odlučuje je li build stabilan za nastavak testiranja.