You are on page 1of 25

White-box testing (takođe poznato kao clear box testiranje, glass box testiranje, transparent box

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

Python je relativno nov programski jezik. Od samog početka, za Python se smatralo da


popunjava prazninu, da je to način pisanja skriptova koji "automatizuju dosadne stvari" (kao što
je stajalo u jednoj popularnoj knjizi o učenju Pythona) ili za brzu izradu prototipa aplikacija koje
će se implementirati na jednom ili više drugih jezika. Međutim, tokom poslednjih nekoliko
godina, Python se pokazuje kao prvoklasni učesnik u savremenom razvoju softvera, upravljanju
infrastrukturom i analizi podataka.
Rad sa Python klasama – strukturama kodiranja koje se koriste za implementaciju novih vrsta
objekata u Python-u koji podržavaju nasleđivanje
Klase su Python-ov osnovni alat za objektno-orijentisano programiranje (OOP), tako da ćemo se
takođe upoznati sa osnovama OOP-a.
Dva aspekta OOP-a koja su se dokazala korisnim ovde su:
Nasleđivanje
 Zajedničke osobine se pišu samo jednom, a dalje svaki objekat koji izgradimo može u
potpunosti koristiti te osobine
Kompozicija
 Svaki objekat je primer kompozicije, sadrži druge objekte koje aktivira da bi izvršio svoje
naznačene radnje. Svaka od komponenti objekta može biti kodirana kao klasa koja definiše
svoje ponašanje i odnose
Liste , u Python-u pradstavljaju najfleksibilniji tip kolekcije. Za razliku od stringova, liste mogu
da sadrže bilo koji tip objekata: brojeve, stringove, pa čak i druge liste
Glavne osobine Python lista su:
 Uređene kolekcije proizvoljnih objekata - Iz funkcionalnog pogleda, liste su samo mesta
za skladištenje drugih objekata kako bi mogli da ih tretiramo kao jednu grupu
 Pristup nasumično - Kao što je slučaj sa stringovima, moguće je izvlačiti elemente iz liste
pomoću indeksa.

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__"

Python pruža osnovne funkcije i metode neophodne za manipulaciju sa fajlovima. Većina


manipulacije fajlovima se može uraditi korišćenjem file objekta.
Pre nego što se izvrše operacije čitanja ili pisanja u datoteku, ona se mora otvoriti pomoću
Python-ove ugrađene funkcije open(). Ova funkcija stvara file objekat, koji se koristi da bi
pozvao druge metode podrške povezane s njim.

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.

Pod operativnim sistemom Windows, izdata je u python-u sledeća komanda:


pyautogui.hotkey('ALT', 'CTRL', 'N') - izazvaće efekat kao da su redom pritisnuti tasteri
ALT, CONTROL i N, a zatim otpuštani po inverznom redosledu (N, pa CONTROL pa ALT)
Pod operativnim sistemom Windows, izdata je u python-u sledeća komanda:
pyautogui.moveTo(300, 100) - dole desno
Pokrenutu aplikaciju iz pywinauto modula, možemo da isključimo sa: app.kill()

Izabrati činjenice vezane za automatsko testiranje:


 Automatizacija testova podrazumeva korišćenje specijalnog softvera (odvojeno od softvera
koji se testira) ,
 Automatizacija testova radi se često prilikom regresionog testiranja (nakon ispravljanja
uočenih grešaka od ranije),
 Automatske testove češće rade manje iskusni testirači softvera
Potrebno je testirati WPF aplikaciju koja se zove WpfApplication1.exe. Izabrati one kodove koji
koriste pywinauto modul i omogućavaju automatsko testiranje ove aplikacije. Početak koda je:
from pywinauto.application import Application
app = Application(backend='uia').start('WpfApplication1.exe')
from pywinauto.application import Application
app = Application(backend='win32').start('WpfApplication1.exe')

SQL (Structured Query Language) je standardni programski jezik za manipulaciju podacima u


relacionoj bazi podataka (engl. Relational DataBase Management Systems)

Najvažnije DDL naredbe u SQL-u su:


 CREATE – kreira novu tabelu ili bazu podataka
 ALTER – menja tabelu baze podataka
 DROP – briše bazu podataka ili tabelu unutar nje
 CREATE INDEX – kreira index (ključ za pretragu)
 DROP INDEX – briše index
 CHECK ograničenje se koristi za ograničavanje vrednosti koje se mogusmestiti kao vrednost
kolone
DML - Data Manipulation Language

SELECT - Komanda SELECT se koristi za selekciju podataka koji su pohranjeni u bazi


podataka
FROM nam govori iz koje tabele ćemo preuzeti podatke
DISTINCT - Korišćenjem komande select pribavljamo sve informacije iz kolone(kolona) iz
tabele
WHERE -Where klauzulu koristimo da filtriramo rezultat na osnovu određenog kriterijuma
Where klauzulu sa OR operatorom koristimo da filtriramo podatke po više kriterijuma
Kada koristimo IN ključnu reč, znamo tačnu vrednost povratne vrednosti koju želimo da vidimo
u jednoj od kolona
Dok IN operator pomaže da ograničimo kriterijum selekcije na jednu ili više diskretnih
vrednosti, operator BETWEEN se koristi da odredi opseg

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.

DELETE • Koristi se kada je potrebno da uklonimo podatke iz tabele podataka

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.

URL adresa koju čini:


• Protokol kojim se pristupa dokumentu
• Lokacija servera
• Naziv dokumenta na serveru
TLS (Transport Layer Security) i njegov prethodnik SSL (Secure Sockets Layer) su
kriptografski protokoli namenjeni obezbeđivanju sigurne komunikacije preko mreže.

Osnovna struktura HTML dokumenta


 DOCTYPE deklaracija koja služi sa specificiranje verzije HTML-a koga stranica koristi
 Html sekcija sadrži zaglavlje html dokumenta i telo html dokumenta
 Zaglavlje sadrži informacije o html strani koje koristi browser i mašine za pretraživanje, tu je i
naslov strane
 Telo sadrži deo html strane koji je vidljiv korisniku

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

Elementi atributi i sadržaj


 Svaki html element govori browseru o informaciji koja se nalazi između njegovog početnog i
završnog taga
 Elementi koji nemaju sadržaj nazivaju se prazni elementi, i oni se zatvaraju u početnog tagu,
npr. <br>
 Atributi se nalaze unutar start taga elementa i imaju svoje ime ivrednost
 Ime atributa treba biti napisano malim slovima
Naslovi i paragrafi
 Tag <p> služi za definisanje paragrafa
 Browser automatski dodaje praznu liniju pre I posle paragrafa
 Tagovi <h1>, <h2>, <h3>, <h4>, <h5> i <h6> služe za definisanje 6 nivoa naslova
 Spadaju u grupu blok elemenata, tj. počinju novom linijom kada se prikazuju

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

2. Dodavanje linka na eksterni style sheet tzv. globalno formatiranje

3. Dodavanje inline stilova tj. formatiranje za konkretan HTML element

You might also like