fbpx

“Dit is de meest verbluffende toepassing van machinaal leren die ik ooit heb gezien.”

Mike Krieger, medeoprichter van Instagram.

 

De woorden van Mike Krieger zijn niet overdreven. Hoewel ML tot een aantal opmerkelijke dingen in staat is op het gebied van gegevensanalyse en inzichten, is GitHub Copilot een totale game-changer vanwege het potentiële nut dat het productontwikkelaars over de hele wereld kan bieden.

Coding copilots en Generative AI helpen teams enorme voordelen te ontsluiten, zoals het versnellen van de levenscyclus van softwareontwikkeling tot onvoorstelbare snelheden. De impact van de technologie op RPA en Software Testing zijn echter twee van de meest opwindende grenzen van deze verbazingwekkende technologie.

In dit artikel bekijken we hoe coderende copilots en generatieve AI de wereld van softwaretests en RPA in het heden hebben veranderd, voordat we de toekomstige impact op de technologie onderzoeken.

 

Copiloten en generatieve AI in

softwareontwikkeling: Een inleiding

Copilots en generatieve AI in softwareontwikkeling - een inleiding

Generatieve AI en coderende copiloten zijn relatieve nieuwkomers in het softwareontwikkelingslandschap. Voordat we hun invloed op de ruimte bespreken, is het de moeite waard om te kijken naar hun achtergrond en hoe ze werken.

 

1. AI-gestuurde auto-coders

 

Grote taalmodellen (LLM) zijn de laatste jaren opmerkelijk verbeterd. Naarmate de datasets en de rekenkracht exponentieel zijn toegenomen, is de kwaliteit van de output gestegen.

Er zijn veel sectoren die kunnen profiteren van LLM’s. Een aantal van de meest beschreven opties zijn het genereren van tekst, afbeeldingen, video’s en andere vormen van media. Hoewel deze use cases indrukwekkend zijn, zijn er implicaties voor ontwikkelaars die misschien nog wel veel interessanter zijn.

Er zijn een aantal LLM autocoders op de markt. GitHub CoPilot is echter misschien wel de bekendste en meest succesvolle. Een groot deel van de reden is dat het getraind is op de GitHub repository. Het heeft toegang tot miljoenen voorbeelden van open-source code, best practices, applicatiearchitectuur en meer om van te leren, waardoor het hoogwaardige en veelzijdige output kan leveren.

 

2. Hoe werken coderende copiloten?

 

Een van de makkelijkste manieren om te praten over hoe coderende copilots werken is door te kijken naar het toonaangevende product in het spel, GitHub CoPilot. De applicatie is gebaseerd op OpenAi’s ChatGPT-3 model.

Net als ChatGPT en vergelijkbare LLM’s is CoPilot gebaseerd op miljarden parameters. Tijdens de ontwikkeling van ChatGPT-3 begon OpenAI met het bouwen van een speciaal codeerprogramma genaamd OpenAI Codex. Microsoft kocht exclusieve toegang tot het product.

Het belangrijkste hier is echter dat Microsoft GitHub al bezat. Als je codeert, weet je alles over GitHub. In principe is het een webgebaseerd platform dat wordt gebruikt voor versiebeheer en samenwerking in softwareontwikkelingsprojecten. Ze trainden de OpenAI Codex op de GitHub bibliotheek die miljoenen regels open-source, publieke code bevatte.

CoPilot gebruikt Machine Learning om patronen en relaties tussen regels code te vinden. Net als ChatGPT kijkt het naar een woord of regel en berekent het de waarschijnlijkheid van wat er daarna komt op basis van een enorme verzameling historische gegevens.

De kracht van AI-copilots ligt in hun vermogen om codefragmenten voor te stellen terwijl ontwikkelaars bewerken. Zie het als een supercharged autocomplete voor codering. Als programmeurs een regel code invoeren, vergelijkt de LLM het begin van die code met zijn enorme bibliotheek van eerdere projecten. Van daaruit suggereert het waarschijnlijkheidsregels en nieuwe coderegels.

De voor de hand liggende voordelen hier zijn dat ontwikkelaars ongelooflijk veel tijd kunnen besparen door deze autoaanvulling. Het verhoogt de productiviteit en, in veel gevallen, de nauwkeurigheid van de code.

 

3. Hoe zit het met Generatieve AI voor codering en ontwikkeling?

 

Zoals je kunt zien aan de geschiedenis van CoPilot, hebben Generative AI en Copilots vergelijkbare wortels. Het zijn beide technologieën die statistische waarschijnlijkheid gebruiken om voorspellingen te doen over wat gebruikers nodig hebben op basis van geïmputeerde informatie.

Het grote verschil tussen software voor copiloting en generatieve AI is echter dat de laatste op aanwijzingen is gebaseerd. In het kort betekent dit dat gebruikers een reeks schriftelijke instructies invoeren in de machine en dat deze vervolgens inhoud uitvoert. Zoals iedereen die ChatGPT of gelijkaardige toepassingen heeft gebruikt weet, kan deze output komen in de vorm van tekst, afbeeldingen, video of code.

Hoewel de methoden die codeurs gebruiken om geautomatiseerd te coderen dus verschillen, kunnen we ze onderbrengen in een vergelijkbare paraplu van AI-ondersteunde geautomatiseerde of generatieve codering.

 

De evolutie van het testen van software

de evolutie van het testen van software

Softwaretesten is reactief en evolueert voortdurend. In een paar decennia tijd is het veranderd om aan nieuwe eisen te voldoen en gebruik te maken van de technologische vooruitgang.

 

1. Handmatig testen:

In de begindagen van het testen van software werd er handmatig getest. Dit soort testen was duur en tijdrovend omdat QA experts de software met een fijne kam moesten doornemen door een reeks testgevallen te ontwikkelen, uit te voeren en de resultaten te registreren, fixes te plannen en het proces te herhalen.

Het was een grote uitdaging om ervoor te zorgen dat alle mogelijke scenario’s en situaties door deze tests werden gedekt, en als je daar de tijd en kosten bij optelt, kostte handmatig testen veel middelen. Het was ook erg vatbaar voor menselijke fouten, wat nog werd versterkt door de beperkte distributiemogelijkheden, wat betekende dat onontdekte bugs moeilijk snel te repareren waren.

 

2. Schriftelijk testen:

 

Scripted testing betekende een enorme stap voorwaarts voor de QA gemeenschap. In plaats van handmatig code en testscenario’s te doorlopen, konden ontwikkelaars programma’s schrijven die software automatisch konden testen. Het grote voordeel hiervan was dat het testen efficiënter werd en minder vatbaar voor menselijke fouten. Om dit te bereiken was echter een vakkundige, nauwkeurige en tijdrovende planning en codering nodig om een uitgebreide dekking te garanderen.

 

3. Testautomatisering:

 

Testautomatisering was de volgende evolutie van het testen. Tools zoals ZAPTEST waren in staat om programmeurs alle voordelen van gescript testen te bieden, maar met een interface zonder code. Ook hier waren de belangrijkste voordelen tijdsbesparing, herbruikbare en aanpasbare tests, UI- en API-tests en platform- en apparaatoverschrijdend testen.

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

4. Datagestuurd testen:

 

Datagestuurd testen was de oplossing voor het probleem van het testen van software die verschillende gegevenssets verwerkte. Ook dit is een vorm van testautomatisering, maar bij deze methode worden testscripts gemaakt en uitgevoerd tegen toegewezen gegevenssets. Met deze manier van testen konden ontwikkelaars sneller werken, tests isoleren en minder tijd besteden aan het herhalen van testcases.

 

5. Generatieve AI-tests:

 

Generatief AI-testen is de nieuwste innovatie op het gebied van softwaretesten. Door gebruik te maken van LLM’s kunnen QA-teams testcases en testgegevens maken die het testproces versnellen. Deze testgevallen zijn zeer flexibel en bewerkbaar, waardoor ontwikkelaars tests kunnen hergebruiken en hergebruiken en de reikwijdte van testen enorm kan worden vergroot.

 

Hedendaags gebruik van copiloten en

Generatieve AI in softwaretests en RPA

Huidig gebruik van copilots en generatieve AI in softwaretests en RPA

Generatieve AI en copilots hebben een grote invloed gehad op het testen van software. Maar in plaats van programmeurs volledig te vervangen, hebben deze tools geholpen om testers te vergroten. Kortom, ze helpen ontwikkelaars sneller en efficiënter te worden en verhogen in veel gevallen de kwaliteit van het testen.

De
Stack Overflow-ontwikkelaarsonderzoek van 2023
biedt enkele inzichten in het huidige gebruik van AI-tools binnen de softwareontwikkelingsgemeenschap. Een van de interessantste onderdelen van het onderzoek was dat iets meer dan de helft van alle ontwikkelaars aangaf geïnteresseerd te zijn in AI-tools voor het testen van software, maar dat minder dan 3% aangaf vertrouwen te hebben in deze tools. Bovendien gaf slechts 1 op de 4 aan dat ze momenteel AI-tools gebruiken voor het testen van software.

Het interessante aan deze statistieken is dat ze laten zien dat het gebruik van AI-tools nog niet wijdverspreid is en dat early adopters nog steeds een voordeel kunnen behalen.

 

1. Copilot en generatieve AI-gebruiksgevallen in softwaretests en RPA

 

Copilots en generatieve AI hebben invloed op elk gebied van softwareontwikkeling. Hier zijn een paar manieren waarop de technologie kan helpen bij het testen van software en RPA.

 

Analyse van eisen

Requirement-analyse is een belangrijk onderdeel van de levenscyclus van softwareontwikkeling. Het proces omvat het begrijpen van de eisen van belanghebbenden en de verschillende functies die nodig zijn om een stuk software te bouwen. Generatieve AI kan teams helpen met ideatie door met nieuwe ideeën en perspectieven te komen.

 

Testplanning

Als de testvereisten eenmaal goed begrepen zijn, moeten QA-teams de zaken uitwerken in een schema om voldoende testdekking te garanderen. Dit soort werk vereist expertise en ervaring, maar Generative AI kan teams ondersteunen met voorbeelden en handleidingen en aanbevelingen doen voor specifieke tools en best practices voor hun unieke vereisten.

 

Testcases maken

QA teams kunnen LLM’s gebruiken om code, gebruikerseisen en softwarespecificaties te analyseren om de onderliggende relaties achter het systeem te begrijpen. Zodra de AI inzicht heeft in de inputs en outputs en het verwachte gedrag van de software, kan het beginnen met het bouwen van testgevallen die de software zullen testen.

De voordelen gaan verder dan tijd besparen en handmatig coderen. Het maken van AI-testcases kan ook leiden tot een uitgebreidere dekking, omdat het gebieden kan verkennen waar QA-engineers misschien geen rekening mee houden, wat leidt tot betrouwbaardere builds.

 

Bugs vinden en oplossen

Met machine learning kunnen QA-professionals de tijd die nodig is om bugs te vinden en op te lossen aanzienlijk verkorten. Bij het testen van software zijn veel bugs gemakkelijk te vinden. In veel scenario’s is het echter een moeizaam en tijdrovend proces. Generatieve AI kan controles uitvoeren in een fractie van de tijd van handmatige medewerkers en zelfs de meest hardnekkige bugs aan het licht brengen. Bovendien kunnen deze AI-tools ook de bugs oplossen die ze identificeren, waardoor QA-teams eindeloos veel tijd besparen.

 

UI-testen

Generatieve AI-tools kunnen een reeks gebruikersgedragingen en interacties met softwaresystemen simuleren. De methoden kunnen ontwikkelteams vertrouwen geven dat hun interface een breed scala aan mens-computer toepassingen aankan. Bovendien kan Generative AI ook gegevens over gebruikersinterfaces en heatmaps analyseren en suggesties doen om de UI te verbeteren en gebruiksvriendelijker te maken.

 

De toekomst van copilots en generatieve AI

in Software testen en RPA

De toekomst van copilots en generatieve AI in softwaretests en RPA

Hoewel het huidige gebruik van copilots en Generative AI in softwareautomatisering al opwindend is, houdt de toekomst nog meer beloften in.

De toekomst van Copilot en Generative AI hangt af van de verbeteringen die in de producten kunnen worden aangebracht. Een recent onderzoek van de Purdue Universiteit, getiteld Wie antwoordt er beter? Een diepgaande analyse van ChatGPT en Stack Overflow Antwoorden op Software Engineering-vragen onderstreept enkele van de beperkingen van generatieve AI-modellen.

De onderzoekers gaven ChatGPT meer dan 500 vragen van Stack Overflow. De AI-tool antwoordde meer dan de helft onjuist. Nu is het belangrijk om op te merken dat een van de belangrijkste problemen die de onderzoekers opmerkten was dat de AI het vaakst faalde omdat het de vragen niet goed begreep. Dit detail onderstreept het belang van prompt engineering binnen Generative AI.

Daarnaast hebben zowel Google als Amazon dit jaar onafhankelijke tests uitgevoerd om de kwaliteit van Generative AI tools te onderzoeken in een interview setting. In beide gevallen slaagde de tool erin om de testvragen goed genoeg te beantwoorden om de positie te krijgen, zoals gerapporteerd door
CNBC
en
Business Inside
respectievelijk.

Het is dus duidelijk dat we op een punt zijn in deze technologie waar het potentieel aanwezig is, maar er moeten nog wat kleine dingen worden gladgestreken. De schaal waarop deze hulpmiddelen de afgelopen jaren zijn verbeterd, geeft ons het vertrouwen dat het vereiste niveau zal worden bereikt en waarschijnlijk eerder dan gepland.

Nu kunnen we kijken naar een aantal gebieden waar deze technologieën de toekomst van het testen van softwareontwikkeling zullen beïnvloeden.

 

1. Hyperautomatisering

 

Hyperautomatisering beschrijft een bestemming in de evolutie van de onderneming waar elk proces dat kan worden geautomatiseerd, zal worden geautomatiseerd. Het is een holistische benadering van productiviteit die in hoge mate onderling verbonden is.

In termen van softwareontwikkeling is het niet moeilijk om je een gecentraliseerd systeem voor te stellen met een overzicht van de vereisten voor bedrijfsprocessen. Het systeem zal de behoeften en efficiëntie begrijpen en identificeren en voortdurend gebieden identificeren die via technologie moeten worden verbeterd.

Naarmate bedrijven zich verder ontwikkelen, zullen deze gecentraliseerde systemen Generative AI gebruiken om toepassingen te bouwen die knelpunten en inefficiënties automatisch oplossen of misschien bepaalde taken doorschuiven naar technici.

 

2. Software-architecturen ontwerpen

 

Met voldoende gegevens zouden AI-tools de best practices op het gebied van softwarearchitectuur kunnen begrijpen en manieren kunnen vinden om deze ontwerpen te verbeteren voor maximale efficiëntie. Machine learning gaat over het vinden van patronen en relaties die buiten het bereik van de menselijke geest liggen.

Als AI-tools voldoende kennis hebben van een verscheidenheid aan toepassingen, kunnen we ze instrueren om eerdere architecturen om te buigen in de richting van nieuwe vereisten, wat leidt tot efficiëntere bouwwerken of zelfs ideeën die anders niet in overweging zouden worden genomen.

 

3. Modernisering van oudere systemen

 

Hoewel geen enkele software ooit perfect is, zijn er veel tools die nog steeds uitstekend werk leveren en zo diep verankerd zijn in de infrastructuur van een bedrijf dat ze moeilijk te vervangen zijn. Het aanpassen van deze systemen kan een hele klus zijn, vooral als ze zijn geschreven met softwarecode die uit de mode is geraakt.

In de toekomst kunnen generatieve AI-tools deze code omzetten in de taal van de dag, waardoor teams hun oude systemen kunnen behouden en in veel gevallen zelfs verbeteren.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

 

4. Low-code en no-code ontwikkeling verbeteren

 

Een van de uitdagingen van het automatiseren van softwaretests via Generative AI tools die we hierboven hebben geïdentificeerd, was een situatie waarin de programmeur niet over de kennis en ervaring beschikt om de uitvoer te verifiëren.

AI-copilots zullen low-code tools helpen verbeteren door betere suggesties te doen die leiden tot robuuste toepassingen. Met geavanceerde testtools kunnen menselijke operators hun creativiteit de vrije loop laten, terwijl hun werk voortdurend wordt gevalideerd en de deur wordt opengezet voor niet-technische professionals om de applicaties te bouwen die ze nodig hebben.

 

Voordelen van generatieve AI bij het testen van software

prompt engineering in software testautomatisering en rpa (robotic process automation)

Het gebruik van Generative AI voor het testen van software heeft veel voordelen die het een aantrekkelijke optie maken voor ontwikkelteams die sneller willen werken, maar zonder concessies te doen aan de kwaliteit.

 

1. De levenscyclus van softwareontwikkeling versnellen

 

Ontwikkelaars staan onder constante druk om lange uren te maken om ervoor te zorgen dat software en nieuwe functies op tijd op de markt komen. Hoewel Agile/DevOps-methodologieën ervoor hebben gezorgd dat ontwikkeling efficiënter verloopt, zijn er nog steeds afzonderlijke ontwikkelingsfasen die baat kunnen hebben bij verdere stroomlijning.

Met generatieve AI-tools kunnen testteams verschillende SDLC-fasen aanpakken, van het genereren van prototypes tot UI-tests.

 

2. Uitgebreide bugdetectie

 

Een van de krachtigste toepassingen van AI bij het testen van software is het vermogen van de technologie om grote datasets met elkaar te vergelijken. ML tools kunnen enorme datasets (inclusief code) analyseren om een verzameling informatie en verwachte modellen op te bouwen.

Wanneer ontwikkelaars code vastleggen, kunnen ze die vergelijken met deze modellen, wat onverwachte scenario’s, afhankelijkheden en kwetsbaarheden aan het licht kan brengen, waardoor code gedurende het hele ontwikkelproces beter wordt.

 

3. Verbeterde testdekking

 

Tools voor machinaal leren zijn gemaakt om enorme verzamelingen gegevens te analyseren en te begrijpen. Toegepast op softwaretesten kunnen teams de reikwijdte van hun softwaretests vergroten. De voordelen gaan verder dan alleen het verwijderen van menselijke arbeid uit de vergelijking om geld te besparen; AI leidt ook tot een veel uitgebreider type testen waarmee bugs in een complexe reeks scenario’s beter kunnen worden opgespoord.

 

4. Lagere kosten

 

In vergelijking met een team van QA-engineers die worden ingezet voor repetitieve en tijdrovende softwaretests, zijn generatieve AI en RPA sneller en kosteneffectiever.

Naarmate de wereld van softwareontwikkeling concurrerender wordt, wordt het steeds belangrijker om manieren te vinden om duurzame kwaliteitsproducten te leveren binnen het budget. Generatieve AI-tools en copilots kunnen de afhankelijkheid van ingenieurs verminderen en hen in staat stellen waardegedreven werk uit te voeren, wat leidt tot minder opgeblazen builds.

 

Betekenen generatieve AI-tools het einde

van menselijke software engineers?

Betekenen generatieve AI-tools het einde van menselijke software engineers?

Ondanks de duidelijke voordelen kan elk automatiseringshulpmiddel werknemers ongerust maken over hun toekomst. Hoewel dit een normale reactie is, betekenen de snelheid en reikwijdte van Generative AI dat de bezorgdheid groter is dan normaal. Hoewel deze tools veel taken kunnen automatiseren, kunnen ze niet elke taak uitvoeren die software engineers doen. Inzicht in de mogelijkheden en beperkingen van de technologie is essentieel voor ingenieurs en leiders.

Het eerste dat mensen moeten onthouden is dat testautomatiseringstools aangedreven door AI al geruime tijd op de markt zijn. De gebruiksvriendelijke aard van Generative AI maakt het echter wel geschikt voor meer flexibiliteit.

Een van de eerste dingen die we moeten overwegen is dat Generative AI het beste werkt voor uitvoer die kan worden geverifieerd. Dit is een belangrijk punt. De aard van de manier waarop LLM’s worden opgeleid, betekent dat ze hun best zullen doen om je een antwoord te geven, zelfs als dat af en toe betekent dat ze feiten, referenties en argumenten “hallucineren”.

Als je nu voldoende kennis hebt van codering, kun je elke tekst die Generative AI uitvoert lezen en controleren en mogelijke fouten opsporen. Als je een burger coder bent die Generative AI gebruikt in plaats van te kunnen coderen, zul je niet zo goed in staat zijn om deze fouten te ontdekken.

Vanuit dit perspectief bekeken zullen geschoolde ingenieurs dus nog steeds een cruciaal onderdeel zijn van het ecosysteem voor softwareontwikkeling. Ze moeten nog steeds testen, zowel in toezichthoudende als in praktische zin.

Een andere beperking van Generative AI voor het testen van software heeft te maken met mobiel testen. ChatGPT is bijvoorbeeld een goede optie voor het testen van website UI’s. Het heeft echter geen toegang tot verschillende mobiele apparaten. Met zoveel verschillende handsets en modellen op de markt, loopt het achter op de huidige testautomatiseringssoftware zoals ZAPTEST. Ook dit probleem is niet onbelangrijk. Meer dan
De helft van al het internetgebruik komt van mobiele
en dat aantal neemt elk jaar toe.

Dus, hoewel Generative AI veel taken van ontwikkelaars zal overnemen, zal het deze professionals niet overbodig maken zonder grote veranderingen in de testinfrastructuur en de mogelijkheid om output te verifiëren.

 

Laatste gedachten

 

Softwaretesten en RPA worden voortdurend verbeterd. Naarmate er nieuwe technologieën en methoden ontstaan, absorberen beide disciplines de best practices om QA-teams te helpen sneller en uitgebreider te testen tegen een fractie van de prijs van handmatig testen.

Hoewel het verbeteren van de reikwijdte van tests en het verminderen van menselijke fouten en kosten enkele van de meer voor de hand liggende voordelen van AI-gebaseerd testen zijn, helpt het teams ook om een continue integratie en deployment pipeline (CI/CD) aanpak te hanteren.

Nu de verwachtingen van de consument en de concurrentie hoger zijn dan ooit, biedt Generative AI teams een manier om snelle en efficiënte tests te leveren zonder dat dit ten koste gaat van de kwaliteit.

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