Mesto i uloga testiranja u razvojnom ciklusu softvera

Mesto i uloga testiranja u razvojnom ciklusu softvera

U prethodnom tekstu, analizirali smo osnovne karakteristike dve važne metodologije razvoja softvera – u pitanju su Waterfall i Agile. Sada ćemo videti detaljnije gde je mesto testiranja u obe ove metodologije, kao i zbog čega uloga testiranja pravi važnu razliku u načinu na koji se softverski proizvodi posmatraju i razvijaju u okviru ove dve metodologije.

Na kursu SixCube University-ja steći ćeš sveobuhvatno znanje o različitim pristupima testiranju, različitim ulogama koju QA može imati u razvojnom ciklusu, kao i sva ostala znanja neophodna da započneš svoju QA karijeru.

Waterfall i Agile

Da se ukratko podsetimo najvažnijih zaključaka iz prethodnog teksta. Prvo, sam redosled razvojnih faza ne razlikuje se naročito u dve metodologije. Ipak, ključna razlika između ova dva pristupa je ta što Agile metodologija podrazumeva da se ove faze neprekidno ponavljaju, istim redosledom, u kratkim ciklusima zvanim „sprintovi“. 

Drugo, napomenuli smo da je jedna od najvećih mana Waterfall-a ta što ispravljanje grešaka i implementiranje novih zahteva može da bude izuzetno komplikovano i skupo. U nastavku teksta, videćemo kako promene u pristupu testiranju mogu doprineti rešavanju ovog problema.

QA u Waterfall-u

Linearno smenjivanje faza

Dakle, Waterfall metodologija pristupa fazama razvoja linearno i sekvencijalno. Jednom kada se jedna faza završi, prelazi se na sledeću bez povratka. 

Podsetimo se naše analogije sa skejtbordom i automobilom iz prethodnog teksta. U Waterfall modelu, praktično do samog kraja projekta nemamo nikakvu, pa čak ni pojednostavljenu verziju finalnog proizvoda. Kada razvijemo točak za naš automobil, pa onda još jedan točak, pa onda vrata ili sedišta, imamo samo delove proizvoda koji će kasnije biti sklopljeni, ali ne i funkcionalan proizvod. 

To znači da nije moguće ni testirati celovit proizvod kao takav, jer npr. koliko god temeljno ispitivali jedan točak kao izolovan element, to nam ne govori dovoljno o tome kako će se on ponašati u momentu kada je „prikačen“ za automobil.

Testiranje na kraju procesa 

Zbog toga, po Waterfall metodologiji, mesto testiranja je na samom kraju procesa. Nakon završetka faze razvoja, a neposredno pre puštanja softvera u upotrebu, ulazi se u fazu testiranja. U ovoj fazi, QA timovi sistematski pretražuju softver kako bi identifikovali greške. Tek nakon što softver prođe kroz sveobuhvatno testiranje i kada su svi identifikovani problemi adresirani, softver se prebacuje u fazu implementacije i pušta u upotrebu.

Ovaj pristup testiranju se verovatno poklapa sa intuitivnim pogledom na bilo koju vrstu testiranja, a ne samo softverskog. Zvuči naizgled logično – kada je proizvod gotov i u potpunosti razvijen, tek tada se može sveobuhvatno testirati i tek tada se mogu izvlačiti konačni zaključci.
U međuvremenu se eventualno može raditi ograničeno i nekompletno testiranje, tzv. unit testing, što bi u našoj analogiji značilo da možemo testirati da li se npr. točak vrti, kako reaguje na udarce ili da li je lako zapaljiv.

Važnost integracije

Ipak, ono što još uvek ne možemo testirati je njegova interakcija sa drugim delovima sistema, kao što su vešanje, kočnice, ili pogonski sistem. Ne možemo npr. testirati prijanjanje, obrtni moment, upravljivost, stabilnost, kao ni ponašanje u različitim vremenskim uslovima ili pod različitim opterećenjima.

U softverskom svetu ovo znači da se jedna komponenta može u potpunosti istestirati tek kada je integrisana sa ostatkom softverskog sistema. Ali, u Waterfall modelu tada već može biti kasno da se pronađene greške isprave bez velikih troškova, ili da se isprave uopšte.

QA u Agile-u

QA kao ponavljajuća aktivnost

S druge strane, u Agile metodologiji kreirani deo se pridružuje prethodno kreiranom i testira se odmah. U integrisanoj komponenti identifikuju se problemi (ako ih ima), i omogućava se dalje unapređenje proizvoda. Takođe, testira se i deo kome je komponenta pridružena i potvrđuje se da novi deo sistema nije poremetio ono što već postoji. 

Na kraju prvog sprinta dakle imamo skejtbord, za koji je ideja da vremenom postane automobil. Skejtbordu, u sledećem sprintu, možemo proširiti dasku, pa u sledećem povećati točkove, dodati vrata i krov, pa zatim umesto baterije ubaciti akumulator, i tako dalje. Vremenom, proizvod dobija nove i proširene funkcionalnosti i sve više se približava krajnjim korisničkim zahtevima. 

Pošto je, po Agile metodologiji, razvoj iterativni, ponavljajući proces, tako je i testiranje ponavljajuća aktivnost. Ono se i dalje nalazi praktično na kraju ciklusa, ali to ne znači da se nalazi na samom kraju čitavog projekta (kao u Waterfall metodologiji), već na samom kraju sprinta, tj. „miniciklusa“, koji se ponavljaju svakih nekoliko nedelja. Kroz ovaj proces, proizvod se kontinuirano poboljšava i nadograđuje.

Agile i neprekidno testiranje

Zbog svega ovoga, Agile metodologija može lako inkorporirati princip neprekidnog testiranja (continuous testing). Ono podrazumeva da se testiranje odvija kontinuirano, tokom svakog sprinta, omogućavajući ranu identifikaciju i ispravku grešaka.

Jedna od glavnih prednosti neprekidnog testiranja je što ono omogućava stalnu proveru kvaliteta proizvoda. Testovi se izvršavaju redovno kako bi se osiguralo da nove funkcionalnosti ne unose greške i da postojeće funkcionalnosti rade ispravno. Ovaj pristup omogućava brzu reakciju na povratne informacije i ispravke pre nego što problemi postanu kompleksni i skupi za rešavanje. Na taj način, smanjuje se rizik od toga da se veliki i nagomilani problemi otkriju previše kasno, što je čest problem sa Waterfall metodologijom.

Neprekidno testiranje omogućava veću fleksibilnost projekata i timova. U Agile okruženju, razvoj i testiranje praktično teku paralelno, omogućavajući stalno prilagođavanje i optimizaciju proizvoda.

Dalje, ovaj pristup testiranju omogućava stalnu i bezbednu integraciju novih nadogradnji, čime se osigurava da je svaka verzija proizvoda brzo isporučena, stabilna i spremna za upotrebu.

Neprekidno testiranje podržava Agile principe pružajući stalne povratne informacije, što dugoročno poboljšava kvalitet softvera i omogućava timovima da se brzo prilagođavaju promenama. Sve ovo je od suštinskog značaja u dinamičnom poslovnom okruženju gde su brze reakcije i sposobnost adaptacije ključne za uspeh.

Šta nas čeka u budućnosti?

Sa napretkom tehnologije evoluiraju i metode razvoja i testiranja. Sposobnost prilagođavanja metodologija testiranja za podršku različitim stilovima razvoja povećava efikasnost razvoja i osigurava da softverski proizvodi ostaju pouzdani i konkurentni. 

U budućnosti, integracija naprednih alata za automatizaciju i intenzivnija saradnja između razvojnih i testnih timova mogla bi dalje unaprediti ovaj proces. U ovom kontekstu, QA će biti ključni faktor koji ne samo da štiti poslovanje od tehničkih grešaka već i omogućava softveru da brzo napreduje i održi korak sa promenama u tehnologiji i tržišnim zahtevima.

Želiš da doprineseš evoluciji QA industrije u eri intenzivnog napretka softverske tehnologije? Prijavi se na naš kurs.

Metodologije razvoja softvera – uvod u Waterfall i Agile

Metodologije razvoja softvera – uvod u Waterfall i Agile

SDLC (životni ciklus razvoja softvera, ili u originalu Software Development Life Cycle) predstavlja proces koji se primenjuje tokom razvoja softverskih aplikacija i uključuje niz planiranih aktivnosti i faza. On omogućava timovima i organizacijama da sistematično upravljaju svim aspektima razvoja i dokumentuju ih, što pomaže u smanjenju rizika i optimizaciji resursa.

Ovaj proces se može značajno razlikovati s obzirom na odabranu metodologiju razvoja, a samim tim se u njemu menja i mesto i uloga testiranja.

Zato ćemo u ovom tekstu objasniti dva osnovna modela razvoja softvera – Waterfall i Agile, a u sledećem pobliže analizirati kakvu funkciju i značaj u njima ima proces testiranja.

A ako o ovim temama želiš da saznaš više, na pravom si mestu. Pročitaj više o tome kako te SixCube University može pripremiti za karijeru u IT

industriji.

SDLC u Waterfall metodologiji

Waterfall metodologija predstavlja tradicionalni model koji je dugo bio dominantan u softverskoj industriji. Naziv „Waterfall“, ili „vodopad”, potiče od sekvencijalnog toka faza projekta koje „teku“ jedna u drugu, poput vode koja pada niz stepenice vodopada.

Ovaj model je linearan i zahteva završetak jedne faze pre nego što se pređe na sledeću. Konkretna terminologija i struktura ovih faza može donekle da varira na različitim projektima, ali njihov najčešći redosled izgleda ovako:

Analiza zahteva – Definisanje jasnih i detaljnih zahteva pre početka razvoja.

Dizajn – Planiranje arhitekture softvera i dizajniranje rešenja na osnovu definisanih zahteva.

Razvoj – Kodiranje i konfiguracija softverskih komponenti prema tehničkim specifikacijama.

Testiranje – Verifikacija softvera koja treba da osigura ispunjavanje postavljenih zahteve.

Deployment – Implementacija i aktivacija softvera u produkcijskom okruženju (jednostavnije rečeno, „puštanje u rad“)

Održavanje – Pružanje podrške i ažuriranja softvera nakon njegovog puštanja u rad.

Da ponovimo, ovaj model zahteva da se jedna faza u potpunosti završi pre nego što se započne sledeća. Kao kod vodopada, gde se voda ne

vraća na „gore“, tako je i u Waterfall modelu razvoja softvera „povratak“ iz kasnije faze u prethodnu vrlo kompleksan ili čak neizvodljiv.

Izvor: business.adobe.com

Prednosti Waterfall modela

Ono što ide u prilog Waterfall modelu je jednostavnost, predvidljivost, lakoća razumevanja faza i njihove primene. Model omogućava lako planiranje i raspodelu resursa zahvaljujući jasno definisanim fazama i očekivanjima za svaku fazu. Ovo olakšava upravljanje projektom, jer se zahtevi i obim rada ne menjaju.

Waterfall je posebno efikasan u projektima sa precizno definisanim i dobro razumljivim zahtevima za koje se ne očekuje da će biti modifikovani, što omogućava timovima da se u potpunosti fokusiraju na ispunjavanje tih zahteva.

Mane Waterfall modela

Ipak, problem sa Waterfall modelom je što se on mnogo teže prilagođava projektima koji treba da budu fleksibilni i u kojima se očekuje da se zahtevi menjaju tokom razvoja, ali i nakon puštanja u rad.

Waterfall se vrlo teško adaptira na takvu vrstu promena. Ukoliko dođe do revizije zahteva ili do otkrivanja grešaka u kasnijim fazama, povratak na prethodne faze može biti veoma skup i vremenski zahtevan. Ovo može dovesti do značajnih kašnjenja i povećanja troškova.

Precizna identifikacija grešaka i njihovih uzroka, a zatim rekonfiguracija, redizajniranje i ponovno kodiranje, mogu potrošiti mnogo vremena i resursa, naročito ukoliko su naknadno primećene greške i odstupanja značajna. 

Takođe, unošenje neophodnih promena, posebno u kompleksnim sistemima, mogu izazvati lančane reakcije novih neočekivanih promena i grešaka s obzirom na međuzavisnost određenih komponenti softvera od drugih. Sve u svemu, „vraćanje“ na prethodne faze u ovom modelu može biti vrlo neugodan, skup i naporan posao.

Na kraju, ovaj model ne podstiče stalnu interakciju sa krajnjim korisnicima, kao ni analizu i implementaciju povratne informacije dobijene od njih, što može rezultirati softverskom aplikacijom koja prosto ne odgovara korisničkim potrebama.

SDLC u Agile metodologiji

Rame uz rame sa Waterfall-om, početkom 2000-tih godina, na značaju počinje da dobija i Agile metodologija, koja je danas široko prihvaćena u IT industriji. Ovo, naravno, nisu jedine dve metodologije, ali su vrlo pogodni primeri za objašnjavanje nekih važnih razlika u mogućim pristupima testiranju.

Agile metodologija je pristup razvoju softvera koji se odvija u kratkim, ponavljajućim ciklusima, pri čemu se u svakom ovom ciklusu prolazi kroz praktično sve faze kroz koje prolazi jedan Waterfall projekat.

Kako joj samo ime kaže, ona podrazumeva agilnost prilikom procesa razvoja, ali i mnogo više od toga. U Agile modelu, prioritet su funkcionalan softver, česte nadogradnje i mogućnost da se odgovori na promene zahteva, pre nego jasno utvrđen plan i gomilanje dokumentacije. Među glavnim principima ove metodologije su jednostavnost, timski rad, fokus na korisnika, samoorganizacija i održivi razvoj.

Agile vs Waterfall – objašnjenje kroz analogiju

Možda najbolji način da se objasni razlika između dva osnovna pristupa razvoju softvera jeste uz pomoć analogije, baš onako kako je i autoru teksta to svojevremeno objašnjeno kada se mučio da ove nepoznate izraze smesti u smislen koordinatni sistem.

Analogija ide ovako: zamisli da je tvoj tim dobio zadatak da napravi automobil. Po Waterfall-u, to bi značilo da tim razvija jednu po jednu komponentu, od početka do kraja. Dakle, ako tim kreće od točka, postoji detaljan plan kako se pravi čitav točak, tim se drži tog plana, sve dok čitav točak nije gotov. Zatim se pravi drugi točak, pa treći, pa onda vrata, sedišta itd. (naravno, ovaj primer je samo ilustrativne prirode jer se srećom automobili ne dizajniraju počevši od točkova i sedišta). Prelazak na sledeću fazu – testiranje – se dešava tek kad je čitav proizvod završen.

U Agile metodologiji, ovaj automobil neće biti pravljen deo po deo po istom principu, nego će odmah biti napravljen čitav, ali u minijaturnoj, primitivnoj verziji, koju zatim treba nadograđivati i poboljšavati do finalnog proizvoda. U analogiji sa automobilom to bi značilo, na primer, da je tim u prvom ciklusu napravio skejtbord koji ide na baterije, koji će se nakon svakog sledećeg ciklusa sve više približavati izgledu i funkcionalnosti zamišljenog automobila.

Agile projekti, kao što smo spomenuli, prolaze kroz manje-više iste faze kao i Waterfall projekti, samo što se „hod“ od prve do poslednje faze dešava neuporedivo brže i odvija u ponavljajućim ciklusima – „sprintovima“, koji najčešće traju od 2 do 4 nedelje. Takođe, pre prelaska na naredni sprint, Agile podrazumeva i fazu revizije svega urađenog u prethodnom ciklusu.

Dakle, posmatrajući samo npr. prvi sprint i samo faze testiranja i razvoja, testiranje dolazi posle razvoja, i po tome se Agile ne razlikuje bitno od Waterfall modela. Ali zato razvoj (kao i analiza i dizajn) u drugom sprintu dolazi nakon testiranja u prvom, što iako je formalno „povratak“ u prethodnu fazu, suštinski je napredak u razvoju projekta. Svaki sprint pruža priliku za unapređenje proizvoda i integraciju povratnih informacija od korisnika, što vodi ka boljem i prilagođenijem softverskom rešenju.

 

Izvor: asana.com

Prednosti Agile metodologije

Danas, Agile metodologija mnogo više odgovara načinu na koji funkcioniše softverska industrija. U našoj analogiji, naručiocima i klijentima mnogo više znači da vide „skejtbord“ nego „točak“, da ga testiraju, isprobaju i daju povratnu informaciju koja će usmeriti projekat dalje.

U dinamičnoj eri koja stavlja veliki akcenat na inovacije, podrazumeva se da će softver biti fleksibilan i prilagodljiv s obzirom na evoluirajuće potrebe korisnika i tržišta. Agile omogućava brzo otkrivanje grešaka, nepoklapanja sa očekivanjima korisnika i drugih problema u radu, kao i brzo ispravljanje svih ovih nedostataka.

U Agile metodologiji, ne čeka se da svi akteri budu besprekorno zadovoljni da bi softver bio pušten u produkciju, jer se podrazumeva da će konstantan rad na njemu biti nastavljen, a povratne informacije koje dolaze direktno od korisnika, pozitivne i negativne, mogu samo pomoći da svaka sledeća verzija bude još bolja.

Mane Agile metodologije

Da bi uopšte funkcionisao, svaki Agile projekat zahteva intenzivnu i konstantnu komunikaciju, kako u samom timu, tako i eksterno sa klijentima. Dalje, zbog fleksibilnosti ovog pristupa, poseban izazov je napraviti dobar plan (naročito finansijski) koji će uspešno proceniti troškove, resurse i vremenske okvire, ali i u isto vreme ostaviti dovoljno slobode za revizije i adaptacije.

Generalno, većina nedostataka Agile metodologiji predstavljaju naličje njegovih prednosti. Na primer, jedan važan benefit rada po Agile modelu je manje rigorozan stav po pitanju vođenja dokumentacije. Ova se prednost lako može preokrenuti u manu, jer nedovoljna dokumentacija može dovesti do problema u komunikaciji i prenosu znanja, posebno kada novi članovi tima preuzimaju odgovornosti ili kada projekat postane složeniji i zahteva detaljnije razumevanje prethodnih faza razvoja.

Gde je QA u svemu tome?

Ipak, danas je Agile široko prihvaćen upravo zato što nudi optimalnu prilagodljivost za dinamičan razvoj softvera. Agile efikasno reaguje na tržišne promene, podstiče inovacije i kontinuirano unapređuje softverske proizvode, tako se usklađujući sa brzim i promenljivim ritmom savremenog sveta. U svemu tome jednu od ključnih uloga igra pozicija testiranja u ovom procesu.

Zato ćemo se u sledećem tekstu fokusirati na QA, pokušati detaljno da objasnimo njegovo mesto i doprinos u obe ove metodologije i analizirati prednosti i mane oba pristupa u kontekstu testiranja.

Ako želiš da naučiš više o SDLC, različitim metodologijama i specifičnoj ulozi testiranja u svakoj od njih, ali i mnogo mnogo više od toga, naš QA kurs bi mogao biti pravi izbor za tebe.

Šta je regresivno testiranje?

Šta je regresivno testiranje?

Regresivno testiranje je izrazito važan korak u procesu razvoja softvera. Ono poboljšava opštu stabilnost sistema, sprečava povratak ranije otklonjenih grešaka i generalno pospešuje otkrivanje bagova pre puštanja softvera u produkciju. Sve to dovodi do većeg korisničkog zadovoljstva i poverenja, a kompanije, koje dati softver razvijaju ili koriste, štiti od nepredviđenih troškova i reputacijskih rizika.
U ovom članku otkrićemo ti ukratko kako se regresivnim testiranjem postiže sve navedeno, a SixCube University ti nudi priliku da naučiš sve o najvažnijim aspektima regresivnog testiranja i njegovoj ulozi unutar šireg konteksta testiranja softvera.

Cilj regresivnog testiranja

U jednom od prethodnih tekstova, pod naslovom „Vrste softverskog testiranja“, regresivno testiranje smo objasnili ovako: „Regresivno testiranje ima za cilj očuvanje stabilnosti i funkcionalnosti čitavog sistema nakon svake promene. Ova vrsta testiranja sprovodi se kako bi se garantovalo da nove nadogradnje, ispravke bagova ili izmene u kodu ne uzrokuju neželjene efekte na već postojećim delovima softvera.“

Prema tome, regresivno testiranje predstavlja proveru „starih“ delova softvera nakon implementacije novih promena u sistemu. Ono se obavlja da bi se sprečila pojava regresija. Regresije su greške koje se pojavljuju na funkcionalnostima koje su, pre unosa novih promena, radile bez problema.

Kada se obavlja regresivno testiranje?

Regresivno testiranje se, dakle, obično radi kao odgovor na različite nadogradnje softvera. To može biti dodavanje novih funkcionalnosti, ažuriranje starih, popravka otkrivenih bagova, optimizacija koda, izmene u korisničkom interfejsu, prilagođavanja konfiguracije, integracija novih eksternih sistema, ili dodavanje novih zahteva za već postojeće funkcionalnosti. Takođe, može da se radi i periodično, nevezano za bilo kakve promene, u unapred određenim vremenskim razmacima.

Regresivno testiranje je praktično redovan „sistematski pregled“ softvera. Na ovaj način se osigurava da novonastale promene nemaju negativan povratni uticaj na različite komponente softvera.

Da damo jedan jednostavan primer – nakon dodavanja novog načina plaćanja u e-prodavnici, recimo plaćanja preko Apple Pay-a, tester može odlučiti da proveri da li je uvođenje ove novine uticalo na funkcionisanje već korišćenih vidova plaćanja, na primer kreditnom karticom ili preko PayPala. Ipak, povratni efekat nove funkcionalnosti nije ograničen na „bliske“ ili „srodne“ funkcionalnosti, već, u zavisnosti od arhitekture sistema, može da utiče na potpuno neočekivane delove softvera, recimo na proces prijave korisnika, praćenje pošiljki ili na mehanizam ocenjivanja proizvoda.

Nasuprot regresivnom, treba reći da postoji i progresivno testiranje, koje se fokusira na validaciju sveže dodatih ili ažuriranih komponenti, i, za postizanje optimalnog kvaliteta softvera, najčešće je potrebno primeniti kombinaciju ova dva pristupa.

Proces regresivnog testiranja

Analiza promena

Kako će proces regresivnog testiranja izgledati zavisi od niza faktora vezanih za konkretan softver, metodologiju testiranja i alate koji se koriste, ali će manje-više uvek proći kroz neke osnovne etape.

Proces obično počinje identifikacijom obima promena i analizom njihovog uticaja, koja može da se radi različitim metodama – uz pomoć alata za praćenje promena u kodu, zatim kroz proučavanje dokumentacije ili kroz razgovore sa razvojnim timom. Ovaj korak je ključan jer se regresivno testiranje retko izvršava na svim funkcionalnostima softvera, naročito u slučaju velikih i kompleksnih sistema, pošto takav pristup uglavnom zahteva previše vremena i resursa.

Prioritizacija

Tester mora dobro poznavati sistem, razumeti promene koje su napravljene na njemu, kao i namenu i svrhu svake komponente. Na osnovu ovih uvida, biraju se funkcionalnosti koje predstavljaju prioritet i koje je neophodno istestirati za datu verziju softvera, a kriterijumi za taj izbor mogu biti različiti. Tester, na primer, može izabrati da se fokusira na testiranje komponenti za koje, na osnovu svog znanja o sistemu, smatra da bi verovatno mogle biti pogođene najnovijim promenama.

Takođe, često se prioritizuju i funkcionalnosti koje se najviše koriste, zatim one koje su i ranije bile fragilne ili one čija bi neispravnost predstavljala najveći rizik u smislu potencijalnih finansijskih gubitaka, narušavanja reputacije ili zakonskih komplikacija.

Izrada i/ili selekcija testova

Sledeći korak je izrada testova koji će da provere date funkcionalnosti, ili selekcija već ranije dizajniranih testova, ukoliko su date funkcionalnosti već bile testirane u prošlosti. Ovi testovi su, u principu, detaljno definisani scenariji, koji opisuju korake, uslove i očekivane rezultate za proveru specifičnih funkcionalnosti softvera, i kreiraju se na osnovu analize zahteva i specifikacija sistema.

I ovaj deo procesa takođe zahteva temeljan pristup kako bi se osiguralo da izabrani testovi adekvatno pokrivaju sve potencijalne efekte novih promena na sistem.

Izvršavanje regresivnih testova i važnost automatizacije

Izvršavanje regresivnih testova se može raditi manuelno, ali vrednost automatizacije u ovom domenu se povećava što je sistem kompleksniji i što se češće ažurira.

Automatizacija regresivnih testova naročito ima smisla u slučaju kritičnih komponenti softvera, koje bi trebalo testirati posle svake ili skoro svake promene. Tako, većina testerskih timova izgrađuje i stalno dopunjuje svoj regression pack, odnosno set testova koji se mogu automatski izvršiti po potrebi. Iz regression pack-a se onda biraju testovi koji su prikladni s obzirom na plan testiranja i prioritizaciju, a na osnovu te prioritizacije definiše se i redosled njihovog izvršavanja.

Nakon što su testovi izvršeni, pravi se izveštaj, koji se šalje razvojnom timu, koji ispravlja eventualne greške i šalje novu verziju softvera na ponovno testiranje, a ovaj ciklus se zatim ponavlja dokle god se ne utvrdi da softver funkcioniše u skladu sa zahtevima.

Regression pack se može dopunjavati nakon svake nove iteracije softvera. Kada je nova funkcionalnost jednom testirana, korišćeni testovi se mogu pridodati ostalima u regression pack-u i koristiti za njeno regresivno testiranje kada god u budućnosti bude postojala potreba.

Ilustracija: dodavanje testova za nove funkcionalnosti u regression pack prilikom svake nove verzije softvera. (Izvor: katalon.com)

Izazovi regresivnog testiranja

Kao što smo rekli, za uspešno regresivno testiranje neophodno je temeljno poznavanje sistema i njegove svrhe, kako bi se napravila dobra prioritizacija pri testiranju, ali taj posao nije nimalo lak. Ovde je odgovornost na testeru velika jer mora da uzme u obzir veliki broj faktora i „izvaga“ ih tako da omogući da softver bude maksimalno funkcionalan i stabilan uz što manji utrošak vremena, kako bi nova verzija softvera mogla da bude što ranije puštena u rad.

Drugi izazov regresivnog testiranja je svakako adekvatna automatizacija testova. O problemima koji mogu pratiti automatizaciju i o procesu automatizacije uopšte, već smo opširnije pisali u ovom tekstu.

Od ostalih izazova, izdvojili bismo još održavanje testova, koje podrazumeva redovno ažuriranje i prilagođavanje ranije napisanih testova kako bi oni bili sinhronizovani sa najnovijim promenama u softveru. Ovo uključuje reviziju i uklanjanje zastarelih testova, dodavanje novih testova za nove funkcionalnosti, i optimizaciju postojećih testova radi povećanja efikasnosti i pokrivenosti testiranja.

Nauči sve o regresivnom testiranju na SixCube University-ju

Regresivno testiranje je nezamenjiv deo održavanja kvaliteta softvera, ključan za očuvanje stabilnosti, funkcionalnosti i pouzdanosti sistema kroz različite verzije. Omogućava timovima da brzo reaguju na promene bez straha od neočekivanih problema, podižući poverenje u softverska rešenja i osiguravajući visok kvalitet korisničkog iskustva. Zahvaljujući njemu, kompanije mogu da ostvare važnu konkurentsku prednost, podstaknu dugoročnu lojalnost korisnika i učvrste poziciju svog brenda na tržištu.
Ukoliko želiš da naučiš više o ovoj temi i stekneš najvažnija znanja i veštine neophodne da započneš karijeru u QA industriji, prijavi se na naš kurs.

Osam zabluda o radu u IT industriji

Osam zabluda o radu u IT industriji

S obzirom na intenzivan razvoj IT industrije i njenu integraciju u praktično sve društvene strukture, mogli bismo pretpostaviti da se opšte razumevanje ovog sektora značajno poboljšalo. Ipak, uprkos delimičnim naprecima u tom pravcu, sa rastom IT industrije se takođe množe i (najčešće pogrešni) stereotipi o njoj koji sprečavaju da se adekvatno sagleda njena priroda i uticaj.
Iz zaista široke palete aktuelnih zabluda, izdvojili smo nekoliko za koje nam se čini da su najčešće i samim tim najvažnije za razotkriti. Naročito ako razmišljaš da započneš karijeru u IT-ju, ali te neke od ovih zabluda možda sprečavaju da se odlučiš na takav korak. Ako te ovaj tekst dodatno zaintrigira da se priključiš IT industriji, OVDE možeš da vidiš kako ti SixCube University može pomoći na tom putu.

1. IT = programiranje

Nekada davno su IT stručnjaku prijatelji verovatno često prilazili s rečenicom tipa: „Kuler mi se nešto čudno čuje, jel’ možeš to da pogledaš?“. U nekom momentu je to evoluiralo u: „A jel’ možeš da mi reinstaliraš Windows?“. Danas smo u eri u kojoj se IT često poistovećuje sa programiranjem, pa ljudi danas često IT stručnjaku prilaze sa biznis planom i rečenicom: „Pazi što imam ideju za aplikaciju…“


Naravno, IT industrija danas obuhvata mnogo više od programiranja – testiranje softvera, sistem administraciju, konfiguraciju servera, projektni menadžment, analizu sistema, administraciju baza podataka, analitiku podataka, sajber-bezbednost, dizajn i integraciju hardverskih sistema, i još mnogo čisto tehničkih ili interdisciplinarnih oblasti i zanimanja. To je, pre svega, jedan čitav mali svet za čije funkcionisanje je potrebno puno više od pisanja koda.

2. IT poslovi su monotoni i ubijaju kreativnost

Definicija toga šta je „monotono“ zavisi prevashodno od ličnih preferencija, a za one koji vole intelektualno stimulišući posao, IT teško može biti monoton. Naravno, to koliko će konkretan posao biti „zanimljiv“ zavisi i od nekih objektivnijih faktora – od prirode konkretnog posla, kompanije, projekta, ili role, između ostalog. 

Ono što je sigurno je da IT poslovi nikako nisu nekreativni. Ako je kreativnost prosto sposobnost stvaranja novih ideja i rešenja putem preuređivanja i preoblikovanja nekog postojećeg znanja ili iskustva, većina IT poslova se itekako uklapa u tu definiciju.

Trenutni korpus znanja u informacionim tehnologijama je nesagledivo velik. Kreativnost u ovom sektoru se sastoji od toga da IT stručnjak iz ovog mora informacija „aktivacijom“ i originalnom kombinacijom tačno onih znanja koja su prikladna i potrebna za određen problem ili projekat, dođe do inovativnih rešenja i doprinese razvoju novih tehnologija.

3. IT stručnjaci su svi introvertni i nekomunikativni

Informacione tehnologije generalno nisu oduvek bile toliko rasprostranjene, korisne i tražene kao danas. Nekada, IT je verovatno delovao malo i egzotično, kao čudno i nerazumljivo zanimanje, rezervisano za ekscentrike. Ne možemo posebno ni osuđivati takav stav – naravno da je stavljanje izbušenih kartica u gigantske skalamerije običnom čoveku tog vremena delovalo malo zbunjujuće.

Čini se da predrasuda o IT-jevcima kao nekomunikativnim introvertima potiče još iz tog perioda, bez obzira što se IT i svet izgrađen oko njega drastično promenio. IT poslovi zapravo zahtevaju stalnu komunikaciju i timski rad, a veliki broj firmi pokušava da ovaj princip inkorporira u svoju kompanijsku kulturu, i preferira da zaposli komunikativne i pristupačne pojedince.

Vremena su se promenila i interesovanje za IT više nije egzotika – jedna čitava generacija je odrasla uz uređaje i sisteme zasnovane na informacionim tehnologijama, tako da IT svet više nije tako tajanstven i dalek za većinu ljudi kao ranije. Takođe, danas je on izuzetno masovan i raznolik, i okuplja najšarolikije tipove ličnosti koje nije moguće podvesti pod bilo kakav šablon.

4. U IT kompanijama rade samo mladi

 IT je svakako industrija koja nezaustavljivo raste i samim tim joj je neophodan stalan priliv novih stručnjaka. Naravno, oni koji imaju više vremena i volje da uče i posvete se novim tehnologijama su češće mladi ljudi i stoga oni zaista imaju relativnu brojčanu nadmoć u većini IT kompanija.

Ipak, i među iskusnijim generacijama itekako ima IT stručnjaka, a postoji i veliki broj onih koji su studirali tehničke, tehnološke ili fakultete prirodnih nauka i otud poseduju razna stručna znanja koja mogu poslužiti kao sjajan osnov za prekvalifikaciju u neku od IT oblasti. Treba reći da različite generacije donose različite perspektive i kvalitete, i vrlo često su najbolji timovi oni koji imaju pravu kombinaciju mladosti i iskustva.

5. IT je „zlatna koka“

Da budemo direktni – jedna od najčešćih predrasuda o IT-ju je da svi zaposleni imaju basnoslovne plate, a to je neretko i motiv za ulazak u taj svet. Prosečna plata u IT sektoru zaista jeste veća od većine drugih industrija, ali te zarade takođe značajno variraju u zavisnosti od znanja, iskustva i posvećenosti. 

Novac nikako nije zagarantovan, već dolazi samo kao rezultat predanog rada i istinskog entuzijazma za tehnologiju i sopstveni posao. Zarada svakako ne bi smela biti jedini motiv za ulazak u ovu branšu jer nije dovoljan motiv za svakodnevni vredan rad i sama po sebi ne može da vodi dugoročnom zadovoljstvu sopstvenim životom i karijerom.

6. IT poslovi su najteži na svetu

Ponekad se poslovi u IT sektoru doživljavaju kao izuzetno iscrpljujući i da IT kompanije očekuju da su im zaposleni stalno raspoloživi, uz potpuno nepoštovanje radnog vremena, granica i privatnog života. Iako u IT-ju, kao i bilo kom drugom sektoru, ima kompanija i poslodavaca koje nikom ne bismo poželeli, ovo je ipak retka pojava. 

IT poslovi često jesu odgovorni, a umeju biti i naporni, ali percepcija da se ulaskom u IT automatski ulazi u neku surovu mašinu i gubi privatan život je prosto netačna. Potražnja za IT stručnjacima je, uz sve fluktuacije, i dalje na nivou na kom kompanije, čak i da to žele, ne mogu na taj način iskorišćavati zaposlene kako ne bi ostali bez njih. U IT-ju su zaposleni svesni da je moć i u njihovim rukama i uglavnom znaju da postave granice. Onlajn zajednice IT stručnjaka su sve rasprostranjenije i aktivnije, što znači da će „loš glas“ biti sve skuplji i rizičniji u ovom sektoru.

7. IT poslovi su najlakši na svetu

Vrlo često, u istoj sredini u kojoj važi određeni stereotip, važi i njegova direktna suprotnost. U slučaju IT-ja, pored pomenute predrasude da su IT-jevci ekstremno zauzeti i iskorišćavani, postoji i predrasuda da zbog njihove ležernosti svaki projekat kasni, a da su oni sami privilegovana klasa kojoj je sve dozvoljeno.

Istina je, kao i obično, negde u sredini i daleko od obe ove krajnosti. Brojna IT preduzeća nude vrlo povoljne uslove rada i prateće beneficije, što je postalo industrijski standard i prepoznatljiva karakteristika sektora. Ali beneficije kao što su hibridni rad, podrška za fitnes aktivnosti, fleksibilno radno vreme, ili prostor za odmor i rekreaciju unutar firme, ne bi trebalo smatrati izuzetnim povlasticama, već normom koja je sve zastupljenija i u drugim industrijama.

O nekoj preteranoj ležernosti tek nema govora. IT industrija pokreće moderni svet, zarađuje trilione dolara godišnje, očekivanja od nje konstantno rastu, i bez obzira na brojne izazove s kojima se suočava, ležeran pristup nije jedan od njih.

8. Svi IT-jevci su geniji za tehnologiju

Već smo spomenuli da svet sve bolje razume kako IT funkcioniše, ali da određena misterija i dalje postoji. Nije svakako pomogao ni način na koji su često u filmovima ili serijama popularno prikazani IT-jevci – kao da su svi redom hakeri koji prikače USB na laptop a on na neki čudesan način za nekoliko sekundi provali u centralnu bazu podataka FBI-ja.

Nadamo se naravno da niko ne misli da su ovi prikazi potpuno tačni, ali pompa oko IT-ja kao nečega što mogu da rade samo geniji za tehnologiju koji vide svet u matriksovskim algoritmima i dalje je aktuelna u nekim krugovima. Što se toga tiče, ponovićemo još jednom – IT poslovi su zaista kao i bilo koji drugi i rade ih obični ljudi koji su do znanja koje imaju došli predano učeći i radeći. Ono što ih izdvaja su bolje prilike za napredak, raznovrsni karijerni putevi, kao i njihova aktuelnost i važnost u dobu u kojem živimo. I kao i u bilo kom drugom poslu, talenat za njega nije nebitan, ali će najuspešniji najčešće biti oni koji se ističu svojom marljivošću i vrednim radom.

Intervju s polaznikom: „SixCube University mi je dao samopouzdanje na novom profesionalnom putu”

QA-studentkinja-radi-za-laptopom-u-ucionici

Intervju s polaznikom: „SixCube University
mi je dao
samopouzdanje
na novom
profesionalnom putu”

SixCube University ima za cilj ne samo da pripremi svoje polaznike za uspešnu QA karijeru, već i da postane platforma za povezivanje budućih lidera u našem sektoru. Želimo da doprinesemo uspostavljanju šire zajednice QA profesionalaca koji će se pomagati i razmenjivati iskustva i znanja, i koji će jednog dana predvoditi našu industriju. To znači i da se trudimo da održimo kontakt sa nekadašnjim polaznicima i ispratimo njihov put kroz svet softverskog testiranja.

Zato danas razgovaramo sa Jelenom Jarić, koja se posle završenog SixCube University kursa okrenula traženju poslovnog angažmana u testing industriji.

Nakon uspešne prijave na konkursu za posao, Jelena je počela da radi na poziciji test konsultanta i tako napravila svoje prve korake u novoj karijeri. Posle 6 meseci rada u novoj oblasti, otkrila nam je kako joj SixCube University obuka izgleda iz današnje perspektive, zašto je odabrala testiranje za prekvalifikaciju, da li misli da je napravila pravi korak u karijeri, i još mnogo toga.

Čime si se bavila pre testiranja i kako gledaš na svoju nekadašnju profesiju?

Završila sam Ekonomski fakultet i nekoliko godina radila u računovodstvu. To je bilo moje prvobitno profesionalno usmerenje i nešto što me je odavno zanimalo. Tu struku sam volela jer se zasniva na logičkom razmišljanju, analitičkom pristupu, kao i traženju i korigovanju grešaka.

Ipak, nisam znala kako taj posao tačno izgleda dok nisam počela da se bavim njime. I zaista sam volela mnoge elemente tog posla – obračune, kalkulacije, finansijske izveštaje, usaglašavanja stanja sa kupcima, dobavljačima i slično. Ipak, u praksi, računovodstvo obuhvata mnogo obaveza koje su u suštini pravničke, i podrazumeva stalno učenje i praćenje zakonskih regulativa, što zna da bude monotono.

Takođe, to je profesija za koju sam shvatila da baš i nije fleksibilna i u kojoj se dosta sporo napreduje. To dugoročno dovodi do nezadovoljstva, ne samo ličnog nego i kolektivnog. Zbog svega toga, računovodstvo nije više bilo mesto na kome sam se prijatno osećala. Shvatila sam da mi je potrebna promena.

jelena-jaric-polaznik

Otkud interesovanje za testing? Jesi li znala od ranije nešto o testiranju ili IT industriji generalno?

Interesovanje za tehnologiju je uvek postojalo, kao i određena lakoća u radu sa računarima, ali testiranje kao oblast je za mene bilo nešto novo. Razumela sam razliku između developmenta i testinga i znala ponešto o ulozi testiranja u procesu kreiranja softvera, ali to je sve.

Naravno, kako je rasla popularnost i važnost IT-ja, tako je i sve više ljudi oko mene bilo u toj industriji, o njoj sam sve više mogla da čujem i saznam i meni se dopala ideja da bolje upoznam tu oblast, pa čak i da se prekvalifikujem. Znajući da sam snalažljiva sa tom vrstom tehnologije i uzimajući u obzir da sam i na poslu u to vreme koristila različite napredne softvere, odlučila sam da pokušam.

Upisala sam paralelno dva kursa na dva mesta, od kojih je jedan bio SixCube University. Tu je veliki faktor bila preporuka prijateljice koja je bila zaposlena u kompaniji Sixsentix, iz razgovora s njom sam shvatila da testerska profesija može biti vrlo zanimljiva za mene i tako je sve počelo.

Kakva su tvoja iskustva s kursa?

Stvarno fenomenalna. To kažem jer sam imala priliku da pohađam dva kursa u isto vreme i mogla sam da povučem dobru paralelu između njih.

Na SixCube University-ju mi se svideo koncept i odnos prema polaznicima, kao i način rada i pristup. Većina kurseva funkcioniše kao uigrana mašinerija za proizvodnju kadrova, sa ciljem da što više ljudi što pre dobije sertifikate na osnovu kojih će tražiti posao, makar i po cenu toga da kvalitet same obuke i stečenog znanja trpi.

SixCube University nije takav. Tu sam mogla da osetim posvećenost i strpljenje predavača, kao i pravu interaktivnost i dvosmernu komunikaciju, što ima za posledicu da polaznici zaista razumeju oblast kojom će se baviti.

Samim tim, i tempo rada je bio optimalan, bilo je intenzivno ali bez preterane žurbe i forsiranja. Takođe, odnos između teorije i prakse je bio savršen, jer iako je praksi posvećena velika pažnja, teorija nikako nije bila zapostavljena, što nam je omogućilo da s više razumevanja savladamo praktične zadatke.

Da li bi mogla da izdvojiš neki najsnažniji utisak koji ti je ostao iz tog perioda?

Od svega, najjači utisak za mene je bio izlazak iz zone komfora. Prekvalifikacija nije nimalo jednostavna stvar, prvo jer zahteva da se uloži veliki trud. Teško je  odlučiti se na nju kad imaš već neki posao, pronašao si se koliko-toliko u njemu, i imaš neke prihode od toga – to te sve ušuška i demotiviše da tražiš druge opcije.

Takođe, tu postoji i neki psihološki pritisak, jer prekvalifikacija ne samo da je naporna, već i znači da priznaješ da si „pogrešio“ u izboru struke, i dodatno paziš da ne napraviš još jednu „grešku“, tj. da ne izabereš oblast za prekvalifikaciju koja ti takođe neće biti po meri. Ali ako je realnost prosto takva da nisi zadovoljan svojim poslom i karijerom, treba se ohrabriti na takav korak. I kada se jednom odlučiš na to, osećaj je stvarno lep i taj utisak još uvek nosim.

Od svih znanja koja si stekla na kursu, šta ti najviše koristi u poslu?

Mogla bih da navedem mnogo stvari, ali najbitnije što nosim sa kursa je samopouzdanje koje sam stekla zahvaljujući svemu onome što sam naučila. SixCube University mi je pružio čvrst temelj zbog kog sam imala sigurnost koju mislim da većina testera početnika nema.

Čini mi se da je to sve zasluga predavača, i dolazi kao rezultat temeljnog pristupa i iskrene želje da ti prenesu znanje. Na drugim IT kursevima, često je fokus striktno na tehničkom osposobljavanju, što mi je SixCube University svakako pružio, ali ovaj kurs ide i dalje od toga. Mislim da je važnije da dobiješ pravu kombinaciju teorijske, praktične i mentalne pripreme za novu karijeru od toga da samo naučiš određeni alat ili programski jezik.

To podrazumeva da poznaješ osnove i da poznaješ kontekst – zašto se obavlja testerski posao i s kojim ciljem – kao i da usvojiš neophodni mentalitet za ovu profesiju. Zahvaljujući ovom kursu, shvatila sam šta znači biti tester i osetila da dobro razumem svrhu ovog posla, što mi je dalo samopouzdanje da lako nadograđujem svoje znanje i da se snađem na bilo kom projektu u bilo kojoj firmi.  Znala sam da me čeka još mnogo učenja, ali sam znala i da mi ono neće predstavljati problem i da ću biti potpuno spremna za sve izazove i nepoznanice na radnom mestu, iako sam upisala kurs bez prethodnog znanja o testiranju.

Da li je bilo teško izbalansirati posao sa obavezama vezanim za kurs?

Meni zaista nije. Jesam u to vreme još uvek radila u računovodstvu, ali svidelo mi se što se predavanja održavaju vikendom, jer je to značilo da na njih mogu da dođem odmorna i zapravo spremna za rad.

Pomoglo je i to što je atmosfera zaista bila sjajna, za šta je bila zaslužna i moja grupa u kojoj smo se svi stvarno lepo uklopili i slagali, ali i predavači. Svidelo mi se što su svi bili drugačiji, autentični, prijatni, puni poštovanja, i to je sve stvorilo vrlo opuštenu i lagodnu atmosferu. Iskreno, ne da mi nije bilo teško nego sam jedva čekala da dođem da ih vidim sve.

Šta te je najviše iznenadilo u vezi sa testerskom profesijom?

Verovatno značaj testiranja, kao i složenost samog posla. Ja sam na primer pre ovog kursa čula priče da tester može da bude svako i kako se testerski posao praktično suprotstavlja poslu developera, koji bi po tom gledištu bio nekako superioran i za koji je potrebno neko znanje. U tom slučaju, testiranje je onda samo neko slepo rutinsko „kliktanje“, što je sve potpuno pogrešna percepcija testiranja.

Na ovom kursu sam shvatila i zašto je testiranje toliko važno, i da ne može da ga „radi svako“ i da je itekako potrebno znanje i priprema za njega. Kroz priče predavača sam mogla da vidim i način na koji razmišljaju, a koji je bio prosto drugačiji i za koji mi je trebalo vremena da ga razumem i usvojim. Čitav svet testiranja je kompleksniji, dublji i sadržajniji nego što sam očekivala.

Šta je za tebe najvažnija stvar koju si dobila zahvaljujući prekvalifikaciji?

Ja sam se prijavila na obuku i ušla u ovu profesiju pre svega jer mi je bilo zanimljivo i stvarno sam se osećala mnogo bolje nego na prethodnom poslu. Volim što na ovom poslu imam osećaj da se igram, i to sam osetila već na kursu. Naravno, posao je vrlo ozbiljan i odgovoran, ali je takav da je neophodno da stalno istražuješ i ostavlja prostora da iskažeš svoju kreativnost u pronalaženju rešenja.

Za razliku od računovodstva u kome je sve crno-belo, u testiranju različiti odgovori ne znače da je jedan od njih pogrešan, već da je do rešenja moguće doći različitim putevima i oslanjajući se na različite perspektive. Iako se oba posla zasnivaju na logičkom razmišljanju i analitičkom pristupu, računovodstvo ne dozvoljava tu vrstu fleksibilnosti i inventivnosti. Takođe, nije postojao timski rad jer, iako sedimo u istoj prostoriji, ne radimo zajedno već svako radi na svojim zadacima, dok testiranje zahteva stalnu saradnju i komunikaciju s kolegama na projektu. To stvara radnu atmosferu koja je za mene mnogo prijatnija.

Na kraju, ono što je meni najvažnije je da koliko god ozbiljno shvatala svoj posao, ja ga vidim i kao igru, i zbog toga na njega dolazim srećna i raspoložena, da istražujem i zadovoljim svoju radoznalost. I mislim da ovo može da bude odlična karijera za svakog ko je radoznao i voli da se igra i eksperimentiše.

Imaš li neke planove za budućnost?

Za sada, plan je da se usavršavam i učim. Ovo je struka u kojoj nikad ne možeš da kažeš da sve znaš i da si sve naučio i idealna je ako želiš konstantno da se usavršavaš, a ja sam još uvek na samom početku. Želim da u narednom periodu steknem što više znanja i pokušam da dobijem sertifikate koji će o tome da posvedoče i „poguraju“ me ka novim dostignućima u karijeri.

Intervju s predavačem: prekvalifikacija u QA – prepreke, otkrića i uspesi

Intervju s predavačem: prekvalifikacija u QA – prepreke, otkrića i uspesi

Prekvalifikacija je put sa mnogo poteškoća i izazova. Krenuti na taj put nije lako jer ne znamo šta nas na njemu čeka i hoćemo li biti dovoljno istrajni da ovaj zahtevan proces okončamo uspešno. Pitanja su bezbrojna: hoću li se snaći u novoj oblasti? Da li ću imati isti entuzijazam za novu profesiju i na kraju prekvalifikacije? Koliko dugo će sve to trajati? Hoće li mi svakodnevne obaveze dozvoliti da se fokusiram na učenje? Da li ću steći dovoljno znanja da nađem posao?

Zato smo, za sve one koji imaju ovakve dileme, odlučili da o ovoj temi postavimo par pitanja nekome sa iskustvom iz prve ruke. Bojana Trifunović je jedan od predavača na SixCube University-ju i pružila nam je blizak uvid u vlastiti karijerni put, koji je uključivao neke teške odluke i velike zaokrete.

Da vidimo šta je Bojana imala da kaže.

1. Reci nam čime si se nekada bavila, a šta je danas tvoja profesionalna uloga?

Po struci sam diplomirani biolog, a nakon završenog fakulteta zaposlila sam se u metrološkoj laboratoriji. Tamo sam već počela da se bavim testiranjem, ali ne softverskim, već testiranjem visokoosetljivih laboratorijskih uređaja. Ti uređaji moraju da poseduju određene sertifikate i da rade tačno onako kako je predviđeno kako bi laboratorije dobile akreditaciju, tako da sam ja radila njihovu proveru i kalibraciju.

Danas sam test konsultant u kompaniji Sixsentix, gde trenutno radim na testiranju softvera za izveštavanje (reporting tool), a prethodno sam bila na projektu testiranja jednog e-komerc šopa.

2. Šta si znala o softverskom testiranju pre nego što si počela da se baviš njime? Da li si imala neka znanja o IT svetu generalno, i da li je kod tebe postojalo interesovanje za takve teme?

O softverskom testiranju nisam znala mnogo, ali o značaju kontrole kvaliteta i principima testiranja svakako jesam, zahvaljujući iskustvima u laboratoriji, kako na poslu tako i na fakultetu. Važnost detaljnog, metodskog pristupa u testiranju mi je tada već bila jasna, ali treba reći da je taj posao bio značajno manje kreativan nego softversko testiranje, i svodio se manje-više na praćenje rigoroznih koraka u strogo definisanim uslovima i po dobro utvrđenoj proceduri.

Interesovanje za softver i IT generalno kod mene postoji odavno, bukvalno od srednje škole i rada u Delfiju na informatici. Uvek sam imala potrebu da samostalno istražujem o digitalnim tehnologijama i to mi je sve bilo zanimljivo i mnogo pre nego što sam u taj svet ušla profesionalno.

3. Šta je bio tvoj najveći motiv za promenu profesije?

Osim dugogodišnjeg interesovanja za IT, na tu odluku je uticalo još nekoliko faktora. Iako mi je i moj prethodni posao bio zanimljiv, on nije uključivao mnogo prilika za napredak i isticanje. Takođe je i kreativnost u tom poslu bila limitirana i ja sam zbog svega toga odlučila da upišem tromesečni IT kurs, baš iz softverskog testiranja, a organizator te obuke me je po njenom završetku preporučio Sixsentix-u.

U to vreme je IT industrija bila u posebno velikom zamahu i mnogi su se preusmeravali ka njoj, uključujući i ljude iz mog okruženja, što me je možda i dodatno motivisalo. Testiranje softvera je delovalo kao zanimljiv i kreativan posao, a IT industrija kao svet u kome nema favorizovanja niti nepotizma, što je na ovim prostorima retkost. Naravno, prekvalifikacija je značila i dugoročno bolje finansijske uslove.

4. Kako je izgledao proces prekvalifikacije i šta si morala da naučiš da bi mogla da radiš ovaj posao? Šta ti je bilo najzanimljivije?

Najzanimljiviji mi je bio uvid u testerski način razmišljanja, gde je neophodno da budeš radoznao i da sam smišljaš nove načine kako da „pokvariš“ softver i na taj način otkriješ grešku u njemu. Ono što je interesantno je i da za skoro svaki problem u našem poslu ima više rešenja koja su tačna i ispravna i zavise od ugla gledanja na taj problem.

Dodatnu dimenziju ovoj kreativnosti i raznovrsnosti daje i činjenica da je veliki broj testera ušao u ovu industriju nakon prekvalifikacije. To znači da oni donose specifične ideje i perspektive s obzirom na svoje znanje i obrazovanje. Shvatila sam da je sposobnost da razvijemo ova različita rešenja upravo ono što nas i čini dobrim testerima.

Što se tiče toga šta sam morala da naučim, to je u prvom redu bio upravo pomenuti pristup, koji podrazumeva kreativnost i istraživački duh. Za testere je takođe veoma važno i da budu dobri u komunikaciji, jer ti ipak treba redovno nekom da ukazuješ na greške, što nije uvek lako saopštiti niti prihvatiti. U tom smislu je vrlo važno i dobro poznavanje engleskog jezika. Što se tiče tehničkih znanja koja sam tada stekla, ona su uglavnom bila osnovna i uopštena, jer se i ona kasnije upotpunjuju i unapređuju kroz praksu.

5. Da li ti znanja sa studija danas nešto znače i možeš li ih primeniti u novoj ulozi?

Neka konkretna znanja s fakulteta nisam mogla da primenim jer su to ipak dosta različite profesije. Ali socijalne veštine i karakterne osobine koje sam razvila tokom studija mi jesu pomogle. Verujem da su upornost, strpljenje, disciplina, pa i neka vrsta socijalne inteligencije nešto što se itekako nauči tokom studija, bez obzira na struku.

Takođe, sposobnost temeljnog istraživanja i sam istraživački pristup sam razvila i usavršila na fakultetu, i danas mi to mnogo znači u svakodnevnom poslu. Važan aspekt ovog pristupa je filtriranje informacija, odnosno razlikovanje bitnog od nebitnog, bilo da je u pitanju podatak, funkcionalnost, test, ili user flow. Sposobnost pravljenja ovakvih prioritizacija u moru informacija s kojima se susrećemo je ključna za uspešnog testera.

6. Šta je za tebe bio najveći izazov prilikom prekvalifikacije?

Proces prekvalifikacije nije bio lak. Trebalo je kombinovati puno radno vreme sa učenjem jedne sasvim nove oblasti od samog početka, tako da je taj period za mene bio vrlo naporan.

Izazov je bio i što se sve jako brzo odigralo i to je za mene bila neka vrsta šoka. Iz jednog sveta sam u potpunosti prešla u drugi za čas – tri meseca kursa, pa preporuka, zatim i ekspresno zapošljavanje, onboarding u kompaniji Sixsentix, sve je bilo u jednom dahu, nisam imala vremena ni da zastanem i razmislim. I onda sam morala u jednom momentu da stanem i zapitam se – da li sam ja na pravom mestu, je li ovo dobar put? Meni jeste bilo lepo, ali se sve odvilo baš naglo i brinulo me da se nisam malo „zaletela“. Ipak, ispostavilo se da ovo jeste dobar put i srećna sam što se sve odigralo ovako.

7. Kako neko ko razmatra karijeru u testingu može da zna je li to prava karijera za njega?

Pre svega, bitno je da se ne vodi isključivo novcem, to je najvažnije. E sad, teško je znati unapred da li je nešto za tebe ili ne, zato je za one koji razmišljaju o tome najbolje da uzmu, probaju i vide. Da li ti nešto leži, da li te zanima i da li ti ide, sve te stvari najbolje možeš da vidiš kada to nešto pokušaš da uradiš.

Postoje sajtovi i platforme na internetu koji služe upravo za to i možeš na njima da probaš da tražiš greške ili da ih analiziraš u smislu šta može bolje ili drugačije da se uradi. To možeš zapravo i na bilo kom sajtu da radiš, da ga analiziraš iz ugla korisnika i tražiš bagove i probleme. To je odlična vežba i proba za nekog ko možda razmišlja da se usmeri na tu stranu.

8. Šta misliš da je najvažnije da nauči neko ko se sprema za prekvalifikaciju u QA?

Pre svega, bitan je mentalitet. Mi stalno pričamo o tome, ali to je ono najvažnije. Da bude radoznao, da istražuje, da kreativno pristupa ovom poslu. Da na tom putu pre svega ovlada manuelnim testiranjem i da počne da razmišlja kao tester, a sve ostalo se uči postepeno i dobrim delom kroz praksu.

9. Kako je prekvalifikacija uticala na tvoje zadovoljstvo i profesionalni rast?

Ja sam baš zadovoljna i srećna što sam to uradila. Počela sam to da osećam čim sam krenula da radim kao tester – sve je bilo novo, lepa moderna zgrada, mladi ljudi, kreativan i dinamičan posao, baš mi je to bilo neverovatno sve.

U mojoj prethodnoj firmi su uglavnom bili dosta stariji ljudi, naravno sa velikim iskustvom, ali je postojala i velika generacijska razlika. I onda sam počela da radim sa predivnim mladim ljudima, u atmosferi koja mi je mnogo prirodnija i opuštenija i to mi je mnogo prijalo. I danas se tako osećam – i mislim da mi je prekvalifikacija poboljšala život u svakom smislu – i materijalno, i profesionalno, i socijalno.

Testiranje u eri veštačke inteligencije: QA stručnjak vs ChatGPT

Testiranje u eri veštačke inteligencije:
QA stručnjak vs ChatGPT

Poslednjih godina, upotreba veštačke inteligencije (AI) u visokotehnološkim industrijama, uključujući QA, doživljava značajan porast.

Uloga veštačke inteligencije u razvoju i testiranju softvera postaje sve veća i dobija i jednu dodatnu dimenziju sa evolucijom GPT jezičkog modela. Zato smo spremili važna pitanja o testiranju za ChatGPT, s ciljem da uporedimo njegove odgovore sa odgovorima pravog, živog QA stručnjaka.

Za potrebe ovog eksperimenta, ista pitanja postavili smo Snežani Todorović, predavaču na SixCube University-ju. ChatGPT raspolaže ogromnom količinom podataka iz kojih crpi svoju „mudrost“, a Snežana svoje znanje temelji na dugogodišnjem iskustvu u manuelnom i automatskom testiranju.

Ima li ChatGPT baš sve odgovore i jesu li dovoljno konkretni i precizni? Hoće li veštačka i ljudska inteligencija pokazati preklapanja u odgovorima, ili će ponuditi radikalno različita rešenja? Ili će se, možda, međusobno dopunjavati? Pogledajmo, u nastavku teksta, šta su naši akteri imali da kažu.

1. Šta sve obuhvata testerski posao i koje su glavne dužnosti jednog testera?

Snežana: Za početak, dužnosti jednog testera podrazumevaju planiranje, kreiranje i izvršavanje testova, analizu rezultata, prijavu bagova, kao i pisanje i slanje izveštaja klijentu. Generalno, značajan deo posla je komunikacija sa klijentom i članovima tima, a ponekad i sa kolegama iz drugih timova. Testeri sarađuju sa brojnim departmanima i pojedincima unutar matične kompanije i na strani klijenta – tu spadaju npr. development, IT, delivery, kao i biznis analitičari, product owner, ili domenski stručnjaci. Naravno, neophodno je i redovno čitanje i odgovaranje na mejlove, kao i aktivno učestvovanje u sastancima.

ChatGPT: Posao softver testera obuhvata niz zadataka usmerenih na obezbeđivanje kvaliteta softvera. Glavna dužnost testera je identifikacija i dokumentacija grešaka i bagova u softverskim aplikacijama. Ovo uključuje razvoj test planova i slučajeva, izvršavanje ručnih ili automatizovanih testova, i analizu rezultata. Softver testeri takođe sarađuju sa razvojnim timovima da bi se uverili da su svi problemi ispravljeni pre finalnog izdanja softvera. Pored tehničkih veština, važna je i komunikacija sa timom i klijentima, kao i kontinuirano učenje da bi se pratili novi trendovi u tehnologiji i metodama testiranja.

robotske-ruke-kucaju-na-tastaturi

2. Kakva je uloga automatizacije u testiranju?

Snežana: Automatizacija može da bude vrlo korisna, naročito ako imamo „živ“ softver za koji često imamo nove verzije. Zahvaljujući automatizaciji, ne moramo konstantno da proveravamo ručno sve funkcionalnosti iste aplikacije u kojoj ih je nadograđeno samo nekoliko. Neke ključne i visokorizične funkcionalnosti, npr. autorizacija korisnika ili validacija transakcija, proveravaju se i na dnevnom nivou, i raditi čitav taj posao ručno može biti vrlo neefikasan pristup. Naročito u slučaju velikih sistema, automatizacija može da uštedi mnogo vremena i poštedi testere velike količine repetitivnog posla.

ChatGPT: Automatizacija u testiranju igra ključnu ulogu u poboljšanju efikasnosti i efektivnosti procesa QA. Automatizovani testovi koriste softverske alate za automatsko izvršavanje definisanih testnih skripti, bez potrebe za ručnim intervenisanjem. Ovo omogućava brže izvršavanje velikog broja testova, posebno u ponovljivim i rutinskim zadacima, što značajno štedi vreme i smanjuje mogućnost ljudske greške. Automatizacija je posebno korisna u kontinuiranim integracijama i razvoju (CI/CD), gde se softver često ažurira. Pored toga, automatizacija oslobađa testere za složenije zadatke koji zahtevaju kritičko mišljenje, kao što su testiranje korisničkog iskustva i sigurnosti.

3. Kako se meri uspeh u QA-u i šta znači kvalitetan softver?

Snežana: Uspešan tester je onaj koji je otkrio mnogo bagova. 😊 A kvalitetan softver je softver koji nema grešaka u funkcionisanju, ali naravno – koliko god se programeri trudili da urade nešto kvalitetno, greške se dese, jer ljudski je grešiti. Pored toga, uspeh testera se može meriti i testovima koji su napisani kvalitetno i dobro pokrivaju funkcionalnost za koju su napisani. Dakle, uspeh u QA-u je pre svega kreirati testove koji su spremni da pronađu bag kada/ako se pojavi.

Chat GPT: Uspeh u QA-u se meri kroz nekoliko ključnih indikatora: smanjenje broja bagova i grešaka u softveru, efikasnost u identifikaciji i rešavanju problema, i skraćenje vremena potrebnog za testiranje. Kvalitetan softver je onaj koji ispunjava ili prevazilazi postavljene zahteve i očekivanja korisnika, uključujući pouzdanost, performanse, sigurnost i intuitivnost. To znači da softver funkcioniše bez grešaka, efikasno rešava korisničke potrebe, i pruža zadovoljavajuće korisničko iskustvo.

4. Koje su ključne karakteristike efikasnog QA tima?

Snežana: Timski duh je jako bitan, a time i deljenje znanja i veština. Dobro je i kada je tim raznolik i sastavljen od ljudi različitog senioriteta, veština i znanja, jer nekada i junior ume da predloži jako dobru ideju, ali možda u tom momentu nije siguran kako bi je tehnički rešio. Ali kada se udruži sa nekim ko to zna tehnički da izvede, to može da donese veliki doprinos timu u celini.

ChatGPT: Efikasan QA tim karakteriše kombinacija tehničke stručnosti, dobre komunikacije i timskog rada. Članovi tima treba da poseduju duboko razumevanje softverskih principa, alata za testiranje i automatizacije. Važno je i kritičko razmišljanje kako bi se efektivno identifikovale greške i predložila rešenja. Efikasni QA timovi su fleksibilni i sposobni da se prilagode promenljivim zahtevima projekata. Takva prilagodljivost podrazumeva kontinuirano učenje i usvajanje novih tehnologija i metoda.

zena-kuca-na-tastaturi-dok-iza-nje-svetli-dzinovski-mozak

5. Koji su najveći izazovi za testere danas?

Snežana: Najveći izazov za testere je najčešće kako naći neko tehničko rešenje za neku novu prepreku ili problem. Testerski posao može biti tehnički složen jer zahteva dobro poznavanje aplikacije u celini, integrisanih aplikacija, kao i samog klijentovog biznisa. Na primer, aplikacije koje testiramo često su povezane sa drugim sistemima, tako da ponekad treba da osimislimo testove koji će proveriti neku funkcionalnost jednog softvera obavljajući određene aktivnosti u nekom drugom softveru. Izazov ne mora biti samo traženje tehničkih rešenja, već i rad sa „teškim“ saradnicima, bilo klijentima ili kolegama. Taj problem rešavamo i prevazilazimo kroz učenje interpersonalnih veština, u čemu nam svakako pomaže i praktično iskustvo u ovoj profesiji i poslovnoj komunikaciji uopšte.

ChatGPT: Najveći izazovi za softver testere danas uključuju praćenje brzih tehnoloških promena i novih metodologija razvoja softvera, testiranje složenih aplikacija koje su često integrisane sa raznim sistemima, obezbeđivanje sigurnosti i privatnosti podataka, kao i automatizaciju testova. Pored toga, testeri se suočavaju s balansiranjem između brzog isporučivanja softvera i očuvanja visokog kvaliteta, uz stalnu potrebu za učenjem i prilagođavanjem novim alatima i trendovima u industriji.

6. Da li će veštačka inteligencija (AI) moći da obavlja posao testera u budućnosti?

Snežana: U nekoj meri da, samo je pitanje koliko detaljno i koliko kvalitetno. Za dosta toga AI može da zameni čoveka, ali ne u potpunosti. U principu, AI modeli uče direktno iz našeg ponavljanja i naših aktivnosti, tako da će za testiranje sasvim novih funkcionalnosti i komponenti, biti i dalje potreban kreativni ljudski pristup i intuicija i njih će i dalje proveravati čovek, manuelno ili kroz automatizaciju. Na kraju krajeva, moraće i AI algoritme neko da testira, tako da će posao testera uvek biti aktuelan. Čak mislim da će sa razvojem veštačke inteligencije, rasti i potreba za testiranjem i da će posla za testere biti sve više i više.

ChatGPT: AI već igra značajnu ulogu u automatizaciji nekih aspekata testiranja softvera, povećavajući efikasnost i tačnost. Međutim, potpuno zameniti ljudske testere u bliskoj budućnosti je malo verovatno. AI može biti izuzetno koristan u obavljanju repetitivnih i dobro definisanih zadataka, ali ljudski testeri su neophodni za kreativno razmišljanje, razumevanje složenih korisničkih scenarija i donošenje suptilnih odluka. Iako će AI nastaviti da transformiše i unapređuje polje testiranja softvera, ljudski faktor će i dalje imati ključnu ulogu.

Karijerne mogućnosti u QA-u

mlad-tester-sedi-u-kancelariji-za-laptopom

Karijerne
mogućnosti u QA-u?

Sticanje znanja, veština i iskustva u oblasti testiranja softvera pruža raznovrsne mogućnosti za razvijanje uspešne karijere.
U ovom članku istražićemo različite karijerne puteve, zanimanja, specijalizacije i usmerenja dostupna QA stručnjacima u različitim sektorima, od testera, preko menadžera, do biznis analitičara. Pogledaj kako ti naša QA obuka može pomoći da oblikuješ svoju profesionalnu budućnost.

1. QA tester

Prva karijera na listi je ona za koju se najčešće i odlučuju oni koji uče QA, a to je pozicija testera. Testeri su srce i motor svakog QA tima i njihova osnovna odgovornost je da testiraju softver i identifikuju greške i nedostatke pre nego što se one nađu u produkciji i stignu do krajnjih korisnika. Bez obzira na specifične uloge u timu, svi testeri dele isti cilj – obezbediti visok kvalitet softvera.
Ipak, u nekim timovima i kompanijama testerske role su dalje specijalizovane kako bi QA stručnjaci što bolje pokrili svaki deo procesa. Neki testeri i sami biraju da se dalje usmere u posebnu oblast QA-a ili da se usavrše u određenoj vrsti ili metodologiji testiranja.

Manuelni tester

Nakon završene obuke na SixCube University-ju, polaznici mogu dalje da se usaršavaju za rolu manuelnog testera. Kao što smo već pisali, manuelni testeri ručno izvršavaju testove kako bi otkrili greške u softveru. Koristeći svoje veštine i iskustvo, oni simuliraju stvarne scenarije upotrebe kako bi proverili da li softver funkcioniše ispravno i zadovoljava korisničke zahteve.

Testeri koji se bave automatizacijom

Ova specijalizacija podrazumeva određeno znanje i obuku iz QA automatizacije. Testeri koji raspolažu ovim znanjem koriste alate i skripte kako bi automatizovali proces testiranja, što omogućava brže izvršavanje testova i kontinuirano testiranje tokom razvojnog ciklusa.
Na SixCube University-ju možeš započeti ovu vrstu specijalizacije, tako što ćeš se odlučiti za jedan od dva tromesečna modula koja nudimo, a koji se fokusiraju na manuelno, odnosno automatsko testiranje. Ipak, veliki broj testera koristi oba u svakodnevnom poslu, i za tu ulogu će te spremiti naš kompletan šestomesečni kurs koji pokriva obe oblasti

Ostale mogućnosti specijalizacije za QA testera

U suštini, QA stručnjak može da se specijalizuje za bilo koju oblast ili vrstu testiranja o kojima smo ranije pisali. To obuhvata npr. pozicije performance testera, koji se fokusira na ponašanje softvera pod različitim opterećenjima, zatim security testera čiji je posao da identifikuje i otkloni sigurnosne rizike i poboljša bezbednost aplikacije, ili mobile testera koji je stručnjak za testiranje mobilnih aplikacija.
U praksi, testeri naravno mogu biti stručnjaci za više specifičnih oblasti i tako sebi otvoriti više potencijalnih karijernih puteva, koji će se samo umnožavati sa daljim razvojem softverskih tehnologija.

QA-strucnjak-drzi-prezentaciju-na-tabli

2. Test konsultant

Uloga test konsultanta slična je ulozi QA testera, ali ide i korak dalje. Dok je QA tester više fokusiran na izvršavanje testova, analizu rezultata i izveštavanje o problemima, posao konsultanta podrazumeva širi obim odgovornosti.
Zahvaljujući svojoj ekspertizi i dubokom razumevanju testiranog softvera i sa poslovne i sa tehničke strane, konsultant pruža stručne savete organizacijama u vezi sa QA procesima, alatima i strategijama. Test konsultant analizira postojeće QA procese i identifikuje oblasti za poboljšanje, a može da pomogne u definisanju QA strategija, razvoju testnih planova i implementaciji najboljih praksi u testiranju.

3. QA Manager

QA menadžeri igraju ključnu ulogu u vođenju i upravljanju QA timovima. Njihova odgovornost uključuje definisanje strategija testiranja, nadzor nad resursima, delegiranje zadataka, i kao krajnji cilj, naravno, osiguranje visokih standarda kvaliteta.
Menadžeri su lideri timova i ključni igrači u postizanju uspešne isporuke proizvoda. Njihovo iskustvo i stručnost treba da obezbede da se svi procesi testiranja sprovode efikasno i da su tehnički ciljevi postavljeni pred tim usklađeni sa poslovnim ciljevima i namenom softvera.

4. Product Owner

Product owner (u doslovnom prevodu, vlasnik proizvoda) je odgovoran za viziju proizvoda, definisanje prioriteta i koordinaciju razvoja softvera na osnovu tih prioriteta, i na taj način igra ključnu ulogu u rukovođenju timovima za razvoj.
Između ostalog, product owner sarađuje i sa QA timovima, i kroz tu saradnju osigurava da se najviši standardi kvaliteta primenjuju na sve faze i aspekte razvoja. Dobar product owner razume zahteve tržišta, potrebe korisnika i tehničke mogućnosti tima, a slične kompetencije treba da ima i dobar QA stručnjak, te je stoga dobro QA obrazovanje odlična priprema za dalje usavršavanje u ovom smeru.

5. Poslovni analitičar sa QA fokusom

Poslovni analitičar sa fokusom na QA igra ključnu ulogu u analizi zahteva i definisanju funkcionalnosti softverskih proizvoda, prevashodno iz poslovne perspektive. Njihova sposobnost da analiziraju, razumeju i artikulišu potrebe korisnika, kao i da prenesu ove zahteve tehničkom timu, čini ih važnom sponom između poslovne i tehničke strane projekta.
Zbog dobrog razumevanja poslovnih potreba i prioriteta, analitičar sa QA fokusom blisko sarađuje i sa testerima i sa menadžerima i sa product owner-om. Kroz ovu interdisciplinarnu ulogu on doprinosi uspešnom definisanju zahteva, kriterijuma za prihvatanje i testnih scenarija i pospešuje komunikaciju između različitih timova i činilaca.

Otkrij nove profesionalne prilike na SixCube University-ju

Profesionalne mogućnosti koje se otvaraju QA stručnjacima su još raznovrsnije, a nabrojani karijerni putevi samo su njihov najčešći izbor. Poznavanje i duboko razumevanje biznisa i tehnologije koje je potrebno QA profesionalcima je sjajan temelj za mnoge uloge u okviru IT industrije, od projektnog menadžera pa do analitičara kvaliteta podataka.
Bez obzira za koji put se odlučiš, kvalitet softvera će uvek biti od suštinskog značaja u IT industriji, a obuka iz QA-a na SixCube University-ju je odličan osnov za usmerenje ka jednoj od mnogobrojnih profesija koje doprinose razvoju visokokvalitetnih softverskih rešenja.

Kako izgleda budućnost QA-a?

dvoje-QA-strucnjaka-analiziraju-kod

Kako izgleda budućnost QA-a?

U eri nezaustavljivog tehnološkog napretka, softversko testiranje postaje sve važnije i kompleksnije, a evolucija softvera neizbežno nosi za sobom i napredak testerskih metoda i tehnologija.

S jedne strane, razvoj tehnologije diže lestvicu i nameće nove standarde kvaliteta; s druge strane, potrebe tržišta diktiraju brzinu inovacija. Na preseku ova dva faktora stoji QA, koji treba da garantuje kvalitet i funkcionalnost inovacija, pritom ne usporavajući njihovu implementaciju i ne odlažući puštanje u rad.

U ovom tekstu ćemo se osvrnuti na oblasti i tehnike testiranja koji će dobiti na važnosti u bliskoj budućnosti. SixCube University ti nudi veštine i znanja koje će ti omogućiti da pronađeš svoj put u uzbudljivim godinama koje dolaze za QA industriju.

1. Povećana automatizacija

U prethodnom tekstu pisali smo o tome zašto automatizacija postaje noseći stub industrije softverskog testiranja, kao i o njenim ključnim karakteristikama, prednostima i izazovima. U vremenu kada se od kompanija očekuje da isporuče softverske proizvode brže nego ikada, održavajući pritom visok kvalitet i pouzdanost, automatizacija testiranja postaje ne samo poželjna već često i neophodna.

Saznaj više o tome kako ti SixCube University može pomoći da naučiš osnove QA automatizacije za samo 3 meseca.

Očekuje se, takođe, da će automatizacija sve više ići u pravcu automatskog testiranja bez upotrebe koda (codeless automated testing). Alati za testiranje bez upotrebe koda otvaraju vrata profesionalcima koji nemaju iskustvo u kodiranju, omogućavajući im da kreiraju i izvršavaju testove koristeći grafički interfejs. Takođe, napredak u polju mašinske obrade prirodnog jezika (NLP – Natural Language Processing) omogućava mašinama da sve bolje razumeju i kreiraju testove na osnovu instrukcija na prirodnom, običnom jeziku, što dodatno ubrzava i olakšava testerski posao.

2. Veštačka inteligencija (AI) i mašinsko učenje (ML)

Veštačka inteligencija i mašinsko učenje već igraju važnu ulogu u asistiranju testerima (jedan od primera je upravo NLP), posebno kod kreiranja, održavanja i optimizacije testova, kao i kod generisanja podataka za testove (test data).

AI algoritmi mogu analizirati velike količine informacija i identifikovati obrasce koji možda nisu očigledni testerima. Ovo ne samo da pomaže u otkrivanju grešaka već i u predviđanju potencijalnih problema pre nego što se oni pojave. Ipak, ne očekuje se da će AI zameniti testere u dogledno vreme, već da će postati jedan od njihovih najvrednijih alata.

inzenjer-buducnosti-analizira-kod-u-sobi-punoj-moderne-tehnologije

3. Etičko testiranje i testiranje pristrasnosti u AI-ju

Pošto AI sistemi sve više donose odluke koje utiču na ljudske živote, od analize prijava za posao do odobrenja kredita, važno je osigurati da se ove odluke ne baziraju na bilo kakvoj vrsti diskriminacije ili pristrasnosti.

Oni koji su zaduženi da prepoznaju i isprave pristrasnost u algoritmima su, naravno, QA stručnjaci. Testiranje AI sistema biće posebno važno ne samo da bi se osiguralo etičko funkcionisanje tih konkretnih sistema, već i zarad zadobijanja poverenja poslovično skeptične javnosti koja još uvek s oprezom i podozrenjem gleda na vrtoglav napredak veštačke inteligencije.

4. Neprekidno testiranje

Što se tiče metodologija testiranja koje će biti dominantne u budućnosti, analitičari su uvereni da će sve više softverskih kompanija upotrebljavati neki oblik Agile metodologije. U kontekstu QA-a, ovo znači da se testiranje obavlja češće i da mu se pristupa u ranijim fazama razvojnog ciklusa softvera, umesto samo i isključivo na samom kraju procesa.

Ovaj pristup naziva se i ‘shift-left’ jer je u vremenskoj liniji razvoja softvera testing pomeren „ulevo“ i postaje aktivnost koja se obavlja iznova i iznova, praktično nakon svake promene ili ažuriranja sistema. Ovo se naziva i neprekidno (continuous) testiranje i ono treba da osigura da je svaka greška primećena i otklonjena na vreme, da je sistem dugoročno stabilan i bez akumuliranih problema, a da je njegova najnovija verzija u najkraćem mogućem roku spremna za korišćenje.

5. Mobilno testiranje

Po poslednjim podacima, na svetu ima preko 5 milijardi korisnika mobilnih uređaja, i oni generišu gotovo 60% ukupnog internet saobraćaja. Tržište raste, s njim i konkurencija, a zajedno s njom rastu i standardi i očekivanja korisnika, pa testiranje mobilnih aplikacija postaje sve složenije.

Ovde naravno nije reč samo o funkcionalnosti, već i o performansama i sigurnosti. Testerima se nameće izazov da obezbede da aplikacije rade besprekorno na različitim uređajima, operativnim sistemima i mrežnim uslovima, što povećava broj varijacija, kao i prostor za grešku. QA stručnjaci sutrašnjice moraće da nalaze efikasne i inovativne načine da tom izazovu odgovore.

6. UX testiranje

U godinama koje slede, UX testiranje će postajati sve neophodnije jer ono predstavlja most između tehnoloških proizvoda i njihovih krajnjih korisnika. Korisničko iskustvo (UX) je postalo jedan od glavnih faktora uspeha softverskih proizvoda i često najbolja prilika da se neki softver ili brend izdigne iznad konkurencije.

Kroz UX testiranje, moguće je identifikovati i ispraviti probleme koji bi mogli negativno da utiču na korisničko iskustvo, kao što su komplikovani navigacioni meniji, neintuitivne funkcije ili spor odziv aplikacije. Efekat ovog testiranja trebalo bi da bude intuitivan dizajn i optimizovan interfejs, te samim tim i veće zadovoljstvo korisnika, a kompanijama će UX testiranje omogućiti da dublje razumeju korisničke potrebe i preferencije.

7. Internet Stvari (Internet of Things) i pametni uređaji

Internet Stvari (Internet of Things, IoT, kod nas se takođe prevodi i kao internet inteligentnih uređaja) je skup svih umreženih fizičkih uređaja koji su povezani sa internetom i međusobno komuniciraju i razmenjuju podatke. Testiranje u ovoj oblasti postaje sve važnije zbog rastućeg broja povezanih uređaja i njihovog uticaja na svakodnevni život.

IoT uređaji, od pametnih satova, frižidera i domova pa do industrijskih senzora, postaju sveprisutni i prikupljaju veliku količinu podataka, pri čemu svaki od njih nosi potencijalne rizike za sigurnost i privatnost. Kako se ovi uređaji sve više integrišu u kritične sisteme poput zdravstvene zaštite, transporta i infrastrukture, osiguravanje njihove pouzdanosti i bezbednosti će biti neophodno.

8. Održivost i zeleno testiranje

U vreme kada je rešavanje klimatske krize jedan od globalnih prioriteta, standardi koje će tehnologije budućnosti morati da ispune sve su viši i specifičniji, a samim tim raste potreba i za testiranjem ovih tehnologija. Zeleno testiranje osigurava da kompanije i njihovi proizvodi uvek budu usaglašeni sa najnovijim ekološkim regulativama.

Takođe, ova oblast testiranja treba da ustanovi koliko energije i resursa troše određene tehnologije i tako podstakne razvoj održivijih rešenja. Kroz testiranje održivosti, tehnološke inovacije postaju ne samo naprednije, već i etički osvešćene i upućuju na odgovornost prema planeti i budućim generacijama.

I to nije sve:

Kako tehnologija nastavlja da se razvija neumoljivom brzinom, tako će i testiranje morati da prati isti tempo. Tako možemo očekivati povećanje potrebe za testiranjem u praktično svim rastućim sektorima na tržištu softvera. To uključuje npr. blokčejn testiranje, kao i testiranje AR/VR tehnologija, FinTech aplikacija, autonomnih vozila, medicinskih softvera i mnoge druge.

Budućnost QA-a se oblikuje već danas, i oni QA stručnjaci koji danas budu u toku sa najnovijim trendovima će imati ključnu ulogu u oblikovanju softverskih inovacija sutrašnjice. Prijavi se na naš QA kurs koji će te pripremiti za svakodnevne izazove testerskog posla i pružiti uvid u industriju, neophodan da izabereš svoje dalje usmerenje u QA-u i samostalno krojiš svoju karijeru.

Manuelno vs automatsko testiranje

QA-student-zapisuje-u-svesku

Manuelno vs automatsko testiranje

U prošlom blogu, bavili smo se vrstama testiranja i videli kako softversko testiranje možemo podeliti po različitim kategorijama i kriterijumima. Jedna od najvažnijih podela u QA industriji je svakako podela na manuelno i automatsko testiranje.

Na SixCube University-ju imaćeš priliku da kroz temeljan i izbalansiran program upoznaš i jedno i drugo, a kroz rad na simulacijama projekata naučićeš kako da u praksi kombinuješ dva pristupa zarad postizanja optimalnih rezultata u testiranju.

Šta je manuelno, a šta automatsko testiranje?

Za početak, da ukratko ponovimo šta preciznije znače ova dva pojma. Kao što smo naveli u prethodnom tekstu, manuelno testiranje je „tradicionalni pristup ispitivanju softvera u kojem testeri ručno, kroz samu upotrebu datog softvera ili njegove simulacije, izvršavaju testove bez korišćenja automatizovanih alata ili skripti”.

S druge strane, automatsko testiranje „koristi posebne softverske alate i skripte za izvršavanje testova, često bez direktnog ljudskog nadzora”.

Neki benefiti automatskog testiranja

Rečeno na najjednostavniji mogući način, automatsko testiranje podrazumeva da skripta/alat sama radi ono što bi inače ručno radio tester. 

Na primer, manuelno testiranje neke komponente interfejsa, recimo kontakt forme, znači da tester ručno, klikovima na stranici i unošenjem različitih informacija u kontakt formu, proverava da li ova komponenta izvršava očekivane funkcije. U kontekstu automatskog testiranja, ovo radi alat za testiranje „na jedan klik“, ili na osnovu nekog unapred definisanog automatskog okidača, proverava rezultate, i prijavljuje da li je test uspešan.

Verovatno najintuitivniji benefit automatskog testiranja je brzina i jednostavnost izvršavanja testova, naročito onih kompleksnijih. U navedenom primeru, umesto da tester ručno proverava da li sve relevantne kombinacije unetih podataka proizvode očekivane rezultate, skripta ovo obavlja sama.

Ovo znači i povećanje efikasnosti i manju upotrebu ljudskih resursa jer tester za to vreme može da se posveti drugim zadacima. Takođe, iako ubrzava proces izvršenja testova, automatsko testiranje i dalje može da zahteva određeno vreme, naročito u velikim sistemima ili kod kompleksnih testova. Ono što je prednost ovakvih automatskih testova u odnosu na manuelne je što mogu da se izvršavaju noću ili van radnog vremena, čime se značajno ubrzava dobijanje povratne informacije i smanjuju troškovi testiranja.

Dalje, automatsko testiranje je veoma korisno kod regresivnog testiranja, dakle kada utvrđujemo da nove promene u kodu nisu uticale na stare funkcionalnosti. U tom slučaju, tester ne mora da prolazi kroz mukotrpan posao ručnog testiranja svih pojedinih funkcionalnosti redom prilikom svakog ažuriranja ili bilo kakve promene, već za to postoje unapred spremni automatski testovi za čije izvršavanje je potrebno neuporedivo manje vremena i truda.

Automatsko testiranje, takođe, povećava konzistentnost procesa testiranja i stabilnost sistema. Unapred definisani i utvrđeni testovi izvršavaju se svaki put na isti način i po istim pravilima, tako da je mogućnost ljudske greške znatno manja. Naravno, i manuelni testovi se sprovode po precizno utvrđenoj proceduri, ali automatizacija eliminiše svakodnevne ljudske faktore koji utiču na kvalitet takvog testiranja, kao što su umor ili nepažnja.

Na kraju, postoje određeni testovi koji po prirodi stvari ne mogu biti izvršeni manuelno i kod njih nam je neophodna pomoć softverskih alata za testiranje. Na primer, ukoliko je potrebno da izmerimo vreme koje je potrebno softveru da odgovori na određeni upit, merenje pomoću sata ili štoperice neće biti dovoljno precizno, već će tu biti potrebna podrška alata specijalizovanog za ovaj zadatak. Isto važi i, recimo, za evaluaciju ponašanja sistema u slučaju kada ga upotrebljava veliki broj korisnika u isto vreme.

Rastuće potrebe za automatizacijom

Benefiti automatizacije postaju sve jasniji kompanijama širom sveta. Tako istraživanja pokazuju da, od svih izazova vezanih za QA, najveći broj kompanija (čak 39%) među najveće izazove ubraja upravo automatizaciju testova. A kada se govori o tipovima testiranja koje žele da uvedu u svoje organizacije u narednom periodu, na čak prvih 5 mesta su različite vrste automatskog testiranja.

Stoga su potrebe za automatizacijom, kao i testerima koji su obučeni za nju, sve veće, i deo naše misije je svakako da pomognemo da se na ovu potrebu odgovori.

Pored celokupnog, 6-mesečnog kursa koji uključuje i manuelno i automatsko testiranje, SixCube University ti nudi i opciju 3-mesečnog kursa posebno fokusiranog na automatizaciju. Testerskih alata na tržištu je sve više i cilj ovog modula je da ti kroz dobro osmišljen program i praktičan rad na konkretnim alatima, omogući pre svega duboko razumevanje principa po kom oni funkcionišu. Ovaj pristup osposobiće naše polaznike da se u budućnosti brzo i uspešno prilagode bilo kom drugom postojećem alatu na tržištu.

Da li je onda manuelno testiranje suvišno?

Odgovor na ovo pitanje je kratak i jasan: ne. Iako je automatizacija sve važnija i traženija, manuelno testiranje i dalje ima veliku vrednost u procesu obezbeđivanja kvaliteta softvera.

Naime, sam proces automatizacije zahteva određeno vreme, trud, kao i specifično znanje, koje poseduju retki. Zato npr. ima situacija u kojima je automatizacija nemoguća ili nepraktična. Recimo, postoje slučajevi u kojima se zahtevi ili sam sistem previše naglo i dramatično menjaju tako da testeri moraju automatske testove neprestano prilagođavati tim promenama, što može da oduzme više vremena nego manuelno proveravanje sistema.

Takođe, automatizacija treba da bude opravdana i u kontekstu učestalosti testiranja. Automatizovati testove koji će biti pušteni samo jedan ili dva puta će verovatno zahtevati veći trud nego manuelno testiranje. Automatizacija, ipak, ima znatno više smisla kada se rade regresivni testovi na softveru koji ima dug životni ciklus i česta ažuriranja i promene, jer je akumulirano vreme i trud dugoročno potrebno za ručnu proveru takvog softvera neuporedivo veće.

Ponekad su i tehničke karakteristike sistema, neke određene funkcionalnosti, ili test alata jednostavno takve da bi automatizacija te funkcionalnosti bila prekompleksna i prezahtevna da bi bila isplativa, u kom slučaju se takođe pribegava manuelnom testiranju.

Na kraju, manuelno testiranje pruža testeru bolji subjektivni uvid u softver. Čak i najbolji automatizovani testovi nekad ne mogu dovoljno dobro da definišu ili prepoznaju aspekte iskustva korisnika koji mogu da budu poželjni ili problematični, i oni se vide tek prilikom ručnog korišćenja i testiranja sistema. Mnogi testeri će vam zato reći da je manuelno testiranje najbolji prvi korak upoznavanja sa sistemom, koje je neophodno kako bi se dobio utisak o tome kako softver radi i „diše“ i kako bi se kasnije automatizacija postavila na zdrav temelj.

 

Šta je zaključak?

Što se tiče pitanja iz naslova, odgovor je da ovo nije ili-ili situacija, već da su za uspešno testiranje potrebna oba. Efikasno testiranje sistema najčešće uključuje neku kombinaciju manuelnog i automatskog testiranja, i teško je zamisliti da će u bliskoj budućnosti biti drugačije.

U osnovi, manuelno testiranje omogućava kreativan pristup testiranju, dubinsko istraživanje, ispitivanje nepredvidivih scenarija i bolje razumevanje perspektive korisnika.

Automatsko testiranje je, s druge strane, korisno za ponavljajuće zadatke, regresivno testiranje, i može da donese ogromne uštede vremena i truda, naročito kod velikih i stabilnih sistema koji trpe česte i relativno male promene.

Predavači na SixCube University-ju su QA stručnjaci sa velikim iskustvom u industriji, kojima je dobro poznato koji je optimalan odnos između ova dva pristupa neophodan za najbolje rezultate.

Naš program je podeljen u dve celine koje se mogu odvojeno pohađati – jedna je upravo fokusirana na manuelno, a druga na automatsko testiranje, i obe će ti pružiti znanja i praktične veštine dovoljne da započneš ili značajno unaprediš svoju testersku karijeru. A celokupna obuka koja uključuje oba ova modula temeljno će te upoznati sa svetom testiranja, dati priliku za ozbiljan praktičan rad i naučiti veštinama potrebnim za postizanje vrhunskih rezultata u budućnosti.