Testowanie i jakość kodu z Copilotem

Programowanie z GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Czego się nauczono

 

  • Uzupełnianie kodu — sugestie podczas pisania
  • Copilot Chat — pytania, wyjaśnienia i refaktoryzacja
  • Tryb agenta — autonomiczne zadania wieloetapowe
  • Niestandardowe narzędzia — rozszerzanie możliwości Copilota
Programowanie z GitHub Copilot

Teraz zastosujmy to w praktyce

nanobanana: half: Ścieżka programisty z trzema ikonami etapów: testowanie, bezpieczeństwo i wydajność, prowadząca od edytora kodu do gotowej aplikacji, ilustracja wektorowa

 

  • Testowanie — wykrywaj błędy przed wdrożeniem
  • Bezpieczeństwo — identyfikuj luki na wczesnym etapie
  • Wydajność — pisz skalowalny kod
Programowanie z GitHub Copilot

Copilot ułatwia testowanie

nanobanana: half: Asystent AI generujący kod testów na ekranie programisty z zielonymi znacznikami przy wynikach testów, ilustracja wektorowa

 

  • ✔ Generuj kompletne zestawy testów
  • 💡 Wykrywaj przypadki brzegowe
  • 🤖 Obsługuj powtarzalny kod
Programowanie z GitHub Copilot

Przypadki brzegowe, które umykają uwadze

 

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

calculate_discount(50, 20)  # → 40.0 ✓

 

A co z...

  • Ujemna price
  • discount_pct > 100
  • Zamówienie o zerowej ilości
Programowanie z GitHub Copilot

[screencast]

Programowanie z GitHub Copilot

[screencast]

Programowanie z GitHub Copilot

Kiedy warto sięgnąć głębiej

nanobanana: half: Skupiony programista przy laptopie piszący wiadomość w interfejsie czatu AI

Proste przypadki

  • /tests

 

Przypadki szczególne

Napisz testy jednostkowe pytest dla calculate_discount obejmujące: ujemną cenę, rabat > 100% i pustą listę pozycji. Użyj parametrize dla przypadków brzegowych.

Programowanie z GitHub Copilot

Poza testami jednostkowymi

nanobanana: half: Piramida testów z trzema poziomymi warstwami: szeroką podstawą oznaczoną testy jednostkowe, środkową warstwą oznaczoną testy integracyjne i wąskim szczytem oznaczonym testy end-to-end

 

  • Jednostkowe/tests lub prosty prompt
  • Integracyjne — opisz, jak komponenty się łączą
  • End-to-end — użyj pełnego kontekstu bazy kodu
Programowanie z GitHub Copilot

Testy integracyjne

 

  • Dołącz każdy istotny plik za pomocą #file:
  • Opisz interakcję i strategię mockowania
  • Użyj /fixTestFailure, gdy test się nie powiedzie

 

Napisz testy integracyjne dla przepływu zakupu. Użyj #file:cart.py i #file:payment.py. Zamockuj bramkę płatności i sprawdź, czy status zamówienia aktualizuje się poprawnie.

Programowanie z GitHub Copilot

Testy end-to-end

 

  • @workspace automatycznie wykrywa odpowiedni kod
  • Działa dobrze z Playwright i Cypress
  • Użyj #terminalLastCommand, aby debugować błędy

 

@workspace Napisz testy end-to-end w Playwright dla przepływu rejestracji użytkownika. Sprawdź, czy wiadomość e-mail z potwierdzeniem jest wysyłana.

Programowanie z GitHub Copilot

[screencast]

Programowanie z GitHub Copilot

Czas na ćwiczenia!

Programowanie z GitHub Copilot

Preparing Video For Download...