3.0.0-beta.15). Tính năng có thể thay đổi trước bản stable tiếp theo.Chuyển sang stable →Skill
Test và cải thiện suite với ak:test
Chạy validation cho code hoặc UI, tạo hay tối ưu test suite, audit test yếu và nhận bằng chứng có cấu trúc về kết quả.
Dùng ak:test để biến một thay đổi hoặc câu hỏi quality thành bằng chứng
validation mới. Skill có thể chạy unit, integration, end-to-end, build,
coverage và browser-based UI check. Skill cũng có thể tạo test suite bao phủ,
tối ưu suite cùng chi phí CI hoặc audit suite để tìm test yếu. Audit chỉ báo cáo
trừ khi việc sửa suite được cấp quyền riêng. Các rule test-principles của Skill
chi phối scope, layer, environment và cách thực thi cho mọi operation; hãy nạp
chúng trước khi thiết kế hoặc thay đổi test.
Chọn ak:test khi validation là outcome
Dùng ak:test khi
- Bạn cần bằng chứng test tập trung hoặc rộng sau implementation hay bug repair.
- Project cần type, lint, build hoặc coverage validation trước handoff.
- Website cần kiểm tra visual, responsive, accessibility, form hoặc console.
- Bạn cần QA report có cấu trúc, test suite mới, tối ưu CI an toàn hơn hoặc test audit dựa trên bằng chứng.
Chọn workflow khác khi
- Test thất bại cần diagnosis root cause và repair. Dùng
ak:debug, sau đóak:fix. - Bạn muốn finding về production risk và maintainability từ diff. Dùng
ak:code-review. - Bạn muốn implementation cùng testing và review stage mặc định. Dùng
ak:cook. - Bạn cần thiết kế delivery plan thay vì chạy validation. Dùng
ak:plan.
Chuẩn bị bề mặt test
Trước khi bắt đầu:
- Hoàn thành Làm quen và xác nhận Engineer Kit đã được cài cho đúng runtime cùng scope bạn đang dùng.
- Mở project và cung cấp thay đổi, requirement, khu vực lỗi hoặc test scope sẽ quyết định command.
- Bảo đảm test runner, dependency, fixture, environment variable và build tooling của project khả dụng.
- Với UI testing, cung cấp URL và tự khởi động application cần thiết hoặc cấp quyền rõ cho workflow khởi động application.
- Với protected UI route, chọn test authentication native của project hoặc duyệt dùng Chrome profile thật và hoàn tất manual login cần thiết.
| Runtime | Cách gọi | Ranh giới khả dụng |
|---|---|---|
| Claude Code | /ak:test ... | Phân phối native là mặc định; phân phối plugin rõ ràng cũng được hỗ trợ. |
| Cursor | /ak:test ... | Cách gọi bằng slash đã được người dùng xác minh. Điều này không thiết lập runtime parity đầy đủ. |
| Codex | $ak:test ... | Skill dùng discovery native của Codex; không suy ra parity rộng hơn cho Hook và statusline Engineer. |
Chọn operation
Nếu bạn cung cấp scope, Skill tiếp tục với code validation liên quan. Khi không
có argument, Skill hỏi operation cần chạy. Dùng ui <url> để chọn trực tiếp
browser workflow hoặc bắt đầu bằng create, optimize hay audit để làm việc
trên chính test suite. Mọi thay đổi suite, đề xuất optimize hoặc audit, hay
QA report đều phải nhất quán với các rule test-principles.
/ak:test "Validate the session expiry change: run typecheck, the focused session tests, affected integration tests, and coverage for the changed module."/ak:test ui http://localhost:3000/settings/ak:test "Validate the session expiry change: run typecheck, the focused session tests, affected integration tests, and coverage for the changed module."/ak:test ui http://localhost:3000/settings$ak:test "Validate the session expiry change: run typecheck, the focused session tests, affected integration tests, and coverage for the changed module."$ak:test ui http://localhost:3000/settings| Operation | Nội dung bao phủ | Input hữu ích |
|---|---|---|
| Test principles | Scope, layer, environment, chạy tuần tự hay song song, test đắt và triage failure | Chọn những gì cần test, một test chậm hoặc song song có đáng giữ, triage failure, hoặc đối chiếu test với specification đã đổi |
| Kiểm thử code | Type hoặc syntax check, unit, integration, end-to-end, coverage và production build | Behavior đã đổi, module bị ảnh hưởng, command bắt buộc, threshold project và giới hạn thời gian |
ui <url> | Page discovery, screenshot, responsive behavior, accessibility, form, console error và user flow đã chọn | URL, state mong đợi, viewport, cách auth, ranh giới data safety và browser availability |
create [scope] | Scout code cùng docs, lập coverage matrix, rồi tạo hoặc mở rộng test suite | Feature hoặc workflow cần bao phủ, framework hiện có, critical path và threshold project |
optimize [scope] | Phân tích CI/CD, git history, code cùng docs, rồi giảm thời gian và chi phí test mà không mất coverage | Job chậm, bằng chứng CI timing, group quan trọng về safety và workflow change được phép |
audit [scope] | Tìm test deceptive, disabled, unfinished, ineffective, redundant, outdated hoặc unsafe và báo cáo finding đã xếp hạng kèm đề xuất sửa | Scope suite hoặc CI, lo ngại về độ tin cậy, skip đã biết và path nhạy cảm về security |
Với create, optimize và audit, thêm --advice để dùng checkpoint tư vấn
của kongming hoặc --interview để duyệt từng proposed change group trước khi
edit. --ultra chạy năm analysis candidate read-only: create và optimize
chọn nguyên vẹn một design thắng cuộc, còn audit trả về union finding đã được
xác minh bằng bằng chứng và deduplicate. Năm candidate slot ban đầu được dispatch
trong một parallel wave; slot thất bại được retry một lần. Nếu không có khả năng
dispatch song song read-only hoặc sau retry vẫn có dưới năm kết quả usable, lần
chạy fail closed. Khi không có --interview, create và optimize áp dụng trực
tiếp thay đổi trong scope và báo cáo đầy đủ change list; bỏ flag không cấp quyền
sửa audit hay retirement test.
/ak:test create "Cover the account recovery workflow" --interview
/ak:test optimize "Reduce pull-request CI time" --advice
/ak:test audit "Check skipped and ineffective authorization tests" --ultraCommand và threshold do project định nghĩa được ưu tiên. Khi project không định nghĩa coverage threshold, Skill báo coverage thực tế và các critical behavior còn thiếu test; Skill không tự đặt ra gate phần trăm. Tái dùng test hiện có đủ bảo vệ; refactor đã được bao phủ có thể không thêm test mới.
Trước khi thêm test hoặc chạy check rộng, nêu contract được chấp nhận cùng nguồn thẩm quyền, risk bị ảnh hưởng, check hiện có phù hợp và gap bằng chứng còn lại. Expectation suy ra chỉ là giả thuyết cho tới khi được đối chiếu với nguồn đó. Chỉ thêm test cho gap bảo vệ cụ thể; chứng minh failure dự kiến khi an toàn và khả thi, hoặc báo rõ chưa có bằng chứng đó.
Kết hợp, hạ layer hoặc retirement test cần lifecycle review về contract được bảo vệ, lịch sử regression, chi phí đã đo và bảo vệ còn lại. Riêng overlap của mutation kill được lấy mẫu hay line coverage không đổi không đủ để retirement. Review toàn bộ suite còn lại, giữ test bắt buộc cùng mandatory gate và có quyền sửa suite cho retirement. Sau thay đổi được cấp quyền, chạy lại contract bị ảnh hưởng và cùng các fault lấy mẫu hợp lệ trên suite còn lại, rồi chạy gate bắt buộc.
Dùng impact selection và các mode semantic tùy chọn
Với repository có test-impact manifest đáng tin cậy, optimize dùng
ak test optimize --base <ref> --json để lập kế hoạch chọn các nhóm check theo
thứ hạng một cách tất định, kèm lý do chọn hoặc bỏ qua. Việc lập kế hoạch là
read-only. --run thực thi các lệnh thuộc repository đã được chọn, và đây không
phải sandbox; --output <new-file> lưu kết quả cục bộ. Khi không chắc chắn, phạm
vi chọn được mở rộng về phía full suite đã khai báo, các nhóm bắt buộc và policy
check vẫn phải chạy, và policy mapping chưa được giải quyết sẽ chặn việc thực
thi. Đường này không liên hệ provider semantic nào.
Các mode semantic chỉ chạy khi opt in, và Skill không bao giờ suy ra consent từ
một key có sẵn trong môi trường. Với grant tường minh cho consumer test-impact,
--semantic shadow giữ nguyên baseline có hiệu lực, còn --semantic advisory
chỉ có thể thêm check hoặc mở rộng phạm vi chọn. Mode semantic đã được cấp quyền
có thể gửi dữ kiện ngắn gọn tới provider bên ngoài và phát sinh chi phí.
ak test classify-e2e cần grant riêng và không bao giờ thay đổi lịch chạy E2E
hay class manifest. Với UI testing, một thử nghiệm shadow
ak eval ui được yêu cầu, có grant tường minh ui-regression, có
thể thêm tín hiệu regression từ bằng chứng đã quan sát; nó không bao giờ biến một
lỗi thành đạt hay thay đổi kết quả UI test.
Agentic E2E tùy chọn qua tester-army/e2e chỉ dành cho project đã dùng engine đó
hoặc khi bạn yêu cầu setup rõ ràng. Điều này không cấp quyền cài đặt, truy cập
provider, gọi model hay telemetry; UI check native thông thường không cần model.
Kiểm tra capability của engine đã cài trước khi chạy. Cache replay action, không
phải pass: chạy lại assertion outcome chính xác trên app hiện tại.
Riêng --strict-cache không bảo đảm không gọi model. Nếu cấm model call, dùng cơ
chế cưỡng chế được xác minh độc lập cho version đã chọn hoặc giữ native route.
Báo replay/live execution thực tế và exploration chưa hoàn tất; không có finding
hay cache hit không xác minh release claim chưa được thực thi.
Hiểu điều gì xảy ra trong một lần chạy
Operation mặc định và ui theo validation flow này:
- Skill xác định scope. Skill nối contract được chấp nhận, nguồn thẩm quyền và risk với check nhỏ nhất hữu ích ở layer thấp nhất đáng tin, rồi nêu gap bằng chứng trước khi thêm việc.
- Skill chạy check liên quan hẹp nhất trước. Type, syntax, lint hoặc build check chạy khi chứng minh contract bị ảnh hưởng; pre-flight gate do repository yêu cầu vẫn bắt buộc.
- Skill chạy suite đã chọn. Skill bắt đầu tập trung, mở rộng sang integration hoặc end-to-end khi blast radius yêu cầu và giữ lại test bị skip, flaky, chậm hoặc thất bại.
- Skill đo coverage khi liên quan. Skill báo line, branch và function coverage, rồi chỉ ra tệp, error handler cùng edge-case branch chưa được phủ thay vì dựa vào một phần trăm.
- Skill xác minh build. Skill chạy production build phù hợp project khi build compatibility thuộc scope được yêu cầu.
- Skill kiểm tra UI khi được chọn. Skill đặt charter hẹp với route, behavior mong đợi, quyền account/data và check bắt buộc. Skill dùng browser cô lập, Chrome nhận biết profile đã được cấp quyền hoặc browser test native, mặc định tuần tự; chỉ target độc lập, cô lập mới phù hợp để delegate. Browser check chỉ chứng minh scope quan sát được từ browser, không phải coverage backend. Assert chính xác identity, permission, count, side effect và control/path được claim; route khác không cứu được control hỏng. Chỉ chụp screenshot khi liên quan tới visual claim.
- Skill tạo report. Skill sắp xếp kết quả, failure, coverage, build status, critical issue, recommendation cùng câu hỏi chưa giải quyết trong report location được cấu hình.
Kiểm soát effect của test
Test thất bại vẫn phải được giữ là thất bại
Skill không nới assertion, thêm mock không trung thực, skip failure hoặc thao túng coverage để build trông xanh. Skill báo lỗi và chuyển root-cause work sang debugging cùng fixing.
- Test command có thể tạo coverage file, screenshot, build output, temporary data hoặc browser state. Hãy nêu artifact location, giới hạn execution/retry và yêu cầu cleanup được phép; chỉ dọn resource do lần chạy này sở hữu.
- Mutation proof có chọn lọc, không phải yêu cầu cho execution thường lệ hay CI. Chỉ fault injection có giới hạn trong disposable copy do lần chạy sở hữu, không trên active worktree. Ghi source identity, restore copy chính xác cả khi fail, xác minh restoration và chạy lại behavior đã restore. Chỉ target assertion failure là semantic kill; compilation, setup, infrastructure hay provider failure là bằng chứng invalid hoặc inconclusive, không phải kill.
- Chạy suite trên test environment an toàn. UI flow và end-to-end test có thể submit form hoặc mutate data nếu application hoạt động như vậy.
- Test bằng Chrome profile thật có thể truy cập authenticated session của người dùng. Chỉ dùng khi state đó cần thiết và bind đúng tab nhận biết profile.
- URL bên ngoài, hosted browser, performance service hoặc environment giống production có thể phát sinh chi phí provider hay vận hành và cần quyền riêng.
- Operation mặc định và
uibáo product defect mà không triển khai fix. Sửa audit cần quyền sửa suite riêng; root-cause work của product vẫn thuộcak:debugvàak:fix.
Xác minh report
Kết quả hoàn chỉnh của operation mặc định hoặc ui nên cung cấp:
- Scope chính xác cùng mọi command đã chạy.
- Contract được chấp nhận và nguồn thẩm quyền, source/input fingerprint trước và sau execution, runner/configuration, environment cùng receipt hoặc artifact.
- Tổng số test pass, fail và skip cùng duration đã đo; giữ mọi attempt thất bại cùng raw status ngay cả khi retry pass.
- Tên đầy đủ của test thất bại, error output thiết yếu và stack trace liên quan.
- Giá trị coverage cùng gap cụ thể khi coverage được yêu cầu.
- Build status, warning và dependency issue khi build verification áp dụng.
- Trang cùng flow UI đã test, đường dẫn screenshot, console finding, viewport và browser check bị skip.
- Critical issue cùng recommendation được ưu tiên.
- Giới hạn environment, authentication hoặc bằng chứng được liệt kê rõ.
- Thay đổi suite đã áp dụng so với đề xuất, quyền thực hiện và bảo vệ còn lại. Chỉ so chi phí khi source task, environment, toolchain và cache condition tương ứng: gồm setup, generation/review, runner/model call, token, CI minute và device resource đã quan sát khi có. Metric chưa biết vẫn là unknown; elapsed time không phải CI minute bị tính phí, và ít test hay token hơn riêng lẻ không chứng minh tiết kiệm.
Chỉ coi lần chạy pass khi các check được yêu cầu báo zero failure, build exit thành công khi nằm trong scope và threshold project được đáp ứng. Check một phần hoặc bị skip chỉ chứng minh đúng bề mặt thực sự đã chạy.
Mandatory gate bị skip hoặc không khả dụng nghĩa là chưa đủ bằng chứng. Chỉ tái dùng receipt khi scope, source mới, dirty/untracked input liên quan, configuration và environment khớp; riêng commit SHA không đủ. Receipt invalid, stale hoặc thuộc scope khác cần chạy lại check cần thiết, không lặp mù quáng toàn suite. Input cuối đã đổi hoặc chưa xác minh ngăn claim pass cho source cuối; báo state đã test và gap còn lại.
Xử lý sự cố hoặc tiếp tục
| Triệu chứng | Bước tiếp theo an toàn |
|---|---|
| Không cung cấp test scope | Chọn code testing hoặc ui, rồi nêu thay đổi, requirement hoặc URL. |
| Typecheck fail trước test | Giữ compiler output và chuyển lỗi sang diagnosis; đừng skip pre-flight để tới test sau. |
| Test flaky | Lặp suite bị ảnh hưởng nhỏ nhất, kiểm tra timing cùng shared state và báo nondeterminism thay vì lấy trung bình. |
| Coverage không đạt target | Xác định critical path chưa phủ và thêm test qua implementation workflow; đừng test dòng không liên quan chỉ để lấy phần trăm. |
| Protected route chuyển tới login | Dùng auth setup native của project hoặc Chrome path nhận biết profile sau phê duyệt rõ và manual login. |
| Browser tool không khả dụng | Chạy UI test native của project nếu có và báo screenshot, interaction hoặc accessibility check còn chưa xác minh. |
| Runtime không nhận diện Skill | Xác nhận target cùng scope, mở runtime session mới, rồi làm theo Runtime không tìm thấy Skill hoặc Agent. |
Bàn giao failure cho ak:debug và ak:fix, hoặc tiếp tục với
ak:code-review sau khi validation được yêu cầu pass.
Biết các giới hạn hiện tại
- Skill bị giới hạn bởi test runner, browser, credential, URL và environment có trong session hiện tại.
- Phần trăm coverage không chứng minh behavior ngoài assertion hoặc runtime condition đã chạy.
- Visual screenshot không thay interaction, accessibility, console hoặc test native có thể lặp lại của project.
- Cách gọi Cursor bằng slash là bằng chứng do người dùng xác minh, không phải chứng minh runtime parity đầy đủ.
- Operation khả dụng phụ thuộc vào release Engineer Kit đã cài.
Sửa lỗi đã chứng minh với ak:fix
Scout và chẩn đoán một lỗi cụ thể, triển khai repair nhỏ nhất đúng nguyên nhân và chứng minh repair không có side effect ẩn.
Thiết kế và chạy hệ thống web test với ak:web-testing
Áp dụng pattern Playwright, Vitest, k6, accessibility, performance, visual, API, contract và test data với ranh giới runtime cùng environment rõ ràng.