Blog / AI-assisted testen
AI-assisted testen 6 min lezen

She's a model and she's looking good – M365 Basic

Vroeger was het beter. Ik gooi er al meteen een dooddoener in, maar in het geval van de GitHub Copilot billing is het écht wel zo!

Tot 1 juni 2026 was het billing/credits gedoe eenvoudig: elke prompt kostte een vast percentage van je credits. De truc was simpel: probeer zoveel mogelijk uit één goed samengestelde, welgemikte prompt te persen.

Soms was GitHub Copilot er uren zoet mee. De befaamde ‘Draai de testen tot ze groen zijn, maar je mag het functioneel resultaat niet wijzigen’. Maar ik lag er niet wakker van. Ik had mijn resultaat, en dat voor amper 3% van mijn credits in de nog niet eens zo fancy Business-licentie.

Tot 1 juni 2026 dus, toen draaide Microsoft de subsidiekraan dicht. Ze schakelden over op usage-based billing.¹ Je betaalt voor wat je gebruikt. En dat heb ik geweten, en niet alleen ik, als ik Reddit lees. Mijn credits vlogen erdoor.

Tussen haakjes, dat ‘credits vliegen erdoor’-probleem is intussen al deels opgevangen door de prijsverlaging van de GPT-5.6 Luna-API. Daar had ik het al over.

De grijze security zone opzoeken door een privé-abonnement te nemen op Claude Code of OpenAI Codex om zo aan de dure API-billing te ontsnappen was een verleidelijke optie. Maar mijn klant had net bewust gekozen voor GitHub Copilot omwille van security-redenen en de garantie dat data niet voor trainingsdoeleinden gebruikt zou worden. Al ben ik soms een rebel without a cause, dat snapte ik wel. Een privé-abonnement was dus geen optie.

Maar had ik ook niet een Microsoft 365 Copilot Basic (M365CP)-account van de klant, met diezelfde enterprise protection?² Al snel bleek dat het daar nog altijd was van ‘U vraagt het maar!’, een echt all-you-can-eat buffet, met veel meer mogelijkheden dan ik op het eerste gezicht dacht.

Hierbij mijn tips om Microsoft 365 Copilot als aanvulling op GitHub Copilot in te zetten bij het ontwikkelen en onderhouden van Cypress-testen.

1. Kies bewust het AI-model

Microsoft 365 Copilot staat standaard op ‘Auto’. Nu, bij mij mag het ‘nadenken’ best wat langer duren. Ik wil vooral het best mogelijke resultaat. Ik zet hem dus altijd op ‘Think Deeper’.

Welk model er net gebruikt wordt, dat is het geheim van de chef. Ik heb daar niks over kunnen terugvinden. Maar mijn ervaring is dat, zeker in de ‘Think Deeper’-setting, het model niet moet onderdoen voor Luna.

2. Context is alles

Hoe meer relevante context je kunt meegeven, hoe beter de antwoorden worden. Maar je kan maar 3 documenten per keer opladen en geen zip. Dat schiet ook niet op natuurlijk.

Je kan dit omzeilen door je zip te hernoemen naar een extensie die wel is toegelaten (bvb .html). Zeg M365CP expliciet dat je een zip hebt opgeladen met extensie .html en dat hij deze moet hernoemen naar .zip vooraleer uit te pakken.

Op deze manier heb ik perfect mijn volledige Cypress-project kunnen opladen.

Ik exporteer de zip rechtstreeks uit de Bitbucket repo, dat geeft me de kleinste mogelijke zip. Vergeet wel niet om, alvorens je hem oplaadt, er nog de gevoelige informatie uit te halen. Bijvoorbeeld je .env file waar er usernames en paswoorden in staan.

M365 Copilot krijgt de instructie dat een opgeladen zip-bestand de extensie .html heeft en vóór het uitpakken hernoemd moet worden naar .zip

Zeg M365CP expliciet dat het opgeladen bestand een omgedoopte zip is.

M365 Copilot bevestigt dat het bestand hernoemd is van .html naar .zip, gevalideerd is als geldig zip-bestand en succesvol uitgepakt werd

M365CP herkent, hernoemt en pakt het volledige Cypress-project uit.

3. Voeg ook de applicatiecode toe

De code van je Cypress-testen is maar het halve verhaal. It takes two to tango. Al is ‘Dancing On My Own’ een topschijf, maar ik dwaal af. Wanneer Copilot ook inzicht krijgt in de applicatiecode, begrijpt hij veel beter waarom bepaalde testen bestaan en hoe de applicatie is opgebouwd.

Dat betekent niet dat je alles moet uploaden. Vraag gerust welke onderdelen relevant zijn voor de taak waarmee je bezig bent. Meer context is nuttig, maar té veel context kan de prestaties ook verminderen.

Je hoeft trouwens niet altijd alles opnieuw op te laden. Wissel je van branch, dan is git diff je vriend.

4. Hergebruik eerdere sessies

Je kan, nadat je heel de zwik hebt opgeladen, perfect later een sessie hergebruiken. Rome is niet op één dag gebouwd, maar je hoeft gelukkig niet iedere dag te herbeginnen.

Vraag, voor je verder gaat, even: heb je nog de context van story X? Of wat weet je nog van item Y waar we aan gewerkt hebben?

Neen, niet alle context wordt altijd bewaard, en er durven al eens stukken te verdwijnen die je opnieuw moet aanvullen.

Laad daarom altijd de laatste versies van testen of databestanden op. Maar je zal merken dat, ook al is er geen contextgarantie, M365CP nog veel meer weet dan je denkt.

M365CP is een briljante stagiair. Maar hij blijft wel een stagiair, soms heeft hij gewoon zijn dag niet.

5. Verbeter voortdurend je instructions file

Soms heb je echt het gevoel: we hebben de klik deze sessie. M365CP geeft goeie feedback. Je pingpongt lekker, en met iedere prompt zie je de code verbeteren. De klik is er!

Vergeet niet om dan op het einde van de sessie te vragen: is er iets wat je geleerd hebt dat we best in de instructions file kunnen zetten?

Goeie kans dat M365CP met enkele suggesties komt. Je kan deze zelf nog laten fijn slijpen. Bijkomend voordeel: je hoeft dingen niet twee keer uit te leggen.

Mocht M365CP toch in een vergeetachtige bui zijn, dan kan je gewoon verwijzen naar de instructions file.

6. Begin altijd bij de requirements

In plaats van random vragen te stellen, of van de hak op de tak te springen, begin ik altijd met het opladen van een word-export uit Jira van de story die we gaan testen.

Dat geeft M365CP al meteen een idee van: oké, hier gaan we ons mee bezighouden.

Alles begint nog altijd met requirements. Ik kan hem dan ook meteen vragen: wat denk jij dat onze testcases zijn? Welke automatische testen gaan we moeten aanpassen? Hoe zit het met onze coverage van deze story?

Het voordeel is dat ik dan altijd naar het Jira-nummer kan verwijzen. Wil ik met een andere story verder gaan, dan kan ik zeggen: we gaan story X even parkeren, we gaan nu Y doen. M365CP onthoudt de verschillende contexten.

7. Agents

Je kan zaken opladen, screenshots doorsturen, HTML-code delen, maar soms voelt het gewoon aan als gedoe. Dan is het gewoon handig als je zaken kan laten doen door een agent die zelf de (Cypress) testen kan uitvoeren en bekijken wat hij terugkrijgt.

Zeker als ik nog dik in de credits zit, durf ik al eens te vragen of we dit beter kunnen laten doen door een lokaal model dat testen kan uitvoeren.

Indien M365CP bevestigt dat het hier wel aangewezen is, dan vraag ik steeds of hij het in een instructions file kan gieten voor het model, en welke prompt ik best kan meegeven.

Nu ben ik wel van het idee: mixen is risico op hoofdpijn, dus ik gebruik dan binnen GHCP ook wel de GPT 5.6-familie.

Voorbeeldprompt die M365 Copilot voorstelt om aan een lokale agent mee te geven, met verwijzing naar het instructions-bestand en een stapsgewijze werkwijze

M365CP stelt zelf een gestructureerde prompt voor om aan het lokale model mee te geven.

// Lees verder