Članci

Šta je testiranje softvera, šta znači testirati softver

Testiranje softvera je skup procesa za istraživanje, evaluaciju i utvrđivanje kompletnosti i kvaliteta softvera napisanog za računare. Osigurava usklađenost softverskog proizvoda s obzirom na regulatorne, poslovne, tehničke, funkcionalne i korisničke zahtjeve.

Testiranje softvera ili testiranje softvera je također poznato kao testiranje aplikacija.

Testiranje softvera je prvenstveno veliki proces koji se sastoji od nekoliko međusobno povezanih procesa. Glavni cilj testiranja softvera je da se izmeri integritet softvera zajedno sa njegovom potpunošću u smislu njegovih osnovnih zahteva. Testiranje softvera uključuje ispitivanje i testiranje softvera kroz različite procese testiranja. Ciljevi ovih procesa mogu uključivati:

Provjera kompletnosti softvera u odnosu na funkcionalne/poslovne zahtjeve
Prepoznavanje grešaka/tehničkih grešaka i osiguranje da softver ne sadrži greške
Procjena upotrebljivosti, performansi, sigurnosti, lokalizacije, kompatibilnosti i instalacije
Testirani softver mora proći sve testove da bi bio potpun ili prikladan za upotrebu. Neke od različitih vrsta metoda testiranja softvera uključuju testiranje bijele kutije, testiranje crne kutije i testiranje sive kutije. Nadalje, softver se može testirati u cjelini, u komponentama/jedinicama ili unutar živog sistema.

Testiranje crne kutije

Black Box Testing je tehnika testiranja softvera koja se fokusira na analizu funkcionalnosti softvera, s obzirom na interni rad sistema. Testiranje crne kutije je razvijeno kao metoda za analizu zahtjeva kupaca, specifikacija i strategija dizajna na visokom nivou.

Tester za testiranje crne kutije odabire skup valjanog i nevažećeg izvršavanja koda i uslova unosa i provjerava valjane izlazne odgovore.

Testiranje crne kutije poznato je i kao funkcionalno testiranje ili testiranje zatvorene kutije.

Tražilica je jednostavan primjer aplikacije koja je podvrgnuta testiranju crne kutije. Korisnik pretraživača unosi tekst u traku za pretraživanje web pretraživača. Pretraživač zatim locira i dohvaća rezultate korisničkih podataka (izlaz).

Prednosti Black Box Testiranja uključuju:

  • Jednostavnost: Olakšava testiranje projekata visokog nivoa i složenih aplikacija
  • Uštedite resurse: Testeri se fokusiraju na funkcionalnost softvera.
  • Testni slučajevi: Fokusirajte se na funkcionalnost softvera kako biste olakšali brzi razvoj test slučajeva.
  • Pruža fleksibilnost: nije potrebno posebno znanje programiranja.

Testiranje crne kutije također ima neke nedostatke, kao što su:

  • Dizajn i održavanje test slučajeva/skripte mogu biti izazovni jer alati za testiranje crne kutije zavise od poznatih ulaza.
  • Interakcija sa grafičkim korisničkim interfejsom (GUI) može oštetiti test skripte.
  • Testovi se odnose samo na funkcije aplikacije.

Ispitivanje bijele kutije

Tokom testiranja u bijeloj kutiji, kod se pokreće s unaprijed odabranim ulaznim vrijednostima kako bi se potvrdile unaprijed odabrane izlazne vrijednosti. Testiranje u bijeloj kutiji često uključuje pisanje stub koda (komad koda koji se koristi za zamjenu određene funkcije. Stub može simulirati ponašanje postojećeg koda, kao što je procedura na udaljenoj mašini.), kao i drajvera.

Prednosti testiranja u bijeloj kutiji uključuju:

  • Omogućava ponovnu upotrebu test slučajeva i nudi veću stabilnost
  • Olakšava optimizaciju koda
  • Olakšava pronalaženje lokacija skrivenih grešaka u ranim fazama razvoja
  • Olakšava efikasno testiranje aplikacija
  • Uklonite nepotrebne linije koda


Nedostaci uključuju:

  • Potreban je iskusan tester sa poznavanjem unutrašnje strukture
  • Treba vremena
  • Visoki troškovi
  • Provjera valjanosti bitova koda je teška.
  • Testiranje u bijeloj kutiji uključuje testiranje jedinica, testiranje integracije i regresijsko testiranje.

Test jedinice

Jedinični test je komponenta životnog ciklusa razvoja softvera (SDLC) u kojem se sveobuhvatna procedura testiranja pojedinačno primjenjuje na najmanje dijelove softverskog programa radi željene prikladnosti ili ponašanja.


Jedinični test je postupak mjerenja i evaluacije kvaliteta koji se primjenjuje u većini aktivnosti razvoja poslovnog softvera. Općenito, jedinični test procjenjuje koliko je softverski kod usklađen s općim ciljem softvera/aplikacije/programa i kako njegova prikladnost utiče na druge manje jedinice. Jedinični testovi se mogu obaviti ručno – od strane jednog ili više programera – ili putem automatiziranog softverskog rješenja.

Tokom testiranja, svaka jedinica je izolirana od glavnog programa ili sučelja. Jedinični testovi se obično izvode nakon razvoja i prije implementacije, čime se olakšava integracija i rano otkrivanje problema. Veličina ili opseg jedinice varira u zavisnosti od programskog jezika, softverske aplikacije i ciljeva testiranja.

Funkcionalni test

Funkcionalno testiranje je proces testiranja koji se koristi u razvoju softvera gdje se softver testira kako bi se osiguralo da je u skladu sa svim zahtjevima. To je način provjere softvera kako bi se osiguralo da ima sve potrebne funkcionalnosti navedene u njegovim funkcionalnim zahtjevima.


Funkcionalno testiranje se uglavnom koristi za provjeru da dio softvera pruža isti izlaz koji zahtijeva krajnji korisnik ili posao. Tipično, funkcionalno testiranje uključuje procjenu i poređenje svake funkcije softvera s poslovnim zahtjevima. Softver se testira tako što mu se daju neki povezani inputi tako da se rezultat može procijeniti kako bi se vidjelo kako je usklađen sa svojim osnovnim zahtjevima, u vezi sa njima ili se razlikuje od njih. Nadalje, funkcionalni testovi također provjeravaju upotrebljivost softvera, na primjer osiguravajući da navigacijske funkcije rade kako je potrebno.

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Regresijsko testiranje

Regresijsko testiranje je vrsta testiranja softvera koja se koristi za utvrđivanje da li su novi problemi rezultat promjena softvera.

Prije primjene promjene, program se testira. Nakon što je promjena primijenjena, program se ponovo testira u odabranim područjima kako bi se otkrilo da li je promjena stvorila nove greške ili probleme, ili je stvarna promjena poslužila svojoj svrsi.


Regresijsko testiranje je bitno za velike softverske aplikacije, jer je često teško znati da li je promjena jednog dijela problema stvorila novi problem za drugi dio aplikacije. Na primjer, promjena obrasca za bankovni zahtjev za kredit može rezultirati neuspjehom mjesečnog izvještaja o transakcijama. U većini slučajeva, problemi mogu izgledati nepovezani, ali zapravo mogu biti uzrok frustracije među programerima aplikacija.

Druge situacije koje zahtijevaju regresijsko testiranje uključuju otkrivanje da li određene promjene postižu postavljeni cilj ili testiranje novih opasnosti povezanih s problemima koji se ponovo pojavljuju nakon perioda bez problema.

Moderno regresijsko testiranje se prvenstveno obavlja kroz specijalizovane komercijalne alate za testiranje koji prave snimke postojećeg softvera koji se zatim upoređuju nakon primjene određene promjene. Gotovo je nemoguće da ljudski testeri obavljaju iste zadatke jednako efikasno kao automatizirani testeri softvera. Ovo se posebno odnosi na velike i složene softverske aplikacije u velikim IT okruženjima kao što su banke, bolnice, proizvodne kompanije i veliki trgovci na malo.

Ispitivanje naprezanja

Testiranje stresa se odnosi na testiranje softvera ili hardvera kako bi se utvrdilo da li su njegove performanse zadovoljavajuće u ekstremnim i nepovoljnim uslovima, koji se mogu javiti kao rezultat velikog mrežnog saobraćaja, opterećenja procesa, underclockinga, overklokanja i vršne potrošnje resursa.

Većina sistema je razvijena pod pretpostavkom normalnih radnih uslova. Stoga, čak i ako je granica prekoračena, greške su zanemarljive ako se sistem testira na stres tokom razvoja.


Testiranje na stres se koristi u sljedećim kontekstima:

  • Softver: Testiranje stresa naglašava dostupnost i rukovanje greškama pod ekstremno velikim opterećenjima kako bi se osiguralo da se softver ne ruši zbog nedovoljnih resursa. Testiranje stresa softvera se fokusira na identificirane transakcije radi prekida transakcija, koje su pod velikim stresom tokom testiranja, čak i kada baza podataka nije učitana. Proces stresnog testiranja opterećuje istovremene korisnike izvan normalnih nivoa sistema kako bi pronašli najslabiju kariku u sistemu.
  • Hardver: Testovi na stres osiguravaju stabilnost u normalnim računarskim okruženjima.
  • Web stranice: Testovi na stres određuju granice funkcionalnosti bilo koje web stranice.
  • CPU: Promjene kao što su prenapon, podnapon, underlocking i overlocking se provjeravaju kako bi se utvrdilo da li mogu podnijeti teška opterećenja pokretanjem CPU-intenzivnog programa za testiranje rušenja ili zamrzavanja sistema. CPU stres test je poznat i kao test mučenja.

Automatski testovi

Automatsko testiranje (automatizacija softverskog testiranja) je pristup testiranju koda koji koristi posebne softverske alate koji automatski pokreću testove, a zatim upoređuju stvarne rezultate testa sa očekivanim rezultatima.

Automatsko testiranje igra važnu ulogu u kontinuiranoj isporuci (CD), kontinuiranoj integraciji (CI), DevOps-u i DevSecOps-u. Glavne prednosti automatskog testiranja uključuju:

  • Automatsko testiranje štedi vrijeme i novac programerima čineći proces testiranja efikasnijim.
  • Automatski testovi identificiraju greške efikasnije od ručnih testova.
  • Kada su testovi automatizirani, više alata za testiranje se može implementirati paralelno.


U razvoju softvera, posebno je korisno izvoditi automatske testove tokom procesa izgradnje kako bi se osiguralo da aplikacija nema grešaka u izgradnji i da obavlja svoju predviđenu funkciju.

Odvajanje vremena za automatizaciju testiranja softvera u konačnici će uštedjeti vrijeme programerima smanjujući rizik da će promjena koda narušiti postojeću funkcionalnost.


Testiranje je veoma važna faza u procesu razvoja. Osigurava da su sve greške ispravljene i da proizvod, softver ili hardver, radi kako je predviđeno ili što je bliže ciljnoj izvedbi. Automatsko testiranje, umjesto ručnog testiranja, ključno je za dosljednu isporuku isplativog softvera koji zadovoljava potrebe korisnika na vrijeme uz minimalne nedostatke.

Vrste automatizovanih testova koji se koriste u razvoju softvera
  • Jedinični test: Testirajte jedan program niske razine u izoliranom okruženju prije nego što potvrdite njegovu integraciju s drugim jedinicama.
  • Integracijsko testiranje: Jedinični testovi i druge komponente aplikacije se testiraju kao kombinovani entitet.
  • Funkcionalni testovi: Provjerite da li se softverski sistem ponaša kako treba.
  • Testiranje performansi: Procijenite robusnost aplikacije pod opterećenjem većim od očekivanog. Testovi performansi često otkrivaju uska grla.
  • Dimni test: Određuje da li je konstrukcija dovoljno stabilna da se nastavi s daljnjim testiranjem.
  • Testiranje pretraživača: Proverite da li su softverske komponente kompatibilne sa različitim pretraživačima.

Ručno testiranje se još uvijek radi u različitim vremenima tokom razvoja, ali to uglavnom rade programeri ili sami hardverski inženjeri kako bi brzo vidjeli da li su promjene koje su napravili imale željeni učinak.

Ercole Palmeri

Inovacijski bilten
Ne propustite najvažnije vijesti o inovacijama. Prijavite se da ih primate putem e-pošte.

Nedavni članak

Veeam nudi najsveobuhvatniju podršku za ransomware, od zaštite do odgovora i oporavka

Coveware od strane Veeam-a će nastaviti da pruža usluge odgovora na incidente u slučaju sajber iznude. Coveware će ponuditi mogućnosti forenzike i sanacije…

23 april 2024

Zelena i digitalna revolucija: Kako prediktivno održavanje transformira industriju nafte i plina

Prediktivno održavanje revolucionira sektor nafte i plina, s inovativnim i proaktivnim pristupom upravljanju postrojenjima.…

22 april 2024

Britanski antimonopolski regulator podigao je BigTech uzbunu zbog GenAI

UK CMA izdao je upozorenje o ponašanju Big Tech-a na tržištu umjetne inteligencije. Tamo…

18 april 2024

Casa Green: energetska revolucija za održivu budućnost u Italiji

Uredba o „zelenim kućama“, koju je formulisala Evropska unija za poboljšanje energetske efikasnosti zgrada, završila je svoj zakonodavni proces sa…

18 april 2024