Kako smo uspeli da pošaljemo čoveka u svemir, a meni baguje aplikacija za dostavu hrane?

Kako smo uspeli da pošaljemo čoveka u svemir, a meni baguje aplikacija za dostavu hrane?

Danas koristimo aplikacije za najrazličitije stvari – od naručivanja hrane do brojanja koraka i čaša vode koje smo popili, ali one su često daleko od savršenih. Povremeni bagovi i problemi su nešto na šta smo već navikli, iako u njima svakako ne uživamo. Otud često čujemo pitanje – „kako smo uspeli da pošaljemo čoveka u svemir, a meni baguje aplikacija za __________ (upiši po želji)“?

Koliko god bile iritantne, u nekim slučajevima su greške u softveru ipak samo sitna neprijatnost, ali postoje i sistemi gde kvar može izazvati ozbiljne posledice. Dok je kod nekih aplikacija prihvatljivo da povremeno zakažu, kod drugih greška jednostavno ne sme da se dogodi. U takvim slučajevima, testiranje igra izuzetno važnu ulogu. Kako, dakle, izgleda razvoj i testiranje softvera tamo gde je pouzdanost apsolutni prioritet?

Ko ima najrigoroznije standarde za testiranje softvera?

Najstrože standarde testiranja softvera primenjuju one industrije u kojima greška prosto nije opcija. Pored vazduhoplovne i svemirske industrije, to važi i za medicinske uređaje, nuklearne elektrane, automobilsku industriju (posebno kod autonomnih vozila), a u dobroj meri i za finansijske institucije.

NASA je jedna od organizacija koje svakako prednjače u ovom smislu. Oni ulažu ogromne resurse u testiranje pre nego što bilo koji softver postane deo misije. Čak i najmanja greška može dovesti do katastrofalnih ishoda, od fatalnih posledica po ljude, preko ogromnih finansijskih gubitaka, pa do propadanja čitave misije u koju su uložene godine ili čak decenije ogromnog truda, istraživanja i razvoja.

Kako se testira softver u NASA-i?

Softver koji se koristi u svemiru mora proći dug period rigoroznog testiranja pre nego što se uopšte nađe u upotrebi. NASA koristi niz složenih procedura kako bi osigurala da svaki deo softvera funkcioniše besprekorno u svim mogućim uslovima.

NASA-tester

1.Standardizacija i smernice

Pre svega, NASA ima izuzetno stroge standarde i smernice kako bi osigurala doslednost i kvalitet u razvoju i testiranju. Postoji veliki broj dokumenata koji definišu standarde i procese za inženjering softvera unutar agencije, kao i priručnika koji pružaju detaljne smernice za njihovu implementaciju. Oni služe kao vodič za sve koji su uključeni u upravljanje, razvoj, testiranje i održavanje NASA-inog softvera.

 U kontekstu testiranja, posebno su važni standardi za inspekciju koda, koji pomažu rano otkrivanje defekata. Ovaj standard propisuje sistematske provere koda u ranim fazama razvoja, što je važno za svaku vrstu testiranja i svaku vrstu softvera, ali je posebno važno u okolnostima u kojim greška koja uđe u produkciju ne može da se reši brzim update-om. Kada misija već krene, vrlo verovatno je već kasno za popravljanje kritičnih grešaka koje bi lako mogle ugroziti uspeh čitavog poduhvata.

 Tokom inspekcije, multidisciplinarni timovi koriste detaljne kontrolne liste kako bi proverili sve – od grešaka u sintaksi do složenih logičkih problema i neusaglašenosti između softvera i hardvera.

2. Dobro definisani zahtevi

Jedan od ključnih faktora uspeha u NASA-inom testiranju softvera jeste i precizno definisanje zahteva. Pre nego što se uopšte napiše prva linija koda, NASA ulaže ogroman napor u definisanje tačnih, nedvosmislenih i proverljivih zahteva koji izražavaju konkretna očekivanja od softvera.

Za razliku od mnogih komercijalnih aplikacija koje se razvijaju pomoću Agile metodologije, sa stalnim prilagođavanjem na osnovu povratnih informacija korisnika, NASA-ini zahtevi su apsolutno precizni od samog početka. Oni moraju pokriti svaki mogući scenario, uključujući i ekstremne situacije koje se mogu desiti u svemiru, i definisati očekivanja od softvera za svaki od tih scenarija.
Primera radi, ako softver upravlja modulom za sletanje na Mars, zahtevi će uključivati preciznu sekvencu naredbi koje se moraju izvršiti tokom spuštanja, način regulisanja temperature letelice, očekivano vreme kašnjenja signala između letelice i Zemlje, i još mnogo sličnih detalja.

Ovi zahtevi se definišu u saradnji između inženjera, naučnika, testera i astronauta, a zatim prolaze kroz višestruke provere kako bi se otklonile nejasnoće. Samo onda kada su zahtevi potpuno definisani, softver može da uđe u razvoj i testiranje.

3. Detaljne simulacije

Za pouzdan rad softvera i uspeh misije nije dovoljno utvrditi da li softver prosto radi već i da li radi u uslovima za koje je namenjen. Naravno, ovi uslovi su često sasvim drugačiji i daleko ekstremniji nego bilo gde na Zemljinoj površini. Na primer, softver koji kontroliše robotske ruke na Međunarodnoj svemirskoj stanici prethodno je testiran u nultoj gravitaciji u avionima koji simuliraju bestežinsko stanje.

Takođe, softver koji je korišćen za Curiosity rover, koji je 2012. godine uspešno sleteo na Mars, testiran je kroz hiljade simulacija koje su proveravale ponašanje sistema u najrazličitijim scenarijima. Testiranja su obuhvatala ponašanje softvera pri ekstremnim temperaturnim oscilacijama, u prašnjavoj atmosferi, na različitim vrstama terena, kao i prilikom potencijalnih kvarova pojedinih instrumenata tokom misije. Svaka moguća situacija bila je unapred testirana.

4. Sistemi zaštite

NASA softver je dizajniran tako da bude što otporniji na greške. Gotovo svi kritični sistemi imaju jednu ili više identičnih kopija – tako na primer ako jedan procesor zakaže, drugi preuzima njegovu funkciju. Osim toga, softver ima ugrađene mehanizme zaštite koji omogućavaju letelici da se automatski, bez ljudske intervencije, oporavi od određenih problema.

Takvi mehanizmi mogu uključivati sisteme zaštite napajanja, gde letelica ima više izvora energije (solarnih panela ili baterija), a u slučaju kvara jednog izvora automatski se prebacuje na drugi kako bi nastavila s radom. Takođe, često se koristi rezervna navigaciona i komunikaciona oprema, gde letelica može preći na alternativne senzore ili pomoćne antene ako dođe do kvara glavnih sistema za orijentaciju ili komunikaciju sa Zemljom.

5. Stručnost i iskustvo 

NASA ne angažuje samo vrhunske programere, već iskusne inženjere koji razumeju specifične izazove svemirskih misija. Rad u svemiru nosi sa sobom jedinstvene probleme – izloženost zračenju koje može uticati na elektronske sisteme, ekstremne temperature koje mogu oslabiti hardver, kao i potrebu da softver funkcioniše besprekorno u okruženju gde svaka greška može imati ozbiljne posledice.

Upravo zato, NASA-ini stručnjaci nisu samo developeri, već svestrani inženjeri sa znanjem iz oblasti aeronautike, elektronike i fizike svemirskog okruženja.

Ali nije dovoljno imati samo vrhunske stručnjake – ključno je i učiti iz svojih grešaka. NASA ima kulturu analize i neprekidnog unapređivanja, gde se svaki uspeh i svaki neuspeh detaljno proučavaju. Lekcije naučene iz prethodnih misija implementiraju se u nove projekte, čime se smanjuje rizik od ponavljanja starih grešaka. Ova akumulacija znanja kroz decenije rada omogućava NASA-i da konstantno podiže standarde i postiže ono što je nekada delovalo nemoguće.

Da li to znači da NASA ne greši?

Ipak, i pored svih NASA-inih rigoroznih procedura i mera predostrožnosti, kroz istoriju postoji nekoliko poznatih primera gde su softverski problemi doveli do propasti misije i ogromnih gubitaka. Najsavremenije metodologije testiranja su neophodne u ovako kritičnom okruženju, ali je kompleksnost softvera, hardvera i njihove interakcije sa okolinom tolika da je i dalje nemoguće garantovati ne samo da softver neće imati greške, nego ni da neće imati greške koje su krajnje opasne i potencijalno kobne.

Jedan od najzanimljivijih slučajeva bio je slučaj Mars Climate Orbiter-a iz 1999. godine. Ova misija je propala zbog naizgled neshvatljive greške. Inženjeri su koristili različite merne jedinice – oni koji su pravili navigacioni sistem koristili su metrički sistem (metre i kilometre), a oni koji su pravili softver za proračun potiska letelice služili su se imperijalnim jedinicama (jarde i milje), što je dovelo do velikih odstupanja u planiranoj putanji. Ishod? Letelica je ušla u atmosferu Marsa pod pogrešnim uglom i izgorela. Par godina pre toga, 1996, letelica Ariane 5 se samouništila nakon samo 37 sekundi leta zbog problema sa sistemom navigacije.

Iako bi se svakako moglo reći da zahvaljujući učenju iz grešaka danas ima manje ovakvih nemilih događaja, oni ipak nisu iskorenjeni. Najnoviji primer je Ingenuity, prvi helikopter koji je leteo na drugoj planeti, a koji je tokom svog 72. leta na Marsu u januaru 2024, takođe doživeo softverski problem sa navigacionim sistemom, što je dovelo do gubitka kontrole pri sletanju i ozbiljnog oštećenja koje je ovu letelicu zauvek prizemljilo.
Iz ovih slučajeva možemo videti da, čak i sa najstrožim procedurama, greške mogu promaći, ali ono što izdvaja organizacije poput NASA-e jeste sposobnost da iz njih nauče i unaprede svoje standarde i protokole.

Šta smo onda zaključili?

Dakle, kako smo uspeli da pošaljemo ljude u svemir, a meni baguje aplikacija za dostavu hrane? Razlog je jednostavan – softveri se testiraju u skladu sa posledicama njihovog eventualnog kvara. To što ti aplikacija baguje ne mora da govori ništa o kvalitetu rada developera ili testera, već o prioritetima i standardima koje softverske kompanije sebi postavljaju.

U svetu komercijalnog softvera, proizvodi moraju brzo da izlaze na tržište, što znači da testiranje često nije toliko rigorozno kao npr. u vazduhoplovnoj industriji. Greške se rešavaju kroz ažuriranja i ispravke nakon puštanja softvera u rad, dok se kod svemirskih misija takav luksuz ne može priuštiti.

Za svemirsku letelicu, greška može značiti kraj misije i milijarde izgubljenih dolara, pa je testiranje izuzetno temeljno i dugotrajno. Drugim rečima, greška kod svemirske letelice se često ne može ispravljati u letu, figurativno i doslovno. Svaki aspekt ponašanja softvera mora biti predviđen, analiziran i proveren pre nego što se lansira. S druge strane, ako aplikacija za naručivanje hrane ponekad zakaže, korisnik može ostati trenutno gladan i frustriran, ali posledice definitivno nisu fatalne.

Dakle, sledeći put kada ti neka aplikacija zablokira ili se neočekivano zatvori, seti se da verovatno nije testirana po NASA-inim standardima, i da će sledeći update sasvim moguće rešiti taj bag koji te iritira.

Ako i ti želiš da pomogneš da se reše iritantni bagovi, ili možda čak helikopteru da se ne sruši na Mars, SixCube University je pravo mesto da započneš svoj put ka tome. Saznaj više o našem QA kursu i prijavi se već danas!

Šta razlikuje juniora i seniora u softverskom testiranju?

Šta razlikuje juniora i seniora u softverskom testiranju?

U svetu softverskog testiranja, transformacija iz juniora u seniora može delovati kompleksno i izazovno. Iako jasna granica između ove dve uloge nije strogo definisana, postoje ključne veštine i znanja koja juniori moraju postepeno usvojiti na svom profesionalnom putu.
U ovom tekstu, razmotrićemo šta tačno razlikuje iskusne stručnjake od početnika, obraćajući posebnu pažnju na važne korake koji su potrebni za napredovanje u QA karijeri.

1. Zaduženja i razumevanje projekta

Juniori testeri često obavljaju slične svakodnevne zadatke kao seniori, poput pisanja i izvršavanja testova ili dokumentovanja grešaka. Oni to, naravno, čine pod budnim okom iskusnijih kolega i na taj način stiču praktično iskustvo, razvijaju veštine i preuzimaju postepeno sve veću odgovornost u projektima.

Što se tiče razumevanja projekata, ono ponekad ne zavisi samo od senioriteta, već i od proste činjenice ko duže radi na određenom projektu i s njime je bolje upoznat. Ipak, ukoliko je to vreme približno slično ili je u pitanju novi projekat, seniori su svakako ti koji vode i usmeravaju tim. Upravo zato oni često preuzimaju ključne uloge u definisanju obima projekta, delegiranju zadataka i utvrđivanju kako tehnički zahtevi utiču na šire poslovne ciljeve. Takva sposobnost upravljanja različitim tehničkim i poslovnim izazovima razvija se kroz iskustvo stečeno radom na mnogobrojnim projektima.

2. Rešavanje problema

Naravno, rame uz rame sa nivoom razumevanja ide i način na koji juniori i seniori rešavaju probleme. Juniori uglavnom koriste unapred definisane procedure za identifikaciju i rešavanje problema i na taj način uspevaju da otkriju određene greške, a njihov pristup je uglavnom limitiran, u smislu da je isključivo fokusiran na konkretan problem koji su našli.

Senior QA, s druge strane, koristi širok spektar veština i znanja ne samo da identifikuje i dokumentuje probleme, već i da analizira uzroke i predloži dugoročna rešenja. Oni imaju sposobnost da vide širu sliku, predviđaju potencijalne probleme pre nego što postanu kritični i razvijaju strategije koje poboljšavaju kvalitet i efikasnost testiranja. Sve ovo podrazumeva dobro razumevanje sistemskih interakcija i potencijalnih slabosti u softveru.

3. Razumevanje nivoa i vrsta testiranja

Senior tester poseduje znanje i iskustvo koje mu omogućava da sagleda kako različiti tipovi i nivoi testova doprinose celokupnom projektu i zna njihov značaj u konktekstu konkretnog projekta, ali takođe i izvan uobičajenih zadataka koji su im dodeljeni. Postavljanje ovih različitih grupa testova u koherentan okvir za razumevanje je nešto što senioru dolazi prirodno, a juniorima je, naravno, potrebno vreme da ove koncepte nauče i primene.

Ovo znanje seniorima omogućava da upravljaju test procesima, naprave plan testiranja i prilagođavaju testove kako bi se svi aspekti aplikacije adekvatno proveravali. Zahvaljujući tome, oni mogu uspešno da vode timove i projekte i da se postaraju da se testiranje sprovodi strateški i u skladu sa najboljim industrijskim praksama.

4. Oko za detalje

Posvećenost detaljima je ključna u softverskom testiranju i dok je juniori obično poseduju kao još neistreniranu karakternu osobinu, seniorsko oko za detalje je izoštreno godinama iskustva. Seniori znaju gde greške najčešće nastaju i kako naizgled suptilni problemi mogu kritično uticati na performanse i funkcionalnost proizvoda.

Ova veština se razvija godinama rada i iskustvom u različitim projektima, i seniorima omogućava da predvide probleme i pre nego što postanu očigledni. Ovo „oko za detalje“ ima svoj koren u intuitivnom razumevanju softverske arhitekture određene aplikacije, poslovnih zahteva i ciljeva, kao i korisničkih očekivanja. Seniorima takođe pomaže i što su vešti u korišćenju naprednih alata za praćenje i analizu pomoću kojih mogu preciznije da lociraju greške.

5. Napredne komunikacione veštine

Komunikacija je jedan od stubova uspešnog QA projekta. Juniori testeri još uvek uče kako da se najbolje izraze, prenesu osnovne informacije i vode interakciju sa timom. Oni rade na tome da što spretnije prenesu informacije, fokusirajući se na jasnoću i preciznost, dok se polako upoznaju sa specifičnostima projekta i testerskog posla uopšte.

Za razliku od juniora, senior tester treba da ima razvijene veštine komunikacije koje prevazilaze elementarno izveštavanje o problemima. Oni su stručnjaci u prilagođavanju komunikacije za različite učesnike projekta, od razvojnih timova do klijenata i menadžmenta. Senior tester zna kako da artikuliše tehničke izazove, predloge za poboljšanja i strateške promene na način koji je pristupačan i razumljiv za različite nivoe znanja. Osim toga, oni imaju sposobnost da razumeju i balansiraju različite perspektive unutar projekta, što im omogućava da efikasno upravljaju očekivanjima i konfliktima.

Ove napredne komunikacione sposobnosti takođe uključuju mentorstvo mlađih kolega, prenošenje znanja, prihvatanje i davanje konstruktivne kritike i zagovaranje promena u projektima kada je to potrebno iz njihovog profesionalnog ugla. Senior tester koristi svoje iskustvo i socijalnu inteligenciju da navigira složenim radnim okruženjem, postavljajući primere kako se profesionalne i tehničke informacije dele unutar tima i kako se izgrađuju međuljudski odnosi koji doprinose uspehu projekta.

6. Liderstvo i mentorstvo

Liderstvo je jedna od najvažnijih veština koje tester senior treba da poseduje. Oni ne samo da vode projekte i definišu strategije, već i aktivno učestvuju u obuci i razvoju mlađih članova tima. Preuzimanje odgovornosti, kako za sam projekat, tako i za napredak juniora na projektu je odlika svakog seniora sa izraženim liderskim sposobnostima.

Kroz mentorstvo, edukaciju i neprekidnu podršku, seniori pomažu juniorima da razviju ne samo tehničke veštine potrebne za testiranje, već i kritičko razmišljanje, sposobnost rešavanja problema i profesionalnu etiku. Ova uloga uključuje i motivaciju tima i rešavanje konflikata, što je ključno za efikasnost i produktivnost tima.

7. Napredak i učenje

U svetu softverskog testiranja, učenje i profesionalni razvoj su ključni i za juniore i za seniore, ali se pristupi i fokus razlikuju. Juniori testeri počinju sa osnovama, fokusirajući se na razumevanje osnovnih alata i tehnika potrebnih za testiranje na konkretnom projektu na kom rade. Njihov proces učenja je često takav da uče kroz specifične zadatke koji im pomažu da postepeno razvijaju svoje veštine.

Testeri seniori, s druge strane, već imaju dobro razumevanje alata i metodologija i fokusiraju se na širenje svojih znanja na naprednije i složenije tehnike i alate. Njihov napredak u učenju često uključuje istraživanje najnovijih trendova u industriji i pokušaje implementacije novih tehnologija koje mogu unaprediti procese testiranja.

Za seniore su stalno učenje i adaptacija od presudne važnosti. Oni im pomažu da održe korak sa tehnološkim napretkom i da pokušaju da predvide kako promene u tehnologiji mogu uticati na proizvode i usluge koje njihova organizacija nudi.

8. Tehničke kompetencije

Tehnička stručnost i veština korišćenja alata su veoma važne, ali ne postoji jedinstveni set alata koji bi razlikovao juniora i seniora u testiranju. Kako smo već rekli maločas, juniori testeri se obično za početak usredsređuju na sticanje veština u radu sa osnovnim alatima potrebnim za svakodnevne zadatke testiranja, i te veštine proširuju i produbljuju najviše kroz praksu.

Seniori u QA-u, međutim, imaju ne samo sposobnost rada u većem broju alata, već i sposobnost da relativno brzo nauče da rade u alatima koje do tada nisu poznavali. Ova fleksibilnost proizlazi iz njihovog bogatog iskustva u radu sa različitim tehnologijama kroz mnoge projekte.

Upravo ova sposobnost brzog učenja i prilagođavanja novim tehnološkim rešenjima je ono što najviše svedoči o njihovoj tehničkoj stručnosti. Senior tester ne samo da zna kako da koristi alate, već i kada i zašto je najbolje koristiti određene tehnologije, prilagođavajući ih specifičnim zahtevima projekta. Seniori su često i pioniri u uvođenju novih alata unutar svojih timova i služe kao ključni resurs za obuku i razvoj kapaciteta celog tima.

SixCube University – prvi korak ka uspešnoj QA karijeri

Kako bi napredovali od juniora do seniora, testeri moraju konstantno razvijati svoje sposobnosti, biti kreativni, otvoreni i radoznali. Ovakav pristup pomaže testerima da iz raznovrsnih važnih informacija o projektu i aplikaciji izvode dobre zaključke, pronalaze rešenja za probleme i predlažu unapređenja. Zato je QA specifična profesija koja uz rast znanja podrazumeva i razvijanje karaktera kao neophodnog činioca za napredak u karijeri.
A na početku tog puta čeka te idealan partner – SixCube University. Kurs koji nudimo posebno je osmišljen za testere i usmeren je i na sticanje neophodnih znanja i na razvoj karakternih osobina presudnih za izgradnju karijere u QA. Prijavi se već danas na ovom linku.

Šta je test case i kako funkcioniše?

mladi QA tester radi na laptopu

Šta je test case i kako funkcioniše?

Test case je važan instrument u softverskom testiranju koji se koristi za proveru ispravnosti i funkcionalnosti softvera. On sadrži sve neophodne informacije za izvršavanje određenog testa, a svaki deo test case-a ima svoju svrhu u procesu verifikacije. U ovom tekstu ćemo pokušati da objasnimo sastavne delove test case-a i pokažemo kako svaki od njih pomaže testiranje softvera.

Šta je test case?

Test case je definisan skup instrukcija i kriterijuma koji služi kao putokaz za izvođenje testova na softverskim aplikacijama. On predstavlja elektronski dokument, odnosno zapis koji sadrži jasno definisane korake za testiranje, potrebne ulazne podatke, očekivane rezultate i prostor za beleženje stvarnih rezultata. Osnovni cilj je identifikovati greške i probleme pre puštanja softvera u produkciju.

Test case-ovi takođe služe kao dokumentacija procesa testiranja, što je korisno za identifikaciju problema, buduće reference i naknadne revizije softverskog kvaliteta.

ruke kucaju na laptopu i nesto pokazuju

Kako izgleda test case?

Odmah treba naglasiti da ne postoji univerzalan i striktno definisan način za kreiranje test case-ova. Njihov format i elementi mogu se razlikovati u zavisnosti od metodologije, aplikacije, specifičnih potreba projekta, i mnogih drugih varijabli. Dakle, test case ne mora da izgleda tačno onako kako će naš primer izgledati, ali na jednostavnim primerima, suštinska odstupanja neće biti velika.

Zato za ilustraciju i uzimamo jedan vrlo jednostavan test case, koji služi za proveru funkcionalnosti prijavljivanja na veb stranicu. On obično zahteva da korisnik unese korisničko ime i lozinku, a zatim da klikne na dugme ‘Prijavi se’ kako bi se utvrdilo da li je pristup uspešan i da li su korisnički podaci ispravno obrađeni.

Evo kako bi izgledao primer test case-a dizajniran za pomenutu situaciju:

Polje 1 – Naslov i identifikacioni broj: Svaki test case započinje sa naslovom koji opisuje šta će se testirati, i identifikacionim brojem za lako praćenje.

  • Primer: Naslov: „Testiranje prijave na veb stranicu“; ID – TC-001
  • Uloga: Naslov i ID pomažu u organizaciji testova i olakšavaju referenciranje i izveštavanje.

Polje 2 – Opis: Ovaj segment daje detaljan opis cilja testa, što pomaže testerima da razumeju šta tačno test treba da postigne.

  • Primer: “Proveriti funkcionalnost prijave korisnika na portal XYZ koristeći validne kredencijale.”
  • Uloga: Opis jasno stavlja do znanja svrhu testa, što je važno za fokusiranje testiranja na određenu funkciju.

Polje 3 – Test steps: Ovaj deo test case-a objašnjava šta tester tačno treba da uradi, korak po korak. Ovi koraci su kao uputstvo za upotrebu koje tester mora pratiti kako bi se proverilo da li sve funkcioniše kako treba, i zato je izuzetno važno da su ti koraci definisani pažljivo i precizno. Pored samih koraka koje treba izvesti, ovde su navedeni i podaci koji treba da se koriste u testu (npr. u ovom slučaju konkretno korisničko ime i lozinka), kao i rezultati koji se očekuju kao posledica izvedenih koraka.

Na primeru koji smo do sada koristili, to izgleda otprilike ovako:

  • Primer: Koraci: 1. Otvori browser. 2. Unesi URL. 3. Upiši korisničko ime i lozinku. 4. Klikni na ‘Prijavi se’.

Testni podaci: Korisničko ime: „testKorisnik123“, Lozinka: „Lozinka2025“

Očekivani rezultati: Korisnik je uspešno prijavljen i preusmeren na početnu stranicu.

  • Uloga: Detaljno navođenje koraka, podataka i očekivanja omogućava testerima da sistematično izvrše test i smanjuje mogućnost ljudske greške.

Polje 4 – Napomene i komentari: Ovaj deo služi za beleženje bilo kakvih dodatnih zapažanja tokom testa. Ako nešto nije funkcionisalo kako je planirano, ovde tester može opisati problem, predložiti moguće uzroke ili dati preporuku za dalju istragu.

  • Primer: „Prijava uspešna, ali korisnik nije preusmeren na početnu stranicu, već ostaje na stranici za prijavu. Možda postoji problem s redirekcijom”
  • Uloga: Napomene pružaju dodatni kontekst i mogu pomoći u rešavanju problema ili pri optimizaciji budućih testova.

Ponavljamo, ovo je veoma jednostavan primer, a test case-ovi nekad mogu da budu veoma kompleksni. Zamisli npr. test case koji proverava kako autonomni automobil reaguje kada na autoputu mora da prepozna razliku između privremenih radova na putu, nejasno postavljenih saobraćajnih znakova i drugih vozila koja menjaju trake, i to sve tokom noći i kiše, pri brzini od 120 km/h.

Naravno, koliko god je test case jednostavan ili kompleksan, i najmanje neslaganje sa očekivanim rezultatima može u potpunosti da obori test. Kao što se u ovom primeru vidi, očekivani rezultati prilikom prijavljivanja su da korisnik bude prijavljen ali takođe i da bude preusmeren na početnu stranicu, što je uslov koji nije ispunjen.

Dakle, funkcionalnost ne odgovara u potpunosti svojoj nameni (prijavljivanje + preusmeravanje). Pošto je dizajnirana i programirana tako da radi tačno ono što stoji u koloni “očekivani rezultati”, to prosto znači da se negde u programiranju ili implementaciji potkrala greška koju treba što pre prijaviti.

dva testera rade na laptopu

Primena u praksi: izvršavanje testova

Testiranje softvera uz pomoć test case-ova može se izvoditi manuelno ili automatski, u zavisnosti od specifičnih zahteva projekta i dostupnih resursa.

Manuelno testiranje podrazumeva direktno učešće testera koji fizički izvodi sve korake navedene u test case-u na testnom okruženju. Tester ručno unosi podatke, prati i beleži rezultate, te ručno proverava da li softver ispunjava definisane zahteve.

Ovaj proces zahteva značajno vreme i trud, ali omogućava testerima da dožive softver iz perspektive krajnjeg korisnika, što može otkriti probleme koje automatizovani testovi možda neće uočiti.

Automatsko testiranje koristi softverske alate i skripte koje automatski izvršavaju test case-ove. Jednom kada se test skripte napišu i konfigurišu, one mogu automatski izvoditi testove, unositi podatke, i beležiti rezultate bez direktnog ljudskog nadzora. Ovaj pristup je efikasan za obavljanje velikog broja testova, posebno za regresivno testiranje gde se isti testovi ponavljaju za svaku novu verziju softvera.

U ovom slučaju alat za testiranje sam izvodi testove na softveru prema unapred definisanim uputstvima. Evo kako to funkcioniše u praksi:

  1. Pokretanje testa: Tester ili inženjer pokreće proces testiranja pomoću specijalnog softvera.
  2. Izvršavanje koraka: Softver automatski vrši radnje koje bi inače tokom testiranja vršio čovek. To može uključivati popunjavanje formulara, klik na dugme za prijavu, ili navigaciju kroz menije.
  3. Analiza rezultata i izveštaj: Nakon izvršenja svakog koraka, tester proverava rezultate. Ako se očekivani i stvarni rezultati poklapaju, test je prošao. U obrnutom slučaju test je pao i potrebna je dalja analiza i rad na testiranoj funkcionalnosti. Na kraju, većina automatskih softvera sačinjava i kompletan izveštaj o testiranju u kome stoje opis, rezultati i status svakog testa.

Dakle, automatizacija omogućava brzo i efikasno testiranje velikog broja funkcija softvera bez potrebe za ljudskom interakcijom tokom samog procesa testiranja. To je kao da imaš robota koji za tebe obavlja testiranje po tačno određenim uputstvima.

Kako mogu da naučim još?

Softversko testiranje je vrlo široko i raznoliko polje koje otvara vrata dinamične karijere i nudi lepe mogućnosti za napredovanje. Ako želiš da gradiš karijeru u IT sektoru, a testiranje ti zvuči zanimljivo, naš QA kurs bi mogao biti pravi izbor za tebe. Prijavi se već danas preko ovog linka!

Osam zabluda o softverskom testiranju i testerima

Osam zabluda o softverskom testiranju i testerima

Industrija testiranja softvera ubrzano raste, kao prirodna posledica ekspanzije softverskog tržišta i sve veće svesti o neophodnosti kvalitetnog QA-a. Međutim, iako je potreba za testerima sve veća, njihova uloga i značaj često su nedovoljno poznati.

Testiranje nije samo traženje grešaka – to je složen i ključan deo razvoja softvera, koji zahteva specifične veštine i pristup. Zbog toga se i dalje susrećemo sa različitim zabludama o ovom zanimanju, a u nastavku ćemo obraditi one koje smo najčešće sretali ili su nam najviše privukle pažnju.
SixCube University nudi modernu obuku iz softverskog testiranja koja će te temeljno upoznati sa ovom oblašću i pripremiti te za uspešnu karijeru u IT-ju.

Testiranje usporava i komplikuje razvoj aplikacija

Savremena softverska industrija poseban akcenat stavlja na brzo razvijanje i implementaciju novih i naprednijih funkcionalnosti, a testiranje se u takvom okruženju ponekad posmatra kao nepotreban trošak i kočnica. Ipak, testiranje bi trebalo gledati kao investiciju u kvalitet i pouzdanost softvera na duže staze.

Testiranje može kratkoročno i povremeno usporiti proces razvoja, ali dugoročno zapravo značajno ubrzava isporuku softvera. Dobri QA timovi smanjuju potrebu za čestim popravkama i ažuriranjima i minimiziraju učestalost kritičnih grešaka koje mogu biti skupe za otklanjanje. Ukupno gledano, kvalitetno testiranje ublažava rizike i poboljšava performanse softvera i korisničko iskustvo, što samo po sebi privlači nove korisnike i jača reputaciju klijentovog brenda.

Testeri nisu neophodni za kvalitetan softver

Postoji zabluda koja se još uvek povremeno sreće u industriji da programeri mogu sami da testiraju softver. Ali praksa pokazuje da testiranje zahteva specifičan skup veština, kao i objektivnu perspektivu koja programerima često nedostaje zbog bliskosti sa kodom koji su napisali. Bez nezavisne uloge testera, softver može lako da dođe do korisnika sa nekim elementarnim greškama koje programeri nisu uočili.

Programeri su fokusirani na razvoj i implementaciju funkcionalnosti, težeći brzini i inovacijama, dok testeri softveru pristupaju iz ugla sigurnosti i tačnosti, vodeći računa da svaka funkcija radi kako treba i u skladu sa zadatim specifikacijama. Ova razlika u mentalitetu je ključna, jer testeri donose novi pristup koja pomaže u identifikaciji i rešavanju problema koji bi u suprotnom mogli ostati neprimetni tokom samog procesa razvoja.

Testiranje je jednostavan posao

Da li je testiranje samo „kliktanje“ po aplikaciji ili je to ipak značajno složeniji i izazovniji posao? Odgovor je očigledan – testiranje zahteva ozbiljno razumevanje softverskih principa, kao i sposobnost predviđanja korisnikove interakcije sa aplikacijom. Tester mora biti sposoban da osmisli složene testove koji verno simuliraju različite korisničke akcije u različitim uslovima, što može biti veoma izazovno i zahteva sistematičan pristup.

Testiranje nije ni „samo kliktanje“ niti „samo pokretanje skripti“; ono zahteva analitički pristup, kritičko mišljenje i inovativnost u identifikovanju potencijalnih problema pre nego što eventualno postanu ozbiljni.

Testiranje nije kreativan posao

Ova zabluda se čini kao rezultat subjektivnog viđenja koje zanemaruje širinu testerskog posla. Naravno, testiranje može da bude vrlo kreativna disciplina i stimulativna za sve one koji su radoznali i istraživački nastrojeni.

Testeri koriste svoje razumevanje tehnologije i poslovnih procesa kako bi kreirali scenarije koji testiraju granice softvera, pronalazeći nove načine da „isprovociraju“ greške i testiraju funkcionalnosti. Kreativnost u testiranju se ogleda u sposobnosti da se predvide oblici i načini upotrebe i interakcije koje nisu odmah očigledne i da se softver stavi na test u neočekivanim situacijama.

Testiranje je samo traženje grešaka

Testiranje je mnogo više od samog identifikovanja problema, ono je kompleksan proces koji podrazumeva osmišljavanje sveobuhvatne strategije testiranja, praćenje parametara koji ukazuju na kvalitet proizvoda, stalnu optimizaciju softvera, i još mnogo toga.

Tester bi trebalo da ima važnu ulogu u savetovanju klijenta i razvojnih timova o potencijalnim poboljšanjima i strategijama za postizanje najvišeg nivoa kvaliteta i korisničkog iskustva. Testiranje je integralni deo razvojnog ciklusa i pomaže u oblikovanju konačnog proizvoda kako bi on ispunio očekivanja korisnika i poslovne zahteve.

Uzmimo za primer aplikaciju za naručivanje hrane. Testeri ne proveravaju samo da li je moguće dodati proizvod u korpu ili završiti narudžbinu bez greške. Oni razmatraju i da li je proces intuitivan za korisnika, da li su opcije jasno prikazane, da li aplikacija funkcioniše brzo pod opterećenjem i analiziraju još mnogo detalja kako bi prepoznali prostor za poboljšanje softvera u sledećim verzijama.

Testiranje garantuje softver bez grešaka

Iako je krajnji cilj testiranja smanjenje broja grešaka, kompletna eliminacija svih bagova često nije moguća. Testeri mogu da rade na tome da smanje prisustvo kritičnih grešaka koliko god je moguće i osiguraju da softver funkcioniše maksimalno stabilno i efikasno.

Ključno je postaviti realna očekivanja i razumeti da je svaki složeni softverski sistem „živa stvar“ sa previše varijabli da bi se moglo garantovati da funkcioniše bez ijedne greške. Testeri se trude da ih svedu na minimum i da posebno spreče bagove koji bi mogli ozbiljno kompromitovati ključne funkcije softvera.

Testiranje se može raditi bez razumevanja domena i tehnologije

Iako uglavnom ne iziskuje poznavanje samog koda, temeljno testiranje ipak zahteva dobro razumevanje sftvera koji se testira i oblasti u kojoj se softver koristi.

Na primer, ako tester radi na bankovnoj aplikaciji, razumevanje osnovnih pojmova i principa poput različitih tipova transakcija ili modela otplate kredita može pomoći da se lakše prepoznaju greške, kao što su npr. netačno obračunate kamate ili nepravilno prikazan saldo na računu.

Tester mora imati znanje o tehnološkim i poslovnim aspektima projekta kako bi adekvatno evaluirao funkcionalnost i efikasnost softvera. Dobro razumevanje domena omogućava QA timovima da precizno identifikuju greške i predlože poboljšanja koja donose pravu vrednost stvarnom korisniku.

Naravno, razumevanje domena dolazi i s vremenom i iskustvom. Kroz rad na projektu testeri postepeno upoznaju specifičnosti dotične industrije, što im otvara mogućnost da ne samo bolje obavljaju posao, već i da stalno uče i profesionalno napreduju.

Automatizacija i AI eliminišu potrebu za testerima

Iako tehnologije kao što su veštačka inteligencija (AI) i automatizacija mogu pomoći i ubrzati proces testiranja, one ne mogu potpuno zameniti ljudski element u QA-u.
Testerima ostaje ključna uloga u osmišljavanju strategija testiranja, analizi rezultata i donošenju kompleksnih odluka zasnovanih na dobrom razumevanju namene softvera i njegovih funkcionalnosti. Ljudska intuicija i kreativnost su neophodne za bavljenje problemima koje tehnologija ne može da reši samostalno.

Ono što sigurno nije zabluda je da SixCube University pruža najbolju osnovu za one koji žele da zakorače u raznoliko i perspektivno polje softverskog testiranja. Pogledaj šta ćeš naučiti na našem QA kursu i započni put ka svojoj novoj karijeri već danas.

Da li će AI zameniti testere (i zašto ne)?

Da li će AI zameniti testere
(i zašto ne)?

Šta je AI?

Definicija veštačke inteligencije (AI) predmet je mnogih rasprava i ne postoji jedno opšteprihvaćeno određenje oko koga se svi slažu. Ono što svakako možemo da kažemo je da je AI tehnologija koja omogućava računarima da oponašaju neke aspekte ljudske inteligencije, poput učenja i zaključivanja. AI ima sposobnost da ne samo izvršava unapred definisane instrukcije, već i da uči iz novih podataka i prilagođava svoje postupke.

Dakle, AI koristi algoritme koji sami otkrivaju šablone i pravilnosti i samostalno se prilagođavaju novim situacijama, bez potrebe za direktnim programiranjem svakog koraka. Ovo ga razlikuje od tradicionalnih sistema, koji se oslanjaju isključivo na pravila koja su ručno uneta.

AI, naravno, iako deluje kao da “razmišlja”, nije „svestan“ niti „kreativan“ u ljudskom smislu, već funkcioniše kroz matematičke modele i algoritme. U praksi, AI se najčešće koristi za rešavanje problema koji zahtevaju analizu velikih količina informacija ili za zadatke gde je brzina i tačnost važnija od ljudskog iskustva i intuicije.

Primeri upotrebe veštačke inteligencije u testiranju softvera

Ova tehnologija je, naravno, ušla i u domen softverskog testiranja i već ima neke važne primene. Ipak, upotreba veštačke inteligencije u testiranju je još uvek praktično u povoju i stručnjaci još uvek otkrivaju na koje sve načine ona može biti korisna testerima. Stoga su mnoge primene AI-ja još uvek u fazi istraživanja, dok za mnoge verovatno još ne možemo ni da pretpostavimo u kom smeru mogu da se razviju.

Kako bismo ilustrovali na koji način se AI koristi na polju testinga, izdvojili smo i ukratko analizirali neke od primer upotrebe AI-ja u ovom kontekstu.

1) Generisanje testova na osnovu korisničkog ponašanja. AI može analizirati kako korisnici stvarno koriste softver ili određene funkcionalnosti, prepoznati šablone u njihovim postupcima i na osnovu toga kreirati testove koji simuliraju te realne situacije.
Ovo omogućava QA timovima da identifikuju i pokriju najkritičnije i najvažnije funkcionalnosti, što je mnogo teže postići tradicionalnim pristupom.

2) Self-healing u testiranju softvera označava sposobnost testova da automatski prepoznaju i prilagode se promenama u aplikaciji. Recimo, ako se „Login“ dugme u aplikaciji premesti ili promeni naziv, tradicionalni testovi bi se “zbunili”, ne bi mogli pouzdano da izvrše nijedan test koji uključuje korišćenje „Login“ dugmeta i morali bi ručno da se poprave kako bi se prilagodili ovim promenama.

Međutim, uz AI, alati za testiranje mogu prepoznati ove promene, prilagoditi skriptu i nastaviti sa radom bez ljudske intervencije. Ova sposobnost smanjuje vreme i trud potreban za održavanje testova, čineći ih otpornijim na promene u aplikaciji.

3) Osim toga, AI omogućava prediktivno testiranje, uz pomoć analize istorijskih podataka i identifikacije obrazaca koji ukazuju na potencijalno problematične oblasti softvera. Ovo omogućava timovima da unapred prepoznaju rizične komponente i prioritizuju testiranje na pravi način.

Na primer, algoritmi mogu da otkriju funkcionalnosti koje su istorijski imale visok broj grešaka ili one koje često izazivaju korisničke probleme. Pored toga, AI može simulirati kako promene u softveru mogu uticati na postojeće funkcionalnosti, predlažući fokusirane scenarije testiranja i time pružajući veliku pomoć testerima, povećavajući njihovu preciznost uz veliku uštedu vremena.

4) Veštačka inteligencija može automatski generisati realistične, ali sintetičke podatke za testiranje softvera. Ovo je naročito korisno u situacijama kada su podaci korisnika oskudni ili zaštićeni propisima o privatnosti.

Na primer, prilikom testiranja bankarskog softvera, ključno je koristiti podatke koji verno imitiraju stvarne informacije poput imena, brojeva računa i detalja transakcija, ali da stvarni podaci pri tome ostanu anonimni i bezbedni. Kako bi testovi reflektovali stvarni način korišćenja softvera izuzetno je važno da su podaci koji se unose prilikom testiranja softvera modelovani na osnovu stvarnih istorijskih podataka.

AI koristi napredne algoritme mašinskog učenja i analize obrazaca iz postojećih podataka kako bi generisala testne podatke. Oni oponašaju strukturu, obrasce i varijacije stvarnih podataka, dok istovremeno ne narušavaju propise niti anonimnost korisnika.

Koja su ograničenja AI-ja u testiranju?

Iako AI može ubrzati proces testiranja, postoje područja u kojima mašine jednostavno ne mogu zameniti ljudsku intuiciju i kreativnost. Na primer, AI nije u stanju da razume emocionalni aspekt korisničkog iskustva. Ako određena funkcionalnost tehnički radi, ali je frustrirajuća ili zbunjujuća za korisnike, AI to neće prepoznati – za to je potreban ljudski uvid.

Jedan od konkretnih primera je testiranje korisničkog interfejsa (UI). AI može identifikovati vizuelne greške, ali ne može proceniti da li je dugme previše sakriveno ili da li boje na stranici otežavaju čitljivost. Ovo su aspekti koji zahtevaju ljudsko razumevanje i empatiju prema krajnjem korisniku.

Još jedno ograničenje AI-ja je njegova zavisnost od podataka. Ako AI analizira softver baziran na nepotpunim ili pristrasnim podacima, njegovi zaključci će takođe biti nepotpuni ili pristrasni. Na primer, AI može „pretpostaviti“ da određeni scenario neće izazvati probleme jer ga nikada nije video u istorijskim podacima, ali QA stručnjak može anticipirati problem na osnovu svoje kreativnosti i iskustva.

Takođe, AI ne može zameniti etičko rasuđivanje. Ako određena funkcija softvera ima implikacije na privatnost korisnika, tester mora proceniti da li je rešenje u skladu s etičkim standardima – što je zadatak koji nadilazi tehničke mogućnosti AI-a.

Postoji li onda šansa da AI zameni testere?

Ovakvih primera u kojima se vidi neophodnost ljudske dimenzije u testiranju, ima još mnogo. Kombinacija prednosti i ograničenja AI-ja jasno pokazuje da testeri ostaju ključni u procesu testiranja softvera. AI može značajno ubrzati i unaprediti određene aspekte testiranja, ali ljudski uvid ostaje nezamenjiv kada je reč o razumevanju složenih problema i njihovog uticaja na korisnike.

AI se ponaša poput izuzetno brzog asistenta – može analizirati ogromne količine podataka i predložiti potencijalne probleme, ali mu je potrebna ljudska verifikacija. Testeri su ti koji će odlučiti da li je predlog AI-a relevantan i kako ga primeniti.

Uz to, razvoj softvera se stalno menja, a AI algoritmi su ograničeni na ono za šta su trenirani. Ljudi, s druge strane, mogu kreativno razmišljati i prilagoditi se novim situacijama koje AI ne može predvideti. Dokle god softver služi ljudima, testeri će igrati ključnu ulogu u obezbeđivanju njegovog kvaliteta.

Nove mogućnosti za QA stručnjake: testiranje AI sistema

Donekle paradoksalno, razvoj AI-a otvara nove prilike za testere – testiranje samih AI sistema. AI modeli su složeni i mogu grešiti na nepredvidive načine. QA stručnjaci će morati da proveravaju kako AI donosi odluke, da li je ispravno interpretirao podatke i da li su rezultati pouzdani.

Na primer, tester može ispitivati kako AI algoritam za prepoznavanje šablona reaguje na specifične scenarije koje nije ranije „video“. Takođe, QA će igrati ključnu ulogu u otkrivanju pristrasnosti u AI modelima, jer je pristrasnost u podacima jedna od najvećih slabosti veštačke inteligencije.

Ovo znači da će testeri, umesto da budu zamenjeni, postati neophodni u osiguravanju pouzdanosti AI-a, što će njihov posao učiniti još značajnijim i zanimljvijim.

Zaključak

Veštačka inteligencija donosi ogromne mogućnosti za unapređenje testiranja softvera, ali ljudski testeri ostaju nezamenjivi. Kombinacija brzine i preciznosti AI-a sa kreativnošću i intuicijom testera predstavlja idealan tim za budućnost QA industrije.

AI treba prihvatiti kao moćan alat koji omogućava testerima da se fokusiraju na složenije i kreativnije zadatke. U svetu gde tehnologija napreduje brže nego ikada, ljudski um i mašinska inteligencija zajedno će stvarati kvalitetan softver u vremenu koje je pred nama.

10 industrija u kojima su testeri softvera neophodni

10 industrija u kojima su testeri softvera neophodni

Softversko testiranje danas igra ključnu ulogu u raznim industrijama gde se kvalitet i pouzdanost tehnologije ne mogu prepustiti slučaju. Testeri postaju sve važniji zbog sve većeg oslanjanja na softverske sisteme, u gotovo svakom sektoru i svakoj sferi života. 

Ipak, postoje industrije u kojima je potreba za testerima najizraženija, zbog specifičnih zahteva i rizika koje te industrije nose. Ta lista, naravno, može da bude i značajno duža od ove, a mi smo se danas zaustavili na 10 oblasti u kojima je temeljno testiranje softvera presudno i neophodno.

Bankarstvo i finansije

Proces digitalizacije je transformisao finansijsku industriju. Fintech aplikacije svakodnevno rukovode milijardama transakcija i čuvaju osetljive podatke korisnika, a bezbednost i tačnost podataka su od neprocenjive važnosti. Greške lako mogu dovesti do ozbiljnih finansijskih gubitaka ili gubitka poverenja korisnika. 

Zato je testiranje neophodno. Ono je ključno za obezbeđivanje sigurnosti, usklađenosti sa složenim regulativama i besprekornog korisničkog iskustva, tako štiteći korisnike, ali i garantujući miran san kompanijama i institucijama koje pružaju finansijske usluge.

Zdravstvo

Zahvaljujući sve većem proboju tehnologije u domen medicine, i softversko testiranje u zdravstvenoj industriji postaje sve važnije. Od elektronskih zdravstvenih kartona do telemedicine i terapijskih i dijagnostičkih uređaja poput pejsmejkera, respiratora, CT skenera ili magnetne rezonance, kvalitet softvera je ključan i mora biti na najvišem nivou. I najmanja greška u ovom procesu može dovesti do pogrešnih dijagnoza ili neadekvatne terapije, i može imati ozbiljne posledice po zdravlje ili život pacijenata.

Testiranje osigurava da ovi sistemi funkcionišu bezbedno, štite privatnost podataka i da su dovoljno jednostavni za upotrebu od strane medicinskog osoblja. Uz to, performanse sistema moraju biti stabilne i pod visokim opterećenjem, posebno tokom kriznih situacija kao što su epidemije.

Telekomunikacije

I telekomunikaconi sektor je važniji i ranjiviji nego ikada, s obzirom na to da predstavlja okosnicu globalne digitalne komunikacije, omogućavajući povezivanje milijardi uređaja širom sveta. Pojava interneta je ovu globalnu komunikacionu mrežu učinila još kompleksnijom i sveobuhvatnijom, a samim tim i podložnijom skupim greškama.

Testeri u ovom sektoru moraju osigurati neprekidno funkcionisanje mreža, visok kvalitet prenosa podataka, kao i otpornost sistema na sve veće zahteve korisnika. Kvalitet prenosa video i audio sadržaja, stabilnost internet usluga, kao i brzina prenosa podataka direktno zavise od efikasnog testiranja. Pored toga, testiranje sigurnosti je od presudne važnosti zbog stalnih pretnji hakerskih napada i zloupotreba podataka.

Automobilska industrija

Moderni automobili više nisu samo mehaničke sprave, već koriste sofisticirane softverske sisteme za navigaciju, bezbednost, zabavu, asistenciju u vožnji i još mnogo toga. Ovi sistemi zahtevaju detaljnu proveru kako bi se ustanovilo da rade bez greške u različitim realnim uslovima i da su bezbedni za korišćenje. 

Naravno, i u ovom sektoru su testeri neophodni prvenstveno jer greška koja uđe u serijsku produkciju može da košta proizvođača pravo bogatstvo, ali i da ima fatalne posledice po ljudske živote. A kako automobili postaju sve autonomniji a prostor za grešku sve veći, i testiranje u ovoj industriji postaje sve važnije.

Odbrana

Nije verovatno neophodno napominjati zašto je intenzivno testiranje apsolutno neophodno kada se radi o softverskim sistemima koje koristi vojska. Testeri ovde nisu samo zaduženi za testiranje funkcionalnosti, već i za proveru otpornosti sistema na sajber napade i ekstremne uslove rada, kao što su visoke temperature, elektromagnetni impulsi ili fizička oštećenja. Dakle, neophodno je simulirati realne uslove i potvrditi da su sistemi u njima operativni i stabilni, pa je zato testiranje u ovoj industriji posebno zahtevno.

I u ovom domenu digitalizacija se dodatno ubrzava. Sve je češća upotreba bespilotnih sistema i napredne komunikacione tehnologije, a sistemi se sve više povezuju s veštačkom inteligencijom zarad donošenja odluka u realnom vremenu. Svi ovi sistemi neće moći da ugledaju svetlost dana pre nego što budu testirani do najsitnijih detalja.

Vazduhoplovstvo

Verovatno znaš da neuporedivo manje ljudi proporcionalno strada u avionskim nego u automobilskim nesrećama, iako to možda nije nešto što bismo intuitivno očekivali. Između ostalog, to je zato što su standardi i regulative za letelice izuzetno strogi i detaljni, a da li se sistem ponaša po tim standardima treba da utvrde upravo testeri.

Testiranje u vazduhoplovstvu je naročito izazovno jer je na delu veliki broj različitih sistema koji funkcionišu zajedno. Bilo da je reč o modulima za upravljanje, komunikaciju, navigaciju, ili nešto sasvim četvrto, testeri moraju osigurati i da ti sami sistemi funkcionišu bez greške, ali i da su međusobno kompatibilni i sinhronizovani. Vrlo često, najveće avionske nesreće dešavaju se zbog naizgled najsitnijih, ali kobnih propusta. Zato je potrebno ogromno strpljenje i umeće testerskih timova, kao i dobra saradnja sa drugim uključenim timovima, kako bi avioni bili u potpunosti spremni za bezbedan let.

Industrija video igara

Industrija video igara možda nema isti teret odgovornosti kao neke prethodno navedene jer loše testirana igra obično ne izaziva tragične posledice… osim eventualno po heroja koga igrač kontroliše. Šalu na stranu, gaming industrija se neprestano razvija i stalno uvodi nove tehnologije kao što su npr. virtuelna i proširena stvarnost (AR/VR). Gejmeri su nemilosrdni – jedan pad servera ili jedno malo “seckanje” igre mogu biti uzrok ne samo odustajanja od igre, već i glasnih pokušaja da se po različitim platformama i forumima proizvođaču igre naruši reputacija.

Testeri ovde imaju specifičnu ulogu u obezbeđivanju besprekornog korisničkog iskustva, ali i u otkrivanju potencijalnih bagova i grešaka koje bi mogle negativno uticati na gameplay. Kako igre postaju sve kompleksnije, sa bogatijom grafikom i složenijim narativima, potreba za testerima raste. Oni ne samo da proveravaju tehničke aspekte igre, već i balansiranje težine, interakcije unutar sveta igre, kao i sigurnost u multiplayer okruženjima.

IoT

IoT (Internet of Things) je mreža međusobno povezanih fizičkih uređaja, senzora i softvera koji međusobno razmenjuju podatke putem interneta – od pametnih satova i zvučnika do pametnih domova i gradova. Nimalo jednostavna komunikacija među ovim uređajima mora funkcionisati bez problema, a potrebno je i ispuniti rigorozne kriterijume koji se tiču bezbednosti i privatnosti.

Zato je jedan od najvećih izazova testiranja u ovom domenu upravo povezivanje ogromnog broja uređaja i protokola koji se ponekad temelje na sasvim različitim tehnologijama. Pored toga, važno je obezbediti stabilnost i efikasnost ovih sistema pod različitim uslovima korišćenja, kako bi se garantovalo optimalno korisničko iskustvo i pouzdanost.

Industrija zabave

Testiranje u industriji zabave igra važnu ulogu u isporuci besprekornog korisničkog iskustva. Uzmimo za primer streaming servise poput Netflix-a, Spotify-a ili YouTube-a koji se oslanjaju na kompleksne softverske infrastrukture kako bi plasirali sadržaj milionima korisnika širom sveta, i to bez prekida i sa minimalnim kašnjenjem. Funkcionalno testiranje ovih aplikacija je neophodno da bi sve funkcionalnosti, od pretrage do personalizovanih preporuka, radile ispravno na različitim uređajima – od pametnih televizora do mobilnih telefona.

Testiranje ovih sistema takođe uključuje proveru kako se platforma ponaša pod opterećenjem kada milioni korisnika pristupaju istom sadržaju istovremeno. Važno je testirati i kvalitet strimovanja, uključujući rezoluciju, brzinu učitavanja i mogućnost prebacivanja između različitih uređaja. Pored performansi, bezbednost i zaštita podataka su ključni aspekti testiranja. Sa velikom količinom korisničkih podataka, kao što su navike gledanja i podaci o plaćanju, QA timovi moraju osigurati da sistemi budu otporni na napade i zaštite privatnost korisnika.

E-commerce

E-commerce industrija zahteva često i sveobuhvatno testiranje. Prvo, s obzirom na količinu ličnih i finansijskih podataka koje trgovci obrađuju, bezbednosno testiranje igra ključnu ulogu u zaštiti od potencijalnih pretnji. 

Dalje, neophodno je testirati da li onlajn prodavnice mogu da podnesu veliki broj poseta, naročito u periodima rasprodaja ili promotivnih događaja, kako bi se izbegao pad sistema ili sporo učitavanje, što može direktno uticati na prodaju i reputaciju brenda. Pored toga, potrebno je proveravati ispravnost svih važnih funkcionalnosti na različitim uređajima, od prijavljivanja na nalog do pretrage proizvoda i odabira načina plaćanja, naročito nakon većih promena i ažuriranja u softveru.


Hoćeš da naučiš više o testiranju? SixCube University nudi sveobuhvatan kurs koji će ti pružiti sva neophodna znanja da započneš karijeru testera softvera. A možeš i još malo razgledati po našem blogu.

Svet bez testera – 5 apokaliptičnih scenarija

Svet bez testera – 5 apokaliptičnih scenarija

Da su testeri važni – to smo već zaključili. Ali koliko važni? Je li baš smak sveta ako nemamo testere?

Pa, mogao bi biti. Možemo bez problema zamisliti brojne situacije u kojima nepažljiv pristup kvalitetu softvera može da znači vrlo ozbiljne probleme sa veoma širokim posledicama.

Zato smo rešili smo da se malo zabavimo i zajedno istražimo par zamišljenih apokaliptičnih scenarija koji bi se mogli dogoditi u svetu u kojem ne bi bilo testera. Neki od njih su vrlo realni, neki možda malo manje, ali ono što ih suštinski sprečava da se dogode su razne provere i procedure vezane za kvalitet, funkcionalnost i bezbednost. U svetu bez testera, imali bismo itekako svako pravo da strahujemo od ovih scenarija. Da vidimo o čemu se radi.

Scenario 1: Bankovne transakcije širom sveta ne funkcionišu

Scena: Budiš se ujutru sa porukom od majke i notifikacijom od banke – automatski pokušaj plaćanja Netflixa bio je neuspešan. U panici, kunući inflaciju, otvaraš račun jer nemoguće da već 12-tog u mesecu nemaš para. I zaista, na računu ima novca. U želji da se požališ banci, tražiš broj korisničkog servisa, ali se prvo setiš one poruke od majke. Pošto nije lepo staviti banku ispred majke, otvaraš poruku u kojoj piše:

„Desila se neka greška s kompjuterima. Nećeš moći da koristiš kartice, a redovi u bankama su ogromni iako gotovine već sada nema praktično nigde (tako ti je to kad ustaješ u 11). Očekuje se da će nestašice novca uskoro dovesti do zatvaranja prodavnica i poremećaja u transportu. Nakon toga, nestašice goriva i osnovnih potrepština i poremećaji u lancima snabdevanja dovešće do prekida u proizvodnji.

Zatim, možemo očekivati nestanak struje i vode pa raspad komunikacionih mreža, što će onemogućiti koordinaciju bilo kakve pomoći. Osnovne usluge će prestati da funkcionišu, dovodeći do kolapsa urbanog života. Gradovi će postati nesigurni zbog eskalacije nasilja i kriminala dok se ljudi bore za ograničene resurse. Ako ne dođe do brze i efikasne intervencije na globalnom nivou, svedočićemo slomu organizovanog društva kakvo poznajemo. Voli te mama“

Šta se desilo?

Desilo se da imaš vrlo informisanu majku. Malo konkretnije, desila se ozbiljna greška na zajedničkoj infrastrukturi koju koriste Visa, Mastercard, American Express, i drugi platni servisi.  Greška u sistemima za međubankarsku komunikaciju izaziva prekid u autorizaciji i procesuiranju transakcija, uzrokujući zastoj u globalnom platnom sistemu. U svetu bez testiranja i rigoroznih procedura, ovakva greška se ne može sprečiti. Traženje alternativa i zaobilaznih rešenja ne bi bilo nimalo jednostavno, i bez prave reakcije najvažnijih faktora iz sveta politike i biznisa, crna predviđanja ove zabrinute majke mogla bi se ostvariti.

Scenario 2: Nuklearni rat

Scena: Gledaš televiziju. Tvoj omiljeni program prekinut je zbog najnovije vesti. Voditelj objašnjava da je nuklearni rat upravo počeo, da su prvi projektili već pali, i da bi svi građani trebalo da slede uputstva nadležnih u ovom teškom momentu. Ne baš nedeljno popodne kome smo se nadali.

Uskoro, krizna situacija eskalira u opšti nuklearni sukob. Nuklearne eksplozije uništavaju velike metropole, infrastrukturu i strateške vojne lokacije zemalja direktno ili indirektno uključenih u sukob. Milioni ljudi umiru u prvim danima od direktnih efekata eksplozija – toplote, udarnog talasa i požara. Radioaktivni oblak se širi, a toksične padavine pljušte preko velikih područja, izazivajući dugoročne zdravstvene komplikacije kod ljudi.

Globalni lanci snabdevanja se uskoro prekidaju, što dovodi do nestašica hrane, vode i osnovnih potrepština. Takozvana „nuklearna zima“, uzrokovana masovnim izbacivanjem pepela i čađi u atmosferu, snizila bi globalne temperature, dovodeći do propadanja useva i gladovanja čak i u regionima koji nisu direktno pogođeni napadima. Svetska ekonomija bi doživela krah zbog uništenja ključnih ekonomskih centara i opšte nestabilnosti. Mnoge vlade bi mogle pasti ili postati nefunkcionalne, a anarhija bi zavladala u raznim delovima sveta.

Šta se desilo?

Zbog softverske greške u bezbednosnom sistemu jedne od nuklearnih sila, upalio se alarm koji signalizira da su neprijateljski nuklearni projektili ušli u vazdušni prostor. Uzbuna je lažna jer u stvarnosti nema nikakvih projektila na nebu, ali operater je postupio po protokolu, državni vrh je obavešten i u roku od par minuta sve je spremno za „protivnapad“. Rakete su, iako opasnost nije pretila, lansirane ka svojim ciljevima i opšti nuklearni rat je počeo bez ikakvog razloga.

Kuriozitet: veoma sličan slučaj se već desio i to u našem svetu, sa testerima. Srećom, ljudi su ovaj put bili pametniji od mašina.

Scenario 3: (Još jedna) pandemija

Scena: Gledaš vesti, ni sam(a) ne znajući zašto. Udarna vest je priča o misterioznoj novoj bolesti sa teškim simptomima i visokom stopom smrtnosti. Još skeptični zbog dezinformacija i loše organizacije javnih službi tokom pandemije COVID-a, većina ljudi nepoverljivo odmahuje rukom ili menja kanal.

Tokom iste pandemije videli smo kako se visoko zarazni virusi mogu brzo globalno raširiti. Takođe smo videli i i koliko je malo potrebno da bolnice i klinike širom sveta budu preplavljene i preoptećene, kao i koliko zalihe medicinskih potrepština brzo nestaju. Zamislimo sličan razvoj situacije, ali ovog puta sa mnogo većom stopom smrtnosti. Globalna zdravstvena kriza bila bi ne samo neizbežna već i mnogo teža.

Zemlje bi verovatno dugoročno zatvorile granice i uvele karantin, što bi dovelo do prekida u globalnom lancu snabdevanja, ekonomskog pada i masovne nezaposlenosti. Nakon toga sledi period društvene nestabilnosti, a kompleksna ekonomska i politička situacija bi sasvim verovatno dovela do vojnih sukoba oko osnovnih resursa (setimo se kako su izgledali supermarketi na početku prošle pandemije – klasično bojno polje). Čak i sa pronalaskom vakcine, u slučaju vrlo teške pandemije,  globalni oporavak mogao bi trajati decenijama, sa trajnim promenama u tome kako ljudi rade, putuju i komuniciraju.

Šta se desilo?

Ono što ipak razlikuje naš virus u odnosu na COVID (makar koliko znamo) je izbijanje epidemije zbog softverske greške. Ovaj scenario je itekako moguć. Greška u automatizovanom sistemu kontrole koja bi dovela do neželjenog otvaranja sigurnosnih ventilacionih sistema, rezultirala bi nekontrolisanim oslobađanjem smrtonosnog virusa u laboratorijsko okruženje. Virus bi zarazio sve prisutne u objektu pre nego što bi greška bila uočena, a sve dalje posledice bile bi neizbežne.

Scenario 4: Čovečanstvo bez interneta

Scena: Sediš kod kuće i listaš društvene mreže. Odjednom, internet prestaje da radi. Pokušavaš da restartuješ wi-fi, da upališ svoj internet, da ugasiš pa upališ telefon, a nakon što ništa ne uspe odlučuješ da zoveš korisničku podršku svog internet provajdera. Prijatan glas automata ti govori da je procenjeno vreme čekanja oko 4 ipo sata. Krećeš da proveriš da li i tvoji prijatelji nemaju internet, ali ne možeš jer… nemaš internet.

Vrlo brzo, korisnici interneta širom sveta primećuju da ne mogu da učitaju nijednu stranicu. E-mail i druge komunikacione platforme prestaju da funkcionišu. Finansijske institucije ne mogu da procesuiraju onlajn transakcije, što dovodi do zastoja u plaćanjima i transferima novca i zatvaranja onlajn trgovina. Panika se širi.

Zatim ulazimo u sličan vrtlog kao u nekim prethodnim scenarijima: nemogućnost onlajn transakcija znači velike finansijske gubitke i paralizu tržišta – problemi sa snabdevanjem utiču na dostupnost robe – nastupa opšta nestašica osnovih potrepština – to sve izaziva ekonomski kolaps i masovne demonstracije. Nakon toga, sve je moguće.

Šta se desilo?

Scenario u kojem čitav svet ostaje bez interneta je verovatno najmanje verovatan od ovde nabrojanih, ali nije nemoguć, kao npr. u slučaju mogućeg problema sa ključnim DNS (domain name system) serverima. DNS serveri su poput prevodilaca: omogućavaju konverziju čitljivih imena domena (kao što je “google.com”) u IP adrese koje računari koriste za međusobno povezivanje. Ako DNS ne funkcioniše, ljudi širom sveta ne bi mogli da pristupe veb stranicama, e-mail servisima, onlajn bankarstvu, društvenim mrežama i svim drugim onlajn uslugama.

Zajednička upotreba istih protokola i tehnologija za upravljanje DNS upitima čini ključne DNS servere ranjivim na koordinirane napade koji bi mogli ciljati te zajedničke slabe tačke. To znači da ako bi ovi serveri doživeli vrlo precizan i usmeren napad, internet kakav danas poznajemo mogao bi se suočiti s kolapsom, makar u svetu gde ne postoji stalan nadzor i testiranje ovih sistema.

Scenario 5: Nestanak svih slika sa cloud-a

Scena: dobijaš notifikaciju od cloud platforme koju koristiš za fotke da ti je kapacitet pun. „Kad pre“, pomišljaš, loguješ se, ulaziš u aplikaciju, ali… nema slika. Ne da nije pun nego je prazan. Skroz. Drugi bekap nemaš, a često brišeš slike s telefona baš zato što ih imaš na cloud-u. Pišeš korisničkoj podršci, besomučno guglaš, zoveš sve iole tehnološki pismene prijatelje, moliš se, ali ništa ne vredi.

Realnost te polako pogađa. Nestanak svih slika papagaja Pere mogao bi dovesti do ozbiljne uznemirenosti u kući, a brisanje fotki s kampovanja na Divčibarama obećava porodični sukob. Nestale su i slike od prošlog petka, i sad ti niko neće verovati da si sreo Čolu na ulici. Misliće svi da si lažov, tvoja reputacija će doživeti ozbiljan udarac i zbog takvih stvari mogli bi te izopštiti iz društva. A što se tiče stotina skrinšotovanih mimova koji su zauvek iščezli, to bi već moglo izazvati međunarodni incident.

Šalu na stranu, brisanje slika naravno neće izazvati smak sveta (osim ukoliko baš imaš uslikanu šifru za razoružavanje nuklearnih projektila), ali teško da ima čoveka na ovom svetu koga ovakva „sitnica“ ne bi bacila u očaj. Testerima dugujemo ispravno funkcionisanje mnogih stvari koje danas smatramo dragocenim, čak i kada nemaju globalni značaj. Pažljivo testiranje je ključno kako bismo nesmetano uživali u svim sitnim svakodnevnim ugodnostima koje nam digitalne tehnologije pružaju.

Šta se desilo?

Ko zna. Greška može biti u samoj aplikaciji, na serverima, u bazama podataka, i ko zna gde sve ne. Od kvaliteta korisničke podrške moglo bi zavisiti da li ćeš ikad ponovo videti slike papagaja Pere, zato pažljivo biraj onlajn servise koje plaćaš.

Kako da izbegnemo apokalipsu?

Kao što smo već rekli, neki od ovih scenarija se u svetu kome živimo graniče sa fikcijom. Ali to je tako upravo zbog testera, i svih onih koji rade na tome da kvalitet softverskih proizvoda koje koristimo bude uvek na najvišem mogućem nivou.

Naši životi su sada već toliko vezani za softverske tehnologije, da se može reći da je kvalitet softvera koje koristimo svakodnevno itekako vezan za kvalitet našeg života. U vremenu koje dolazi, potreba za testerima će samo rasti, a SixCube University je idealno mesto za svakog ko bi želeo da pomogne da toj potrebi zajedno odgovorimo. Prijavi se na naš kurs i nauči sve veštine koje su ti neophodne za početak testerske karijere.

Prekvalifikacija u testiranje softvera: koje profesije daju najbolju osnovu?

student-sedi-na-predavanju

Prekvalifikacija u testiranje softvera: koje profesije daju najbolju osnovu?

Prekvalifikacija može biti prava prekretnica i najmudriji potez u nečijoj karijeri, ali onome ko se na nju odluči može biti i veliki teret, praćen strepnjom da će ceo trud biti uzaludan. U kom pravcu će ići promena karijere zavisi od mnogo faktora, ali prevashodno od toga da li smo „dobro izabrali“. „Dobar izbor“ nove profesije znači da smo izabrali struku koja nas zanima, koja nam leži i za koju imamo sva neophodna prethodna znanja.

Isto, naravno, važi i za prekvalifikaciju u QA. Koja su znanja najkorisnija nekome ko želi da krene ovim putem? Kakvo obrazovanje ili iskustvo treba da ima potencijalni polaznik da bi SixCube University mogao da ga obuči za novu karijeru?

Na SixCube University-ju insistiramo na tome da ti nije potrebno neko konkretno prethodno znanje za pohađanje našeg kursa. Tvoja struka ili obrazovanje zaista nisu ključni, i u testing se možeš uspešno usmeriti iz praktično bilo koje oblasti koja ohrabruje kreativno rešavanje problema i kritičko razmišljanje.

Tehničke nauke

Ove discipline zahtevaju analitičko razmišljanje, poznavanje tehnologija i sposobnost rešavanja problema, što su veštine ključne za uspešnog testera. Osim toga, tehnička pozadina često olakšava razumevanje složenih sistema i alata, kao i komunikaciju sa razvojnim timovima.

Na tehničkim fakultetima kod nas ne postoji odsek za testiranje softvera, ali neko ko dolazi iz npr. domena softverskih tehnologija ima naravno odličnu osnovu za ulazak u QA. Poznavanje IT pravila i okruženja, iako nije inicijalno neophodno, može itekako da olakša početak i pomogne polazniku da se brže uvede u QA.

Prirodne nauke

Prelazak u testiranje softvera za ljude iz sfere prirodnih nauka, poput fizike, hemije ili biologije, može biti logičan izbor. Bavljenje ovim naukama izgrađuje važne veštine kao što su kritičko razmišljanje, istraživački duh i preciznost – sve odlike koje su neophodne za testiranje softvera. Prirodne nauke te uče kako da sistematski pristupiš problemima i tražiš pravilnosti i izuzetke, što je odličan preduslov za nekog ko se bavi identifikacijom i rešavanjem softverskih grešaka.

Dalje, iskustvo u radu sa kompleksnim podacima i eksperimentima može ti pomoći da lakše razumeš i analiziraš rezultate testiranja. Takođe, napredno poznavanje matematike koje uglavnom imaju oni koji se bave prirodnim naukama, iako nije neophodno za QA stručnjaka, može pomoći prilikom razumevanja logičke strukture aplikacije ili obrade podataka.

Matematika i statistika

Što se tiče onih koji su se u svom obrazovanju fokusirali na statistiku i matematiku, oni imaju odličnu osnovu za karijeru u testiranju softvera, jer ove oblasti kultivišu logičko razmišljanje i sposobnost analize podataka. Testiranje softvera često zahteva razumevanje složenih algoritama i rad sa velikim količinama podataka, gde matematičke i statističke veštine mogu biti od velikog značaja.

Osobe sa ovom pozadinom mogu brzo da ovladaju tehnikama kao što su analiza testnih podataka, procena rizika i optimizacija testnih procedura. Takođe, poznavanje statistike može biti korisno u automatizaciji testova, kao i prilikom predviđanja potencijalnih softverskih problema.

Biznis i ekonomija

Oni sa iskustvom u biznisu i ekonomiji mogu doneti dodatnu vrednost testiranju kroz razumevanje poslovnih procesa i potreba korisnika. Testiranje softvera zahteva ne samo tehničke veštine, već i sposobnost da se softverski proizvodi sagledaju iz poslovne perspektive. Tvoje znanje o ekonomskim modelima, analizi troškova i upravljanju projektima može doprineti boljoj proceni rizika i prioritizaciji testova.

Takođe, razumevanje finansijskih tokova i ključnih pokazatelja uspešnosti omogućava bolju komunikaciju sa menadžmentom i donosiocima odluka. Ova sinergija tehničkih i poslovnih znanja čini te odličnim kandidatom za testiranje softvera u poslovnom okruženju.

Društvene nauke

Iako prekvalifikacija iz humanističkih nauka u testing ne deluje intuitivno na prvi pogled, zapravo nije uopšte redak karijerni put i mnogo testera dolazi iz domena jezika ili društvenih nauka. Mnoge od ovih nauka, poput psihologije, sociologije ili filozofije, razvijaju logičko i kritičko razmišljanje, razumevanje ljudskog ponašanja i sposobnost analize složenih koncepata, što je sve veoma korisno za testera.

Dobro znanje iz npr. psihologije omogućava bolje razumevanje korisničkog iskustva i predviđanje potencijalnih problema sa kojima se korisnici mogu suočiti. Dalje, duboko poznavanje sociologije može pomoći u razumevanju kako izgledaju interakcije različitih društvenih grupa sa tehnologijom, što može biti od velike koristi pri testiranju proizvoda namenjenih širokom spektru korisnika. Generalno se na studijama društvenih nauka još uvek značajno više pažnje poklanja metodama komunikacije nego što je to slučaj na tehničkim fakultetima, a te su metode ključne za uspešnu saradnju sa različitim timovima i klijentima u procesu testiranja.

Umetničke discipline

Prekvalifikacija iz umetničkih disciplina u testiranje softvera takođe može delovati neobično, ali kada smo na početku teksta rekli da je u QA moguće prekvalifikovati se iz svih oblasti koje razvijaju kreativno rešavanje problema i kritičko razmišljanje, zaista smo tako i mislili. Umetnici često pristupaju izazovima na inovativan i nekonvencionalan način, što im omogućava da uoče skrivene detalje i razmotre različite perspektive prilikom rešavanja problema.

Testing može biti posebno pogodan za sve one koji se bave dizajnerskim poslom, naročito veb dizajnom. Dizajneri poseduju razvijenu sposobnost da detaljno sagledaju vizuelne elemente i njihov uticaj na korisnike. Ove veštine su važne za testiranje softvera, jer omogućavaju pronalaženje potencijalnih problema sa dizajnom i navigacijom u ranim fazama razvoja.

Menadžment i administracija

Za one koje dolaze iz domena menadžmenta i administracije, prelazak u testiranje može pružiti nove izazove i mogućnosti za rast. Ove oblasti jačaju veštine organizacije, planiranja i upravljanja resursima, koje su ključne i u testiranju softvera. Budući testeri sa ovom pozadinom imaju tu prednost što često poseduju organizacione veštine korisne za vođenje QA timova i upravljanje testiranjem projekata.

Testiranje zahteva strukturisan pristup, dobro upravljanje vremenom, kao i sposobnost donošenja odluka pod pritiskom. Iskustvo u vođenju projekata i timova može pomoći pri koordinaciji testnih aktivnosti i uspostavljanju efikasne komunikacije između timova.

Razne druge oblasti

Kao što smo više puta pomenuli, svaki posao u kome je neophodno koristiti inteligenciju i kreativnost može biti dobra priprema za ulaz u testerski svet. Ako se tvoja struka ne nalazi na listi, to je verovatno samo zato što smo želeli da se ovaj tekst ipak negde završi. QA kao struka je veoma široka i pogodna za ljude najrazličitijih interesovanja, dokle god su radoznali, maštoviti i posvećeni detaljima.

Takođe, domensko znanje iz raznih sfera može biti korisno za testera. Na primer, poznavanje finansija može ti pomoći prilikom testiranja bankarskih softvera, a duboko razumevanje medicine ili zdravstvenog sistema može biti od velikog značaja prilikom testiranja softverskih rešenja u medicinskoj industriji. Ovakvih primera je bezbroj – svoje znanje, veštine i sklonosti ćeš tokom testerske karijere moći da koristiš na mestima gde to verovatno ne očekuješ, i upravo je zbog svega ovoga QA jedna od oblasti koje ljudi najčešće biraju za prekvalifikaciju.

Zvuči zanimljivo? Pogledaj još informacija o kursu ili se prijavi na ovom linku. Naredna generacija startuje 5. oktobra!

Spremi se za IT karijeru na SixCube University-ju

Spremi se za IT karijeru na SixCube University-ju

Naš QA kurs uskoro ponovo počinje! SixCube University nudi savremenu obuku iz testiranja softvera i priliku da izgradiš i oblikuješ svoju IT karijeru.
Kada počinje kurs, koliko traje i koliko često se održavaju predavanja?

Šta je ono što naši polaznici mogu da očekuju da nauče i kako će im ta znanja kasnije koristiti u karijeri? I na kraju, zašto su nam potrebni testeri?

Tekst pred tobom ponudiće ti odgovore na sva ova pitanja.

Najvažnije informacije o našem kursu

  • Program, pod nazivom „Testiranje softvera“ počinje 5. oktobra 2024. i traje 6 meseci
  • Predavanja se održavaju svake subote i nedelje, u trajanju od po 6 sati, u našim prostorijama u Novom Sadu
  • Kurs je podeljen na dva dela: „Uvod u profesionalni testing“ i „ QA automatizacija u teoriji i praksi“, i svaki traje po 3 meseca.
  • Polaznici imaju izbor da pohađaju ceo kurs ili samo jedan deo koji žele.
  • Kurs je osmišljen tako da ti pruži sve neophodne veštine za rad u oblasti testiranja softvera odmah nakon završetka
  • Čitav program kursa možeš videti na ovom linku

Šta dobijaš sa našim QA kursom?

Znanje i samopouzdanje za IT prekvalifikaciju

Naći pravo usmerenje je jedan od najvažnijih i najtežih zadataka koje imamo za života. Staza koju treba savladati puna je sumnjivih skretanja, lavirintova i ćorsokaka, što često čini da se na ovom putu osećamo potpuno izgubljeno. Oslonjeni sami na sebe, bez mape ili uputstva koji bi nam mogli pomoći, mnogi se u ovoj situaciji osećaju doslovno zaglavljeno.

Da odabereš pravo skretanje i ostaneš na pravom kursu, mi ti nudimo malu pomoć na putu. SixCube University će biti tvoja podrška i vodič i otvoriti ti vrata ka novim prilikama, pomažući ti da učiš i  izgradiš samopouzdanje dok koračaš ka svojim ciljevima. Naši predavači pomoći će ti da pronađeš svoje mesto u ovoj industriji koju veoma dobro poznaju i koja raste velikom brzinom.

Jedna od stvari koje testeri rade je da testiraju aplikacije koje svakodnevno navode milione ljudi na putu ka najrazličitijim odredištima. Kako bi nam životi izgledali da oni ne rade svoj posao temeljno i odgovorno? Ovako nekako:

Play Video

 

Praktične veštine relevantne za današnje vreme

Učenje koje se fokusira samo na teoriju i zanemaruje praktičnu primenu česta je prepreka karijernom uspehu i napretku. Ovo pravilo važi za veliki broj različitih zanimanja, a u testiranju je izraženije nego u većini drugih profesija.

Na SixCube University-ju predaju profesionalni testeri, što znači da ćeš kod nas imati ne samo priliku da ovladaš praksom (koja čini 2/3 kursa), već ćeš to i uraditi uz podršku stručnjaka koji imaju bogato iskustvo rada na najkompleksnijim projektima i poznaju sve aspekte svakodnevnog testerskog posla. To je iskustvo koje će ti biti relevantno za samostalni rad i koje ćeš moći da primeniš na najrazličitijim projektima, a na svoje novo radno mesto ući ćeš bez briga i straha od novih izazova.

Sposobnost praktične primene naučenog na testerskom poslu je od ogromne važnosti jer testeri proveravaju i osiguravaju kvalitet velikog broja važnih i široko korišćenih tehnologija. Zamisli samo šta bi bilo da su aplikacije za prenose uživo bagovale ovog leta. Samo zamisli. Ili pogledaj:

Play Video

 

Stabilna IT karijera i budućnost

Kada biraju karijeru, ljudi traže ne samo poslove koji će ih trenutno finansijski obezbediti, već i one koji će dugoročno biti potrebni i traženi. IT poslovi svakako spadaju u ovu kategoriju, s obzirom na to da su informacione tehnologije poslednjih decenija postale ključne u mnogobrojnim područjima života i nalaze primenu u sferama u kojima ih do tada nismo ni sretali ni očekivali.

Viđamo kako mnoge industrije iščezavaju i mnogi poslovi postaju suvišni, mahom upravo zbog ovog proboja modernih tehnologija u nove oblasti. Uz sve fluktuacije, IT poslovi će biti veoma potrebni društvu u doglednoj budućnosti, i baš je zato IT izbor za mnoge koji biraju prekvalifikaciju zarad sigurnog „krova nad glavom“.  

U svemu ovome, testiranje će biti ključno jer ono omogućava da softverski proizvodi i tehnološke inovacije generalno budu stabilni, pouzdani, bez grešaka i funkcionišu na način kako je to predviđeno. Bez testiranja, mnogi bi lako mogli ostati bez krova nad glavom, i to na letovanju. Znamo da zvuči čudno, ali biće ti jasnije kad pogledaš video.

Play Video

 

Veštine profesionalne komunikacije u poslovnom okruženju

Razvoj tehnologije u oblasti medija i komunikacionih sistema igra ključnu ulogu u globalnom tehnološkom napretku. Život u „globalnom selu“ doneo je neke nove načine komunikacije sa nekim novim pravilima, kako u neformalnim razgovorima, tako i u poslovnom kontekstu.

Za QA stručnjaka, komunikacione veštine su među najvažnijima koje mora da usvoji i da primeni u svakodnevnim poslovnim situacijama. SixCube University je ustanova čiji predavači su profesionalni testeri sa dugogodišnjim iskustvom, i stoga može da pruži sjajne uvide u to kako treba da izgleda interakcija sa timom, klijentom i drugim uključenim stranama.

I ne samo da je komunikacija bitna za testere, već su i testeri bitni za komunikaciju, posebno u vremenu u kom se njen veliki deo odvija preko digitalnih kanala. Najmanje greške u produkciji mogu značiti velike probleme, naročito onda kada se prenose informacije od izuzetne važnosti. Pogledaj klip da vidiš na šta mislimo.

Play Video

 

Ako želiš da se prijaviš ili imaš bilo kakva dodatna pitanja o kursu ili testiranju, piši nam na: sixcubeuniversity.applications@sixsentix.com
SixCube University te čeka na prvom predavanju 5. oktobra!

Šta sve treba da zna QA tester?

Šta sve treba da zna
QA tester?

Već smo videli koje su to osobine i sklonosti koje bi idealno trebalo da ima jedan tester softvera, ali one naravno nisu same po sebi dovoljne da bi neko bio uspešan u ovom poslu.

Postoji širok dijapazon znanja koja su neophodna svakom QA stručnjaku i na kojima može dalje da gradi i razvija svoju karijeru. U ovom tekstu, pokušaćemo da pobrojimo one najvažnije.

1. Osnove IT-ja

Razumevanje osnovnih pojmova u informacionim tehnologijama je ključno za svakog testera softvera. Ovo uključuje poznavanje osnovnih komponenti računarskih sistema, mrežnih protokola, operativnih sistema i principa njihove međusobne interakcije.

Ova znanja su neophodna za razumevanje konteksta u kom softver funkcioniše i služe kao temelj drugim tehničkim znanjima koje budući QA stručnjak treba da stekne. Takođe im i omogućava da identifikuju i razumeju probleme koji se mogu pojaviti u softverskoj infrastrukturi  i olakšava komunikaciju sa tehničkim timovima.

2. Životni ciklus softvera (SDLC)

Životni ciklus softvera (SDLC) obuhvata sve faze razvoja softvera, od početne ideje do lansiranja, održavanja i podrške. Poznavanje SDLC-a pomaže testerima da shvate principe procesa razvoja, ali i mesto i ulogu testiranja u tom procesu.

Različite metodologije, poput Agile-a i Waterfall-a, definišu strukturu i pristup koji timovi koriste. Razumevanje ovih metodologija omogućava testerima da sagledaju razvojni ciklus iz različitih uglova i da se na svom budućem poslu efikasno prilagode različitim načinima rada.

mladi-ljudi-uce-testiranje-ispred-racunara

3. Osnovni pojmovi testiranja

Osnovni pojmovi testiranja, kao što su test case, test plan, test scenario, okruženje, bag, defekt, validacija, verifikacija i slično, predstavljaju fundamente koje svaki tester treba da razume. Dobro poznavanje ovih i sličnih pojmova je neophodno i pruža osnovu za dalje učenje i razumevanje testerskog posla i uloge.

Za buduće QA profesionalce je neophodno da dobro savladaju ove koncepte, kako bi mogli precizno da identifikuju i dokumentuju probleme, organizuju i sprovode testne aktivnosti, ali i komuniciraju sa ostatkom tima i drugim zainteresovanim stranama.

4. Vrste, nivoi i tehnike testiranja

Postoje brojne vrste testiranja i brojni načini da se testiranje podeli na vrste (npr. funkcionalno i nefunkcionalno ili manuelno i automatsko), kao i različitih test nivoa (kao što su unit, integraciono ili sistemsko testiranje), i za QA stručnjaka je ključno da poznaje njihove osnovne odlike i razlike.

Svaka vrsta i nivo testiranja ima specifičnu ulogu u osiguravanju kvaliteta softvera. Poznavanje ovih razlika u teoriji i praksi omogućava testerima da ciljano primenjuju odgovarajuće tehnike. Za to je naravno potrebno i da je tester dobro upoznat sa različitim tehnikama testiranja (npr. whitebox, blackbox ili exploratory testiranje) i pravilno ih odabere i primeni u zavisnosti od specifičnih zahteva projekta.

5. Testne strategije i metodologije

Testne strategije i metodologije definišu pristup i metode koje se koriste za testiranje softvera. Ove strategije uključuju izbor testnih tehnika, planiranje resursa i određivanje prioriteta testiranja.

Efikasne testne strategije pomažu u optimizaciji resursa i vremena, omogućavajući testerima da se fokusiraju na kritične delove aplikacije. Kroz pravilno planiranje i sprovođenje testiranja, testerima se omogućava da pronađu i otklone potencijalne probleme, što za rezultat ima stabilniji i kvalitetniji softver.

6. Organizacija tima i uloga testera

Razumevanje organizacije tima i uloga unutar njega ključno je za uspešno testiranje. Efikasna timska dinamika i saradnja omogućavaju pravovremeno otkrivanje i rešavanje problema.

Poznavanje različitih rola u timu pomaže testerima da koordinišu svoje aktivnosti, ali i efikasnije komuniciraju i sarađuju sa kolegama, doprinoseći tako ukupnom uspehu projekta.

7. Test procesi

Test procesi uključuju planiranje, dizajn, izvršavanje i evaluaciju testova, koji pomažu QA ekspertima da sistematski pristupe testiranju.

Kroz definisane procese, testeri mogu da postave jasne ciljeve, razviju efikasne test planove i strategije, i analiziraju rezultate kako bi detektovali i otklonili sve probleme. Na SixCube University-ju polaznici uče kako da implementiraju standardizovane procese koji obezbeđuju konzistentnost i kvalitet u testiranju.

predavac-i-polaznik-na-qa-kursu

8. Osnove programskih jezika

Poznavanje programskih jezika generalno nije neophodno za testiranje softvera, ali poznavanje njihovih osnova i najvažnijih karakteristika, kao i ključnih pojmova u programiranju može biti vrlo korisno. Ova znanja omogućavaju testerima da razumeju strukturu koda, steknu dodatni uvid u aplikaciju koju testiraju i pišu jednostavne skripte za automatizaciju testiranja.

Razumevanje osnova programskih jezika takođe pomaže testerima da bolje sarađuju sa programerima, izbegnu nepotrebne nesporazume i generalno poboljšaju timsku komunikaciju.

9. Druga tehnička znanja

Usvajanje nekih drugih tehničkih znanja i veština, kao što su npr. rad sa bazama podataka, API protokolima, ili razumevanje web i desktop aplikacija, takođe je važno za svakog testera.

Ovo znanje omogućava testerima da razumeju kako različiti delovi softverskog sistema funkcionišu zajedno i kako se podaci prenose i obrađuju. Poznavanje osnova softverske arhitekture takođe može pomoći QA stručnjacima da brže prepoznaju potencijalne kritične tačke i razviju efikasne testne strategije.

10. Alati za testiranje

Upotreba specijalizovanih alata za testiranje je sastavni deo testerskog posla. Rad na ovim platformama omogućava testerima da prate greške i upravljaju testovima, a u slučaju alata za automatsko testiranje mogu i automatizovati ponavljajuće zadatke.

Korišćenje ovih alata u praksi pomaže budućim testerima da steknu neophodna iskustva i veštine za rad na stvarnim projektima. Zato se na SixCube University-ju studenti upoznaju sa alatima za testiranje kroz simulacije projekata, na način koji im omogućava da razumeju njihovu primenu. Cilj  naše obuke nije samo da polaznici nauče rad u jednom alatu, već da shvate logiku koja povezuje različite alate kako bi bili spremni da se lako prilagode radu na bilo kojoj tehnologiji za testiranje.

11. Praktično znanje

Poslednja, ali verovatno i najbitnija stvar koju tester treba da zna jeste kako testiranje izgleda i funkcioniše u praksi. Teorijsko znanje je izuzetno važno za QA stručnjaka i već smo videli šta sve kvalitetan tester treba da nauči od teorije, ali bez primene naučenog u praksi, neće biti u potpunosti osposobljen za posao testera.

Praktično iskustvo je ključ za postizanje kompetentnosti u testiranju softvera. Na SixCube University-ju potenciramo praktično znanje kao ključan faktor koji definiše kompetentnog testera i zato je čak 2/3 našeg kursa posvećeno praktičnoj nastavi.

Na simulacijama projekata polaznici mogu primeniti stečena znanja u stvarnim situacijama. Tu se, kroz praksu, susreću sa stvarnim izazovima i komplikacijama u razvoju softvera, što im omogućava da bolje razumeju procese testiranja, savladaju tehnike za efikasno rešavanje problema, razviju temeljan i detaljan pristup testerskom poslu, i usvoje testerski način razmišljanja i komunikacije.

Gde mogu da naučim sve to?

Naravno, spisku ovde nije kraj. Posao testera softvera zahteva stalno učenje, usavršavanje i držanje koraka sa najnovijim tehnologijama.

Sva znanja koja smo pobrojali u tekstu, i mnogo mnogo više, možeš steći na kursu SixCube University-ja. Naš QA kurs pruža ti baš sve što ti je potrebno da s puno znanja i samopouzdanja započneš karijeru testera softvera i budeš važan šraf u timu na bilo kom projektu.

VIše o samom kursu i procesu prijave možeš saznati na ovom linku.