41-60 Flashcards

1
Q

Ukratko objasnite što je i kako se izvodi statička analiza programskog koda.

A

????

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

Ukratko objasnite heuristiku koja se primjenjuje kod testiranja jedinica koda.

A
  1. Unit testovi se kreiraju nakon što se završi dizajn objekta
    – Black-box testiranje - test funkcionalnog modela
    – White-box testiranje - test dinamičkog modela
  2. Radi se razvoj testnih slučajeva – Cilj: Pronaći efektivan broj testnih slučajeva
  3. Radi se provjera testnih slučajeva s ciljem eliminiranja duplikata
  4. Provjera izvornog koda – Ponekad štedi vrijeme
  5. Radi se kreiranje testne cjeline
  6. Radi se opis testnog predviđanja – Često rezultat prvog uspješnog testiranja
  7. Izvode se testni slučajevi – Testiranje se provodi pri svakoj promijeni koda (“regresijsko
    testiranje”)
  8. Uspoređuju se rezultati testiranja s predviđenim rezultatima– Radi se automatizacija
    ukoliko je moguća.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Objasnite postupak izmjene programskog koda (refactoring), te njegovu povezanost
s testiranjem jedinica koda.

A

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.

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

Objasnite što je AAA (Arrange, Act, Assert) uzorak testiranja jedinica koda i na
kratkom primjeru objasnite provedbu takvog testiranja.

A

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

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

Objasnite na primjeru provedbu razvoja pokretanog testiranjem (Red, Green,
Refactor) kroz testiranje jedinica koda.

A

??

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

Navedite najčešće zahvate izmjene programskog koda (refactoringa)

A

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.

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

Objasnite što je, navedite obilježja i oblike provedbe testiranja prenosivosti
programske podrške (portability testing).

A

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.

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

Objasnite testiranje kompatibilnosti (backward compatibility testing).

A

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.

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

Objasnite pojam comparison testing, te navedite i objasnite dva tipa takvog testiranja

A

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.

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

Objasnite testiranje usklađenosti (compliance testing).

A

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.

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

Objasnite pojam gorilla testing.

A

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”.

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

Objasnite mutacijsko testiranje (mutation testing).

A

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.

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

Objasnite pojam recovery testing.

A

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.

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

Objasnite pojam sanity testing.

A

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.

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

Objasnite pojam smoke testing.

A

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.

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

Ukratko objasnite pojmove: JSON. REST, REST web-usluga, REST API.

A

JSON - JavaScript Object Notation - format koji se koristi za serijalizaciju i prijenos
strukturiranih podataka

REST - Representational State Transfer - programska arhitektura korištena za projektiranje
web aplikacija

REST web-usluga - koristi se za kreiranje REST API servisa

REST API - Representational State Transfer Application Programming Interface –
predstavlja skup funkcija i pravila koji omogućuju komunikaciju između sustava, aplikacija i
servisa korištenjem REST arhitekture

17
Q

Objasnite što, kada i kako se testira automatiziranim testiranjem programskog koda.

A

Tester piše skripte i koristi druge programe za automatizirano testiranje programskog
proizvoda, pa testovi moraju biti detaljno opisani testnim slučajevima i procedurama.

Automatsko testiranje koristi se za testiranje aplikacije s gledišta opterećenja, performansi,
preopterećenja.
To povećava pokrivenost testom, točnost, te štedi vrijeme i novac.

Alati za
automatizirano testiranje mogu:
1. Sami generirati skripte (prolazi se kroz scenarije testa, alat snima izvršene
akcije, a od svih snimljenih akcija kreira se skripta)

  1. Pomagati u pisanju skripti (samostalno se pišu skripte za testiranje koje su
    kopija koraka test procedura)
18
Q

Navedite najznačajnije alate za automatizirano testiranje programskog koda.

A

IntelliJ IDEA, Selenium WebDriver, Appium, TestNG.

19
Q

Objasnite što je, od čega se sastoji i kako se koristi testni okvir alata Selenium, te što
je i kako radi Selenium WebDriver.

A

Selenium framework se sastoji od Selenium IDE-a, Selenium client API-a, Selenium
WebDriver-a, Selenium Remote Control-a i Selenium Grid-a.
Selenium WebDriver je skup API-a/biblioteka za automatizaciju pretraživanja. Koristi se za
automatizaciju testova web aplikacija. Radi na principu pristupa Selenium lokatorima.

20
Q

Nabrojite tipove Selenium lokatora, te navedite koji se od njih najčešće koristi i zašto.

A

Postoji 8 tipova lokatora; Identifier, ID, Name, Link, DOM, XPath, CSS, UI-element.
Najčešće se koriste XPath i ID, ID radi jedinstvenosti, a XPath radi preciznosti.
(internet kaže css najjači, ali smo radili xpath i id)