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.
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.
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.

