Objašnjavamo šta je softversko testiranje

Protekle nedelje održan još jedan meetup u seriji meetup-ova za Cortex akademiju koji su prvenstvno namijenjeni budućim polaznicima, ali i svima onima koji žele da direktno od najboljih stručnjaka dobiju odgovore na sva pitanja i riješe nedoumice u vezi ICT zanimanja.
Tema 3 meetup-a bila je softversko testiranje, a o istoj nam je detaljnije govorio jedan od najboljih softver testera u regionu, Marko Dragović. Ukoliko niste bili u mogućnosti da ispratite isti, u današnjem blogu pročitajte sve što treba da znate o softverskom testiranju kroz intervju koji smo imali sa Markom.
Detaljno objašnjenje softverskog testiranja i ovog usmjerenja pročitaj u nastavku.
Možete li nam objasniti šta je testiranje softvera terminologijom razumljivom nekome ko je početnik u
oblasti informacionih tehnologija ?
Testiranje softvera je proces evaluacije i verifikacije softverskog proizvoda sa svrhom da aplikacija/sistem/moduli rade ono što bi trebalo da rade u cilju sprečavanje grešaka, smanjenje
troškova razvoja, poboljšanje performansi sistema, povećanja povjerenja klijenata itd.
Testiranje možemo definisati i kao proces procjene sistema ili njegovih komponenti sa namjerom da se utvrdi da li zadovoljava navedene zahtjeve ili ne. Jednostavnim riječima, testiranje je izvršavanje sistema kako bi se identifikovale sve praznine, greške ili nedostajući zahtjevi.
Testiranje softvera identifikuje greške i probleme u procesu razvoja tako da se oni popravljaju prije lansiranja proizvoda. Ovaj pristup osigurava da se klijentima distribuiraju samo kvalitetni proizvodi, što zauzvrat podiže zadovoljstvo i povjerenje kupaca.
Koja je razlika između automatskog i manuelnog testiranja softvera i koji su krajnji ciljevi procesa testiranja softvera ?
Po načinu izvođenja, testiranje se dijeli na manualno i automatsko. Prvobitno jako povezani, takođe imaju i neke fundamentalne razlike koje se moraju razlučiti.
Postoji mnogo krajnjih ciljeva procesa testiranja i rekao bih da je svaki podjednako važan. Prije svega, testiranjem mi vršimo takozvanu evaluacija proizvoda i osiguravamo da su ispunjeni svi tehnički zahtjevi. Shodno tome mi vršimo izgradnju povjerenja kod klijenata i pružamo informacije zainteresovanim stranama.
Tokom samog testiranja nalaze se funkcionalne greške i ne samo to, nego, radimo i njihovu prevenciju sve sa ciljem minimiziranja rizika proizvoda. U mnogome značajni cilj jeste usklađenost za zakonima. Moramo napomenuti da bilo kakva promjena zakona može manje ili više uticati na izmjene već postojećih funkcionalnosti ili pak kreiranja novih.
Stoga je usklađenost za zakonima veoma bitan cilj testiranja koji često ne zauzima prvenstvo na ljestvici među drugim ciljevima testiranja ali je jak važan i stoga ga posebno izdvajam jer ovdje vidimo i sponu između dvije oblasti, pravne terminologije i softverskog inženjeringa kao jednu zanimljivu
činjenicu.
Možete li nam reći nešto više o planu i programu kursa? Zašto je baš tako koncipiran i šta polaznici mogu očekivati nakon uspješnog savladavanja ? Koja su to znanja i vješine kojima će ovladati?
Plan i program kursa je koncipiran na osnovu moga više od decenije bogatog iskustva na ovome polju. Program u sebi sjedinjava sve osnove (fundamenta) softverskog testiranja sa naprednom obukom na jednom od najvažnijih procesa u softverskom testiranju a to je izrada kompleksnih dizajn kalendara za testiranje uz detaljnu analizu tehničke dokumentacije kojom su problemi opisani, uz integraciju problematike kroz baze podataka i unix/linux-a i njihovu primjenu u softverskom testiranju.
Plan kursa u sebi sjedinjava implementaciju statičkog i dinamičkog testiranja i pojašnjava ulogu, primjenu i funkcionalnost samog testiranja unutar kompleksnog životnog ciklusa razvoja softvera.
Kurs se zasniva na mnogo praktičnog rada kroz koji ćemo se dotaći takođe i teorijskih aspekata i vidjeti kako se oni implementiraju u praksi.
Plan i program je sveobuhvatan i zahtijeva punu prisutnost kandidata, samostalan rad i dosta vježbi kako bi se sa uspjehom priveo kraju. Kandidati će biti izloženi vremenskom pritisku kako bi se što više simulirale realne biznis situacije i biće konstantno evaluirani i ocjenjivani jer će nakon svakog modula biti rađene provjere znanja sa bodovanjem.
Nakon završene obuke, polaznici će moći računati na dolje navedena znanja i vještine:
- Komunikacione vještine
- Analitički i logički način razmišljanja
- Vještinu tehničkog upravljanja QA projektima
- Sposobnost praćenja QA procedura
- Međuljudske vještine
- Upravljanje vremenom i određivanje prioriteta
- Out of box thinking
- Prilagođavanje novonastalim promjenama
- Priprema i izrada kompleksnih softverskih QA dizajn kalendara na MNE i ENG jeziku
- Razumijevanje alata za testiranje
- Agilne radne metodologije
- Vještine QA izvještavanja
- Unix/Linux u testiranju
- SQL u testiranju
sretale sa činjenicama da softverski proizvodi mogu biti lošijeg kvaliteta od onoga očekivanog što će
vrlo vjerovatno biti povezano sa gubitkom povjeranja klijenata. Kako bi minimizirali rizik ove vrste, kompanije su prepoznale sam značaj pravilnog i sveobuhvatnog testiranja u cilju povećanja preciznosti sistema kao i tačnosti svih opisanih i dogovorenih funkcionalnosti. Međutim, mislim da dinamika ulaganja i transformacije kojom kompanije pristupaju ovoj problematici mogu i moraju ići mnogo brže.
Neophodno je da kompanije iskreno vjeruju u benefite testiranja i da ulažu i planiraju shodno tome na dalji vremenski period jer to je jedini put koji garantuje dobre rezultate. Budućnost ove profesije na našim prostorima ima ogroman potencijal i svakim danom polako koračamo naprijed.
Koja su to znanja, osobine i vještine koje krase dobrog softver testera?
Kako sam i prije naveo, tester mora biti jedna kompaktna ličnost posjedujući:
- Dobre analitičke sposobnosti
- Biti strogo ali strogo pažljiv na detaljima
- Samokritičnost
- Visoku psihološku stabilnost
- Pronicljivost u smislu osjećanja stabilnosti sistema
- Tehničku pripremljenost za izradu kompleksnih test kalendara – test dizajna
- Poznavanje alata za testiranje
- Poznavanje procedura za testiranje – koje zavise takođe od kompanije do kompanije
- Poznavanje statičke detaljne analize tehničke dokumentacije
- Poznavanje baza podataka, operativnih sistema, front-end, back-end procesa
nailazi?
dokumentima QA odjeljenje pravi prije svega kompleksne dizajne – test kalendare koji će kasnije biti pretočeni u kreiranje testnih slučajeva, scenarija, sa definisanim koracima za testiranje koji će drugi testeri izvršavati i ukoliko budu detektovani problemi onda će se ti isti problemi provjeravati unutar tehničke dokumentacije kako bi se utvrdila validnost problema. Treba napomenuti da postoji dosta slučajeva kada otkriveni problem od strane testera uzrokuje dodatne debate između dvije strane koji na kraju otkrije takozvani “design-gap” unutar tehničke dokumentacije, ili ti, propust na inicijalnim sesijama kada su dogovarane funkcionalnosti što uzrokuje
onda unapređivanje iste dokumentacije, dodatni razvoj i dodatno testiranje.
sarađuje u okviru kompanije i eventualno izvan nje?
dogovorenu metodologiju i procese koje je firma usvojila. Tokom svog rada softver tester sarađuje sa svim programerima iz svih oblasti jer je on ključna figura gdje se slivaju sve funkcionalnosti na krajnje ispitivanje/testiranje. Softver tester takođe na dnevnoj bazi održava svoja okruženja za testiranje u zdravoj formi kako bi sva testiranja mogla biti nesmetano obavljena.
razumijevanja prijavljenih problema.
Kolika je realna potreba za testerima u Cortex firmama?
Realna potreba je nešto što je činjenica. Trebamo razumjeti da gdje god se razvijaju softverski proizvodi mora postajati potreba za profesionalnim testiranjem istog. Ne smije se primijeniti pristup da programer može zamijeniti testera kako bi troškovi ljudskih resursa bili smanjeni jer zasigurno rezultati neće biti isti – sa kvalitetom sofvera nema igre i nikada ali nikada se ne smije ići na kompenzaciju nasuprot lošijeg kvaliteta softvera.
Svaka naša IT kompanija, po meni, bi trebala imati barem po jednog profesionalnog testera softvera a po mogućnosti i više jer softversko testiranje ima mnogo domena i postoje razna usmjerenja na koje se tester/i može/mogu specijalizovati (funkcionalno testiranje, testiranje performansi sistema,
penetraciono testiranje itd) i kompanija koja posjeduje ove profile profesionalnih testera zasigurno ima zagarantovan kvalitet softverskih rješenja.
Da li možete dati određene savjete i preporuke budućim polaznicima kursa?
Savjet i preporuka zasigurno bi bila da budući polaznici kursa shvate plan i program kursa što je ozbiljnije moguće. Biće potrebno dosta rada da bi se znanje usvojilo i kasnije unaprijedilo i jednostavno polaznici neće moći uspješno savladati obuku samo pukim prisustvom nastavi već će morati uložiti dosta dodatnog samostalnog napora koji uz striktne rokove će donijeti dodatnu težinu. Svakako, u tome je i poenta obuke. Oni polaznici koji uspješno završe ovu 9-mjesečnu fundamentalnu obuku zasigurno će moći samostalno obavljati zadatke testera softvera. Poslije toga njihov put ostaje široko otvoren a mogućnosti će samo vremenom rasti.
Koje su to možda greške koje ste Vi pravili na početku i tokom karijere, a koje biste sada mogli kao pouke prenijeti budućim testerima softvera?
Moram reći, odlično pitanje i shodno tome nesebično ću ih podijeliti:
- Nemojte razmišljati u pravcu da ste upili svo znanje, to je odmah alarm, jer kad počnete da razumijevate sistemske funkcionalnosti tek onda shvatite koliko je sistem veliki i tek onda shvatite koliko ne znate u suštini.
- Iskoritite starije kolege koje više od vas znaju da upijete njihovo znanje što je brže moguće – oni su ga godinama sticali, vi imate mogućnost da to kroz njih odradite brže.
- Uvijek, ali uvijek zapisujte stvari i detalje u rukovnike ili druge kompjuterske alate – pamtite samo značajne stvari, oslobodite um od stvari koje mogu biti zapisane.
- Usavršavajte se blagovremeno dodatnim kursevima.
- Nikad ali nikad nemojte da zavidite drugom na uspjehu.
- Trudite se da se oslobodite uzora, brže ćete. napredovati.
- Poštujte tuđi teški rad – pomognite kolegama i pomoć će vam biti uzvraćena.ž
- Nikad nemojte previše da se dokazujete jer će poslodavac podizati kriterijum zbog vas dovodeći druge u opasnost – budite blago ispred drugih ali ne toliko da je svakodnevno razlika ogromna između vas i njih.
- Uspjeh dolazi sa žrtvom – ne dozvolite da vaše zdravlje ili porodica pati zbog uspjeha.
- Čuvajte svoje zdravlje, jer kad bude narušeno zbog posla, sve gubi smisao.
- Svakodnevno izdvojite vremena za vas i provedite ga u treningu, rano izjutra, po mogućnosti.