Kiểm thử và chất lượng mã với Copilot

Phát triển phần mềm với GitHub Copilot

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Bạn đã học gì

 

  • Hoàn thành mã — gợi ý khi bạn gõ
  • Copilot Chat — đặt câu hỏi, nhận giải thích, và refactor mã
  • Chế độ Agent — tác vụ tự động, nhiều bước
  • Công cụ tùy chỉnh — mở rộng khả năng của Copilot
Phát triển phần mềm với GitHub Copilot

Giờ hãy áp dụng

nanobanana: half: Hành trình của lập trình viên như một con đường với ba cột mốc tượng trưng cho kiểm thử, bảo mật và hiệu năng, dẫn từ trình soạn thảo mã đến ứng dụng đã triển khai, minh họa phẳng

 

  • Kiểm thử — bắt lỗi trước khi lên production
  • Bảo mật — phát hiện lỗ hổng sớm
  • Hiệu năng — viết mã có khả năng mở rộng
Phát triển phần mềm với GitHub Copilot

Copilot giúp kiểm thử dễ hơn

nanobanana: half: Trợ lý AI tạo mã kiểm thử trên màn hình lập trình viên, có dấu kiểm xanh cạnh kết quả kiểm thử, minh họa phẳng

 

  • ✔ Tạo bộ test đầy đủ
  • 💡 Bắt trường hợp biên
  • 🤖 Xử lý boilerplate
Phát triển phần mềm với GitHub Copilot

Các trường hợp biên dễ lọt

 

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

calculate_discount(50, 20)  # → 40.0 ✓

 

Nhưng còn...

  • price âm
  • discount_pct > 100
  • Đơn hàng số lượng 0
Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

Khi cần đi sâu hơn

nanobanana: half: Một lập trình viên tập trung đang dùng laptop để soạn tin nhắn trong giao diện chat AI

Trường hợp đơn giản

  • /tests

 

Trường hợp đặc biệt

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

Phát triển phần mềm với GitHub Copilot

Vượt ra ngoài unit test

nanobanana: half: Kim tự tháp kiểm thử với ba lớp ngang xếp chồng, đáy rộng ghi unit tests, lớp giữa ghi integration tests, đỉnh hẹp ghi end-to-end tests

 

  • Unit/tests hoặc prompt đơn giản
  • Integration — mô tả cách các thành phần kết nối
  • End-to-end — dùng toàn bộ ngữ cảnh mã nguồn
Phát triển phần mềm với GitHub Copilot

Integration test

 

  • Đính kèm từng tệp liên quan với #file:
  • Mô tả tương tácchiến lược mock
  • Dùng /fixTestFailure khi test hỏng

 

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.

Phát triển phần mềm với GitHub Copilot

End-to-end test

 

  • @workspace tự tìm mã liên quan
  • Hoạt động tốt với PlaywrightCypress
  • Dùng #terminalLastCommand để debug lỗi

 

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

Phát triển phần mềm với GitHub Copilot

[screencast]

Phát triển phần mềm với GitHub Copilot

Ayo berlatih!

Phát triển phần mềm với GitHub Copilot

Preparing Video For Download...