fbpx

“Det er den mest utrolige anvendelse af maskinlæring, jeg nogensinde har set.”

Mike Krieger, medstifter af Instagram.

 

Mike Kriegers ord er ikke en overdrivelse. Mens ML er i stand til nogle bemærkelsesværdige ting med hensyn til dataanalyse og indsigt, er GitHub Copilot en total game-changer på grund af den potentielle nytteværdi, det kan give produktudviklere over hele verden.

Coding copilots og Generative AI hjælper teams med at opnå enorme fordele, såsom at accelerere softwareudviklingens livscyklus til hidtil uanede hastigheder. Men teknologiens indvirkning på RPA og softwaretestning er to af de mest spændende områder inden for denne fantastiske teknologi.

I denne artikel ser vi på, hvordan kodning af copiloter og generativ AI har ændret verdenerne inden for softwaretestning og RPA i dag, før vi udforsker deres fremtidige indvirkning på teknologien.

 

Copiloter og generativ AI i

softwareudvikling: En grundbog

Copiloter og generativ AI i softwareudvikling - en grundbog

Generativ AI og kodende copiloter er relativt nye i softwareudviklingslandskabet. Før vi diskuterer deres indflydelse på rummet, er det værd at se på deres baggrunde, og hvordan de arbejder.

 

1. AI-drevne auto-kodere

 

Store sprogmodeller (LLM) er blevet markant bedre i løbet af de sidste par år. I takt med at størrelsen på datasættene og regnekraften er steget eksponentielt, er kvaliteten af outputtet steget.

Der er mange brancher, der kan drage fordel af LLM’er. Nogle af de mest omtalte er generering af tekst, billeder, videoer og andre former for medier. Men selvom disse use cases er imponerende, er der konsekvenser for udviklere, som måske er langt mere interessante.

Der findes en række LLM autocodere på markedet. Men GitHub CoPilot er måske den mest kendte og mest gennemførte. En stor del af årsagen er, at den er trænet på GitHub-repositoriet. Den har adgang til millioner af eksempler på open source-kode, best practices, applikationsarkitektur og meget mere, som den kan lære af, hvilket gør det muligt at levere alsidige resultater af høj kvalitet.

 

2. Hvordan fungerer kodning af copiloter?

 

En af de nemmeste måder at tale om, hvordan kodning med copiloter fungerer, er ved at se på det førende produkt i spillet, GitHub CoPilot. Applikationen er baseret på OpenAi’s ChatGPT-3-model.

Ligesom ChatGPT og lignende LLM’er er CoPilot baseret på milliarder af parametre. Under udviklingen af ChatGPT-3 begyndte OpenAI at opbygge et dedikeret kodningsprogram kaldet OpenAI Codex. Microsoft købte eksklusiv adgang til produktet.

Men det vigtigste her er, at Microsoft allerede ejede GitHub. Hvis du er programmør, kender du alt til GitHub. Dybest set er det en webbaseret platform, der bruges til versionsstyring og samarbejde i softwareudviklingsprojekter. De trænede OpenAI Codex på GitHub-biblioteket, der indeholdt millioner af linjer af open source, offentlig kode.

CoPilot bruger Machine Learning til at finde mønstre og relationer mellem kodelinjer. Ligesom ChatGPT ser den på et ord eller en linje og beregner sandsynligheden for, hvad der skal komme bagefter, baseret på et stort lager af historiske data.

Styrken ved AI copilots ligger i deres evne til at foreslå kodestykker, mens udviklere redigerer. Tænk på det som en supercharged autocomplete til kodning. Når koderne indtaster en kodelinje, sammenligner LLM starten af koden med sit enorme bibliotek af tidligere projekter. Derfra foreslår den probabilistiske linjer og nye kodelinjer.

De åbenlyse fordele her er, at udviklere kan spare utroligt meget tid gennem denne autofuldførelse. Det øger produktiviteten og, i mange tilfælde, kodens nøjagtighed.

 

3. Hvad med generativ AI til kodning og udvikling?

 

Som du kan se af CoPilots historie, har generativ AI og copiloter lignende rødder. De er begge teknologier, der bruger statistisk sandsynlighed til at forudsige, hvad brugerne har brug for, baseret på imputerede oplysninger.

Men den store forskel mellem copiloting-software og generativ AI er, at sidstnævnte er prompt-baseret. Kort sagt betyder det, at brugerne indtaster et sæt skriftlige instruktioner til maskinen, og den udsender indhold. Som alle, der har brugt ChatGPT eller lignende applikationer, ved, kan dette output komme i form af tekst, billeder, video eller kode.

Så selvom de metoder, som koderne bruger til at nå frem til automatiseret kodning, er forskellige, kan vi placere dem under en lignende paraply af AI-assisteret automatiseret eller generativ kodning.

 

Udviklingen inden for softwaretest

Udviklingen inden for softwaretest

Softwaretest er responsivt og udvikler sig hele tiden. I løbet af et par årtier har den ændret sig for at imødekomme nye krav og udnytte de teknologiske fremskridt.

 

1. Manuel testning:

I de tidlige dage af softwaretestning var der tale om manuel testning. Denne form for test var dyr og tidskrævende, fordi den krævede, at QA-eksperter gennemgik softwaren med en tættekam ved at udvikle en række testcases, køre og registrere resultaterne, planlægge rettelser og gentage processen.

Det var en stor udfordring at sikre, at alle mulige scenarier og situationer blev dækket af disse tests, og sammenholdt med den tid og de omkostninger, der var involveret, var manuel test meget ressourcekrævende. Det var også meget modtageligt for menneskelige fejl, hvilket blev forstærket af begrænsede distributionsmuligheder, som betød, at eventuelle uopdagede fejl var udfordrende at rette hurtigt.

 

2. Skriptet testning:

 

Scripted testing var et stort skridt fremad for QA-fællesskabet. I stedet for at gennemgå kode og testscenarier manuelt, kunne udviklere skrive programmer, der kunne teste software automatisk. De store fordele ved dette var, at testningen blev mere effektiv og mindre udsat for menneskelige fejl. Men det krævede dygtig, præcis og tidskrævende planlægning og kodning for at sikre omfattende dækning.

 

3. Automatisering af test:

 

Testautomatisering var den næste udvikling inden for test. Værktøjer som ZAPTEST kunne tilbyde koderne alle fordelene ved scripted testing, men med et interface uden kode. Igen var de største fordele tidsbesparelser, genanvendelige og tilpasningsdygtige tests, test af brugergrænseflader og API’er samt test på tværs af platforme og enheder.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

4. Datadrevet testning:

 

Datadrevet test var løsningen på problemet med at teste software, der behandlede forskellige datasæt. Igen er dette en form for testautomatisering, men denne metode indebærer, at man opretter testscripts og kører dem mod tildelte datasæt. Denne type test gjorde det muligt for udviklerne at arbejde hurtigere, isolere tests og reducere den tid, der går med at gentage testcases.

 

5. Generativ AI-testning:

 

Generativ AI-test er den nyeste innovation inden for softwaretest. Ved at bruge LLM’er kan QA-teams oprette testcases og testdata, der hjælper med at fremskynde testprocessen. Disse testcases er meget fleksible og redigerbare, hvilket hjælper udviklere med at genbruge og genanvende tests og øge testomfanget betydeligt.

 

Nutidens brug af copiloter og

Generativ AI i softwaretest og RPA

Nutidig brug af copiloter og generativ AI i softwaretest og RPA

Generativ AI og copiloter har haft stor indflydelse på softwaretest. Men i stedet for direkte at erstatte koderne har disse værktøjer bidraget til at øge antallet af testere. Kort sagt hjælper de udviklerne med at blive hurtigere og mere effektive, og i mange tilfælde øger de kvaliteten af testene.

Den
Stack Overflow-udviklerundersøgelse fra 2023
giver et indblik i den aktuelle brug af AI-værktøjer inden for softwareudvikling. En af de mest interessante dele af undersøgelsen viste, at mens lidt mere end halvdelen af alle udviklere sagde, at de var interesserede i AI-værktøjer til softwaretest, sagde mindre end 3%, at de stolede på disse værktøjer. Desuden var det kun 1 ud af 4, der antydede, at de i øjeblikket brugte AI-værktøjer til softwaretest.

Det interessante ved disse statistikker er, at de viser, at brugen af AI-værktøjer endnu ikke er udbredt, og at de, der er tidligt ude, stadig kan få en fordel.

 

1. Copilot og Generative AI use cases i softwaretest og RPA

 

Copiloter og generativ AI påvirker alle områder af softwareudvikling. Her er et par af de måder, hvorpå teknologien kan hjælpe med softwaretest og RPA.

 

Analyse af krav

Behovsanalyse er en vigtig del af softwareudviklingens livscyklus. Processen indebærer at forstå interessenternes krav og de forskellige funktioner, der kræves for at bygge et stykke software. Generativ AI kan hjælpe teams med idéudvikling ved at komme med nye idéer og perspektiver.

 

Testplanlægning

Når testkravene er godt forstået, skal QA-teams bryde tingene ned i en tidsplan for at sikre tilstrækkelig testdækning. Denne type arbejde kræver ekspertise og erfaring, men Generative AI kan støtte teams gennem eksempler og vejledninger samt komme med anbefalinger af særlige værktøjer og bedste praksis til deres unikke krav.

 

Oprettelse af testcases

QA-teams kan bruge LLM’er til at analysere kode, brugerkrav og softwarespecifikationer for at forstå de underliggende forhold bag systemet. Når AI’en har forstået softwarens input og output og forventede adfærd, kan den begynde at bygge testcases, der tester softwaren.

Fordelene her går ud over at spare tid og manuel kodning. Oprettelse af AI-testcases kan også føre til mere omfattende dækning, fordi det kan udforske områder, som QA-ingeniører måske ikke overvejer, hvilket fører til mere pålidelige builds.

 

At finde og løse fejl

Machine learning gør det muligt for QA-professionelle at reducere den tid, det tager at finde og løse fejl, betydeligt. I softwaretest er mange fejl nemme at finde. Men i mange scenarier er det en besværlig og tidskrævende proces. Generativ AI kan udføre kontroller på en brøkdel af den tid, manuelle medarbejdere bruger, og hjælpe med at finde selv de mest genstridige fejl. Desuden kan disse AI-værktøjer også løse de fejl, de identificerer, hvilket sparer uendelig tid for QA-teams.

 

Test af brugergrænseflade

Generative AI-værktøjer kan simulere en række brugeradfærd og interaktioner med softwaresystemer. Metoderne kan give udviklingsteams tillid til, at deres interface kan håndtere en bred vifte af menneske-computer-anvendelser. Derudover kan Generative AI også analysere brugergrænsefladedata og heatmaps og komme med forslag til, hvordan man kan forbedre brugergrænsefladen og gøre den mere brugervenlig.

 

Fremtiden for copiloter og generativ AI

i softwaretest og RPA

Fremtiden for copiloter og generativ AI i softwaretest og RPA

Mens den nuværende brug af copiloter og generativ AI i softwareautomatisering allerede er spændende, er fremtiden endnu mere lovende.

Fremtiden for copilot og generativ AI afhænger af de forbedringer, der kan foretages i produkterne. En nylig undersøgelse fra Purdue University, med titlen Hvem svarer bedst på det? En dybdegående analyse af ChatGPT og Stack Overflow-svar på spørgsmål om softwareudvikling understreger nogle af begrænsningerne ved generative AI-modeller.

Forskerne gav ChatGPT over 500 spørgsmål fra Stack Overflow. AI-værktøjet svarede upræcist på mere end halvdelen af spørgsmålene. Nu er det vigtigt at bemærke, at et af de mest betydningsfulde problemer, forskerne bemærkede, var, at AI’en oftest fejlede, fordi den ikke forstod spørgsmålene ordentligt. Denne detalje understreger vigtigheden af prompt engineering inden for generativ AI.

Derudover har både Google og Amazon kørt uafhængige tests i år for at se på kvaliteten af generative AI-værktøjer i forbindelse med interviewspørgsmål. I begge tilfælde lykkedes det værktøjet at besvare testspørgsmålene godt nok til at få stillingen, som rapporteret af
CNBC
og
Business Inside
henholdsvis.

Så det er klart, at vi er nået til et punkt i denne teknologi, hvor potentialet er der, men hvor der er nogle mindre ting, der skal udbedres. Det omfang, hvori disse værktøjer er blevet forbedret i de senere år, giver os tillid til, at det vil nå det krævede niveau og sandsynligvis før tid.

Nu kan vi tage et kig på nogle af de områder, hvor disse teknologier vil påvirke fremtidens test af softwareudvikling.

 

1. Hyperautomatisering

 

Hyperautomation beskriver en destination i virksomhedens udvikling, hvor alle processer, der kan automatiseres, vil blive automatiseret. Det er en holistisk tilgang til produktivitet, som i høj grad er forbundet med hinanden.

Når det gælder softwareudvikling, er det ikke svært at forestille sig et centraliseret system med overblik over kravene til forretningsprocesser. Systemet vil forstå og identificere behov og effektiviseringer og konstant identificere områder, der skal forbedres via teknologi.

Efterhånden som virksomhederne udvikler sig, vil disse centraliserede systemer bruge generativ AI til at bygge applikationer, der automatisk løser flaskehalse og ineffektivitet eller måske skubber bestemte opgaver til ingeniører, der skal udføre dem.

 

2. Design af softwarearkitekturer

 

Med tilstrækkelige data kan AI-værktøjer forstå bedste praksis inden for softwarearkitektur og finde måder at forbedre disse designs på for at opnå maksimal effektivitet. Maskinlæring handler om at finde mønstre og relationer, der ligger uden for det menneskelige sinds rækkevidde.

Hvis AI-værktøjer har tilstrækkelig viden om en række applikationer, kan vi instruere dem i at bøje tidligere arkitekturer mod nye krav, hvilket fører til mere effektive konstruktioner eller endda ideer, der ellers ikke ville blive overvejet.

 

3. Modernisering af ældre systemer

 

Selvom ingen software nogensinde er perfekt, er der mange værktøjer, der stadig gør et fremragende stykke arbejde og er så dybt indlejret i en virksomheds infrastruktur, at de er svære at erstatte. Det kan være en stor opgave at tilpasse disse systemer, især hvis de er skrevet med softwarekode, der er gået af mode.

I fremtiden vil generative AI-værktøjer være i stand til at konvertere denne kode til dagens sprog, så teams kan beholde deres gamle systemer og i mange tilfælde forbedre dem.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

 

4. Forbedring af low-code og no-code udvikling

 

En af udfordringerne ved automatisering af softwaretest via generative AI-værktøjer, som vi identificerede ovenfor, var en situation, hvor koderen manglede viden og erfaring til at verificere outputtet.

AI-copiloter vil hjælpe med at udvide low-code-værktøjer ved at komme med bedre forslag, der fører til robuste applikationer. Sofistikerede testværktøjer vil give menneskelige operatører frie kreative tøjler, mens de konstant validerer deres arbejde og åbner døren for ikke-tekniske fagfolk til at bygge de applikationer, de har brug for.

 

Fordele ved generativ AI i softwaretest

hurtig udvikling inden for automatisering af softwaretest og rpa (robotic process automation)

At bruge generativ AI til softwaretest har mange fordele, der gør det til en attraktiv mulighed for udviklingsteams, der ønsker at arbejde hurtigere, men uden at gå på kompromis med kvaliteten.

 

1. Hurtigere livscyklus for softwareudvikling

 

Udviklere er under konstant pres for at arbejde mange timer for at sikre, at software og nye funktioner kommer på markedet i rette tid. Mens Agile/DevOps-metoder har sikret, at udviklingen er mere effektiv, er der stadig individuelle udviklingsfaser, der kan drage fordel af yderligere strømlining.

Generative AI-værktøjer giver testteams mulighed for at tackle forskellige SDLC-stadier, fra generering af prototyper til UI-test.

 

2. Omfattende registrering af fejl

 

En af de mest kraftfulde anvendelser af AI i softwaretest kommer fra teknologiens evne til at sammenligne store datasæt. ML-værktøjer kan analysere store datasæt (inklusive kode) for at opbygge et lager af information og forventede modeller.

Når udviklere committer kode, kan de sammenligne den med disse modeller, som kan fremhæve uventede scenarier, afhængigheder og sårbarheder, hvilket giver mulighed for bedre kode gennem hele udviklingsprocessen.

 

3. Forbedret testdækning

 

Machine learning-værktøjer er bygget til at analysere og forstå store mængder data. Når det anvendes til softwaretest, giver det teams mulighed for at øge omfanget af deres softwaretest. Fordelene er mere end blot at fjerne menneskelig arbejdskraft fra ligningen for at spare penge; AI fører også til en langt mere omfattende type test, der giver mulighed for forbedret fejlfinding på tværs af et komplekst sæt af scenarier.

 

4. Reducerede omkostninger

 

Sammenlignet med at ansætte et team af QA-ingeniører og bruge dem til gentagne og tidskrævende softwaretestopgaver, er generativ AI og RPA hurtigere og mere omkostningseffektivt.

Efterhånden som softwareudviklingsverdenen bliver mere konkurrencepræget, bliver det vigtigere at finde måder at levere holdbare kvalitetsprodukter på inden for budgettet. Generative AI-værktøjer og copilots kan reducere afhængigheden af ingeniører og give dem mulighed for at udføre værdidrevet arbejde og føre til mindre oppustede builds.

 

Betyder generative AI-værktøjer enden

af menneskelige softwareingeniører?

Betyder generative AI-værktøjer enden for menneskelige softwareingeniører?

På trods af de åbenlyse fordele kan ethvert automatiseringsværktøj gøre medarbejderne bekymrede for deres fremtid. Selvom det er en normal reaktion, betyder hastigheden og omfanget af generativ AI, at bekymringerne er mere omfattende end normalt. Selvom disse værktøjer har kapacitet til at automatisere mange jobs, kan de ikke udføre alle de opgaver, som softwareingeniører udfører. Det er vigtigt for ingeniører og ledere at forstå teknologiens muligheder såvel som dens begrænsninger.

Det første, folk skal huske, er, at testautomatiseringsværktøjer drevet af AI har eksisteret på markedet i et godt stykke tid. Den generative AI’s brugervenlighed gør den dog i stand til yderligere fleksibilitet.

En af de første ting, vi skal overveje, er, at generativ AI fungerer bedst til output, der kan verificeres. Det er en vigtig pointe. Det ligger i uddannelsen af LLM’er, at de vil gøre deres bedste for at give dig et svar, selv om det af og til betyder, at de “hallucinerer” over fakta, referencer og argumenter.

Hvis du har tilstrækkelig viden om kodning, kan du nu læse og verificere enhver tekst, som Generative AI udsender, og fange potentielle fejl. Hvis du er en borgerkoder, der bruger generativ AI i stedet for at kunne kode, vil du ikke være i stand til at fange disse fejl.

Så set fra dette perspektiv vil dygtige ingeniører stadig være en vigtig del af økosystemet for softwareudvikling. De vil stadig være forpligtet til at teste i både tilsynsmæssig og praktisk forstand.

En anden begrænsning ved generativ AI til softwaretest involverer mobiltest. For eksempel er ChatGPT en god mulighed for at teste hjemmesiders brugergrænseflader. Den har dog ikke adgang til forskellige mobile enheder. Med så mange forskellige telefoner og modeller på markedet kommer det bagud i forhold til nuværende testautomatiseringssoftware som ZAPTEST. Dette problem er heller ikke nogen lille forhindring. Mere end
halvdelen af al internetbrug kommer fra mobilen
og det tal stiger hvert år.

Så selvom generativ AI vil tage mange opgaver fra udviklere, vil det ikke gøre disse fagfolk overflødige uden store ændringer i testinfrastruktur og evnen til at verificere output.

 

Afsluttende tanker

 

Softwaretestning og RPA bliver konstant forbedret. Efterhånden som ny teknologi og nye metoder opstår, absorberer begge discipliner de bedste metoder til at hjælpe QA-teams med at levere hurtigere og mere omfattende test til en brøkdel af prisen for manuel test.

Mens forbedring af testomfanget og reduktion af menneskelige fejl og omkostninger er nogle af de mere åbenlyse fordele ved AI-drevet testning, hjælper det også teams med at anvende en kontinuerlig integrations- og implementeringsrørledning (CI/CD) tilgang.

Med forbrugernes forventninger og konkurrencen højere end nogensinde tilbyder Generative AI teams en måde at levere hurtige og effektive tests på uden at gå på kompromis med kvaliteten.

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