Get your 6-month No-Cost Opt-Out offer for Unlimited Software Automation?

ChatGPT, Bard och andra framstående stora språkmodeller (LLM) har dominerat våra nyhetsflöden under det senaste året. Och det med rätta. Dessa spännande tekniker ger oss en glimt av AI:s framtid, kraft och möjligheter.

Även om mycket av den allmänna entusiasmen har handlat om att skapa text, bilder och video, kan dessa verktyg användas för många andra discipliner, till exempel automatisering av programvara.

Den här artikeln kommer att fungera som en djupdykning i hur prompt engineering kan hjälpa oss med mjukvaruautomation. Det första vi bör göra är dock att granska själva snabbtekniken.

 

Vad är prompt engineering?

 

Stora språkmodeller som ChatGPT producerar utdata baserat på de uppmaningar eller meningar som vi ger dem. Resultaten varierar dock kraftigt beroende på vilka ord eller instruktioner vi använder. När vi matar in vaga och oprecisa instruktioner är det inte säkert att resultatet blir det önskade.

Prompt engineering innebär en genomtänkt utformning av indata som hjälper till att få fram mer exakt, korrekt och i slutändan användbart innehåll från dessa spännande AI-system.

LLM-system (Large Language Model) använder naturlig språkbehandling (NLP) för att tolka de uttalanden vi ger dem. Maskinerna omvandlar dessa frågor eller instruktioner (dvs. uppmaningar) till kod och kör dem genom sina enorma datalager för att producera innehåll i det format vi anger (dvs. text, bilder, kod).

ChatGPT tränades på över
570 GB data
. Utbildningsmaterialet består av böcker, artiklar, webbtexter och så vidare. Med andra ord innehåller dessa datamängder en ofattbar mängd kunskap.

Vi kanske förstår processen, men mycket av det som händer under huven på dessa system sker utom vår synhåll. Visst, vi kontrollerar in- och utdata och vi utbildar systemet, men exakt hur dessa algoritmer fungerar och fattar besluten är fortfarande något av ett mysterium. Det säger Sam Bowman, professor i AI vid New York University, “Vi har byggt den, vi har tränat den, men vi vet inte vad den gör.”

Snabb teknik hjälper oss att hantera kaoset genom att använda produkter som ger förutsägbara och användbara resultat. De erbjuder oss en väg till att låsa upp de enorma mängder kunskap som finns i dessa applikationer.
Denna disciplin håller på att utvecklas till en ny karriär
, med kurser som dyker upp överallt när företagen funderar på hur de kan utnyttja denna kraftfulla teknik.

Hur kan prompt engineering hjälpa till

med automatisering av programvara?

använda chatcpg för olika automatiserings- och rpa-uppgifter

Programvaruautomation och LLM-utbildning har mycket gemensamt. Båda ger en glimt av en framtid där maskiner kommer att förstärka den mänskliga kreativiteten för att skapa snabbare och mer produktiva arbetsplatser.

Det finns flera spännande områden där båda dessa tekniker kan konvergera. Här är tre sätt som vi kan använda prompt engineering för automatisering av programvara.

 

#1. Generering av kod

generera kod med prompt engineering i testautomatisering

Att skriva kod är ett av de mest lovande användningsområdena för stora språkmodeller. AI LLM är i sin linda. Under de närmaste åren kommer denna teknik att förbättras i takt med att mer resurser läggs på både databehandling och utbildning.

På lång sikt kan dessa framsteg leda till att AI skriver hela program med begränsad eller ingen mänsklig inblandning. För närvarande har dock LLM vissa begränsningar. Kvaliteten på resultatet av LLM-kodning beror huvudsakligen på kvaliteten på indata. Skräp in, skräp ut, som man säger.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Naturligtvis är det inte bara effektiv prompt engineering som fungerar som en vägspärr. Såsom föreslås i ChatGPT och stora språkmodeller i den akademiska världen: Möjligheter och utmaningar (Meyer, 2023), “För närvarande är det mer sannolikt att ChatGPT är framgångsrikt när det gäller att skriva mindre kodblock, medan dess tillförlitlighet när det gäller att skriva större/mer komplexa program (t.ex. ett programvarupaket) är tveksam.”

I en nyligen publicerad artikel i tidskriften Nature varnade dessutom några datavetare för att vi bör närma oss kodgenerering med LLM med viss försiktighet. Ett annat modernt papper,
Stora språkmodeller och enkla, dumma buggar
(Jesse, 2023), visade hur en populär LLM, Codex, som används av leverantören Copilot, producerar “kända, verbatim SStuBs så mycket som 2x så sannolikt än kända, verbatim korrekt kod”.

Även om dessa problem inte kan ignoreras finns det fortfarande en hel del berättigad entusiasm över hur dessa program kan bidra till att demokratisera programvaruutvecklingen genom att stödja både tekniska och icke-tekniska team.

Det kanske mest imponerande att tänka på är att verktyg som ChatGPT kan producera funktionell kod mycket snabbt. Med rätt prompt kan ingenjörerna minska den tid det tar att programmera vissa typer av kod, vilket ger en snabbare livscykel för mjukvaruutveckling.

I slutet av 2022 förbjöd den populära programmeringshubben
Stack Overflow förbjudit AI-genererade
svar på sitt forum. De hänvisade till den höga felfrekvensen och de felaktigheter som är förknippade med applikationen. Tekniken är dock i sin linda, och dessutom beror missnöjet med AI-genererad produktion lika mycket på bristfälliga tekniska lösningar som på själva tekniken.

Trots betänkligheterna kring tekniken har en
nyligen en artikel av McKinsey
belyser den inverkan som prompt engineering redan har i programmeringsvärlden. Konsultföretagets Tillståndet för AI år 2023: Generativ AI:s genombrottsår delade två intressanta trender. För det första anställer 7% av de organisationer som har investerat i AI snabbingenjörer. För det andra har företag som använder AI minskat antalet AI-relaterade roller inom mjukvaruutveckling från 38% till 28%.

Ett sätt att tolka dessa trender är att företagen är bekväma med detta upplägg och redo att lämna över programvaruautomatiseringen till sina maskiner. Även om dessa siffror kan skrämma befintliga ingenjörer, visar McKinsey-undersökningen att “endast 8 procent säger att storleken på deras arbetsstyrka kommer att minska med mer än en femtedel”. På det hela taget kommer ingenjörer förmodligen att behöva omskola sig för att dra nytta av trenden mot AI-genererad automatisering av programvara.

En uppenbar tillämpning för AI-genererad mjukvaruautomation är att skapa automationsrobotar. Även om prompt engineering är ett till synes användarvänligt gränssnitt tack vare dess fokus på samtal, återstår det dock att se om det kan ersätta befintliga lösningar.

På många sätt har programvara som ZAPTEST redan demokratiserat marknaden för automatisering av programvara. Nu finns det verktyg utan kod som gör det möjligt för icke-tekniska team att bygga högkvalitativa RPA-botar. Även om programvara som ChatGPT kan bygga robotar, kan implementering och underhåll vara svårt för alla som inte är programvaruingenjörer och även för dem som är det.

Att spela in interaktioner mellan människa och dator från GUI och omvandla dessa rörelser till kod är mycket mer användarvänligt än att använda prompter. I kombination med LLM:s potential att producera instabil och felfylld kod är det rimligt att säga att RPA-programvara inte är på väg någonstans inom en överskådlig framtid.

 

#2. Konvertering av ostrukturerade data

checklista uat, verktyg för testning av webbapplikationer, automatisering med mera

Ostrukturerad data är inte Robotic Process Automationsstarka sida. Tekniken var inte byggd för att hantera saker som e-post, bilder, ljud och mycket mer. RPA-verktyg behöver fördefinierade datamodeller med organiserade strukturer.

En stor del av de ostrukturerade uppgifterna utgörs av text i naturligt språk. Stora språkmodeller byggs för att “förstå” denna information och extrahera semantisk betydelse från dem. Detta skapar stora möjligheter för team som vill tolka dessa texter och omvandla dem till ett format som passar RPA-verktyg.

Många team har använt naturlig språkbehandling (NLP) i flera år för att hjälpa dem med sentimentanalys. Denna process, även känd som opinion mining, hjälper organisationer att hålla koll på konsumenternas känslor och attityder gentemot varumärken. I de flesta fall används dessa verktyg för att upptäcka positiva, negativa och neutrala känslor i text. Tekniken kan dock även användas för mycket mer detaljerad detektering av känslor.

Det finns flera verktyg på marknaden som erbjuder denna funktionalitet, men LLM:s ger möjlighet till mer mångsidig användning utöver att förstå vad människor tycker om en produkt eller tjänst. Dataanalyser har till exempel ökat explosionsartat i popularitet under de senaste åren. Big Data ger företagen ett försprång genom att de kan få insikter och förståelse som underlättar datadrivet beslutsfattande.

Robotic Process Automation-verktyg kan hjälpa till att samla in data. Som vi nämnde ovan har de dock svårt att hantera vissa typer av information. Men i kombination med AI-verktyg som använder stora språkmodeller kan RPA samla in stora mängder data och använda dem för att generera den information som krävs för Business Intelligence-verktyg (BI).

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

En av de mer spännande aspekterna av generativ AI är dess förmåga att skapa mening av inmatade data. Med rätt prompt engineering kan teamen omvandla dessa data till ett format som fungerar för deras RPA-verktyg.

RPA kan bidra till att göra arbetsflödena för Big Data mer effektiva. Till att börja med kan du använda den för att hjälpa till med både inmatning och utvinning av data. Men de kanske mest värdefulla och spännande användningsområdena är att använda RPA-verktyg för att omvandla, rensa och ladda data eller se till att datamigreringen går snabbt, effektivt och korrekt.

En annan viktig punkt att notera är datastyrning. Automatiserade dataförfrågningar hjälper organisationer att uppfylla kraven och håller data utom synhåll för manuell personal.

 

#3. Testautomatisering

Testautomatisering har fått ett uppsving i mjukvaruutvecklingskretsar eftersom det ger ett snabbare sätt att verifiera programvara. Testning och kvalitetssäkring har traditionellt varit dyra och tidskrävande processer; testautomatisering ger en lösning på båda dessa utmaningar.

En av de första sakerna som prompt engineering kan göra är att förbättra kvaliteten på testfallen. Med rätt instruktioner kan dessa maskiner analysera testfall och identifiera problem och lösningar. Denna process kan förbättra omfattningen av testfall och leda till mer omfattande tester.

Du kan t.ex. mata en stor språkmodell med kod på ungefär samma sätt som du skulle göra med en mänsklig granskare. Dessa maskiner kan snabbt köra igenom koden och hitta fel, buggar och till och med identifiera prestandaproblem. Kanske ännu mer spännande är att LLM också erbjuder möjligheten att komplettera testfallskoden från enkla utdrag, vilket påskyndar skapandet av testfall.

Prompt engineering syftar till att hantera många av de frågor som har drivit framväxten av Agile/DevOps-metoden för mjukvaruutveckling. Ingenjörerna vill ha effektiva tester som är lätta att upprepa och som kan upptäcka problem innan applikationerna distribueras. Tanken är att programvaruutvecklare genom att frigöra tid kan koncentrera sig på mer kreativa och värdedrivande uppgifter.

Som beskrivs i ett klassiskt dokument,
Teknisk skuld i testautomatisering
(K. Wiklund, 2012) kan programvaruutvecklingsteam stöta på problem om de lägger för mycket tid på manuell testning och verifiering av sin programvara. Initialkostnader för testautomatiseringslösningar, brist på erfarenhet av automatisering och till och med en preferens för äldre metoder kan bidra till dessa förseningar.

En av de mest intressanta aspekterna av Agile mjukvaruutveckling är
Beteendestyrd utveckling (BDD).
Begreppet syftar på att utveckla programvara med förväntade användarbeteenden. Att implementera detta tillvägagångssätt kan helt klart spara tid, men många team kämpar för att förverkliga denna automatisering. LLM kan dock erbjuda en lösning.

Några av de vanligaste symptomen på teknisk skuld är bristfällig dokumentation och avsaknad av robust testning. Detta är problem som dagens LLM-kandidater kan hjälpa till att lösa. Andra anmärkningsvärda symptom, som refactoring, är dock för komplexa för dagens generativa AI och kanske inte leder till tidsbesparingar.

 

Avslutande tankar

alfatestning vs betatestning

Generativa AI-tillämpningar har en enorm potential. Det användarvänliga gränssnittet kan dock vara missvisande. Många tror att det är enkelt att få ut kvalitetsprodukter från dessa maskiner. Men utmärkt prompt engineering är mer komplicerat än man kan tro.

Effektiv prompt engineering kräver en hel del försök och misstag. Det krävs också en hel del framförhållning från ingenjörens sida för att säkerställa att svaren är användbara. Slutligen är det viktigt att kontrollera och omkontrollera arbetet på grund av den välkända risken för fel.

Även om snabba ingenjörsjobb kan vara på uppgång, är inte alla övertygade. I en artikel i Harvard Business Review framför Oguz A. Acar ett fascinerande argument för att “Framtida generationer av AI-system kommer att bli mer intuitiva och skickliga på att förstå naturligt språk, vilket minskar behovet av noggrant utformade instruktioner.”

Oavsett hur framtiden ser ut kommer generativ AI att finnas med i mixen. Även om snabbteknik är mycket lovande är det svårt att säga exakt vilken roll den kommer att spela.

Intressant nog är mjukvara för testautomatisering redan full av användningsfall och framgångshistorier som visar att den är lämplig för att påskynda mjukvaruutveckling utan att kompromissa med noggrannhet eller omfattande verifiering av applikationer.

Verktyg som ZAPTEST gör det redan möjligt för utvecklare att hantera problem som otillräcklig tid och resurser, teknisk skuld, dokumentation samt omfattande testning och RPA. Dessutom är dessa verktyg mer användarvänliga än prompt engineering, vilket gör dem till mycket bättre alternativ för icke-tekniska team. Som alltid ligger den verkliga potentialen i skärningspunkten mellan dessa spännande automationstekniker.

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