Download as pdf or txt
Download as pdf or txt
You are on page 1of 22

Selenium

QA Automation
Engineer

Predavač: Dragana Sekulić


Predavač -
Dragana Sekulić
Email: sekulic.r.dragana@gmail.com

➔ QA inženjer u kompaniji
Emakina.RS
Manuelno i automatizovano testiranje
Web aplikacija, mentorski rad.

➔ Proces prekvalifikacije
Kursevi: Java, C#, Manuelno i
automatsko testiranje.

➔ Dipl.ing. tehnologije
Poslovna savršenost
Edukacija i osposobljavanje polaznika za
poslove koji su najtraženiji i najplaćeniji na
tržištu rada danas.

● IT i dizajn
● Digitalni marketing
● Menadžment
● Administracija i finansije

https://obukeikursevi.com/
O nama
● Dobra saradnja sa poslodavcima.
● Veliki broj polaznika je nakon završetka kursa
pronašao posao ili praksu u domaćim i
inostranim kompanijama.
● Podrška polaznicima i nakon završetka kursa.
Nastava
➔ Praktični rad

➔ Teorija

➔ Rad u maloj grupi

➔ Samostalni rad uz podršku


predavača

➔ Snimanje predavanja

➔ Domaći zadaci
Pitanja polaznika pre upisa
na kurs
Da li mogu da Koliko dobro treba Kako da izaberem
naučim da poznajem neki alat za pisanje
automatizovano programski jezik automatskih
testiranje ako da bih napisao/la testova?
nemam iskustva u automatizovani
programiranju? test?
Program obuke
Uvod u automatizovano Selenium
testiranje
Benefiti, ciljevi, odabir test Instalacija potrebnih alata,
case-eva koji su pogodni za Pisanje automatizovanih
automatizaciju testova, Page Object Model

Osnove
SDLC, Agilna programiranja Samostalni rad
metodologija Java, Klase i metode, Praktični primeri, završni
QA procesi Objektno orijentisano test
programiranje
Upoznavanje :)
Uvod u automatizovano testiranje
- engl. Automation testing, Automated testing, Test automation

-
Uvod u automatizovano testiranje
● Automatizovani test je "program" koji treba da predstavlja repliku manuelne
interakcije nad nekom aplikacijom.
● Automatizacija jednog testa podrazumeva korišćenje posebnih alata (software
tools) za:
○ Pisanje svih koraka koji su potrebni da se izvrši test case
○ Pokretanje testa, tj. njegovo izvršavanje (na različitim browser-ima,
različitim veličinama ekrana…)
○ Poređenje dobijenog rezultata sa očekivanim rezultatom
● Automatizacija uključuje različite aktivnosti, kao što su:
○ Implementacija (pisanje test case-a)
○ Praćenje i kontrola procesa izvršavanja testova
○ Interpretiranje rezultata, kreiranje izveštaja o rezultatu
○ Održavanje testova
Uvođenje automatizacije na projekat
Koji su nam ciljevi?
● Ušteda vremena (vreme izvršavanja
automatizovanog testa je mnogo
kraće u odnosu na manuelno
izvršavanje).
● Povećanje tzv. "Test frequency"
(učestalosti testiranja), tj. češće
možemo izvršati određenu grupu
testova (npr. na različitim
browserima, uređajima ili različitim
verzijama naše aplikacije).
● Smanjenje ukupnih troškova.
● Povećanje broja test case-eva koji se
izvršavaju.
Uvođenje automatizacije na projekat
● Važna pitanja:
○ Koje test case-eve treba automatizovati?
○ Ko će napisati automatizovane testove?
○ Ko će ih održavati?
○ Na kom okruženju (tzv. "environment") ćemo ih pokretati (Test, Staging
ili Produkcija)?
○ Koji alat i programski jezik ćemo koristiti?
○ Kada ćemo pokretati testove i kako?
Software environments
https://www.spaceo.ca/blog/environments-in-software-development/
https://www.bunnyshell.com/blog/how-to-segregate-environments/
Software environments
● Okruženje na kom se pokreću automatizovani testovi treba da bude:
○ Stabilno (bez "dodavanja" novog koda tokom trajanja testa)
○ U idealnom slučaju, postojaće posebno (izolovano) okruženje za
pokretanje automatizovanih testova
○ Konfigurisano (što je sličnije moguće) kao Produkcijsko okruženje
Odabir alata za automatizaciju
"Choose the right automation tool, not the best one"

● Najvažniji aspekti koje treba uzeti u razmatranje prilikom odabira alata:


○ "Maintainability" (lakoća održavanja testova) - koliko je komplikovano
timu da izmeni postojeće testove i doda nove?
○ "Performance" - koliko se brzo testovi izvršavaju? Da li postoje problemi
u samom alatu zbog kojih se izvršavanje usporava ili stopira?
○ "Learnability" (lakoća razumevanja alata i savladavanja rada u njemu) - da
li je potrebna edukacija zaposlenih? Koliko vremena tim ima na
raspolaganju za edukaciju?
Odabir alata za automatizaciju
"Choose the right automation tool, not the best one"
● Postoje različiti tipovi alata:
○ Tzv. "Capture and playback": snimaju interakcije nad softverom i
ponavljaju ih (npr. Selenium IDE, Katalon…)

○ Tzv. "Codeless automation tools" (TestCraft, Testim, Katalon Studio,


Tricentis Tosca - low code)

○ Tzv. "Code-base automation tools" (Selenium, Cypress, Playwright…)


Pokretanje testova
● Testovi se mogu pokretati:
○ Lokalno - pokrećemo ih sa našeg računara
○ Continuous Integration (CI) Server (uz pomoć alata Jenkins, Travis CI, itd.)
- svaki put kada "stigne" novi kod, pokreću se automatizovani testovi
○ Continuous Integration / Continuous Deployment (CI/CD) Pipeline - novi
kod "aktivira" pokretanje testova i ako su testovi "prošli", kod se
prebacuje na Produkciju
○ Na tzv. "farmama mobilnih telefona", npr. BrowserStack
○ Na tzv. "Cloud based" platformama
Koji tipovi testiranja su pogodni za
automatizovanje?
● Unit testovi - automatizovani testovi
napisani od strane developera, sa ciljem da
se testira nova funkcionalnost odmah
nakon kreiranja.
● Funkcionalni, UI, End to End testovi -
pogodni za automatizovanje, ali i za
manuelno izvršavanje.
● User Acceptance, Exploratory,
Accessibility testiranje - manuelno
testiranje.
● Performance, Load, Stress testiranje -
automatizovano uz pomoć posebnih alata.
Tipovi testiranja - podsetnik :)
Vežba
Da li smatramo da je navedene test scenarije moguće automatizovati
(razmatramo koji tip testiranja vršimo)?
Ako je moguće, da li smatramo da za time ima i potrebe?

1. Testiranje prijave (logovanja) korisnika u aplikaciju (da li se pojavljuje


odgovarajuća poruka nakon uspešnog i neuspešnog pokušaja)?
2. Da li će korisnik lako pronaći formu za logovanje na sajtu?
3. Da li korisnik može da se uloguje na različitim browser-ima i uređajima?
4. Da li Log in forma izgleda pravilno na uređajima različite veličine?
Test case
● Deo testne dokumentacije koji ima važnu ulogu u manuelnom i
automatizovanom testiranju.
● Test case sadrži skup koraka koje je potrebno izvršiti da bi se testirao
određeni deo softvera, kao i podatak o očekivanom rezultatu nakon što se ti
koraci izvrše
● Grupišu se na osnovu npr. funkcionalnosti na koju se odnose i na osnovu
dela aplikacije u kojoj započinje njihovo izvršavanje.
● Test case treba da sadrži:
○ ID i naslov (kreće sa “Verify that…” ili “Check”)
○ Preduslov (precondition) za njegovo izvršavanje
○ Test korake koje treba izvršiti
○ Testne podatke
○ Očekivani rezultat
Koje test case-eve treba automatizovati?
"Not all tests can or should be automated"
● Da li je test case uopšte moguće automatizovati?
● Da li je test case uopšte potrebno automatizovati?
● Dobri kandidati su test case-evi koji:
○ Se često izvršavaju (npr. u okviru Regression i Smoke testiranja)
○ Koji pokrivaju najvažnije funkcionalnosti (najvišeg prioriteta)
○ Koji pokrivaju funkcionalnosti koje korisnici najčešće koriste (nisu nužno
najvišeg prioriteta)
○ Koji pokrivaju funkcionalnosti "sklone" pojavi bug-ova
○ End-to-end scenariji (uglavnom se najduže izvršavaju)

You might also like