Duyệt code do AI viết · 10/2026

Code chạy được
chưa phải code đúng

AI viết nhanh và nghe rất tự tin. Danh sách 15 điểm, đọc trong 15 phút, giúp bạn duyệt đúng chỗ trước khi bấm merge.

15 điểm kiểm Thứ tự đọc 15 phút Mẫu mô tả PR Tờ tóm tắt một trang
tests: 14 passed
nhưng làm sai việc?
Ba ý chính

Vì sao phải duyệt khác đi

1AI viết nhanh hơn người đọc. Khi code ra nhiều hơn, thời gian duyệt trở thành chỗ tắc.
2Chạy được không có nghĩa là đúng. Nhiều khảo sát đã đo thấy code AI viết có lỗ hổng bảo mật ở tỉ lệ đáng kể.
3Cần một thứ tự đọc. 15 điểm chia bốn nhóm, nhóm nào đọc trước, nhóm nào để sau.

Tóm lại: đọc ý định trước, an toàn kế tiếp, kiểm thử rồi mới bảo trì.
Lưu ý: các tỉ lệ đến từ vài nghiên cứu với phạm vi khác nhau, nên dùng như tín hiệu, không phải con số cố định.

Bằng chứng

Bốn con số làm nền

Nghiên cứu 2021
~40%

Trong 1.689 chương trình do Copilot sinh ra ở tình huống nhạy cảm, khoảng 40% có lỗ hổng.

Veracode 2025
45%

Mẫu code do AI sinh có lỗi bảo mật trong bài kiểm; riêng Java trên 70%.

Faros AI 2025
+91%

Thời gian duyệt mỗi thay đổi ở nhóm dùng AI nhiều. Số liệu của hãng bán công cụ đo lường.

Gói ma
~1/5

Khoảng một phần năm gợi ý thư viện là thư viện không có thật, và nhiều tên lặp lại.

Nhóm A · hiểu đúng việc

Ba điểm đầu: AI có làm đúng việc không?

1

Yêu cầu khớp mô tả

Dấu hiệu: thay đổi làm thêm nhiều thứ không ai nhờ. Cách kiểm: đọc mô tả, đánh dấu từng yêu cầu đã được đáp ứng.

2

Phạm vi gọn

Dấu hiệu: đổi hàng chục tệp cho một lỗi nhỏ. Cách kiểm: xem danh sách tệp, hỏi tệp nào thật sự cần.

3

Hiểu giả định

Dấu hiệu: code cho rằng dữ liệu luôn sạch. Cách kiểm: hỏi "nếu rỗng, nếu rất lớn, nếu sai kiểu thì sao?"

Nhóm B · đúng và an toàn

Năm điểm giữa: chỗ lỗi hay nấp

4

Đầu vào bất thường

Rỗng, âm, rất dài, ký tự lạ.

5

Lỗi và hết giờ

Mạng chậm hoặc đứt thì chương trình làm gì?

6

Bảo mật

Nối chuỗi vào truy vấn, in dữ liệu nhạy cảm ra nhật ký.

7

Thư viện có thật

Tên thư viện lạ: tra trên kho chính thức.

8

Quyền và bí mật

Khóa, mật khẩu, quyền rộng hơn cần thiết.

Nhóm C · kiểm thử

Ba điểm về test: xanh chưa chắc tốt

9

Test có kiểm gì

Test chỉ chạy qua dòng code mà không so kết quả thì vô nghĩa.

10

Test do chính AI viết

Dễ viết khớp với code, không khớp với yêu cầu. Thử sửa code cho sai và xem test có đỏ không.

11

Chạy thật một lần

Mở ra, bấm thử như người dùng. Giống bài học ở nhật ký đo: mắt thấy lỗi mà test không thấy.

Nhóm D · bảo trì

Bốn điểm cuối: sáu tháng sau ai đọc?

12

Dễ đọc

Tên rõ, hàm ngắn, ít lồng nhau.

13

Không lặp lại

AI hay chép đoạn quen thay vì dùng hàm sẵn có.

14

Hợp phong cách dự án

Đặt tên, cấu trúc thư mục, cách xử lý lỗi giống phần còn lại.

15

Tài liệu và dọn dẹp

Bỏ đoạn code chết, cập nhật tài liệu liên quan.

Thứ tự đọc

Mười lăm phút, bốn chặng

3'
3 phútĐọc mô tả và danh sách tệp (A)
5'
5 phútSoi chỗ rủi ro: bảo mật, đầu vào (B)
4'
4 phútĐọc test, chạy thử một lần (C)
3'
3 phútLướt qua độ dễ bảo trì (D)

Thay đổi lớn hơn 400 dòng: yêu cầu chia nhỏ trước rồi mới duyệt. Vượt sức người đọc thì không điểm kiểm nào cứu được.

Ví dụ

Test xanh mà vẫn sai

NgườiThêm mã giảm giá 10% cho đơn từ 500 nghìn.
AgentXong. Đã thêm 5 test, tất cả đều xanh.
Khi đọc kỹ (điểm 1 và 9)

Mã áp dụng cho đơn trên 500 nghìn, bỏ sót đơn đúng bằng 500 nghìn. Cả 5 test đều thử 600 nghìn.

Test xanh chỉ nói code khớp test. Còn khớp yêu cầu hay không là việc của người đọc.

Ví dụ

Thư viện không có thật

AgentMình dùng thư viện fast-csv-safe để đọc tệp cho nhanh.
NgườiTra kho chính thức: không có thư viện này.
Vì sao nguy hiểm

Kẻ xấu có thể đăng một gói trùng tên chứa mã độc. Ai cài theo gợi ý sẽ cài luôn nó.

Tên lạ thì tra trước khi cài. Xem ngày đăng, số lượt tải, kho mã nguồn.

Mẫu mô tả PR

Năm dòng giúp người duyệt đỡ mò

MụcViết gì
Mục tiêuMột câu: thay đổi này giải quyết gì
Không làmNhững gì cố ý để ngoài
Cách kiểmLệnh chạy và bước bấm thử
AI làm phần nàoĐoạn nào AI viết, đoạn nào tay
Chỗ chưa chắcNơi người duyệt nên soi kỹ

Đoạn "AI làm phần nào" không để đổ lỗi. Nó chỉ chỉ ra nơi cần đọc kỹ hơn.

Nhờ AI duyệt thử

Một cặp mắt thứ hai, chưa phải người quyết

Nên
  • Cho đọc từng nhóm A, B, C, D riêng
  • Yêu cầu chỉ rõ dòng và lý do
  • Dùng để tìm chỗ nghi ngờ
Đừng
  • Coi lời "ổn rồi" là phê duyệt
  • Nhờ chính AI đã viết ra đó tự duyệt
  • Bỏ qua bước chạy thật

Có nghiên cứu cho thấy mô hình hay chiều theo người hỏi. Hỏi "code này có ổn không?" dễ nhận câu "ổn". Hỏi "tìm ba chỗ có thể sai" tốt hơn.

Cân bằng

Danh sách này cũng có giới hạn

Làm được
  • Cho người mới một thứ tự đọc
  • Bắt được lỗi hay gặp
  • Làm bước duyệt đồng đều
Chưa làm được
  • Thay cho hiểu nghiệp vụ
  • Bắt lỗi thiết kế lớn
  • Chạy hết trong thay đổi quá lớn

Cũng đừng lạm dụng: duyệt quá kỹ mọi dòng nhỏ làm mất lợi thế tốc độ. Chọn độ kỹ theo rủi ro.

Chọn độ kỹ

Rủi ro càng cao, đọc càng kỹ

Loại thay đổiĐộ kỹ
Chữ trên giao diện, tài liệuLướt nhanh, chạy thử
Tính năng trong nhóm nhỏĐủ 15 điểm, ưu tiên A, B, C
Thanh toán, quyền, dữ liệu cá nhânHai người duyệt, kiểm thử bảo mật
Thay đổi hạ tầng, xóa dữ liệuKhông để AI tự chạy, người xác nhận từng bước
Một trang

Tờ tóm tắt để dán cạnh màn hình

A

Hiểu đúng việc

Khớp yêu cầu, phạm vi gọn, nêu giả định.

B

Đúng và an toàn

Đầu vào lạ, lỗi mạng, bảo mật, thư viện, bí mật.

C

Kiểm thử

Test kiểm gì, phá thử code, chạy thật.

D

Bảo trì

Dễ đọc, không lặp, hợp dự án, dọn dẹp.

Kết luận

AI viết nhanh, người duyệt đúng chỗ. Chạy được mới là bước đầu.

Hãy bắt đầu bằng ba điểm đầu: yêu cầu khớp, phạm vi gọn, giả định rõ.