News & Events
Phân biệt QA, QC và Tester
- Tháng Mười Hai 14, 2020
- Posted by: codestar
- Category: Uncategorized
- Trước hết, Cùng điểm qua các khái niệm cơ bản QA, QC, Tester
- Quality Assurance (viết tắt là QA): Là người chịu trách nhiệm đảm bảo chất lượng sản phẩm và tiến độ dự án thông qua việc đưa ra quy trình làm việc giữa các bên liên quan. QA không trực tiếp kiểm tra chất lượng phần mềm (giống QC).
- Quality Control (viết tắt là QC): Là người thực hiện những bài kiểm tra chất lượng để đảm bảo sản phẩm đáp ứng đúng và đủ những yêu cầu mà QA đề ra. QC còn đảm bảo rằng phần mềm không chỉ đúng và đủ yêu cầu, mà còn dễ sử dụng và có hiệu suất tốt (thông qua Usability Test & Performance Test). Có 2 vị trí QC thông thường là manual QC (không đòi hỏi kỹ năng lập trình) và automation QC (đòi hỏi kỹ năng lập trình).
- Tester: Là người kiểm tra những sản phẩm (phần mềm hay ứng dụng) mà các lập trình viên đã làm ra, tìm các trường hợp còn thiếu sót hay lỗi so với yêu cầu sản phẩm.
II. Bảng so sánh QA, QC và Tester
III. Một số minh họa cụ thể về nhiệm vụ của QA, QC và Tester
- QA (đảm bảo chất lượng):
Thông thường, nhiệm vụ của QA sẽ chủ yếu bao gồm các việc như: Đề xuất, đưa ra các quy trình phát triển sản phẩm phù hợp với từng yêu cầu cụ thể của các dự án; Đưa ra các tài liệu biểu mẫu hướng dẫn để đảm bảo chất lượng của sản phẩm cho tất cả các bộ phận trong nhóm phát triển sản phẩm; Kiểm tra, đánh giá việc thực hiện quy trình của các bộ phận trong nhóm có đúng quy trình QA đề ra hay không; Điều chỉnh, thay đổi quy trình phù hợp và nhắc nhở các đội ngũ phát triển sản phẩm tuân thủ theo
- QC (Kiểm soát chất lượng)
Một số nhiệm vụ chủ yếu của bộ phận QC là: Tìm hiểu hệ thống, phân tích tài liệu mô tả về hệ thống và thiết kế test case,và thực hiện việc test phần mềm trước khi giao cho khách hàng; Lên kế hoạch kiểm thử (thường do QC Leader thực hiện); Viết Script cho automation test (nếu có áp dụng kiểm thử tự động); Sử dụng các test tool để tạo và thực hiện các test case/script chi tiết; Phối hợp với nhóm lập trình trong việc fix bug và báo cáo chi tiết cho Project Manager hoặc các bên liên quan khác tuỳ dự án.
3. Testing – Kiểm thử
Trong thực tế thì việc QC có kiểm tra tốt tới đâu hay quy trình QA chặt chẽ như thế nào thì lỗi vẫn còn đâu đó trong sản phẩm. Vì vậy, Nhiệm vụ của Testing là tìm xem sản phẩm còn lỗi nào hay không, những lỗi mà phạm vi QC không bao phủ hết. Theo một cách dí dỏm thì công việc chính của “Kiểm thử” là lục tung hết các ngóc ngách để tìm càng nhiều lỗi càng tốt.
Trong testing, tester thường đóng vai trò người dùng cuối để dùng sản phẩm và tìm lỗi trên sản phẩm, đánh giá những rủi ro tiềm ẩn có thể ảnh hưởng đến chất lượng sản phẩm mà các bên liên quan có thể không lường trước được hay không được nêu ra trong yêu cầu sản phẩm.
Testing và QC nhìn có vẻ hao hao giống nhau nhưng vẫn có khác biệt đặc trưng cơ bản. QC nhìn chung có khuynh hướng “confirm” (nghĩa là sản phẩm có làm đúng theo yêu cầu hay không, còn Testing nhìn chung có khuynh hướng khám phá để “break”, để tìm lỗi (nghĩa là tìm xem sản phẩm chạy sai như thế nào).
Về cơ bản, Testing là một hoạt động thuộc QC. Do đó nhiều công ty sẽ kết hợp QC và Testing thành một và gọi chung chúng là QC hay Testing team.
Kết luận:
Như vậy, thông qua một số những khái niệm, phân tích trên, chúng tôi rất mong mang đến những kiến thức, hiểu biết, phân biệt về nghề QA, QC và Tester. Nhìn chung, có thể hình dung Tester là tập con của QC, và QC lại là tập con của QA. Mục tiêu chính của QA là Prevention (Ngăn ngừa lỗi), còn mục tiêu chính của QC và Testing là Detection (Phát hiện lỗi). Cả 3 bộ phận này đều là những thành phần vô cùng quan trọng trong quá trình sản xuất phần mềm nói chung và công đoạn kiểm thử phần mềm nói riêng.