Làm thế nào tôi thực sự viết bài kiểm tra đầu tiên với GitHub Copilot (Không nói dối bản thân)
Phát triển dựa trên kiểm thử không thành công vì viết kiểm thử chậm hơn viết mã. Copilot lật lại phép toán và đây là quy trình làm việc mà nó thực sự hoạt động.
Mọi nhà phát triển đều tin vào các bài kiểm tra theo cách mà mọi người tin vào việc xỉa răng và quá trình phát triển thử nghiệm đầu tiên đều thất bại vì cùng một lý do: khi bạn đang trong tiến trình, việc viết bài kiểm tra có cảm giác như dừng lại để làm giấy tờ. Copilot đã thay đổi phép toán cho tôi, không phải bằng cách làm cho các bài kiểm tra trở nên dễ chịu mà bằng cách làm cho chúng đủ nhanh để những phản đối về thủ tục giấy tờ biến mất. Đây là quy trình làm việc mà nó thực sự diễn ra.
Bí quyết là viết bài kiểm tra dưới dạng thông số kỹ thuật và để Copilot thực hiện bản tóm tắt. Trước khi chạm vào việc triển khai, tôi viết một bài kiểm thử thất bại với kịch bản trong tên bài kiểm thử và một nhận xét mô tả hành vi dự kiến bằng ngôn ngữ đơn giản. Copilot điền vào các xác nhận, mô phỏng và thiết lập với khả năng đáng ngạc nhiên, bởi vì các tệp thử nghiệm chính xác là loại mã theo khuôn mẫu mà nó vượt trội. Công việc của tôi thu hẹp lại ở việc xem xét xem bài kiểm tra có kiểm tra đúng hay không, đó là một cuộc gọi phán xét chứ không phải đánh máy.
Sắp xếp các kịch bản theo từng chức năng một. Tôi liệt kê các trường hợp trước khi bắt đầu, đường dẫn hạnh phúc, đầu vào trống, ranh giới, lỗi, sau đó yêu cầu Copilot tạo chúng trong một lần và xem xét tập hợp cùng nhau. Việc xem xét năm bài kiểm tra dưới dạng một bộ sẽ phát hiện ra điều gì khi xem xét từng bài kiểm tra một: trường hợp bị thiếu, thường là trường hợp kỳ lạ mà cơ sở mã của bạn đã bị tấn công trước đó. Lời nhắc trước chuyến bay của tôi hiện bao gồm dòng nhận xét liệt kê các sự cố sản xuất trước đây trong mô-đun này, vì mô hình không thể biết ngữ cảnh đó trừ khi bạn cho nó biết.
Phần trung thực nhất của việc thử nghiệm đầu tiên với AI là biết nó sai ở đâu. Copilot sẽ vui vẻ viết một bài kiểm tra phản ánh những giả định sai lầm của bạn và một bộ phần mềm màu xanh lá cây được xây dựng dựa trên những hiểu lầm được chia sẻ còn tệ hơn là không có bộ phần mềm nào, vì nó bảo vệ lỗi. Thuốc giải độc rẻ và không thể thương lượng: trước khi triển khai, hãy chạy thử nghiệm và xem nó thất bại vì lý do chính đáng, sau đó cố tình phá vỡ đầu ra dự kiến trong xác nhận và xác nhận thử nghiệm đã bắt được nó. Ba mươi giây cho mỗi bài kiểm tra giúp bộ phần mềm luôn trung thực.
Điều này đã mang lại cho tôi điều gì trong thực tế: mức độ bao phủ các đường dẫn nhàm chán, xác thực đầu vào và xử lý lỗi, những điều mà tôi chưa bao giờ viết vì chi phí giảm xuống gần bằng 0. Điều nó không mang lại cho tôi: một cái cớ để bỏ qua việc suy nghĩ về việc mã nên làm gì, đó là lúc mà thử nghiệm đầu tiên luôn được cho là có ích. Nhịp điệu tái cấu trúc màu đỏ-xanh vẫn tồn tại nguyên vẹn; Phi công phụ vừa loại bỏ phần viết bài kiểm tra màu đỏ giống như một khoản thuế.
