QA Là Gì? Phân Biệt QA, QC Và Tester Cho Người Mới

5 tháng trước · 10 phút đọc
QA, QC, Tester - ba từ hay bị dùng lẫn nhau
Mình nhớ hồi mới vào nghề, mình cũng không phân biệt được ba từ này. Đi phỏng vấn, HR hỏi "Bạn muốn làm QA hay tester?", mình trả lời "Như nhau không ạ?". Câu trả lời đó... không ổn.
Thực ra ba khái niệm này khác nhau rõ ràng, dù nhiều công ty dùng lẫn lộn. Hiểu đúng từ đầu giúp bạn định hướng học, viết CV đúng chỗ, và trả lời phỏng vấn tự tin hơn.
Ba vai trò khác nhau nhưng đều hướng đến một mục tiêu: chất lượng sản phẩm
Trước khi đi vào từng vai trò, hãy nhớ một điều: cả ba đều thuộc nhóm đảm bảo chất lượng phần mềm. Chỉ là mỗi người làm ở tầng khác nhau - người lo quy trình, người kiểm tra thực tế, người tìm bug cụ thể.
QA là gì? Người lo "đúng quy trình" hay không
QA - Quality Assurance (đảm bảo chất lượng) là vai trò tập trung vào quy trình, không phải sản phẩm cụ thể.
Nói đơn giản: QA lo rằng cả team đang làm việc đúng cách trước khi sản phẩm ra đời. Giống như người quản lý nhà máy kiểm tra xem dây chuyền sản xuất có chuẩn không, chứ không phải ngồi soi từng chiếc bánh.
Trong thực tế dự án phần mềm, QA sẽ:
- Xây dựng và duy trì quy trình kiểm thử (testing process)
- Đảm bảo team dev, tester làm việc theo đúng tiêu chuẩn
- Review tài liệu yêu cầu (requirement) để phát hiện vấn đề sớm
- Theo dõi metrics: bao nhiêu bug, loại nào, giai đoạn nào
- Cải thiện quy trình khi có vấn đề lặp lại
QA xây quy trình trước để tester không phải "tự bơi" sau
Ví dụ thực tế: Dự án app ngân hàng có tính năng chuyển tiền mới. QA sẽ ngồi từ sớm cùng Business Analyst và dev để xem requirement có rõ không, có thiếu case nào không, quy trình test sẽ diễn ra theo thứ tự gì. Họ không tự ngồi test, nhưng đảm bảo mọi người test đúng thứ cần test.
Nhiều bạn hỏi: "QA có cần biết code không?" Không bắt buộc. Nhưng cần hiểu quy trình phát triển phần mềm (software development life cycle - SDLC), biết đọc requirement, và có tư duy hệ thống tốt. Vị trí QA thường cần thêm kinh nghiệm, ít khi tuyển fresher thẳng vào.
QC là gì? Người "soi" sản phẩm trước khi ship
QC - Quality Control (kiểm soát chất lượng) là vai trò kiểm tra sản phẩm thực tế - sau khi đã được build xong.
Nếu QA lo quy trình thì QC lo kết quả. Giống người kiểm tra từng chiếc bánh trên băng chuyền trước khi đóng gói. Bánh nào lỗi thì loại ra.
QC kiểm tra sản phẩm thực tế, không phải kiểm tra quy trình
Trong dự án phần mềm, QC sẽ:
- Kiểm tra tính năng đã được dev build có hoạt động đúng không
- Đối chiếu sản phẩm với requirement và thiết kế gốc
- Xác nhận bug đã được fix thật sự chưa
- Phê duyệt (sign-off) trước khi tính năng đưa lên production
Ví dụ cụ thể: Tính năng đăng ký tài khoản vừa được dev hoàn thành. QC sẽ mở app, nhập email, nhập mật khẩu, nhấn đăng ký - rồi kiểm tra từng bước có đúng với document không. Nếu lỗi, report lại. Nếu đúng, tick pass.
Điểm khác với QA: QC làm việc dựa trên sản phẩm đã có, QA làm từ trước khi sản phẩm được tạo ra. QC phát hiện lỗi, QA ngăn lỗi xuất hiện.
Thực tế ở nhiều công ty Việt Nam, đặc biệt startup nhỏ, vai trò QC và tester thường do cùng một người đảm nhiệm. Bạn sẽ thấy JD ghi "QC Engineer" nhưng công việc thực tế là viết test case và test thủ công như một tester.
Tester là gì? Người "đào" bug mỗi ngày
Tester là vai trò tập trung vào việc tìm lỗi (bug) trong phần mềm thông qua việc thực thi các kịch bản kiểm thử (test case).
Đây là vị trí phổ biến nhất cho người mới vào ngành, và cũng là điểm khởi đầu của hầu hết QA Engineer hay QC sau này.
Công việc hằng ngày của tester:
- Đọc requirement, hiểu tính năng cần test
- Viết test case: kịch bản chi tiết mô tả bước test và kết quả mong đợi
- Thực hiện test thủ công (manual testing)
- Phát hiện bug và viết bug report rõ ràng để dev hiểu và fix
- Retest sau khi dev fix: xác nhận bug đã được sửa đúng chưa
- Kiểm thử hồi quy (regression testing): test lại tính năng cũ đảm bảo fix mới không làm hỏng thứ khác
Từ test case đến bug report - vòng lặp hằng ngày của tester
Ví dụ thực tế: Tính năng đăng nhập của app mua sắm. Tester sẽ viết test case cho hàng chục scenario: đăng nhập đúng, sai mật khẩu, email không tồn tại, bỏ trống ô, nhập ký tự đặc biệt, đăng nhập trên mạng chậm... Mỗi scenario là 1 test case. Chạy hết, ghi lại kết quả. Thấy gì khác expected thì viết bug report.
Mình từng bỏ qua test case "nhập khoảng trắng ở đầu email" vì nghĩ "ai mà nhập vậy?". Kết quả? User nhập nhầm, app báo lỗi mà không giải thích gì, họ nghĩ app bị hỏng. Bug nhỏ, ảnh hưởng lớn.
Không cần biết code để bắt đầu làm tester. Chỉ cần tư duy tỉ mỉ, logic, và khả năng đặt câu hỏi "Điều gì xảy ra nếu...?". Đó là kỹ năng bạn có thể rèn được, dù bạn xuất phát từ kế toán, marketing hay giáo viên.
So sánh QA, QC và Tester trong một dự án thực tế
Để dễ hình dung, mình lấy ví dụ một dự án xây tính năng đặt lịch hẹn cho app phòng khám:
| QA | QC | Tester | |
|---|---|---|---|
| Làm gì? | Xây quy trình test, chuẩn hóa tiêu chuẩn | Kiểm tra tính năng đã build, sign-off | Viết test case, tìm bug, report |
| Khi nào? | Từ đầu dự án (phase yêu cầu) | Sau khi dev build xong | Song song với dev, chủ yếu sau build |
| Focus vào? | Quy trình, tiêu chuẩn, metrics | Sản phẩm, requirement compliance | Test case cụ thể, bug cụ thể |
| Cần gì? | Tư duy hệ thống, biết SDLC | Hiểu requirement, kỹ năng kiểm tra | Logic, tỉ mỉ, kỹ năng viết |
| Fresher OK? | Ít (cần kinh nghiệm) | Được (1+ năm) | Được (0 kinh nghiệm) |
Trong một team nhỏ, một người có thể đảm nhiệm cả ba vai trò
Trong thực tế tại Việt Nam, đặc biệt ở startup và công ty vừa nhỏ:
- Người ta hay gọi chung là "QA/Tester" hoặc "QC/Tester"
- Một người có thể làm cả ba việc trong cùng một ngày
- Công ty lớn (outsourcing, product company) mới phân chia rõ vai trò
Nếu bạn đang muốn chuyển ngành, bắt đầu từ Tester là hướng đúng nhất. Không cần kinh nghiệm trước, không cần code. Khi có 1-2 năm kinh nghiệm và hiểu quy trình hơn, bạn dần tiến sang QC rồi QA.
Bắt đầu từ đâu nếu bạn muốn trở thành tester?
Nếu bạn đọc đến đây và nghĩ "Mình muốn thử", đây là lộ trình thực tế:
Bước 1: Hiểu quy trình phát triển phần mềm (SDLC)
Tester làm việc trong môi trường có dev, BA, PM. Biết SDLC giúp bạn hiểu mình đứng ở đâu và tại sao công việc của mình quan trọng. Không cần học sâu về kỹ thuật, chỉ cần biết phần mềm được tạo ra như thế nào.
Bước 2: Học viết test case
Đây là kỹ năng cốt lõi nhất. Bắt đầu bằng cách tự tạo test case cho app bạn đang dùng - ứng dụng giao hàng, app ngân hàng, trang thương mại điện tử. Tự hỏi: tính năng này có thể sai ở đâu? User có thể làm gì bất thường?
Bước 3: Thực hành với app demo
Có nhiều trang web demo dành cho tester thực hành, cho phép bạn test thật sự và tìm bug có sẵn. Đây là cách nhanh nhất để có kinh nghiệm thực tế trước khi đi làm.
Bước 4: Học công cụ cơ bản
- Jira: quản lý bug và task (công cụ phổ biến nhất)
- Postman: test API (sau này học thêm)
- Excel/Google Sheets: viết và quản lý test case
Lộ trình 4 bước thực tế - không cần code để bắt đầu
Thật ra không cần biết lập trình để bắt đầu. Mình có nhiều học viên 30-35 tuổi từ ngành kế toán, giáo viên, bán hàng - họ mất khoảng 3-4 tháng học nghiêm túc để đi làm được. Cái quan trọng nhất là tư duy tỉ mỉ và kiên nhẫn - thứ mà nhiều bạn trái ngành lại có rất tốt.
Bài tiếp mình sẽ hướng dẫn cụ thể cách viết test case đầu tiên cho tính năng đăng nhập - tính năng có trong hầu hết mọi app. Bookmark để theo dõi. Nếu có thắc mắc gì về QA/QC/Tester, comment bên dưới, mình trả lời từng bạn nhé!
