Trang chủ · Blog về kiểm thử ·
AI trong kiểm thử phần mềm năm 2026: hướng dẫn thực hành cho QA
AI có thể rút ngắn thời gian chuẩn bị, nhưng không chịu trách nhiệm cho oracle, dữ liệu test hay quyết định phát hành. Quy trình dưới đây dùng mô hình để tìm phương án, còn QA kiểm chứng sự thật và lưu bằng chứng có thể tái hiện.
- Xác định nhiệm vụ và oracle
- Loại bí mật, cung cấp ngữ cảnh
- Tạo bản nháp có cấu trúc
- Kiểm chứng và lưu evidence
| Công việc | AI có thể tạo nháp | QA phải kiểm tra |
|---|---|---|
| Yêu cầu | Câu hỏi, mâu thuẫn, rủi ro | Phiên bản yêu cầu và quyết định của owner |
| Test design | Lớp dữ liệu, biên, tổ hợp | Độ phủ mô hình và ưu tiên rủi ro |
| API và SQL | Request hoặc assertion nháp | Schema, ngữ nghĩa và kết quả chạy |
| Automation | Khung test và lựa chọn locator | Độ ổn định, cô lập và chẩn đoán |
| Bug report | Cấu trúc và câu chữ ngắn gọn | Sự thật, expected result và che dữ liệu |
1. Xác định vai trò AI trước khi viết prompt
LLM dự đoán văn bản; nó không quan sát môi trường test và không biết phiên bản yêu cầu mới nhất. Hãy giao một nhiệm vụ giới hạn: thu thập câu hỏi cho BA, đề xuất lớp dữ liệu, giải thích code, tạo SQL nháp hoặc phản biện bộ test hiện có. “Hãy test form này” quá rộng và thường chỉ tạo checklist chung có vẻ hợp lý.
Trước tiên hãy ghi oracle: acceptance criterion, OpenAPI, quy tắc tính toán, schema database hoặc quyết định sản phẩm. Khi chưa có oracle, mô hình không được tự tạo expected behavior; đầu ra nên là câu hỏi và rủi ro cần con người quyết định.
- Mục tiêu: quyết định nào cần đưa ra?
- Ngữ cảnh: quy tắc nào đã biết?
- Giới hạn: mô hình không thể xác nhận gì?
- Định dạng: bảng, danh sách, SQL hay test case?
- Kiểm chứng: nguồn hoặc lần chạy nào chứng minh kết quả?
Bài thực hành
Với yêu cầu “người dùng có thể hủy đơn”, hãy viết năm câu hỏi phải được trả lời trước khi xác định expected behavior.
2. Cung cấp ngữ cảnh, ràng buộc và định dạng đầu ra
Prompt tốt giống một task giao cho đồng nghiệp. Nêu hệ thống, role người dùng, business rule, input, state đã biết và định dạng cần nhận. Yêu cầu mô hình tách fact khỏi assumption và liệt kê thông tin thiếu. Cách này giảm nội dung chung chung và giúp review được.
Không nên yêu cầu một trăm test ngay. Trước hết hãy hỏi về rủi ro và equivalence class, sau đó mở rộng nhánh quan trọng. Với chức năng phức tạp, dùng hai lượt: generator đề xuất bộ test, critic tìm trùng lặp, lỗ hổng và expected không có căn cứ. Con người vẫn duyệt kết quả cuối.
Bối cảnh: CRM. Manager chuyển lead thành customer. Đã biết: email customer là duy nhất; request có thể retry sau timeout. Nhiệm vụ: tạo bảng rủi ro và test idea. Mỗi dòng gồm condition, action, observable result, nguồn oracle. Không tự tạo rule. Đưa thông tin thiếu vào mục Questions.
Bài thực hành
Viết lại “cho tôi negative test của login” để có role, ràng buộc password, lockout, định dạng đầu ra và nguồn expected result.
3. Dùng AI cho test design, không phải để tăng số lượng
Mô hình hữu ích khi parameter và rule rõ ràng: biên quantity, order state, role và payment method. Hãy yêu cầu equivalence class, decision table hoặc state model trước khi tạo test case. Khi đó bạn thấy logic rút gọn thay vì nhận hai mươi câu gần giống nhau.
Tự kiểm tra coverage. Giá trị phải bao quanh cả hai biên, state test phải có transition hợp lệ và bị cấm, còn pairwise phải thật sự phủ các cặp. Cẩn thận với giá trị mô hình gọi là “hiển nhiên” vì nó có thể mượn quy ước từ sản phẩm khác.
Parameters: role={manager,lead}; status={new,won,lost}; action={view,edit,convert}.
Tạo decision table và đánh dấu tổ hợp bị cấm.
Sau đó đề xuất bộ test tối thiểu và nêu rule được phủ bởi từng test.
Bài thực hành
Mô hình hóa amount, currency, balance và account status cho chuyển tiền; yêu cầu AI lập bảng rồi tìm ít nhất hai assumption không có căn cứ.
4. Chạy API, SQL và automation artifact do AI tạo
Code nhìn hợp lý có thể gọi cột không tồn tại, biến LEFT JOIN thành INNER JOIN hoặc chỉ assert status 200. Hãy cung cấp schema và contract tối thiểu trước khi tạo. Sau đó đọc query, chạy với dữ liệu kiểm soát và tính expected trước. Dùng database test và transaction cho SQL thay đổi dữ liệu.
Với automation, kiểm tra locator, wait, cleanup và diagnostic artifact. AI thường viết sleep cố định, chuỗi test phụ thuộc và CSS selector dễ vỡ. Test hữu ích phải ổn định qua nhiều lần chạy, fail đúng lý do khi cố tình tạo lỗi và để lại trace, request hoặc screenshot.
-- Dự đoán trước: customer 3 và 4 SELECT c.id FROM customers c LEFT JOIN orders o ON o.customer_id = c.id WHERE o.id IS NULL ORDER BY c.id; -- Thêm order cho customer 3 và chỉ còn customer 4
Bài thực hành
Tạo kiểm tra POST /orders rồi đánh dấu assertion cho transport, schema, business value, persistence và side effect. Bổ sung tầng còn thiếu.
5. Không đưa secret và dữ liệu người dùng vào prompt
Production log, token, cookie, private URL, dữ liệu cá nhân và code nội bộ có thể vi phạm chính sách hoặc hợp đồng. Hãy giảm context: thay tên và email bằng dữ liệu synthetic, che credential và chỉ giữ field request/response cần thiết. Xóa tên chưa đủ nếu các field còn lại vẫn nhận diện được người.
Xác nhận model và mode nào được phép, dữ liệu lưu thế nào và có thể tắt training hay không. Đôi khi lựa chọn an toàn là ví dụ synthetic cục bộ thay vì prompt chứa source data. Instruction nằm trong log và document cũng là input không đáng tin vì prompt injection có thể đi qua chúng.
- Đã xóa Bearer token, cookie và API key.
- PII đã thay bằng dữ liệu synthetic.
- Địa chỉ và identifier nội bộ đã khái quát.
- Chỉ chia sẻ đoạn tối thiểu, không gửi dump.
- Việc dùng model tuân thủ policy của team.
Bài thực hành
Tạo sanitization checklist cho payment log: field nào xóa, thay, tổng hợp hoặc giữ lại để điều tra.
6. Chấm đầu ra bằng rubric và lưu provenance
Với công việc lặp lại, dùng rubric gồm correctness theo nguồn, risk coverage, không bịa, khả năng chạy, safety và diagnostics. “Trông ổn” không phát hiện status code sai hay thiếu authorization boundary. Điểm còn tranh luận phải được đánh dấu để hỏi, không biến thành test với expected tự tạo.
Lưu phiên bản yêu cầu, prompt quan trọng, tool hoặc model, ngày, kết quả đã chỉnh và cách kiểm chứng. Nhờ vậy có thể bảo trì test sau khi sản phẩm đổi. Không xuất bản raw AI text thành tài liệu team khi chưa có owner và review.
Correctness: mỗi expected có nguồn oracle Coverage: role, state, boundary, integration, error Evidence: action chạy được, result quan sát được Safety: không có secret hoặc PII Maintainability: không trùng, data và priority rõ
Bài thực hành
Chấm một bộ test AI theo năm tiêu chí trên và viết lại hai test không thể chạy hoặc quan sát.
7. Đưa AI vào team bằng experiment nhỏ và đo được
Không bắt đầu bằng “mọi task đều dùng AI”. Chọn một process lặp lại như review acceptance criteria hoặc chuẩn bị API test idea. Lấy baseline không AI: thời gian, số câu hỏi hữu ích và lỗi sau review. Sau đó chạy nhiều vòng với một template và cùng quality rubric.
Ghi rõ boundary: data được phép, ai approve output, provenance lưu ở đâu và khi nào phải dừng. Pilot thành công phải cải thiện kết quả đã kiểm chứng chứ không phải số dòng sinh ra. Team dùng evidence để chuẩn hóa, sửa hoặc kết thúc experiment.
Use case: review acceptance criteria Baseline: 20 stories không AI Pilot: 20 stories tương đương với một template Metrics: review time, accepted questions, defects, leaks=0 Owner: QA lead; review: analyst Decision date: sau 40 stories
Bài thực hành
Thiết kế pilot AI hai tuần cho review requirement: sample, baseline, ba quality metric, data bị cấm và stop condition.
8. Trình bày việc dùng AI trong phỏng vấn QA
Interviewer cần quy trình có kiểm soát, không phải danh sách tool. Chuẩn bị ví dụ gồm task, context đã làm sạch, draft, idea hữu ích, lỗi của model, cách bạn kiểm chứng và kết quả đo được. Khả năng phản biện LLM mạnh hơn câu “tôi tạo test case bằng ChatGPT”.
Hãy giải thích hallucination, kiến thức cũ, nondeterminism, rò rỉ dữ liệu, prompt injection và automation bias. Với Middle, thêm cơ chế team: prompt template, review rubric, evaluation case và rule cho công việc bị cấm hoặc cần reviewer thứ hai.
Bài thực hành
Chuẩn bị câu trả lời 90 giây gồm task thật, một lợi ích AI, một lỗi model, cách kiểm chứng và kết quả cho team.
Câu hỏi thường gặp về AI trong kiểm thử
AI có thay thế manual tester không?
AI có thể tự động hóa một phần chuẩn bị và phân tích nhưng không sở hữu context sản phẩm, chấp nhận business risk hay xác minh môi trường. Công việc QA chuyển nhiều hơn sang mô hình hóa, validation và engineering.
Có thể đưa test do AI tạo thẳng vào regression không?
Chỉ sau review, chạy trên dữ liệu kiểm soát, negative control và đánh giá bảo trì. Sinh code không chứng minh giá trị hoặc độ ổn định.
Có cần ghi rằng text hoặc code do AI tạo không?
Hãy theo policy của team. Lưu provenance cho artifact quan trọng giúp tái hiện, còn con người vẫn là owner chịu trách nhiệm kiểm chứng.
Người mới nên bắt đầu từ đâu?
Dùng một yêu cầu quen thuộc, nhờ AI tạo class và question, sau đó tự kiểm tra từng dòng. Không bắt đầu bằng production data hoặc tự động xuất bản.
QA giỏi dùng AI để tìm phương án nhanh hơn, không phải để tạo nhiều văn bản hơn, và có thể chứng minh phương án nào thật sự đúng.