Professional Documents
Culture Documents
testiranje i strukturalno testiranje) testira unutrašnje strukture ili rad programa, za razliku od
funkcionalnosti izložene krajnjem korisniku
Black box - testiranje tretira softver kao "crnu kutiju", ispituje funkcionalnost bez ikakvog
znanja o unutrašnjoj implementaciji, bez uvida u izvorni kod. Testeri su svesni samo šta softver
treba da uradi, a ne kako to radi. Vršimo black box testiranje, znači da testiramo: Dinamički
Grey-box podrazumeva poznavanje internih struktura podataka i algoritama za potrebe
dizajniranja testova dok izvršava te testove na nivou korisnika ili na nivou crne kutije. Tester nije
obavezan da ima potpun pristup izvornom kodu softvera.
API testiranje - testiranje aplikacije pomoću javnih i privatnih API-ja (interfejs za
programiranje aplikacija
Unit Testing - testiranje jedinice se odnosi na testove koji potvrđuju funkcionalnost određenog
dela koda, obično na nivou funkcije
Testiranje integracije je bilo koja vrsta testiranja softvera koja pokušava proveriti interfejs
između komponenti, nasuprot dizajna softvera
Sistemski testovi testiraju potpuno integrisani sistem da bi se potvrdilo da sistem ispunjava sve
zahteve
Operativno prihvatanje se koristi za sprovođenje operativne spremnosti (pre-release)
proizvoda, usluge ili sistema kao delasistema za upravljanje kvalitetom . OAT je česta vrsta
nefunkcionalnog softverskog testiranja, koji se uglavnom koristi za razvoj softvera i projekte
održavanja softvera.
Automatski funkcionalni alati za testiranje grafičkog korisničkog interfejsa (GUI) koriste se za
ponavljanje testova na nivou sistema pomoću GUI-a.
Nefunkcionalno testiranje će odrediti ili se odnosi na:
tačku prekida
tačku u kojoj ekstremi skalabilnosti ili performansi dovode do nestabilnog izvršenja,
skalabilnost
UAT predstavlja: Testiranje softvera na hardveru i u prostorijama korisnika
Šta je QA :
predstavlja implementaciju politika i procedura namenjenih prevenciji defekata,
obuhvata aktivnosti implementacije procesa, procedura i standarda za verifikaciju softvera i
tražene zahteve
Unit testing, Integration testing, System testing, User acceptance testing se rade: Test-Case
slučajevi
Defekat :
Greška koju je pronašao tester zove se Defekt,
Defekt prihvaćen od strane razvojnog tima zove se Bug
Defect je razlika između očekivanih i stvarnih rezultati u kontekstu testiranja
Manuelno testiranje podrazumeva testiranje softvera ručno, manuelno, bez korišćenja
automatizovanog alata ili skripte, stoga predstavlja najprimitivniji način testiranja.
Alati za automatizaciju: Selenium, QTP, Jmeter, Loadrunner, TestLink, Quality Center...
Osnovni operatori
Liste reaguju na operacije + i * mnogo poput stringova. To znači i konkatenaciju i
ponavljanje, osim što je rezultat nova lista, a ne string
append() – dodaje prosleđeni objekat na postojeću listu, nema povratnu vrednost
count() – v raća broj koji ukazuje na to koliko puta se prosleđeni objekat ponavlja u listi
extend() – dodaje sadržaj neke sekvence na datu listu
insert() – ubacuje objekat u listu na datom indeksu
pop() – briše poslednji element iz liste ili neki drugi element sa zadatim indeksom
remove() – briše element sa zadatom vrednošću
reverse() – obrće redosled objekata u listi
sort() – sortira elemente liste
min() i max() – pronalazi najmanji (najveći) element liste
clear() – briše sve stavke iz rečnika
copy() – vraća plitku kopiju rečnika
items() – vraća listu key-value parova rečnika
keys() – vraća listu ključeva rečnika
values() – vraća listu vrednosti rečnika
len() – vraća ukupnu dužinu rečnika. Ovo je ekvivalentno broju stavki (key-value parova)
unutar rečnika
str() – obezbeđuje printabilnu verziju rečnika (konveruje u string)
Python pruža mnoge ugrađene funkcije kao što su print(), itd., Ali takođe moguće je kreirati
sopstvene funkcije. Ove funkcije se nazivaju korisničkim definisanim funkcijama.
Funkcija predstavlja blok koji grupiše skup naredbi tako da se taj blok može pokrenuti više puta
u programu - u upakovanoj proceduri koja se poziva navođenjem njenog imena. Kodiranje
operacije kao funkcije čini ga uopšte korisnim alatom, koji možemo koristiti u različitim
kontekstima.
Zvezdica (*) se postavlja pre imena promenljive koja sadrži vrednosti svih nezahtevanih
argumenata promenljive dužine. Ova torka ostaje prazna ako u toku poziva funkcije nije
prosleđen argument.
Return izlazi iz funkcije opciono vraćajući nazad izraz pozivaocu. Return bez argumenata je isto
kao return None
Modulu omogućavaju jednostavan način organizovanja komponenti u sistem tako što služe kao
samostalni paketi promenljivih poznati kao namespace-ovi (imenski prostori).
Python from naredva omogućava da uvoz određenih atributa iz modula u trenutni imenski
prostor. Sintaksa:
Moguće je uvesti sva imena iz nekog modula u trenutni imenski prostor koristeći zvezdicu (*).
Izvršavanje modula kao skripti: U okviru modula, ime modula (kao string) je dostupno kroz
vrednost globalne promenljive __name__. Kod u modulu će biti izvršen, kao da ste ga uvezli, ali
sa __name__ postavljenim na "__main__"
file_name - argument je string vrednost koja sadrži ime datoteke kojoj se želi pristupiti
access_mode - određuje režim u kojem se datoteka mora otvoriti, tj. čitati, pisati, dodati itd.
buffering - ako je vrednost bafera podešena na 0, ne vrši se baferovanje. Ako je vrednost
baferovanja 1, vrši se baferovanje linije dok se pristupa datoteci
Python automatski zatvara datoteku kada je referentni objekt datoteke preusmeren na drugu
datoteku. Dobra praksa je da zatvorite datoteku pomoću metode close()
Pregled OOP terminologije
Klasa - Korisnčki definisan prototip za objekat koji definiše skup atributa koji karakterišu
bilo koji objekat klase. Atributi su članovi (promenljive klase i promenljive instance) i
metode, kojima se pristupa putem tačke
Promenljiva klase - promenljiva koju dele sve instance klase. Promenljive klase su definisane
unutar klase, ali izvan bilo koje metode klase
Ostale metode se definišu kao obične funkcije (uz izuzetak da je prvi argument u stvari instanca
nad kojom se poziva metoda, obično se stavlja self). Python dodaje sam ovaj argument, ne mora
se uključiti kada se poziva metoda . Primer videti na prethodnoj slici ( def prikaziBrojZap).
Za kreiranje instanca klase, klasa se poziva koristeći naziv klase i prosleđuju se svi argumente
koje prihvata njena __init__ metoda .
Umesto korišćenja normalnih izraza za pristup atributima, moguće je takođe koristiti sljedeće
funkcije
getattr (obj, ime [, default]) - pristupanje atributu objekta
hasattr (obj, ime) - provera da li atribut postoji ili ne
setattr (obj, ime, vrednost) - postavljanje atributa. Ako atribut ne postoji, onda će se kreirati
delattr (obj, ime) – brisanje atributa
Unittest podržava neke važne koncepte objektno-orijentisanog programiranja:
Priprema testa - predstavlja pripremu koja je potrebna za izvođenje jednog ili više testova,
kao i bilo kakve akcije čišćenja. Ovo može uključiti, na primer, kreiranje privremenih ili
proxy baza podataka, direktorijuma ili pokretanje servera
Test case - pojedinačna jedinica za testiranje. Proverava specifičan odgovor za određeni skup
inputa. Unittest obezbeđuje osnovnu klasu, TestCase, koja se može koristiti za kreiranje
novih testnih slučajeva
Test suite - kolekcija testnih slučajeva, testnih suite-a ili oboje. Koristi se za sakupljanje
testova koji treba da se izvrše zajedno
Test runner - komponenta koja upravlja izvršenje testova i daje ishod korisniku. Runner
može koristiti grafički interfejs, tekstualni interfejs ili vratiti posebnu vrednost kako bi
ukazao na rezultate izvršavanja testova
Unnit test !!!
Primeri ;
Windows GUI testiranje
Postoji mnogo pristupa automatizaciji testova, ali najpoznatija dva su:
Grafičko testiranje korisničkog interfejsa – framework za testiranje koji generiše događaje
korisničkog interfejsa, kao što su pritisci na tastere i klikove miša, i posmatra promene koje
rezultuju u korisničkom interfejsu, kako bi se potvrdilo da je posmatrano ponašanje programa
tačno
API driven testiranje – framework za testiranje koji koristi programski interfejs kako bi
potvrdio ponašanje pod testom. Uobičajeno testiranje na bazi API prevazilazi aplikativni
korisnički interfejs.
PyAutoGui - sa automatizacijom GUI, programi mogu učiniti sve što i korisnik koji sedi na
računaru . Ova tehnika je naročito korisna za zadatke koji uključuju mnogo besmislenog klikom
ili popunjavanjem formi.
Lokacije na ekranu se odnose na X i Y koordinate. X koordinata počinje sa 0 na levoj strani i
povećava se udesno. Za razliku od tumačenja u matematici, Y koordinata počinje sa 0 na vrhu i
povećava se ka dnu.
WILDCARD:
ORDER BY- Neretko se javlja potreba da podatke sortiramo po nekom redosledu
Ukoliko WHERE klauzula postoji, ona dolazi pre ORDER BY klauzule ASC znači da smo
rezultate poređali u rastućem redosledu, DESC opadajućem.
GROUP BY -Zamislimo da imamo tabelu u kojoj skladištimo grad iz koga je prodavnica,
vrednost transakcije u toj radnji, kao i datum kada se trgovalo
AS - Naziv kolone koju želimo da prikažemo se može promeniti . Ključna reč AS nakon naziva
kolone označava ime koje će biti prikazano u rezultatu upita
INSERT INTO - Ukoliko koristimo takav vid komande, moramo se pobrinuti da podaci koje
pohranjujemo u bazu pohranimo u pravu kolonu
UPDATE - Jednom kada upišemo podatke u tabelu može se javiti potreba da te iste podatke
izmenimo . Da bismo ovo uradili moramo koristi komandu UPDATE.
Veb aplikacija ili „Web app“ je klijent-server baziran računarski program koji klijent
(uključujući korisnički interfejs i logiku na strani klijenta) pokreće u veb pretraživaču (browser-
u)
Veb aplikacije najčešće koriste troslojnu klijent - server arhitekturu radi rešavanja pitanja zaštite
podataka i kontrole pristupa:
Osnovni klijentski sloj - internet pretraživač
Srednji sloj – aplikativni veb server
Treći serverski sloj – server baze podataka
Kod statičkih veb aplikacija slojevi logike i podataka nisu prisutni jer se sadržaj čuva u svom
konačnom obliku kao skup HTML stranica, JS skripti, CSS stilova.
Metapodaci
Meta element je opcioni element koji se nalazi unutar head elementa
Pomoću meta elementa se specificira i skup karaktera koji se koriste na strani charset='utf-8’
Koristi se za specificiranje metapodataka koji obezbeđuju informacije o sadržaju dokumenta
Neki meta elementi obezbeđuju informacije koje mašine za pretraživanje koriste pri
indeksiranju strana
Tag je HTML komanda koja govori čitaču kako treba da prikaže sadržaj HTML stranice.
Tagovi se pišu u okviru oznaka < i >. Vecina tagova ima početni i završni tag. ) Zavrsni tag se
dobija dodavanjem znaka / i označava mesto na kome prestaje dejstvo početnog taga.
Pravila HTML tagova
Jedan tag (element)može obuhvatiti neograničen broj drugih, ali se svi ti tagovi moraju i
završiti u okviru taga u kome su napravljeni.
Svaki početnt tag mora imati i završni tag. Odnosno, ako počnemo određeni element (tag),
moramo ga negde i završiti
Atributi
Osim imena HTML elementa, tag čini i određeni broj atributa, čije su vrednosti uokvirene
navodnicima:
<img src="slika.gif">
Tag govori browser-u šta da uradi, a atribut kako da to uradi. Pri prikazivanju stranica browser-i
se oslanjaju na informacije date u tagovima.
HTML komentari
Komentari se ne prikazuju u browseru .Koriste se i pri debagovanju koda
<!--Ovo se nece prikazati-->
Div element
Često se koristi kao kontejner za neke druge HTML elemente
Kada se korisiti zajedno sa CSS, mogu se stilizovati blokovi sa sadržajem
Nema obaveznih atributa
Omogućava različite manipulacije pomoću javascript koda
Liste
Liste sa bulitima(ul - unordered list)
Liste sa brojevima (ol-ordered list)
Definicijske liste (dl – definition list)
<img> element
Koristi se za prikaz slike na web strani
Atribut src specificira lokaciju slike koju treba prikazati, ovo je obavezan atribut
Atribut alt specificira alternativni tekst kada se slika iz nekog razloga ne može prikazati
Atributi height, width specificiraju dimenzije slike u pikselima
Atribut title definiše hover tekst iznad slike
CSS je akronim za Cascading Style Sheets
CSS je skup specifikacija (pravila) koje omogućavaju kontrolu nad prikazom elemenata
web strane
Pravilo unutar stila je instrukcija za formatiranje ili pozicioniranje
Postoji tri osnovna načina dodavanja stilova webstrani:
1. Ubacivanje style sheet-a (formatiranje na nivou strane) tj. <style></style> elementa unutar
head dela web strane