Tester là gì? Phân biệt QA, QC và Tester cho người trái ngành bắt đầu từ 0

2 tháng trước · 9 phút đọc
Mình nhớ lần đầu nghe "QA, QC, Tester" - ba cái tên nghe na ná nhau
Hồi mới tìm hiểu về ngành, mình cứ tưởng ba cái này là một. Đăng ký học thì thấy chỗ ghi "QA Engineer", chỗ ghi "QC Tester", chỗ lại chỉ ghi "Tester" - mà job description lại... gần giống nhau hoàn toàn.
Nếu bạn đang bối rối y chang vậy, bình thường. Ngay cả nhiều người trong ngành cũng dùng lẫn lộn ba khái niệm này. Bài này mình sẽ giải thích rõ từng vai trò, tại sao chúng khác nhau, và quan trọng hơn - vai trò nào phù hợp với người mới bắt đầu từ con số 0.
Ba vai trò nghe giống nhau nhưng thực ra có phạm vi trách nhiệm khác nhau rõ rệt
Trước khi đi vào định nghĩa, mình muốn dùng một ví dụ quen thuộc hơn: nhà máy sản xuất bánh mì.
QA là gì? (Quality Assurance - Đảm bảo chất lượng)
QA viết tắt của Quality Assurance, dịch ra là "đảm bảo chất lượng". Nghe vẫn trừu tượng? Mình giải thích bằng ví dụ nhà máy bánh mì.
QA là người thiết kế toàn bộ quy trình để bánh ra đúng chuẩn: nguyên liệu phải đạt loại gì, lò nướng bao nhiêu độ, thời gian bao lâu, kiểm tra ở công đoạn nào. QA không nhất thiết phải trực tiếp soi từng ổ bánh - họ lo cái hệ thống tổng thể để bánh khó hỏng ngay từ đầu.
Trong phát triển phần mềm, QA làm gì?
- Xây dựng quy trình kiểm thử cho cả team
- Định nghĩa tiêu chuẩn chất lượng (sản phẩm phải đạt mức nào mới được release)
- Phân tích rủi ro và lên kế hoạch test từ sớm - ngay khi đang thiết kế tính năng, chứ không chờ code xong mới nhảy vào
- Cải tiến quy trình khi phát hiện lỗi lặp lại nhiều lần
QA tập trung vào phòng ngừa - xây hệ thống tốt để lỗi khó xảy ra hơn là chỉ tìm lỗi
Nói ngắn gọn: QA nghiêng về phòng ngừa, xây dựng quy trình và hệ thống để giảm thiểu lỗi từ gốc rễ. Đây thường là vai trò đòi hỏi kinh nghiệm nhiều hơn, hiểu quy trình phát triển phần mềm từ đầu đến cuối.
QC là gì? (Quality Control - Kiểm soát chất lượng)
QC là Quality Control, dịch là "kiểm soát chất lượng". Vẫn dùng ví dụ nhà máy bánh mì nhé.
QC là người trực tiếp soi từng ổ bánh trước khi đóng hộp. Bánh bị cháy? Loại ra. Nhân bị thiếu? Loại ra. QC không thiết kế quy trình nướng bánh (đó là việc QA), họ đứng cuối dây chuyền để kiểm tra thành phẩm đạt chuẩn chưa.
Trong phần mềm, QC làm gì?
- Kiểm tra sản phẩm theo các tiêu chuẩn đã được QA định nghĩa
- Phát hiện lỗi (bug) và báo cáo lại
- Xác nhận tính năng hoạt động đúng theo yêu cầu
- Đánh giá xem phần mềm có đủ điều kiện release hay chưa
QC đứng ở cuối quy trình, kiểm tra thành phẩm trước khi đến tay người dùng
QC thiên về phát hiện lỗi hơn phòng ngừa. Họ nhận sản phẩm đã được build và kiểm tra xem nó có đáp ứng tiêu chuẩn không. Công việc QC gần với tester nhất - và thực ra, nhiều công ty dùng QC và Tester thay thế nhau hoàn toàn.
Tester là gì? Vai trò thực sự trong dự án
Bây giờ đến nhân vật chính. Tester là người trực tiếp thực thi việc kiểm thử (testing) phần mềm. Họ là người ngồi dùng thử app, nhập dữ liệu, click từng nút, rồi xem có gì bất thường không.
Nếu QA là người thiết kế quy trình kiểm tra bánh mì và QC là người soi bánh theo tiêu chuẩn, thì Tester là người cầm ổ bánh lên, cắn thử, rồi ghi lại "bánh này nhân bị lệch sang trái, vỏ hơi cứng, màu chưa đều".
Công việc hàng ngày của Tester:
- Viết test case (kịch bản kiểm thử) - tức là liệt kê các tình huống cần kiểm tra
- Thực thi test case: làm đúng theo kịch bản và ghi lại kết quả
- Tìm bug và viết bug report (báo cáo lỗi) chi tiết để dev hiểu và fix
- Kiểm tra lại sau khi dev fix (gọi là re-test)
- Chạy kiểm thử hồi quy (regression testing) - tức test lại các tính năng cũ để chắc fix mới không làm hỏng chỗ khác
Tester không chỉ bấm nút cho có - mỗi test case là một kịch bản được suy nghĩ kỹ
Một điểm mình hay thấy người mới hiểu sai: Tester không phải chỉ "dùng thử app cho vui". Công việc này đòi hỏi tư duy logic, tỉ mỉ và biết đặt câu hỏi đúng chỗ. Bạn không cần biết code, nhưng bạn cần biết app này phải hoạt động như thế nào, và tìm ra khi nào nó không làm đúng như vậy.
So sánh QA, QC và Tester - bảng tóm tắt
Mình thấy nhiều bạn đọc xong vẫn hơi mơ hồ, nên mình tóm gọn bằng bảng cho dễ nhớ.
| Tiêu chí | QA | QC | Tester |
|---|---|---|---|
| Tên đầy đủ | Quality Assurance | Quality Control | Tester |
| Nghĩa | Đảm bảo chất lượng | Kiểm soát chất lượng | Người thực thi kiểm thử |
| Tập trung vào | Quy trình, phòng ngừa | Thành phẩm, tiêu chuẩn | Tìm lỗi cụ thể |
| Làm khi nào | Từ đầu dự án | Gần cuối, trước release | Suốt quá trình |
| Cần kinh nghiệm | Nhiều hơn | Trung bình | Có thể bắt đầu từ 0 |
| Cần code? | Không bắt buộc | Không bắt buộc | Không bắt buộc |
Ba vai trò cùng hướng tới một mục tiêu: sản phẩm tốt đến tay người dùng
Thực tế ở nhiều công ty - đặc biệt startup hoặc team nhỏ - một người có thể làm cả ba vai trò. Bạn vừa viết quy trình test (QA), vừa kiểm tra thành phẩm theo tiêu chuẩn (QC), vừa trực tiếp thực thi test case (Tester). Đó là lý do ba khái niệm hay bị lẫn lộn.
Với người mới bắt đầu, Tester là vai trò phù hợp nhất để entry. Từ đó bạn tích lũy kinh nghiệm rồi dần hiểu rộng hơn về QC và QA.
Các loại testing cơ bản bạn sẽ gặp ngay khi vào nghề
Không cần nhớ hết tất cả các loại testing - có rất nhiều. Mình chỉ giải thích 3 loại bạn chắc chắn sẽ gặp ngay từ công việc đầu tiên.
1. Functional testing (kiểm thử chức năng)
Kiểm tra xem tính năng có hoạt động đúng như yêu cầu không. Ví dụ: nút "Thêm vào giỏ hàng" trên Shopee, khi bấm vào có thực sự thêm sản phẩm vào giỏ không? Giỏ hàng có hiển thị đúng số lượng không? Đây là loại testing phổ biến nhất và là nền tảng của mọi tester.
2. Non-functional testing (kiểm thử phi chức năng)
Kiểm tra những thứ không phải chức năng cụ thể, mà là chất lượng tổng thể: app có chạy nhanh không (performance), giao diện trên điện thoại có hiển thị đúng không (compatibility), 1000 người cùng đăng nhập app có sập không (load testing). Loại này thường cần tool hỗ trợ.
3. Regression testing (kiểm thử hồi quy)
Sau khi dev sửa một bug hoặc thêm tính năng mới, bạn cần test lại các tính năng cũ để chắc chắn chúng chưa bị ảnh hưởng. Mình từng skip bước này vì nghĩ "thay đổi nhỏ thôi" - kết quả là tính năng đăng nhập chạy tốt, nhưng chức năng quên mật khẩu bị hỏng mà không ai biết đến khi người dùng phản ánh.
Regression testing như kiểm tra lại toàn bộ ngôi nhà sau khi sửa một phòng
Ba loại này đủ để bạn hiểu công việc tester hàng ngày. Sau khi đi làm, bạn sẽ gặp thêm smoke testing, sanity testing, UAT - mình sẽ giải thích ở các bài tiếp theo khi bạn đã có nền tảng.
