Testes e qualidade de código com o Copilot

Desenvolvimento de Software com GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

O que você aprendeu

 

  • Compleções de código — sugestões enquanto você digita
  • Copilot Chat — faça perguntas, receba explicações e refatore código
  • Modo agente — tarefas autônomas em várias etapas
  • Ferramentas personalizadas — estendem as capacidades do Copilot
Desenvolvimento de Software com GitHub Copilot

Agora, vamos aplicar

nanobanana: half: A jornada de uma pessoa desenvolvedora mostrada como um caminho com três marcos representando testing, security e performance, do editor até um app implantado, ilustração vetorial plana

 

  • Testing — pegue bugs antes da produção
  • Security — identifique vulnerabilidades cedo
  • Performance — escreva código que escala
Desenvolvimento de Software com GitHub Copilot

O Copilot facilita os testes

nanobanana: half: Um assistente de IA gerando código de testes na tela de uma pessoa desenvolvedora, com marcações verdes ao lado dos resultados, ilustração vetorial plana

 

  • ✔ Gerar suites de teste completas
  • 💡 Cobrir casos de borda
  • 🤖 Lidar com boilerplate
Desenvolvimento de Software com GitHub Copilot

Casos de borda que passam batido

 

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

calculate_discount(50, 20)  # → 40.0 ✓

 

Mas e quanto a...

  • price negativo
  • discount_pct > 100
  • Pedido com quantidade zero
Desenvolvimento de Software com GitHub Copilot

[screencast]

Desenvolvimento de Software com GitHub Copilot

[screencast]

Desenvolvimento de Software com GitHub Copilot

Quando ir além

nanobanana: half: Uma pessoa desenvolvedora focada em um laptop escrevendo uma mensagem em uma interface de chat de IA

Casos simples

  • /tests

 

Casos especiais

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

Desenvolvimento de Software com GitHub Copilot

Além de testes unitários

nanobanana: half: Uma pirâmide de testes com três camadas horizontais: a base larga rotulada unit tests, a camada do meio integration tests e o topo estreito end-to-end tests

 

  • Unit — /tests ou um prompt simples
  • Integração — descreve como os componentes se conectam
  • End-to-end — usa o contexto do codebase completo
Desenvolvimento de Software com GitHub Copilot

Testes de integração

 

  • Anexe cada arquivo relevante com #file:
  • Descreva a interação e a estratégia de mocking
  • Use /fixTestFailure se um teste quebrar

 

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.

Desenvolvimento de Software com GitHub Copilot

Testes end-to-end

 

  • @workspace descobre o código relevante automaticamente
  • Funciona bem com Playwright e Cypress
  • Use #terminalLastCommand para depurar falhas

 

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

Desenvolvimento de Software com GitHub Copilot

[screencast]

Desenvolvimento de Software com GitHub Copilot

Vamos praticar!

Desenvolvimento de Software com GitHub Copilot

Preparing Video For Download...