Artificial Intelligence (AI) technologie, de term en technologie bestaat inmiddels alweer even, maar hoe kan Notion AI jou als (test)automation goeroe helpen? In het verleden schreven wij er bij newspark al vaker over. Onder andere in deze blog over kwaliteitsattributen bij het testen van AI toepassingen of de uitdagingen in het testen van AI oplossingen. Met de introductie van ChatGPT, eind vorig jaar, lijken diverse ontwikkelingen in een stroomversnelling te geraken. Ook in het landelijke nieuws horen we het steeds vaker voorbij komen:
- ChatGPT glipt langs docenten: ‘Ik gebruik het om snel huiswerk te maken’
- Microsoft opent aanval op Google met ChatGPT in zoekmachine en browser
- Google gaat met eigen chatbot strijd aan met ChatGPT”.
Als testers bij newspark zijn we dan natuurlijk nieuwsgierig hoe deze technologieën werken. Zo was ik, André, al erg enthousiast, na mijn eerste ervaringen met ChatGPT. Wel kreeg ik steeds vaker de melding ‘ChatGPT is at capacity right now’. Een beetje een teleurstelling natuurlijk!
Gelukkig was daar enkele dagen geleden de mail ‘You’re off the waitlist! Time to try out Notion AI’.
Notion AI
Al enige tijd gebruik ik notion.so voor van alles en nog wat. O.a. voor boodschappenlijstjes, to-do lijstjes, things to read/watch lijstjes, etc. Voor de mensen die mij kennen, als ik zeg: “dat staat nog op mijn lijstje”, is de kans groot dat het echt letterlijk op een van deze lijstjes staat). Echter met alleen lijstjes doe ik AI echt veel te kort. Daarom het eerste resultaat van hoe Notion AI notion.so zelf omschrijft:
“Notion.so biedt een eenvoudig, overzichtelijk ontwerp met integraties, taken, projecten, notities, portfolio’s en meer. Ideaal voor georganiseerd werken of samenwerken. Documenten delen en samenwerken of een portfolio maken? Met Notion.so kan het!”
Zelf vat ik het samen als een combinatie van een fancy database, OneNote en Jira, met een gelikte GUI, die zowel op de desktop als op mobiele devices handig te gebruiken is en te synchroniseren.
Notion AI is een aanvulling op het toch al brede pakket aan mogelijkheden (wil je echt nerdy gaan doen, kan je ook je notion.so bedienen met API interfaces die reeds beschikbaar zijn gesteld). Notion AI was al even beschikbaar voor een selecte groep gebruikers. Je zou het een Canary test kunnen noemen (we blijven immers testers 😃). Daardoor wist ik al van het bestaan, maar kon het tot een paar dagen terug, nog niet gebruiken. Nu dus wel!
Notion AI de bevindingen
Na wat spelen met puur en alleen tekst generaties, ben ik iets minder enthousiast over Notion AI dan over ChatGPT. Notion AI vereist nog wat doorontwikkeling. Zo valt de tekst o.a. in herhaling als ik Notion AI vraag iets meer over een onderwerp te vertellen. Wanneer ik vraag sommige stukjes juist beknopter te maken, wordt er niet veel winst gemaakt op het reduceren van het aantal woorden.
Echter, de ontwikkelaars van Notion AI weten wel heel goed gebruik te maken van de functionaliteit die Notion zelf al biedt. Zo kan je eenvoudig lijstjes genereren. Al dan niet met bullets of checkboxes om later af te vinken. Denk bijvoorbeeld aan: “Creëer checkbox list met boodschappen voor vegetarische couscous voor 4 personen, inclusief de benodigde hoeveelheden.” Wat ook heel waardevol is om snel inzichten te verkrijgen; het creëren van tabellen. Bijvoorbeeld voor het vergelijken van producten. Via aanvullende commando’s is het eenvoudig kolommen toe te voegen met relevante data.
Tabellen maken
Een voorbeeld: “Creëer een vergelijkingstabel van diverse BDD libraries voor diverse programmeertalen” Dit resulteert, na wat aanvullende commando’s, in:
Boven- en onderstaand voorbeeld maken pijnlijk duidelijk dat de inhoud van deze tabellen nog niet uit erg hoge kwaliteit en juistheid bestaat.
Een ander voorbeeld: “Creëer een tabel voor het vergelijken van Postman, SoapUi en eventuele andere vergelijkbare test tools?”. Hieruit rolt (na wat aanvullende commando’s):
Een laatste poging in het Engels maakt het niet veel beter:
- “Can you create an overview table to compare tools which can be used for mocking API’s?”
- “Can you add some information about the programming language?”
- “Can you add also possibilities for Java, JavaScript and other programming languages?”
Bovenstaande 3 vragen resulteert in deze bijzondere tabel, waarbij merkwaardig genoeg het antwoord dus in het Nederlands wordt gegeven. Daarbij lijkt het dus de context van deze blog mee te nemen:
Code voorbeelden
Is er dan niets waar je echt enthousiast over bent? Zeker wel! Met name het genereren van code voorbeelden. Ik ben ervan overtuigd dat hierin de meeste potentie zit, aangezien code in veel gevallen lekker recht toe rechtaan kan zijn. Natuurlijk moet je zelf blijven nadenken en de code her en der aanpassen én scherp blijven op clean code.
Voordat ik je meeneem in een klein voorbeeldje, raad ik je aan deze “NOTION AI IS HERE” Youtube video te bekijken. Deze video geeft je in 20 minuten een snelle indruk van de algehele mogelijkheden (uiteraard is de afspeelsnelheid iets omhoog te schroeven). Wat ik je zeker aanraad, is even door te spoelen naar 7:27 min. Zo kom je erachter hoe je goede commando’s geeft voor het generen van bruikbare code.
Op basis van bovengenoemde video deed ik natuurlijk snel een experiment. Qua code is ook Notion AI een leuke aanvulling.
Mijn request was zoiets (helaas is niet, zoals bij ChatGPT, na afloop nog te zien wat je vroeg):
“In C#, Create a async method. inside this methode use the http client to create a get request to the swagger petstore to find pets by status, status is ‘pending’. Catch this response and create within the same method a for loop to log the name of the first five found animals. Add all needed usings on top.”. Gevolgd door “Create the needed Pet class for desirialization of above code”.
Met als verbluffend resultaat:
De oplettende lezer zal snel zien dat de code niet direct perfect is en zelfs niet (volledig) gaat werken. Desalniettemin helpt het programmeren wel degelijk versnellen! Wanneer je bovenstaande code plakt in bijvoorbeeld Visual Studio, geeft de IDE al snel aan welke andere usings er nog missen. En met een beetje basiskennis programmeren, kan je ook al snel de “<>” haken rond de url verwijderen. Dan zie je al snel in debug mode dat het REST request in ieder geval slaagt. Met een beetje doorzettingsvermogen is het deserialisatieprobleem dan ook zo opgelost.
Na bovenstaand eerste simpele voorbeeld ben ik nog wat verder gaan spelen. Daaruit leerde ik dat je de coderesultaten eerst moet kopiëren, voordat je gebruikmaakt van de in Notion ingebouwde ‘retry’ optie, want onderstaande was nu bepaald niet beter dan eerdere resultaten.
De vraag aan Notion AI, die hieraan vooraf ging, was min of meer of het een Wiremock.net mock kon opzetten voor bovenstaand gebruikte petstore endpoint:
Met wat andere voorbeelden kwam ik er gelukkig wel achter dat een aanvullende vraag als ‘can you recreate above with better readible code’ de code aanzienlijk verbeterd. Of in ieder geval betere code opleverde dan, door gebruik te maken van, de ‘Try again’ optie. Een voorbeeld (voor de oplettende lezer inmiddels voor een ander (POST) request endpoint van deze zelfde Petstore) van de resultaten:
Kortom, (Notion) AI biedt in ieder geval voor code inspiratie mooie mogelijkheden!
Wiremock
Overigens is het geen toeval dat een aantal van de codevoorbeelden gaan over Wiremock. Ik, André, en mijn newsparkcollega Tobias zijn druk met de voorbereidingen voor een Wiremock deepdive/workshop, waar Tobias de Java geïnteresseerden zal begeleiden en ik de .Net mensen. Houd onze website dus in de gaten of check onze meetup pagina. Stuur je een mail naar knowledgesquad@newspark.nl dan ontvang je zeker de uitnodiging voor deze Wiremock deepdive/workshop.