Dùng Claude Code đọc code từ Git để hiểu hệ thống khi dự án thiếu tài liệu
Đặt vấn đề
QA tiếp nhận dự án cũ không có tài liệu, không còn dev gốc để hỏi — không hiểu hệ thống thì khó xác định cần test gì, dễ bỏ sót luồng quan trọng. Claude Code chạy trong thư mục mã nguồn, đọc trực tiếp toàn bộ code và trả lời bằng tiếng Việt. Khác tài liệu thường lỗi thời, đọc code là đọc sự thật — Claude trích dẫn cụ thể file và dòng để bạn mở kiểm chứng.
🚀 Thiết lập trong 3 bước
Mất khoảng 10-15 phút lần đầu, sau đó chỉ việc dùng.
- 1Clone repo về máyCần cài git + có quyền truy cập repo. Mở terminal: git clone [URL_REPO] rồi cd vào thư mục repo. Nếu repo riêng tư, đăng nhập git (token/SSH) trước.
- 2Mở Claude Code ngay trong thư mục repoĐã ở trong thư mục repo, gõ: claude. Claude Code tự quét cây thư mục mã nguồn — KHÔNG cần upload từng file. Nó đọc code trực tiếp trên máy bạn (chỉ gửi nội dung tới API để xử lý).
- 3Chạy 3 prompt phân tích (bên dưới)Dán lần lượt 3 prompt: tổng quan kiến trúc → trace luồng nghiệp vụ → điểm rủi ro cần test. Hỏi nối tiếp để đào sâu ('giải thích kỹ file X', 'còn nhánh nào nữa không').
🔍 4 prompt — kèm chỗ AI hay sai cần bắt
AI sinh kết quả chỉ trong vài giây — việc của bạn là kiểm lại. Mỗi prompt kèm ví dụ kết quả và 🔍 Góc soi lỗi của Tester (chỗ AI hay sai, nên xem trước khi dùng). Bấm Copy → dán vào Claude Code / ChatGPT.
Nắm nhanh hệ thống gồm gì trước khi đi sâu: ngôn ngữ, framework, module, luồng dữ liệu.
Bạn là kỹ sư phần mềm senior. Đọc toàn bộ codebase trong thư mục này và cho tôi bản tổng quan dễ hiểu cho người mới vào dự án: 1. Ngôn ngữ + framework chính. 2. Các module/thành phần chính và vai trò từng cái. 3. Điểm khởi đầu (entry point) của ứng dụng. 4. Luồng dữ liệu tổng quát: request đi từ đâu, qua những tầng nào. 5. Kết nối database / API ngoài như thế nào. Với mỗi mục, trích dẫn file tương ứng. Chỉ dựa trên code thực có, không suy đoán thiếu căn cứ.
AI nhận diện framework phổ biến rất tốt; nhưng với codebase tự chế hoặc đặt tên module khó hiểu, nó có thể đoán sai vai trò. Mở vài file nó trích để đối chiếu. Nếu mơ hồ, hỏi thẳng: 'module payment thực sự làm gì, dẫn chứng code cụ thể'.
Hiểu chính xác 1 chức năng chạy thế nào qua các tầng — để biết test ở đâu, chỗ nào validate.
Trace giúp tôi luồng [TÊN CHỨC NĂNG, vd: đăng nhập] trong codebase này, theo đúng thứ tự thực thi: từ khi người dùng gửi request → qua các tầng (route → middleware → controller → service → model) → tới database và response trả về. Với mỗi bước ghi rõ file + hàm xử lý. Chỉ ra chỗ có: validate dữ liệu, kiểm tra phân quyền, xử lý lỗi. Nếu luồng rẽ nhánh (vd sai mật khẩu, tài khoản bị khóa), mô tả từng nhánh.
Phần cực giá trị cho QA — nhưng AI dễ bỏ sót nhánh phụ (middleware ẩn, xử lý lỗi ngầm). Hỏi thêm: 'còn middleware hay nhánh xử lý lỗi nào tác động luồng này không?'. Với code bất đồng bộ (async, queue, event) AI dễ trace thiếu — cảnh giác đặc biệt với luồng có hàng đợi/webhook.
Để AI chỉ ra chỗ logic phức tạp / dễ lỗi → ưu tiên test trọng tâm, không test dàn trải.
Với góc nhìn QA, đọc codebase và liệt kê các ĐIỂM RỦI RO nên test kỹ: 1. Logic nghiệp vụ phức tạp (nhiều điều kiện rẽ nhánh, tính toán). 2. Chỗ validate dữ liệu yếu hoặc thiếu. 3. Xử lý tiền / số lượng / ngày giờ / múi giờ — dễ sai. 4. Phân quyền & bảo mật. 5. Code path có vẻ ít hoặc không có test tự động. Mỗi điểm ghi: file + lý do rủi ro + gợi ý loại test nên làm. Chỉ dựa trên code thực có, không bịa.
AI chỉ ra 'ứng viên rủi ro' dựa trên pattern code, KHÔNG chạy thật nên có thể báo nhầm (false positive) hoặc bỏ sót rủi ro nghiệp vụ mà chỉ người hiểu domain mới biết. Dùng làm gợi ý khởi đầu, kết hợp hiểu biết nghiệp vụ của bạn. Điểm phân quyền/bảo mật nó nêu thì nên kiểm ngay — thường rất đáng giá.
Đọc ngược các quy tắc nghiệp vụ ẩn trong code thành bảng — phân biệt rule thật vs bug, làm đầu vào hỏi BA.
Với góc nhìn QA, đọc codebase và TRÍCH các quy tắc nghiệp vụ (business rules) đang cài trong code. Trả về bảng các cột: ID | Quy tắc nghiệp vụ | Vị trí trong code (file:dòng) | Loại (Tính toán/Ngưỡng-điều kiện/Validate/Phân quyền/Trạng thái) | Nguồn (Code/Config/DB/Flag) | Trạng thái (mặc định 'Cần hỏi BA') | Câu hỏi cho BA. Bắt buộc: - Tách riêng mỗi con số 'magic' (ngưỡng, phí, số ngày) thành 1 rule cần hỏi vì sao. - Đánh dấu 'Nghi là bug' cho chỗ trông sai (thiếu kiểm phân quyền, validate hở). - Chỉ mô tả hành vi code thực có; 'vì sao' không chắc thì ghi 'cần xác nhận', đừng bịa.
AI mô tả ĐÚNG hành vi code (kiểm được qua file:dòng) nhưng dễ BỊA 'lý do nghiệp vụ'. Coi mọi rule là 'Cần hỏi BA' đến khi business xác nhận — vì code có thể đang chứa bug trông như rule. Nhớ đối chiếu thêm config/DB/feature flag: nhiều rule KHÔNG nằm trong code mà ở dữ liệu/cấu hình.
📌 Tóm lại
Khi dự án không có tài liệu, mã nguồn chính là tài liệu đáng tin cậy nhất — và Claude Code giúp bạn đọc nó nhanh hơn nhiều lần. Lưu ý: AI đọc code ở dạng tĩnh, không thực thi — nó giúp bạn HIỂU để xác định phạm vi test, chứ không thay thế việc kiểm thử thực tế. Hãy kết hợp với bài 'Phân tích requirement' (khi có tài liệu), luôn mở đúng tệp AI trích dẫn để kiểm chứng, và xác nhận chính sách bảo mật của công ty trước khi clone mã nguồn thật.