Testning och kodkvalitet med Copilot

Mjukvaruutveckling med GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Det du har lärt dig

 

  • Kodkomplettering — förslag medan du skriver
  • Copilot Chat — ställ frågor, få förklaringar och refaktorera kod
  • Agentläge — autonoma flerstegsuppgifter
  • Anpassade verktyg — utöka Copilots funktioner
Mjukvaruutveckling med GitHub Copilot

Nu tillämpar vi det

nanobanana: half: En utvecklares resa visad som en väg med tre milstolpikoner som representerar testning, säkerhet och prestanda, från en kodredigerare mot en färdig driftsatt applikation, platt vektorillustration

 

  • Testning — fånga buggar innan de når produktion
  • Säkerhet — identifiera sårbarheter tidigt
  • Prestanda — skriv kod som skalar
Mjukvaruutveckling med GitHub Copilot

Copilot förenklar testning

nanobanana: half: En AI-assistent som genererar testkod på en utvecklares skärm med gröna bockar bredvid testresultaten, platt vektorillustration

 

  • ✔ Generera kompletta testsviter
  • 💡 Fånga gränsfall
  • 🤖 Hantera standardkod
Mjukvaruutveckling med GitHub Copilot

Gränsfall som smiter igenom

 

def calculate_discount(price, discount_pct):
    discount = price * (discount_pct / 100)
    return price - discount

calculate_discount(50, 20)  # → 40.0 ✓

 

Men vad händer med...

  • Negativt price
  • discount_pct > 100
  • Order med nollkvantitet
Mjukvaruutveckling med GitHub Copilot

[screencast]

Mjukvaruutveckling med GitHub Copilot

[screencast]

Mjukvaruutveckling med GitHub Copilot

När det krävs mer

nanobanana: half: En koncentrerad mjukvaruutvecklare vid en laptop som skriver ett meddelande i ett AI-chattgränssnitt

Enkla fall

  • /tests

 

Specialfall

Write pytest unit tests for calculate_discount covering: negative price, discount > 100%, and empty item list. Use parametrize for edge cases.

Mjukvaruutveckling med GitHub Copilot

Bortom enhetstester

nanobanana: half: En testpyramid med tre staplade horisontella lager, den breda basen märkt enhetstester, mellanskiktet märkt integrationstester och den smala toppen märkt end-to-end-tester

 

  • Enhet — /tests eller en enkel prompt
  • Integration — beskriv hur komponenterna kopplas samman
  • End-to-end — använd hela kodbaskontexten
Mjukvaruutveckling med GitHub Copilot

Integrationstester

 

  • Bifoga varje relevant fil med #file:
  • Beskriv interaktion och mockningsstrategi
  • Använd /fixTestFailure om ett test går sönder

 

Write integration tests for the checkout flow. Use #file:cart.py and #file:payment.py. Mock the payment gateway and assert that order status updates correctly.

Mjukvaruutveckling med GitHub Copilot

End-to-end-tester

 

  • @workspace identifierar relevant kod automatiskt
  • Fungerar bra med Playwright och Cypress
  • Använd #terminalLastCommand för att felsöka

 

@workspace Write Playwright end-to-end tests for the user registration flow. Assert that the confirmation email is triggered.

Mjukvaruutveckling med GitHub Copilot

[screencast]

Mjukvaruutveckling med GitHub Copilot

Nu kör vi en övning!

Mjukvaruutveckling med GitHub Copilot

Preparing Video For Download...