Marko Dragović je inženjer iz Crne Gore, jedan od rijetkih koji se bave softverskim testiranjem i matematičkim modeliranjem. Magistrirao je elektroniku na Elektrotehničkom fakultetu Univerziteta Crne Gore, i trenutno radi u kompaniji Amdocs kao ekspert za testiranje i integraciju. Više o njemu i ovoj oblasti rada, koja je još uvijek poprilično nezastupljena u Crnoj Gori, pročitajte u našem intervjuu.
Možete li nam objasniti šta je to softversko testiranje?
Postoji mnogo definicija softverskog testiranja koje variraju, a ipak postoje i one koje su manje-više slične jedna drugoj, premda, u osnovi, možemo reći da je testiranje softvera postupak za procjenu funkcionalnosti softverskih rješenja sa namjerom da se utvrdi da li razvijeni softver zadovoljava unaprijed postavljene zahtjeve/kriterijume ili ne, kao i da se identifikuju nedostaci kako bi se osiguralo da proizvod u potpunosti nema grešaka ili su te greške svedene na najmanju moguću mjeru, a sve u svrhu proizvodnje visoko kvalitetnog proizvoda. Testiranje se takođe može definisati kao proces procjene sistema ili njegovih komponenti sa namjerom da se utvrdi da li ispunjava navedene zahtjeve ili ne. Testiranje je takođe i pokretanje cjelokupnog sistema i stavljanja istog u rad kako bi se identifikovali nedostaci, greške ili takozvane rupe u zahtjevima koje su u suprotnosti sa trenutno postavljenim. Tehnike ispitivanja uključuju postupke izvršenja sa namjerom da se pronađu programske ili druge greške u svrhu provjere prikladnosti softverskog rješenja zbog upotrebe istog. Testiranje možemo podijeliti na funkcionalno i ne-funkcionalno. Ova podjela nosi sa sobom jos podjela kao što je to prikazano ispod. Svaka od dolje navedenih podjela ima svoje definicije, procese i tehnike kojima se izvodi.
Funkcionalno testiranje:
• Unit Testing
• Integration Testing
• System Testing
• Sanity Testing
• Smoke Testing
• Interface Testing
• Regression Testing
• Beta/Acceptance Testing
Ne-funkcionalno testiranje:
• Performance Testing
• Load Testing
• Stress Testing
• Volume Testing
• Security Testing
• Compatibility Testing
• Installation Testing
• Recovery Testing
• Reliability Testing
• Usability Testing
• Compliance Testing
• Localization Testing
Gdje se ono upotrebljava, i koji su poslovi (ili grane industrije) nezamislivi bez njega?
Softversko testiranje se upotrebljava u svim granama industrije gdje postoji razvoj i implementacija softverskih rješenja, jer svako softversko rješenje je ispitano i testirano prije integracije i implementacije. Sigurno bih rekao da tu prednjači IT. Posebno bih izdvojio telekomunikacije, elektroniku kao i vojnu industriju.
Kako je krenulo bavljenje ovim poslom, od kada je počelo interesovanje za njim?
Testiranje softvera stiglo je uporedo sa samim razvojem softvera i softverskih rješenja koja su u eksplozivnoj fazi započeli nakon II svjetskog rata. Tada su počele da se pojavljuju prve akreditacije za sofverska rješenja u vidu matematičkih proračuna koristeći mašinske kodove. Otklanjanje grešaka u to vrijeme bila je glavna metoda ispitivanja i tako je ostala naredne dvije decenije.
Do 1980-tih, razvojni timovi počeli su gledati malo više ka budućnosti, tako da su sisteme počeli ispitavati sa realnim parametrima sa terena.
Taj novi pogled postavio je temelj za mnogo širu viziju testiranja kao profesije koja obuhvata proces osiguranja kvaliteta koji je bio dio životnog ciklusa razvoja softvera.
Devedesetih je došlo do prelaska sa testiranja na sveobuhvatni proces, zvan osiguranje kvaliteta, koji pokriva čitav ciklus razvoja softvera i utiče na proces planiranja, dizajna, kreiranja i izvođenja testnih slučajeva.
Testiranje je dostiglo kvalitativno novi nivo, što je dovelo do daljeg razvoja metodologija, pojave moćnih alata za upravljanje procesom testiranja i alata za automatizaciju testiranja. Testiranje softvera je tradicionalno odvojeno od ostatka razvoja. Često se sprovodi kasnije u životnom ciklusu razvoja softvera nakon njegove faze izrade.
Mnogi razvojni timovi sada korite metodologiju poznatu kao kontinuirano testiranje.
To je dio DevOps pristupa, gdje razvoj i operacije sarađuju takom cijelog životnog ciklusa proizvoda.
Cilj je ubrzati isporuku softvera, istovremeno voditi računa o ravnoteži troškova, kvaliteta i rizika.
Ovom tehnikom testiranja timovi ne moraju čekati da se softver izgradi prije nego što počne testiranje.
Timovi mogu pokrenuti testiranje mnogo ranije tokom ciklusa kako bi otkrili nedostatke što prije, kada ih je mnogo lakše ispraviti.
Koliko ima stručnjaka za softversko testiranje u Crnoj Gori, da li je to perspektivan posao?
Ne bih mogao da tvrdim da u Crnoj Gori postoji veliki broj stručnjaka koji se ozbiljno i profesionalno bave ovom tematikom. Skromnog sam mišljenja da nema. Međutim, kao neko ko se niz godina internacionalno profesionalno bavi ovim poslom, mogu reći da sam poslednjih godina zapazio blag ali konstantan porast interesovanja lokalnih kompanija da testiranje uvedu kao novu granu/odjeljenje. Pouzdano znam i da su neke kompanije u tome uspjele, kao i da se uspješno nose sa ovim domenom. Sa druge strane, biti profesionalac u ovome poslu znači imati iza sebe niz uspješno odrađenih kompleksnih internacionalih projekata i sistema na kojima je osoba prošla cjelokupan životni ciklus projekta, i došla do faze da može da predlaže poboljšanja sistema testiranja kao i da uvodi nove procedure koje će biti poštovane. Na primjer, testiranje kompleksnih softverskih rješenja telekomunikacionih sistema, kao što su: Vodafone Italy, TIM Italy, Vodafone UK, ATT USA, Comcast USA, Vodafone Ireland, Telekom Group itd. U Crnoj Gori ne mogu reći da je testiranje postao perspektivan posao još uvijek, ali sa sigurnošću vodi ka tome. Ono što mogu da tvrdim na osnovu svog skromnog iskustva jeste da je testiranje uveliko perspektivan posao van granica Crne Gore, u zemljama EU kao i u USA, Australija, Kanada itd.
Da li u Crnoj Gori ima dovoljno potražnje za tom vrstom posla?
Mišljenja sam, na osnovu do sada viđenog, da u Crnoj Gori nema dovoljno potražnje za ovim vidom posla. Međutim, kako sam već i objasnio, za očekivati je promjena na ovome polju u narednih nekoliko godina i to, nadam se iskreno, na bolje. Jedan od razloga za ovakvo stanje može biti i taj što kompanije sa svojim IT/DEV sektorima još uvijek nisu dekomponovali testiranje kao profesiju i odvojili je od razvojnih odeljenja, i shodno tome nema racionalizacije/sistematizacije ljudskih resura i otvaranja novih radnih mjesta pod ovim domenom.
Koje su još Vaše oblasti interesovanja?
Osim testiranja telekomunikacionih i elektronskih sistema, kojim se profesionalno bavim, i koji predstavljaju moj primarni domen interesovanja, paralelno sa time se bavim takođe i matematičkim modeliranjem. Razvijam prototipove matematičkih modela kao softverskih rješenja za vizuelizaciju raznih fizičko/hemijskih pojava/procesa. Među njima bih izdvojio matematičko modeliranje disperzije gasnih polutanata iz industrijskih izvora, gasovodnih cijevi, cistijerni, kao i modeliranje eksplozija. Svi modeli se zasnivaju na poznatim i dokazanim matematičkim formulama, pa je vrsno poznavanje matematike, fizike i hemije preduslov za hvataje u koštac sa ovakvim problemima. U ovom domenu imam nekoliko objavljenih međunarodnih radova na prestižnim konferencijama.
Šta planirate za budućnost?
Sigurno ću nastaviti rad na unapređenju testiranja, kao i izradi i unapređenju matematičkih modela.
Planiram dodatno usavršavati svoje tehnike testiranja, kao i pohađati nekoliko internacionalih kurseva za project management, od kojih su neki već u toku, sve sa ciljem proširenja znanja za vođenje kompleksnih projekata, njihovog planiranja, monitoringa i upravljanja rizicima.
Leave a Reply