← Tất cả bài viết
19.08.2026

Test-Fixing: khắc phục hàng loạt test lỗi một cách có hệ thống, theo nhóm và đúng thứ tự ưu tiên

Test-Fixing: khắc phục hàng loạt test lỗi một cách có hệ thống, theo nhóm và đúng thứ tự ưu tiên
Nguyễn Ngọc Hải 7 phút đọc

Vì sao cần skill này

Cảnh quen thuộc với dân lập trình: bạn vừa refactor một đoạn code, chạy bộ test — và 15 test đỏ lòm hiện ra cùng lúc. Nhìn vào đó dễ hoảng, và phản xạ thường là lao vào sửa test đầu tiên trong danh sách, rồi test tiếp theo… một cách ngẫu nhiên. Kết quả: mất nhiều thời gian, dễ sửa chỗ này lại làm hỏng chỗ khác, và không chắc mình đã xử đúng gốc rễ hay chỉ đang "dập lửa".

Thực ra, phần lớn các test đỏ đó không phải 15 vấn đề riêng biệt — chúng thường quy về vài nguyên nhân gốc. Test-Fixing giải quyết đúng chỗ đó: nó gom các lỗi thành nhóm theo nguyên nhân, rồi sửa theo thứ tự ưu tiên hợp lý — thay vì mò từng cái. Nhờ vậy, một "rừng test đỏ" được xử lý gọn gàng và có hệ thống.

Skill này làm được gì

Skill dạy Claude một quy trình sửa test bài bản:

1. Chạy toàn bộ test để "chụp" bức tranh. Xác định tổng số test lỗi, các loại lỗi, và những file/mô-đun bị ảnh hưởng.

2. Gom nhóm lỗi thông minh. Thay vì nhìn 15 lỗi rời rạc, skill nhóm chúng lại theo:

  • Loại lỗi (lỗi import, lỗi thuộc tính, lỗi so sánh kết quả…),
  • File/mô-đun gây ra nhiều test lỗi,
  • Nguyên nhân gốc chung (thiếu thư viện, một hàm đổi tên, một thay đổi API…).

3. Xếp ưu tiên đúng. Sửa nhóm ảnh hưởng nhiều test nhất trước, và theo thứ tự phụ thuộc — sửa phần "nền" trước phần "chức năng". Cụ thể:

  • Hạ tầng trước (lỗi import, thiếu thư viện, cấu hình),
  • Rồi tới thay đổi API (đổi chữ ký hàm, đổi tên, sắp xếp lại mô-đun),
  • Cuối cùng là lỗi logic (sai kết quả, sai nghiệp vụ, trường hợp biên).

Lý do: rất nhiều test đỏ chỉ là "hệ quả dây chuyền" của một lỗi hạ tầng — sửa cái gốc đó xong, hàng loạt test tự xanh trở lại.

4. Sửa từng nhóm một cách kỷ luật. Với mỗi nhóm (bắt đầu từ nhóm tác động lớn nhất): tìm nguyên nhân gốc (đọc code, xem git diff các thay đổi gần đây) → sửa tối thiểu, tập trung theo quy ước dự án → chạy lại đúng nhóm test đó để xác minh → chỉ khi nhóm này xanh mới sang nhóm tiếp theo.

5. Kiểm tra cuối cùng. Chạy lại toàn bộ bộ test, đảm bảo không phát sinh lỗi mới (regression) và độ phủ test vẫn nguyên.

Tinh thần xuyên suốt: sửa một nhóm một, luôn xác minh trước khi đi tiếp, và giữ thay đổi tối thiểu — để không biến việc sửa test thành một mớ hỗn loạn mới.

Giải quyết vấn đề gì — cho ai ở VNPAY

Giá trị trực tiếp — cho lập trình viên và QA của Khối Công nghệ. Khi một thay đổi làm cả loạt test đỏ (rất hay xảy ra sau refactor, nâng cấp thư viện, hay đổi API), skill này giúp xử lý có hệ thống thay vì mò mẫm: nhóm lỗi, ưu tiên đúng, sửa gốc rễ, xác minh từng bước. Với môi trường fintech — nơi bộ test xanh và pipeline CI ổn định là điều kiện phát hành an toàn — đây là công cụ tiết kiệm thời gian và giảm rủi ro thật.

Skill này ghép rất tự nhiên với hai skill cùng "họ" đã giới thiệu trên AI Hub: Condition-Based Waiting (làm cho test hết "chập chờn") và Verification Before Completion (buộc kiểm chứng trước khi tuyên bố xong). Bộ ba này tạo nên một nếp làm việc kỷ luật với test khi dùng AI để code.

Giá trị gián tiếp — cho PM & P&T. Bạn không sửa test, nhưng nguyên lý của skill là một tư duy xử lý-hàng-loạt đáng học: khi đối mặt với một đống vấn đề cùng lúc (nhiều lỗi, nhiều sự cố, nhiều phản hồi), đừng xử ngẫu nhiên — hãy gom nhóm theo nguyên nhân gốc, ưu tiên cái tác động lớn nhất, sửa phần nền trước, và xác nhận xong mới sang việc tiếp. Đây là kỷ luật triage áp được cho quản lý sự cố, xử lý tồn đọng, hay rà một loạt vấn đề trong dự án.

Đặt kỳ vọng đúng

  • Đây là skill kỹ thuật, phát huy khi bạn đang làm việc với một codebase có bộ test tự động.
  • Ví dụ/lệnh theo Python (pytest). Skill dùng các lệnh như make test, uv run pytest — cách tiếp cận (gom nhóm, ưu tiên, sửa gốc, xác minh) áp cho mọi ngôn ngữ, nhưng lệnh cụ thể phải đổi theo stack của bạn (Java/JUnit, JS/Jest…).
  • Nó sửa gốc, không "vá" cho qua. Skill hướng tới tìm nguyên nhân gốc và sửa tối thiểu — không phải chỉnh test cho pass bằng mọi giá. (Đây là điều tốt, và cũng cần bạn giám sát để đảm bảo không "sửa test để giấu lỗi thật".)

Điều kiện để dùng

  • Hợp nhất khi chạy trong Claude Code, làm việc trực tiếp trong codebase có bộ test.
  • Cần gói Claude hỗ trợ Skills và code/agent (Pro, Max, Team hoặc Enterprise).

Hướng dẫn upload skill lên Claude Desktop

Sau khi tải file skill về, làm theo 3 bước:

Bước 1 — Mở Customize. Trong giao diện Claude Desktop, bấm "Customize" ở góc trên bên trái.

Bước 2 — Mở menu Add. Trong màn hình Customize, bấm vào dropdown của phần "Add" ở góc trên bên phải.

Bước 3 — Upload skill. Chọn "Upload skill", rồi trỏ tới file skill của bạn.

Lưu ý về định dạng file: skill cần ở dạng thư mục chứa SKILL.md. Nếu tải về từ site nội bộ dưới dạng .zip, cứ upload file .zip đó — bên trong đã là đúng cấu trúc skill.

Upload xong, skill nằm sẵn trong danh sách kỹ năng và Claude tự biết khi nào cần gọi.

Các cách gọi skill lên

1. Để Claude tự nhận diện (khuyên dùng). Mô tả tình huống, Claude sẽ khớp với skill:

"Bộ test đang lỗi sau khi tôi refactor — sửa cho hết giúp tôi."

"Chạy test và làm cho tất cả pass."

2. Gọi đích danh:

"Dùng test-fixing để xử lý các test đang fail trong dự án này."

3. Yêu cầu tiếp cận theo nhóm:

"Chạy test, gom các lỗi theo nguyên nhân, rồi sửa lần lượt từ nhóm ảnh hưởng nhiều nhất — xác minh từng nhóm trước khi sang nhóm khác."

Gợi ý dùng hiệu quả: hãy để skill gom nhóm và nêu thứ tự ưu tiên trước, bạn xem qua rồi mới cho sửa — đó là lúc bạn kiểm soát được nó đang xử đúng gốc, không phải "vá" cho test xanh.

Lưu ý cho môi trường VNPAY

  • Skill này thao tác trên code/test, không truy cập dữ liệu nhạy cảm. Tuy vậy, khi đưa mã nguồn nội bộ cho Claude, hãy theo quy định dùng công cụ AI và chính sách mã nguồn của VNPAY.
  • Giám sát để không "sửa test nhằm giấu lỗi thật". Với hệ thống liên quan giao dịch/tài chính, mọi thay đổi vẫn cần người có chuyên môn duyệt trước khi vào vận hành.

Tóm lại

Test-Fixing biến việc đối mặt với "một rừng test đỏ" từ hoảng loạn thành có hệ thống: gom nhóm theo nguyên nhân, ưu tiên cái tác động lớn nhất, sửa phần nền trước, và xác minh từng bước. Với đội lập trình và QA, đây là công cụ xử lý test lỗi nhanh và gọn — nhất là khi ghép cùng Condition-Based Waiting và Verification Before Completion thành một nếp làm việc kỷ luật. Với phần còn lại của phòng, thứ đáng mang đi là một tư duy triage rất thực dụng: khi có cả đống việc lỗi cùng lúc, hãy phân nhóm và xử theo ưu tiên, thay vì dập lửa lung tung.


Download file:


References

  1. Anthropic Agent Skills — Claude Platform Docs. Available at: https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview (Accessed: 19/08/2026).
  2. Skill nguồn: test-fixing (tải từ GitHub).