Bạn có biết QA là gì? QC là gì? (Update 2018)
Đọc bài viết này để tìm hiểu ngay: Công việc chính của QA là gì và của QC là gì. Sự khác nhau cơ bản giữa hai vị trí này. Resources và những bài viết hấp dẫn từ ITviec Blog của hai vị trí. Xem hàng trăm việc làm QA QC trên ITviec QA là gì? QA (viết tắt của Quality Assurance) ...
Đọc bài viết này để tìm hiểu ngay:
- Công việc chính của QA là gì và của QC là gì.
- Sự khác nhau cơ bản giữa hai vị trí này.
- Resources và những bài viết hấp dẫn từ ITviec Blog của hai vị trí.
Xem hàng trăm việc làm QA QC trên ITviec
QA là gì?
QA (viết tắt của Quality Assurance) là người chịu trách nhiệm đảm bảo chất lượng sản phẩm thông qua việc đưa ra quy trình làm việc giữa các bên liên quan.
Nhiệm vụ chủ yếu của QA là:
- Đề xuất, đưa ra quy trình phát triển (development process) sản phẩm phù hợp với yêu cầu cụ thể của từng dự án. Các quy trình này có thể được phát triển dựa trên V-model hay Agile (đa số là Scrum hoặc Lean Development) hay thông qua việc áp dụng những quy trình quản lý sẵn có như ISO hay CMMI.
- Đưa ra những 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, audit việc thực thi quy trình của các bộ phận trong nhóm làm sản phẩm có đúng quy trình QA đã đề ra không.
- Nhắc nhở đội ngũ phát triển sản phẩm việc tuân thủ theo quy trình làm việc đã đưa ra.
- Điều chỉnh, thay đổi quy trình phù hợp với từng sản phẩm mà các team đang thực hiện.
Một số công ty sử dụng “QA” thay vì QC nên nhiều người nhầm lẫn QA với QC (Quality Control). Vì vậy, trên thị trường lao động xuất hiện một số vai trò như PQA (Process Quality Assurance – thực hiện công việc về quy trình) và SQA (Software Quality Assurance – thực hiện công việc kiểm thử). Trong đó, SQA đóng vai trò như một QC thực thụ, đảm nhiệm việc kiểm thử sản phẩm đang phát triển. Còn PQA mới là người chịu trách nhiệm về việc đưa ra các quy trình làm việc trước khi bắt đầu một dự án.
Nhiều Công ty vừa và nhỏ, họ không chỉ định 1 vị trí PQA rõ ràng, mà QC Manager/Leader sẽ phụ trách việc đưa ra quy trình làm việc giữa các bên liên quan. Và một khi quy trình đó được duyệt bởi cấp quản lý, thì nó sẽ được duy trì và áp dụng cho các dự án.
Ví dụ: PQA sẽ sẽ quy định khâu kiểm thử sản phẩm ở công đoạn cuối cùng, kiểm thử sản phẩm theo phương pháp, tiêu chuẩn nào, sẽ dùng các tool nào để kiểm thử, đồng thời đưa ra các tiêu chuẩn cho một sản phẩm tốt và chưa tốt.
Đây là một vị trí rất quan trọng đối với các team làm sản phẩm. Do đó, thông thường, chỉ có những công ty Outsourcing lớn như KMS, Harvey Nash, FPT Software… mới tuyển vị trí PQA và chỉ có 2-3 đầu người cho toàn bộ các team làm sản phẩm. Còn lại, đa số các công ty phần mềm thường tuyển SQA (thường gọi là QC).
Dưới đây là một mẫu tuyển dụng nhân viên PQA của FPT IS:
- Tư vấn về quy trình cho dự án để đảm bảo chất lượng toàn dự án.
- Kiểm soát việc thực hiện quy trình của dự án.
- Thu nhận và theo dõi các ý kiến phản hồi khách hàng.
- Thực hiện kiểm duyệt lần cuối (Final inspection) đối với những sản phẩm bàn giao cho khách hàng để đảm bảo chất lượng đúng như cam kết.
- Thực hiện việc đo đạc và phân tích số liệu để đánh giá chất lượng sản phẩm.
- Cải tiến quy trình.
Xem thêm những mẫu tuyển dụng việc làm QA tại ITviec.
Kỹ năng cần thiết cho QA là gì?
- Hiểu sâu về kiến trúc hệ thống của phần mềm vì công việc của QA rộng hơn QC.
- Khả năng tổ chức, tư duy logic và có hệ thống.
- Kỹ năng phân tích, làm việc dựa trên số liệu tốt.
- Kiến thức rộng về các lĩnh vực của phần mềm mà các team đang thực hiện.
- Kỹ năng giao tiếp trong nội bộ team và các team khác để khai thác thông tin về sản phẩm, dự án và ứng dụng nó vào việc xây dựng hệ thống quy trình.
- Hiểu rõ về các chứng chỉ CMMI, ISO… trong phần mềm để xây dựng các quy trình chuẩn cho các team.
Các resources hữu ích cho các QA (PQA) học tập:
- CMMI Wikipedia: nguồn thông tin về chứng chỉ CMMI cần thiết cho PQA.
- Wibas: hướng dẫn chi tiết về công việc của PQA và một số tài liệu tham khảo.
- CMMI Consultant Blog: đầy đủ thông tin về chứng chỉ CMMI và công việc PQA.
- Tim Landerville: bài viết khá chi tiết về 7 bước thực hiện công việc PQA.
- Quality Assurance and Measurement: hướng dẫn chi tiết về các bước thực hiện PQA và tài liệu cho bạn.
QC là gì?
QC (viết tắt của chữ Quality Control) là người chịu trách nhiệm thực hiện công việc kiểm tra chất lượng phần mềm. 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).
Nhiệm vụ của các QC chủ yếu 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.
Khác với PQA, nhu cầu tuyển dụng QC hay SQA rất nhiều trong mọi công ty phần mềm vì kiểm thử là khâu rất quan trọng trong quy trình phát triển sản phẩm. QC và PQA sẽ tương tác với nhau như sau:
- PQA đưa ra quy trình làm việc cho team phát triển sản phẩm, trong đó có khâu Testing, quy định QC kiểm thử sản phẩm ở giai đoạn nào, sử dụng công cụ gì, tiêu chuẩn nào là sản phẩm đạt yêu cầu.
- QC thực thi quy trình mà PQA đề ra.
- PQA giám sát, theo dõi và kiểm tra QC có thực hiện đúng quy trình không, sau đó chỉnh sửa cho phù hợp với tiến độ, hiện trạng dự án.
- QC báo cáo kết quả test cho QC Lead/QC Manager, PQA báo cáo kết quả thực thi quy trình phát triển sản phẩm cho Project Manager.
Dưới đây là một mẫu tuyển dụng QC Engineer trên ITviec từ công ty Larion Computing.
- Thiết kế test case cho phần mềm dựa vào requirement của khách hàng.
- Đưa các testing tool vào chạy automation.
- Thực hiện quy trình test dựa trên test plan và test case.
- Tìm bug và quản lý các hoạt động fix bug.
- Làm testing report.
- Quản lý các tài liệu liên quan đến các hoạt động test.
- Lập tài liệu hướng dẫn và tiêu chuẩn testing.
- Đề xuất các giải pháp fix bug và tránh bug.
- Hợp tác sâu sát với team Developer trong hoạt động test.
Xem thêm những mẫu tuyển dụng việc làm QC tại ITviec.
Những kỹ năng cần thiết để làm QC là gì?
- Kỹ năng code (nếu bạn làm Automation)
- QC phải có kiến thức tốt về mọi chức năng, khía cạnh của sản phẩm để review được các yêu cầu của requirement.
- Người làm QC cần cẩn thận, kỹ tính vì công việc này đòi hỏi sự chính xác cao độ và chú ý đến mọi khía cạnh có thể có vấn đề của sản phẩm.
- Kỹ năng giao tiếp tốt vì QC phải làm việc với rất nhiều thành viên khác trong team và nhất là công việc truyền đạt ý kiến, phản hồi của mình với Developer, Project Manager.
Các resources hữu ích cho các QC học tập:
- Software Testing Help: chuyên trang về Testing với kiến thức từ căn bản đến nâng cao.
- Tutorials Point: chuyên trang về kiến thức Testing nâng cao.
- Test this Blog by Eric Jacobson: kinh nghiệm Testing rất hữu ích từ blogger Eric Jacobson.
- Automation Beyond: kiến thức vể Automation Test.
- uTest: forum hỏi đáp về Testing nhanh chóng, tiện lợi.
- SQA Forum: diễn đàn về kiểm thử phầm mềm rất nổi tiếng giúp giải đáp mọi thắc mắc về testing và nghề.
- Software Test Automation Forums: diễn đàn về automation testing.
- Rainforest QA Blog: blog về SQA với nhiều kiến thức thực tế và hữu ích.
- SoftwareQATest: chuyên trang về kiến thức cơ bản và nâng cao nghề Testing.
- Software Testing Fundamentals: chuyên trang về nghề SQA với cực nhiều thông tin hay, được phân từ cơ bản đến nâng cao.
- Testing VN: diễn đàn về Kiểm thử Phần mềm bằng Tiếng Việt rất sôi động, trao đổi rất nhiều thông tin hữu ích.
- Nghiên cứu yêu cầu và thiết kế của dự án.
- Thiết kế test case, viết kịch bản test.
- Thực thi manual test hoặc automated test.
- Phối hợp với các bộ phận liên quan để đảm bảo chất lượng dự án/sản phẩm.
- Quản lý, phân tích, theo dõi và báo cáo kết quả test.
Tóm lại, những mẫu tuyển dụng nào không liên quan đến việc thực hiện, theo dõi và kiểm tra quy trình làm sản phẩm thì đều là tuyển dụng SQA hay QC.
Mẫu tuyển dụng QA (PQA) đúng nên là:
- Dựa vào yêu cầu, nhu cầu của khách hàng và tình hình thực tế về nhân sự của nhóm phát triển để đề ra quy trình làm việc phù hợp cho từng dự án cụ thể.
- Đề xuất các quy trình phát triển phần mềm và theo dõi để bảo đảm các bên liên quan tuân thủ qui trình đưa ra giúp bảo đảm chất lượng sản phẩm đầu cuối.
- Kiểm tra, đối chiếu quy trình đang thực hiện có tương ứng với các tiêu chuẩn, ví dụ CMMI, ISO (nếu cần) hay không.
- Báo cáo việc thực hiện quy trình đến Project Manager hoặc các bên liên quan khác tuỳ Công ty.
Tùy theo từng Công ty và sản phẩm đang phát triển mà hai vị trí QA/QC sẽ có những nhiệm vụ “giao” với nhau hoặc cả hai đều là một. Do đó, bạn nên xác định hướng đi của mình, theo quy trình tổng thể hay kiểm thử phần mềm để có sự lựa chọn đúng đắn nghề nghiệp. Bên cạnh đó, bạn cần phải đọc mô tả công việc trước khi nộp hồ sơ ứng tuyển để đảm bảo không ứng tuyển nhầm SQA với PQA.
Bài viết được thực hiện với sự hợp tác của anh Sơn Hoàng từ diễn đàn TestingVN.