You are on page 1of 30

Testiranje softvera

Sistemsko testiranje
Sistemsko testiranje
• Sistemsko testiranje se zasniva na testiranju
celog sistema kao celine, nakon što je završena
kompletna integracija
• Definisano je funkcionalnim zahtevima i
specifikacijama sistema
• Dodatno uključuje testove bazirane na riziku,
poslovne procese, scenarije upotrebe ili druge
opise sistema visokog nivoa, zatim interakcije sa
drugim sistemima i sistemskim resursima
Sistemsko testiranje
• Najčešće je u pitanju finalni test kako bi se
verifikovalo da sistem kao celina ispunjava
zahteve specifikacije i svoju svrhu
• Najčešće izvršavaju testeri specijalisti ili čak
nezavisni timovi testera
• Testovi se izvršavaju iz perspektive sa kraja na
kraj (end-to-end)
• Pošto se bazira na specifikaciji zahteva, u
pitanju je metoda crne kutije
• Ispituju se kako funkcionalni tako i
nefunkcionalni zahtevi
Sistemsko testiranje
Sistemsko testiranje
• Sistemsko testiranje može biti i drugačijeg
tipa od već opisanog funkcionalnog.
• Potrebno je proveriti i nefunkcionalne
zahteve, među kojima su performanse
sistema, interoperabilnost sa drugim
sistemima, zatim skalabilnost, pouzdanost,
test opterećenja i slično.
• Postoji preko 50 različitih podvrsta
sistemskog testiranja
Sistemsko testiranje
Funkcionalno

Inter-Operabilnost

Performanse

Skalabilnost

Sistemsko testiranje Stres test

Test opterećenja

Test pouzdanosti

Regresiono

Regulatorno
Testiranje performansi
• Performanse poput vremena odziva,
pouzdanosti, korišćenja resursa i
skalabilnosti su takođe od velikog značaja.
• Testiranje performansi je tip testiranja koji
verifikuje da se softverski sistem ponaša
adekvatno pod očekivanim opterećenjem.
• Cilj je da se uoče i eliminišu potencijalna
uska grla koja utiču na performanse
sistema.
Testiranje performansi
• Prilikom testiranja performansi sistema,
pažnja se obraća na sledeće aspekte:
– Brzina – proverava se brzina odziva aplikacije
– Skalabilnost – određuje se maksimalno
korisničko opterećenje koje softver može da
podrži
– Stabilnost – proverava se da li je aplikacija
stabilna pod različitim opterećenjem
Testiranje performansi
• Pod testiranjem performansi se može
grupisati više različitih tipova testiranja, od
kojih su najbitniji:
– Testiranje opterećenja (engl. load test)
– Stres test (engl. stress test)
– Test izdržljivosti (engl. endurance test)
– Testiranje skalabilnosti (engl. scalability
testing).
Testiranje performansi
• Aplikacije sa lošim performansama (usled loše
izvedenog testiranja performansi ili potpunog
izostanka istog) koje se pošalju na tržište će
skoro sigurno steći lošu reputaciju i neće dostići
očekivan nivo prodaje.
• Sa druge strane, kritični softverski sistemi poput
softvera medicinske opreme ili softvera u
avionima se moraju dodatno testirati kako bi se
osiguralo da mogu da rade duži vremenski
period bez ikakvih odstupanja u radu
Testiranje performansi
• Najčešći problemi koje otkriva testiranje
performansi, očekivano, jesu brzina rada
aplikacije, vreme odziva, vreme učitavanja
aplikacije i loša skalabilnost.
• Brzina je jedan od najznačajnijih atributa
aplikacije.
• Spora aplikacija skoro sigurno dovodi do gubitka
potencijalnih korisnika.
• Testiranje performansi osigurava da se
aplikacija izvršava dovoljno brzo kako bi privukla
pažnju i interesovanje korisnika
Testiranje performansi
• Najčešći problemi po pitanju performansi (može
se uočiti da je brzina zajednički faktor za
većinu):
– Predugo vreme učitavanja aplikacije
– Loše vreme odziva
– Loša skalabilnost
– Uska grla
Testiranje opterećenja
• Testiranje opterećenja je vrsta testiranja
performansi, koja određuje performanse sistema
u okviru realnih uslova upotrebe
• Određuje se ponašanje sistema kako pod
normalnim opterećenjem, tako i pod očekivanim
najvećim opterećenjem.
• Identifikuje se maksimalni operativni kapacitet,
postojanje uskih grla i određuje koja
komponenta izaziva degradaciju performansi.
• Kada se opterećenje podigne iznad razumnog
nivoa, test opterećenja postaje stres test sistema
Testiranje opterećenja
• Formalno gledano, test opterećenja određuje:

– Maksimalni operativni kapacitet aplikacije


– Da li je trenutna infrastruktura dovoljna za izvršavanje
aplikacije
– Održivost aplikacije u slučaju vršnog korisničkog
opterećenja (engl. peak load)
– Broj konkurentnih korisnika koje aplikacija može da
izdrži, kao i skalabilnost koja je potrebna kako bi se
omogućio veći broj korisnika.
Testiranje opterećenja
• Najbolji primer je Amazon, koji svake
godine organizuje Prime Day, globalni dan
za kupovinu za svoje prime korisnike, gde
se unutar 36 sati daje ogroman broj
popusta.
• Međutim, ovaj događaj je pošao naopako
u julu 2018. godine, kada je zbog
prevelikog broja zahteva servis bio
nedostupan više sati u pojedinim delovima
Sjedinjenih Američkih Država
Testiranje opterećenja
Testiranje opterećenja
Stres test
• Stres test podrazumeva stavljanje aplikacije pod
ekstremno opterećenje, kako bi se posmatralo njeno
ponašanje za vreme ogromnog broja zahteva ili obrade
podataka.
• Cilj stres testa je da se aplikacija izbaci izvan normalnog
maksimalnog operativnog kapaciteta i dovede do tačke
pucanja.
• Prilikom određivanja tačke pucanja, određuju se i
bezbednosna ograničenja upotrebe aplikacije, koja je
potrebno uporediti da li odgovaraju zahtevima u
specifikaciji sistema.
Stres test
• Od izuzetnog značaja je i utvrditi kako
tačno sistem puca, odnosno utvrditi oblik
otkaza sistema.
• Čak i u slučaju ekstremnog opterećenja,
sistem ne bi trebalo da u potpunosti
otkaže, već bi trebalo da prikaže
odgovarajuću poruku o grešci.
Stres test
• Stres test bi bio kopiranje ogromne količine teksta (na
primer 5GB teksta) u Notepad.
• Aplikacija je u tom slučaju pod stresom i daje očekivanu
Not responding poruku o grešci
Stres test
• Svaki dobro osmišljeni stres test se mora
fokusirati na sledeće stavke:
– Provera da li sistem radi dobro pod ekstremnim
opterećenjem.
– Provera da li sistem prikazuje adekvatnu poruku o
grešci u situaciji kada je opterećenje toliko da ne
može da odgovori na zahteve korisnika.
– Ukoliko sistem potpuno otkaže pod ekstremnim
opterećenjem, može doći do gubitka podataka, novca
i poverenja korisnika.
Sistemsko testiranje
• Nakon što se u toku sistemskog testiranja uoče i
isprave većina defekata, sistem je spreman za
isporuku klijentu
• Klijent najčešće onda inicira Acceptance
Testing, odnosno User Acceptance Testing
(UAT)
UAT
UAT
• Acceptance testing (UAT) najčešće izvršavaju
korisnici odnosno klijenti
• Cilj UAT jeste da se uspostavi poverenje u
sistem
• Fokus je da se proveri funkcionalnost, putem
validacije da li je sistem odgovarajući za
korisnika
Alfa testiranje
• Deo UAT
• Jedna od najčešće upotrebljavanih strategija
testiranja softvera
• Testiranje se vrši na lokaciji firme koja proizvodi
softver, gde programeri posmatraju simulirane
korisnike i beleže probleme
• Radi se kada je razvoj aplikacije pri kraju.
Moguće je ipak uraditi minimalne promene u
dizajnu aplikacije kao rezultat alfa testiranja
Alfa testiranje
• Alfa testiranje tipično izvodi grupa nezavisnih
testera (nisu učestvovali u prethodnim fazama
testiranja), ali u okviru iste kompanije
• To je poslednji nivo testiranja pre isporuke
aplikacije klijentu
• Cilj je da se simuliraju što je više moguće stvarni
korisnici, upotrebama tehnika crne i bele kutije, i
da se pronađu eventualne greške i isprave pre
isporuke
Beta testiranje
• Drugi naziv Field Testing
• Održava se na lokaciji klijenta
• Softver se isporučuje ograničenom broju
stvarnih korisnika koji ga instaliraju i koriste u
realnim uslovima upotrebe
• Cilj je da stvarni korisnici upotrebom aplikacije u
realnim uslovima otkriju bilo koju grešku ili
propust iz korisničke perspektive, koju ne želimo
da imamo u finalnoj aplikaciji
• Mnoge firme, poput Microsoft-a, daju beta
verzije korisnicima na testiranje
Beta testiranje
• Open i closed beta
Beta testiranje
• Prednosti
– Prilika da aplikaciju dobiju stvarni korisnici pre isporuke
gerenalnoj javnosti
– Korisnici u toku beta perioda mogu testirati aplikaciju i slati
feedback
– Beta testeri često pronađu greške koje nisu do tada primećene
(naročito iz korisničke perspektive), i moguće je popraviti te
probleme pre globalne isporuke
– Što se više ovakvih grešaka ispravi, veći je kvalitet softvera
nakon izlaska na tržište
– Time se povećava i zadovoljstvo korisnika (customer
satisfaction)

You might also like