fbpx

“Ovo je najnevjerojatnija primjena strojnog učenja koju sam ikada vidio.”

Mike Krieger, suosnivač Instagrama.

 

Riječi Mikea Kriegera nisu hiperbola. Iako je ML sposoban za neke izvanredne stvari u smislu analize podataka i uvida, GitHub Copilot je totalni izmjenjivač igara zbog potencijalne korisnosti koju može pružiti programerima proizvoda širom svijeta.

Kopiloti kodiranja i generativna umjetna inteligencija pomažu timovima da otključaju ogromne prednosti, poput ubrzavanja životnog ciklusa razvoja softvera do sada nezamislivih brzina. Međutim, utjecaj tehnologije na RPA i testiranje softvera dvije su najuzbudljivije granice ove nevjerojatne tehnologije.

U ovom ćemo članku pogledati kako su kopiloti kodiranja i generativna umjetna inteligencija promijenili svjetove testiranja softvera i RPA u današnje vrijeme prije nego što istražimo njihov budući utjecaj na tehnologiju.

 

Kopiloti i generativna umjetna inteligencija u

razvoj softvera: Primer

Kopiloti i generativna umjetna inteligencija u razvoju softvera - Primer

Generativni kopiloti umjetne inteligencije i kodiranja relativni su pridošlice u okruženju razvoja softvera. Prije nego što razgovaramo o njihovom utjecaju na prostor, vrijedi pogledati njihove pozadine i kako rade.

 

Automatski koderi s 1.AI pogonom

 

Veliki jezični modeli (LLM) značajno su se poboljšali u posljednjih nekoliko godina. Kako su se veličina skupova podataka i računalna snaga eksponencijalno povećavali, kvaliteta izlaza je porasla.

Postoje mnoge vertikale koje mogu imati koristi od LLM-ova. Neki od najčešće napisanih uključuju generiranje teksta, slika, videozapisa i drugih oblika medija. Međutim, iako su ovi slučajevi upotrebe impresivni, postoje implikacije za programere koje su možda daleko zanimljivije.

Na tržištu postoji niz LLM autokodera. Međutim, GitHub CoPilot je možda najpoznatiji i najtrofejniji. Veliki dio razloga je taj što je obučen na repozitoriju GitHub. Ima pristup milijunima primjera otvorenog koda, najboljih praksi, arhitekture aplikacija i još mnogo toga iz čega može učiti, što mu omogućuje pružanje visokokvalitetnih i svestranih izlaza.

 

2. Kako funkcioniraju kopiloti kodiranja?

 

Jedan od najjednostavnijih načina za razgovor o tome kako funkcioniraju kopiloti kodiranja je gledanje vodećeg proizvoda u igri, GitHub CoPilot. Aplikacija se temelji na OpenAijevom modelu ChatGPT-3.

Baš kao i ChatGPT i slični LLM-ovi, CoPilot se temelji na milijardama parametara. Tijekom razvoja ChatGPT-3, OpenAI je počeo graditi namjenski program kodiranja pod nazivom OpenAI Codex. Microsoft je kupio ekskluzivan pristup proizvodu.

Međutim, ključna stvar ovdje je da je Microsoft već posjedovao GitHub. Ako ste koder, znat ćete sve o GitHubu. U osnovi, to je web platforma koja se koristi za kontrolu verzija i suradnju u projektima razvoja softvera. Obučili su OpenAI Codex u biblioteci GitHub koja je sadržavala milijune redaka javnog koda otvorenog koda.

CoPilot koristi strojno učenje kako bi pronašao obrasce i odnose između linija koda. Baš kao i ChatGPT, gleda riječ ili redak i izračunava vjerojatnost onoga što bi trebalo uslijediti na temelju ogromnog spremišta povijesnih podataka.

Snaga AI kopilota leži u njihovoj sposobnosti predlaganja isječaka koda dok programeri uređuju. Zamislite to kao samodovršetak punjenja za kodiranje. Kako koderi ulaze u redak koda, LLM uspoređuje početak tog koda sa svojom ogromnom bibliotekom prethodnih projekata. Odatle sugerira probabilističke linije i nove linije koda.

Očigledne prednosti ovdje su da programeri mogu uštedjeti nevjerojatnu količinu vremena kroz ovo automatsko dovršavanje. Povećava produktivnost i, u mnogim slučajevima, točnost koda.

 

3. Što je s generativnom umjetnom inteligencijom za kodiranje i razvoj?

 

Kao što možete vidjeti iz povijesti Kopilota, generativna umjetna inteligencija i kopiloti imaju slične korijene. Obje su tehnologije koje koriste statističku vjerojatnost za predviđanje onoga što korisnici trebaju na temelju imputiranih informacija.

Međutim, velika razlika između softvera za kopilotiranje i generativne umjetne inteligencije je u tome što se potonji brzo temelji. Ukratko, to znači da korisnici unose skup pisanih uputa stroju i on emitira sadržaj. Kao što svatko tko je koristio ChatGPT ili slične aplikacije zna, ovaj izlaz može doći u obliku teksta, slika, videozapisa ili koda.

Dakle, iako su metode koje koderi koriste za postizanje automatiziranog kodiranja različite, možemo ih staviti pod sličan kišobran automatiziranog ili generativnog kodiranja potpomognutog umjetnom inteligencijom.

 

Razvoj testiranja softvera

razvoj testiranja softvera

Testiranje softvera reagira i stalno se razvija. U razmaku od nekoliko desetljeća pomaknuo se i preobrazio kako bi ispunio nove zahtjeve i iskoristio napredak u tehnologiji.

 

1. Ručno testiranje:

Rani dani testiranja softvera uključivali su ručno testiranje. Ova vrsta testiranja bila je skupa i dugotrajna jer je zahtijevala od stručnjaka za QA da pregledaju softver s finim češljem za zube razvojem niza testnih slučajeva, pokretanjem i bilježenjem rezultata, zakazivanjem popravaka i ponavljanjem postupka.

Osiguravanje da su svi mogući scenariji i situacije obuhvaćeni tim testovima bio je velik izazov, a kada se doda vrijeme i troškovi, ručno testiranje bilo je resursno intenzivno. Također je bio vrlo osjetljiv na ljudsku pogrešku, koja je pojačana ograničenim mogućnostima distribucije, što je značilo da je bilo kakve neotkrivene greške bilo teško brzo krpati.

 

2. Skriptirano testiranje:

 

Skriptirano testiranje predstavljalo je ogroman korak naprijed za QA zajednicu. Umjesto ručnog pregledavanja kodnih i testnih scenarija, programeri su mogli pisati programe koji mogu automatski testirati softver. Velike plus strane ovdje su bile da je testiranje postalo učinkovitije i manje sklono ljudskoj pogrešci. Međutim, postizanje toga zahtijevalo je kvalificirano, precizno i vremenski intenzivno planiranje i kodiranje kako bi se osigurala sveobuhvatna pokrivenost.

 

3. Automatizacija ispitivanja:

 

Automatizacija testova bila je sljedeća evolucija testiranja. Alati poput ZAPTEST-a mogli su ponuditi koderima sve prednosti skriptiranog testiranja, ali sa sučeljem bez koda. Opet, značajne prednosti ovdje su bile ušteda vremena, testovi za višekratnu upotrebu i prilagodljivost, testiranje korisničkog sučelja i API-ja te testiranje na više platformi i na različitim uređajima.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

4. Ispitivanje na temelju podataka:

 

Testiranje temeljeno na podacima bilo je rješenje problema testiranja softvera koji je obrađivao različite skupove podataka. Opet, ovo je oblik automatizacije testova, ali ova metoda uključuje stvaranje testnih skripti i njihovo pokretanje protiv dodijeljenih skupova podataka. Ova vrsta testiranja omogućila je programerima brži rad, izoliranje testova i smanjenje vremena ponavljanja testnih slučajeva.

 

5. Generativno testiranje umjetne inteligencije:

 

Generativno testiranje umjetne inteligencije najnovija je inovacija u testiranju softvera. Korištenjem LLM-ova, QA timovi mogu stvoriti testne slučajeve i testirati podatke koji pomažu ubrzati proces testiranja. Ti su testni slučajevi vrlo fleksibilni i mogu se uređivati, što pomaže razvojnim programerima da ponovno koriste i prenamijene testove i uvelike povećaju opseg testiranja.

 

Današnja uporaba kopilota i

Generativna umjetna inteligencija u testiranju softvera i RPA-u

Današnja upotreba kopilota i generativne umjetne inteligencije u ispitivanju softvera i RPA-u

Generativna umjetna inteligencija i kopiloti imali su velik utjecaj na testiranje softvera. Međutim, umjesto izravne zamjene kodera, ovi su alati pomogli povećati testere. Ukratko, pomažu programerima da postanu brži i učinkovitiji i, u mnogim slučajevima, povećaju kvalitetu testiranja.

Anketa o razvojnim programerima za prelijevanje stoga iz 2023. godine

nudi neke uvide u trenutnu upotrebu AI alata unutar zajednice za razvoj softvera. Jedan od najzanimljivijih dijelova ankete sugerirao je da, iako je nešto više od polovice svih programera sugeriralo da su zainteresirani za AI alate za testiranje softvera, manje od 3% reklo je da vjeruje tim alatima. Štoviše, samo 1 od 4 sugerirao je da trenutno koriste AI alate za testiranje softvera.

Ono što je zanimljivo u ovim statistikama je da pokazuju da upotreba alata za umjetnu inteligenciju još nije raširena i da rani usvojitelji još uvijek mogu dobiti prednost.

 

1. Slučajevi upotrebe kopilota i generativne umjetne inteligencije u ispitivanju softvera i RPA-u

 

Kopiloti i generativna umjetna inteligencija utječu na svako područje razvoja softvera. Evo nekoliko načina na koje tehnologija može pomoći u testiranju softvera i RPA.

 

Analiza zahtjeva

Analiza zahtjeva ključni je dio životnog ciklusa razvoja softvera. Proces uključuje razumijevanje zahtjeva dionika i različitih značajki potrebnih za izradu softvera. Generativna umjetna inteligencija može pomoći timovima s idejama osmišljavanjem novih ideja i perspektiva.

 

Probno planiranje

Nakon što se zahtjevi za testiranje dobro razumiju, QA timovi moraju raščlaniti stvari u raspored kako bi osigurali odgovarajuću pokrivenost testom. Ova vrsta posla zahtijeva stručnost i iskustvo, ali generativna umjetna inteligencija može podržati timove kroz primjere i vodiče te dati preporuke određenih alata i najboljih praksi za njihove jedinstvene zahtjeve.

 

Testiranje stvaranja slučaja

QA timovi mogu koristiti LLM-ove za analizu koda, korisničkih zahtjeva i softverskih specifikacija kako bi razumjeli temeljne odnose iza sustava. Nakon što AI shvati ulaze i izlaze i očekivana ponašanja softvera, može početi graditi testne slučajeve koji će testirati softver.

Prednosti ovdje nadilaze uštedu vremena i ručno kodiranje. Stvaranje testnih slučajeva umjetne inteligencije također može dovesti do sveobuhvatnije pokrivenosti jer može istražiti područja koja QA inženjeri možda neće uzeti u obzir, što dovodi do pouzdanijih gradnji.

 

Pronalaženje i rješavanje grešaka

Strojno učenje omogućuje QA profesionalcima da značajno smanje vrijeme potrebno za pronalaženje i rješavanje grešaka. U testiranju softvera lako je pronaći mnoge greške. Međutim, u mnogim scenarijima to je naporan i dugotrajan proces. Generativna umjetna inteligencija može izvršiti provjere u djeliću vremena ručnih radnika i pomoći u isticanju čak i najtvrdokornijih grešaka. Štoviše, ovi AI alati također mogu riješiti greške koje identificiraju, štedeći beskrajno vrijeme za QA timove.

 

Testiranje korisničkog sučelja

Generativni alati umjetne inteligencije mogu simulirati niz ponašanja korisnika i interakcije sa softverskim sustavima. Metode mogu razvojnim timovima dati povjerenje da njihovo sučelje može podnijeti širok raspon korištenja ljudi i računala. Štoviše, generativna umjetna inteligencija također može analizirati podatke korisničkog sučelja i toplinske karte i dati prijedloge o tome kako poboljšati korisničko sučelje i učiniti ga jednostavnijim za upotrebu.

 

Budućnost kopilota i generativne umjetne inteligencije

u testiranju softvera i RPA-u

Budućnost kopilota i generativne umjetne inteligencije u ispitivanju softvera i RPA-u

Iako je današnja upotreba kopilota i generativne umjetne inteligencije u automatizaciji softvera već uzbudljiva, budućnost ima još više obećanja.

Budućnost kopilota i generativne umjetne inteligencije ovisi o poboljšanjima koja se mogu napraviti na proizvodima. Nedavna studija sa Sveučilišta Purdue, pod nazivom Tko bolje odgovara? Dubinska analiza odgovora chatGPT-a i preljeva stoga na pitanja o softverskom inženjeringu ističe neka od ograničenja generativnih modela umjetne inteligencije.

Istraživači su ChatGPT-u dali preko 500 pitanja iz Stack Overflowa. Alat za umjetnu inteligenciju odgovorio je više od polovice netočno. Sada je važno napomenuti da je jedno od najznačajnijih pitanja koje su istraživači primijetili bilo to što je umjetna inteligencija najčešće propadala jer nije dobro razumjela pitanja. Ovaj detalj naglašava važnost brzog inženjeringa unutar generativne umjetne inteligencije.

Osim toga, i Google i Amazon ove su godine proveli neovisne testove kako bi pogledali kvalitetu generativnih alata umjetne inteligencije u postavljanju pitanja za intervju. U oba slučaja alat je uspio odgovoriti na testna pitanja dovoljno dobro da dobije poziciju, kako je izvijestio
CNBC
i
Business Inside
.

Dakle, jasno je da smo na točki u ovoj tehnologiji gdje potencijal postoji, ali neke manje stvari treba izgladiti. Razmjer u kojem su se ti alati poboljšali posljednjih godina daje nam povjerenje da će doći na potrebnu razinu i vjerojatno prije roka.

Sada možemo pogledati neka područja u kojima će ove tehnologije utjecati na budućnost testiranja razvoja softvera.

 

1. Hiperautomatizacija

 

Hiperautomatizacija opisuje odredište u evoluciji poduzeća gdje će svaki proces koji se može automatizirati biti automatiziran. To je holistički pristup produktivnosti koji je vrlo međusobno povezan.

Što se tiče razvoja softvera, nije teško zamisliti centralizirani sustav s nadzorom zahtjeva poslovnih procesa. Sustav će razumjeti i identificirati potrebe i učinkovitosti te stalno identificirati područja koja treba poboljšati tehnologijom.

Kako se tvrtke razvijaju, ovi centralizirani sustavi koristit će generativnu umjetnu inteligenciju za izradu aplikacija koje će automatski riješiti uska grla i neučinkovitost ili možda gurnuti određene poslove inženjerima da završe.

 

2. Projektiranje softverskih arhitektura

 

Uz dovoljno podataka, alati umjetne inteligencije mogli bi razumjeti najbolje prakse softverske arhitekture i pronaći načine za poboljšanje tih dizajna za maksimalnu učinkovitost. Strojno učenje odnosi se na pronalaženje obrazaca i odnosa koji su izvan dosega ljudskog uma.

Ako alati umjetne inteligencije imaju dovoljno znanja o raznim aplikacijama, možemo ih uputiti da savijaju prethodne arhitekture prema novim zahtjevima, što dovodi do učinkovitijih gradnji ili čak ideja koje se inače ne bi razmatrale.

 

3. Modernizacija naslijeđenih sustava

 

Iako nijedan softver nikada nije savršen, postoje mnogi alati koji još uvijek izvrsno rade i toliko su duboko ugrađeni u infrastrukturu tvrtke da ih je teško zamijeniti. Prilagodba ovih sustava može biti posao, pogotovo ako su napisani pomoću softverskog koda koji je ispao iz mode.

U budućnosti će generativni alati umjetne inteligencije moći pretvoriti ovaj kôd u jezik du jour, omogućujući timovima da zadrže svoje naslijeđene sustave i, u mnogim slučajevima, poboljšaju ih.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

 

4. Poboljšanje razvoja niskog koda i bez koda

 

Jedan od izazova automatizacijskog testiranja softvera putem generativnih AI alata koje smo gore identificirali bila je situacija u kojoj koder nije imao znanja i iskustva za provjeru izlaza.

Kopiloti umjetne inteligencije pomoći će u povećanju alata s niskim kodom davanjem boljih prijedloga koji dovode do robusnih primjena. Sofisticirani alati za testiranje omogućit će ljudskim operaterima slobodnu kreativnu vladavinu, a istovremeno će stalno potvrđivati svoj rad i otvarati vrata netehničkim stručnjacima za izgradnju aplikacija koje su im potrebne.

 

Prednosti generativne umjetne inteligencije u testiranju softvera

Promptni inženjering u automatizaciji softverskih testova i RPA (robotska automatizacija procesa)

Korištenje generativne umjetne inteligencije za testiranje softvera ima mnoge prednosti koje ga čine atraktivnom opcijom za razvojne timove koji žele raditi brže, ali bez ugrožavanja kvalitete.

 

1. Ubrzavanje životnog ciklusa razvoja softvera

 

Programeri su pod stalnim pritiskom da rade dugo kako bi osigurali da softver i nove značajke pravovremeno dođu na tržište. Iako su metodologije Agile/DevOps osigurale da je razvoj učinkovitiji, još uvijek postoje pojedinačne faze razvoja koje mogu imati koristi od daljnjeg racionalizacije.

Generativni alati umjetne inteligencije omogućuju timovima za testiranje da se uhvate u koštac s različitim fazama SDLC-a, od generiranja prototipova do testiranja korisničkog sučelja.

 

2. Sveobuhvatno otkrivanje grešaka

 

Jedna od najmoćnijih primjena umjetne inteligencije u testiranju softvera dolazi iz sposobnosti tehnologije da uspoređuje velike skupove podataka. ML alati mogu analizirati ogromne skupove podataka (uključujući kod) kako bi izgradili spremište informacija i očekivanih modela.

Kada devs počine kôd, mogu ga usporediti s tim modelima, što može istaknuti neočekivane scenarije, ovisnosti i ranjivosti, omogućujući bolji kôd tijekom cijelog razvojnog procesa.

 

3. Poboljšana pokrivenost testom

 

Alati za strojno učenje izrađeni su za analizu i razumijevanje ogromnih skupova podataka. Kada se primjenjuje na testiranje softvera, omogućuje timovima da povećaju opseg testiranja softvera. Koristi su izvan samo uklanjanja ljudskog rada iz jednadžbe kako bi se uštedio novac; Umjetna inteligencija također dovodi do daleko sveobuhvatnije vrste testiranja koja omogućuje poboljšano otkrivanje grešaka u složenom skupu scenarija.

 

4. Smanjeni troškovi

 

U usporedbi s zapošljavanjem tima QA inženjera i njihovim korištenjem za ponavljajuće i dugotrajne zadatke testiranja softvera, Generativna umjetna inteligencija i RPA brže su i isplativije.

Kako svijet razvoja softvera postaje sve konkurentniji, pronalaženje načina za isporuku kvalitetnih, trajnih proizvoda u proračunu povećava važnost. Generativni alati i kopiloti umjetne inteligencije mogu smanjiti oslanjanje na inženjere i omogućiti im obavljanje radova temeljenih na vrijednosti i dovesti do manje napuhanih gradnji.

 

Pišu li generativni alati umjetne inteligencije kraj

inženjera ljudskog softvera?

Znače li generativni alati umjetne inteligencije kraj inženjera ljudskog softvera?

Unatoč njihovim očitim prednostima, bilo koji alat za automatizaciju može uzrokovati radnicima razinu tjeskobe zbog njihove budućnosti. Iako je ovo normalna reakcija, brzina i opseg generativne umjetne inteligencije znače da su zabrinutosti opsežnije nego inače. Iako ovi alati mogu automatizirati mnoge poslove, ne mogu obavljati svaki zadatak koji rade softverski inženjeri. Razumijevanje mogućnosti tehnologije, kao i njihovih ograničenja, ključno je za inženjere i vođe.

Prvo što ljudi trebaju zapamtiti je da alati za automatizaciju testova koje pokreće umjetna inteligencija postoje na tržištu već neko vrijeme. Međutim, user-friendly priroda generativne umjetne inteligencije čini ga sposobnim za daljnju fleksibilnost.

Jedna od prvih stvari koje moramo uzeti u obzir je da generativna umjetna inteligencija najbolje funkcionira za izlaze koji se mogu provjeriti. Ovo je ključna točka. Priroda načina na koji su LLM-ovi obučeni znači da će dati sve od sebe da vam daju odgovor, čak i ako to povremeno znači “haluciniranje” činjenica, referenci i argumenata.

Sada, ako imate dovoljno znanja o kodiranju, moći ćete pročitati i potvrditi bilo koji tekst koji generirajuća umjetna inteligencija emitira i uhvatiti potencijalne pogreške. Ako ste građanski koder koji koristi generativnu umjetnu inteligenciju umjesto mogućnosti kodiranja, nećete biti toliko sposobni uhvatiti ove pogreške.

Dakle, kada se gleda iz ove perspektive, kvalificirani inženjeri i dalje će biti kritični dio ekosustava razvoja softvera. I dalje će morati testirati u nadzornom i praktičnom smislu.

Drugo ograničenje generativne umjetne inteligencije za testiranje softvera uključuje mobilno testiranje. Na primjer, ChatGPT je dobra opcija za testiranje korisničkih sučelja web stranice. Međutim, nema pristup različitim mobilnim uređajima. S toliko različitih slušalica i modela na tržištu, zaostaje za trenutnim softverom za automatizaciju testova poput ZAPTEST-a. Ni ovaj problem nije manja prepreka. Više od
Polovica cjelokupnog korištenja interneta dolazi s mobitela
, a taj se broj svake godine povećava.

Dakle, iako će Generativna umjetna inteligencija preuzeti mnoge dužnosti od programera, neće učiniti ove stručnjake zastarjelima bez velikih promjena u ispitnoj infrastrukturi i mogućnosti provjere izlaza.

 

Završne misli

 

Testiranje softvera i RPA na stalnom su putu poboljšanja. Kako se pojavljuju nove tehnologije i metode, obje discipline apsorbiraju najbolje prakse kako bi pomogle QA timovima da isporuče brže i sveobuhvatnije testiranje uz djelić cijene ručnog testiranja.

Iako su poboljšanje opsega testova i smanjenje ljudskih pogrešaka i troškova neke od očitijih prednosti testiranja temeljenog na umjetnoj inteligenciji, također pomaže timovima da usvoje pristup kontinuirane integracije i uvođenja cjevovoda (CI/CD).

S očekivanjima potrošača i konkurencijom većom nego ikad, Generativna umjetna inteligencija nudi timovima način pružanja brzih i učinkovitih testova bez ugrožavanja kvalitete.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo