Hoe Copilot te gebruiken om Unit Tests te genereren

Hoe Copilot te gebruiken om Unit Tests te genereren

Microsoft en OpenAI hebben in samenwerking met GitHub de Copilot-extensie ontwikkeld, een door AI aangedreven tool voor code-optimalisatie en voltooiing. Het kan ontwikkelaars helpen door blokken of zelfs regels code voor te stellen op basis van beschikbare en bestaande codes. Unit-testen bij softwareontwikkeling verwijst naar het testen van code-eenheden of blokken om hun goede functionaliteit te garanderen. De integratie van AI bij het testen van code kan niet alleen de productiviteit bij softwareontwikkeling verbeteren, maar ook de algehele kwaliteit. In dit bericht wordt uitgelegd hoe u Copilot kunt gebruiken om unit-tests te genereren .

Gebruik Copilot om unit-tests te genereren

Een kort overzicht van GitHub Copilot

GitHub Copilot is een door AI aangedreven codeerassistent die codefragmenten voorstelt op basis van de context van de code. OpenAI en Github hebben een door AI aangedreven taalverwerkingstool ontwikkeld met het GPT-3-model en Codex, dat contextgebaseerde codesuggesties biedt. Het is getraind in openbaar beschikbare codes en kan worden geïntegreerd met populaire code-editors zoals Visual Studio.

Voordelen van het geautomatiseerd genereren van unittests via Copilot

  1. Tijdbesparend: Copilot kan automatisch direct unit-testcode genereren op basis van de beschrijving of opmerkingen die we vermelden. Dit kan ons helpen veel tijd te besparen dan het handmatig schrijven van de testcodes, waardoor de softwareontwikkelingscyclus wordt verbeterd en geoptimaliseerd.
  2. Minder menselijke fouten: Automatisering versnelt het proces, maar helpt ook veelvoorkomende menselijke fouten aanzienlijk te verminderen. Door de geschreven code te doorlopen, kan Copilot het doel gemakkelijk begrijpen en de test dienovereenkomstig genereren zonder handmatige fouten.
  3. Consistentie: Copilot heeft de neiging om uniformiteit in teststructuren en -patronen af ​​te dwingen terwijl het unit-tests genereert. Een dergelijke aanpak kan ons helpen een vergelijkbare testaanpak voor de hele codebase te handhaven, waardoor het gemakkelijker wordt om het hele programma te begrijpen.
  4. Copilot ondersteunt TDD-praktijken via zijn dynamische codesuggesties voor testgevallen. Tegelijkertijd schrijven we de codes, waarbij we een test-first-benadering aanmoedigen, waarbij tests worden gemaakt voordat de code wordt geïmplementeerd.

Hoe Copilot te gebruiken om Unit Tests te genereren

Om de test te genereren, kunnen we beginnen met het installeren van de GitHub Copilot-extensie en het maken van het programma voordat Copilot de test kan starten. Voor het genereren van testgevallen kunnen de volgende stappen worden gevolgd:

1] Installeer Github Copilot-extensie

Github copiloot installeren

Open de Visual Studio Marketplace , zoek naar de GitHub Copilot-extensie en klik op Installeren .

2] Maak een functie

Om het genereren van unit-tests met Copilot te demonstreren, maken we een programma dat controleert of een bepaald getal een priemgetal is met behulp van de door de gebruiker geschreven functie is_prime() van Python .

We beginnen met het maken van een Python-scriptbestand, prime_number.py , dat de hierboven genoemde functie bevat en de benodigde codes om te controleren op priemgetallen. Zodra het bestand is gemaakt, kunnen we de code schrijven op basis van de logica die op priemgetallen controleert.

3] Voer een eenheidstest uit

Om uit te leggen hoe Copilot unit-tests kan genereren voor het bovenstaande programma, kunnen we de onderstaande stappen volgen:

  • We maken een testfunctie met de naam unit_test_prime_number() om de functie is_prime() te testen .
  • Eenmaal gemaakt, schrijven we het doel of de documentatiereeks voor de functie en voegen we de beweringvoorwaarde toe. Zodra de doc-string wordt genoemd, begint Copilot de assertievoorwaarde voor de test voor te stellen.
Copiloot Unit Test Prime-functie

Tips voor het effectief genereren van eenheidscodes

  • Duidelijke beschrijving: Copilot genereert voornamelijk eenheidscodes door de opmerkingen of documentatiereeksen te bekijken die de gebruiker in het bestand opgeeft. Daarom zijn goed geschreven beschrijvingscodes essentieel voor het genereren van betekenisvolle unit-testcodes.
  • Naamgeving van variabelen: het gebruik van variabelenamen die het doel van de code beschrijven, kan helpen bij het genereren van testgevallen. Duidelijkheid in de namen van variabelen zorgt ervoor dat de automatisch gegenereerde testgevallen aan onze verwachtingen voldoen.
  • Het gebruik van Mocking and Stubbing-technieken: Mocking en Stubbing zijn testtechnieken die worden gebruikt om dummy-omgevingen te creëren om de functies van de code te onderzoeken. Mocking creëert een kloon van een echt object, zoals een database of webservice, terwijl Stubbing een vereenvoudigde versie creëert van een functie waarvan de geteste code afhankelijk is.
  • Bekijk de voorgestelde code: De suggesties van Copilot moeten worden beoordeeld om er zeker van te zijn dat ze voldoen aan de testvereisten en coderingsnormen.

Beperkingen van het testen van eenheden met GitHub Copilot

GitHub Copilot Chat is bedoeld om u het meest relevante antwoord op uw vraag te geven. Het kan echter zijn dat dit niet altijd het antwoord biedt waarnaar u op zoek bent. Gebruikers van Copilot Chat zijn verantwoordelijk voor het beoordelen en valideren van de door het systeem gegenereerde antwoorden om ervoor te zorgen dat ze accuraat en gepast zijn.

Ik hoop dat het bericht nuttig was en dat je de voordelen en beperkingen begrijpt van het gebruik van GitHub voor het genereren van unit-tests.

Heeft de door Copilot gegenereerde unittest betrekking op hoekgevallen?

Copilot is een handig hulpmiddel voor unit-tests, maar dekt mogelijk niet elk scenario. U moet de suggesties grondig doornemen en rekening houden met ongebruikelijke invoer of fouten. Wees creatief om uitgebreide tests te garanderen. Jouw expertise is cruciaal voor gedegen unit-tests, ook met Copilot.

Is Copilot voor testgevallen in staat om met complexe algoritmen om te gaan?

Copilot worstelt met het testen van complexe algoritmen. Hoewel het basistests kan schrijven, kan het uw expertise niet vervangen. Voor complexe algoritmen kunt u specifieke tests maken die zich richten op de unieke logica. Copilot kan behulpzaam zijn, maar bij complexe tests is uw expertise altijd nodig.

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *