WEBSITE ĐANG PHÁT TRIỂN

#Vibecoding

Test coverage khi vibe code: AI viết tests thì ai chịu trách nhiệm?

AI viết code nhanh, AI viết tests cũng nhanh – nhưng khi cả hai cùng đến từ một nguồn, coverage 100% vẫn có thể che giấu bug production. Đây không phải lỗi của AI. Đây là structural problem của vibe coding workflow: không có adversarial thinking, không có người hỏi "nhưng nếu... thì sao?" Vai trò QA không bị AI xóa bỏ – nó đang trở nên quan trọng hơn bao giờ hết. Tuần trước, tôi review một đợt regression sau khi team deploy feature mới. CI green. Test coverage 94%. Zero failing tests. Mọi thứ sạch đẹp trên dashboard. Hai giờ sau khi lên production – một user nhắn tin vào support: "Giỏ hàng của tôi bị mất khi tôi quay lại từ trang thanh toán." Tôi kéo code ra. Dev gen bằng Cursor, tests cũng gen bằng Cursor. Coverage report trông rất đẹp – unit tests cover từng function, integration tests cover các happy path chính. Chỉ có một thứ tests không cover: cái user journey cụ thể đó – tab back sau khi redirect sang payment gateway của bên thứ ba, state của cart bị reset vì AI không biết rằng cái flow đó tồn tại. AI không biết business context của bạn. AI không có ký ức về lần trước user complain gì. AI không đặt câu hỏi theo kiểu của một tester: "Nhưng nếu user làm cái này trước thì sao?" Và đó chính là vấn đề cốt lõi.

Khi nhà nhà vibe code – thứ giúp bạn vượt trội vẫn là căn bản

Vibe coding đang trở thành chuẩn mới. Nhưng khi AI viết code cho tất cả mọi người, thứ duy nhất còn phân biệt developer giỏi và developer bình thường chính là nền tảng kỹ thuật. Căn bản không lỗi thời – nó càng quý hơn khi công cụ làm thay tất cả phần ngọn. Năm đầu tiên đi làm, tôi không biết mình là frontend developer hay backend developer. Không phải vì tôi không được hỏi. Mà vì không ai hỏi. Không có job description kiểu đó. Không có team frontend riêng, backend riêng, QA riêng. Chỉ có tôi, một cái máy tính Dell cũ, và một danh sách công việc dài hơn cả ngày làm việc. Hôm nay code module đăng ký sinh viên. Ngày mai lao đến trường Cao đẳng – khách hàng của chúng tôi – để ngồi cùng phòng Đào tạo, hỏi họ muốn in bảng điểm theo định dạng nào. Tuần sau bê máy tính qua từng phòng ban để cài đặt, hướng dẫn trực tiếp. Rồi lại về, mở IDE, fix bug mà thầy Hiệu phó vừa báo sáng nay. Không phân role. Không có "đó là việc của team khác". Không có ticket system để tạo ticket rồi chờ. Chỉ có bài toán và người giải nó – là tôi. Hơn hai mươi năm sau, tôi đọc bài viết về vibe coding và thấy buồn cười. Buồn cười theo kiểu: "Ủa, vòng này không quen à?" Vibe coding – từ được Collins English Dictionary chọn là "Word of the Year 2025" – ngắn gọn là: dùng AI để generate code bằng cách mô tả yêu cầu bằng ngôn ngữ tự nhiên. Bạn viết prompt, AI viết code, bạn chạy thử và tinh chỉnh. Không cần nhớ cú pháp. Không cần tra Stack Overflow từng function. Nhanh hơn, gọn hơn, sexy hơn. Và đi kèm với đó, developer ngày nay đang trở thành người làm tất cả – một lần nữa. Không còn ranh giới rõ ràng giữa frontend dev và backend dev. Một người với AI trong tay có thể build cả một product từ đầu đến cuối. Tự viết code, tự test, tự review, tự phân tích yêu cầu, đôi khi còn kiêm luôn PM. Giống y chang ngày tôi mới ra trường. Chỉ khác là ngày đó không có AI – tôi phải tự học tất cả bằng cách làm thật, sai thật, sửa thật.

Vibe coding vui đấy, nhưng production thì không đùa được

Vibe coding với AI cực kỳ năng suất - nhưng 53% code AI sinh ra không qua nổi security review. Bài này tôi phân tích những lỗ hổng phổ biến nhất trong AI-generated code và checklist thực tế để vừa vibe vừa không mất ngủ vì production. Anh bạn tôi - một solo founder đang build SaaS app với Cursor - gọi điện lúc 11 giờ đêm tuần trước. "Ông ơi, tôi vừa nhận email từ khách hàng. Họ nói thấy data của người khác trong account của họ." Anh ấy đã dùng Cursor để build toàn bộ cái app trong 3 tuần. AI viết hết - backend, frontend, database schema, authentication. Năng suất khủng khiếp. Anh ấy tự hào lắm. Ra production mới phát hiện: AI đã generate thiếu Row Level Security (RLS) cho Supabase. Mọi user đều đọc được data của nhau. Đây không phải câu chuyện cá biệt. Vibe coding - cái trend "để AI viết hết, mình chỉ describe" - đang thay đổi hoàn toàn cách developer làm việc. Cursor, GitHub Copilot, Claude, v0.dev... Tôi dùng hàng ngày. Năng suất tăng 3-5x là thật. Thời gian từ idea đến MVP giảm từ tuần xuống ngày là thật. Nhưng có một thứ AI rất kém: security sense.