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.
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:
Testiranje crne kutije također ima neke nedostatke, kao što su:
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:
Nedostaci uključuju:
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.
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.
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.
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:
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:
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.
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
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…
Prediktivno održavanje revolucionira sektor nafte i plina, s inovativnim i proaktivnim pristupom upravljanju postrojenjima.…
UK CMA izdao je upozorenje o ponašanju Big Tech-a na tržištu umjetne inteligencije. Tamo…
Uredba o „zelenim kućama“, koju je formulisala Evropska unija za poboljšanje energetske efikasnosti zgrada, završila je svoj zakonodavni proces sa…