Nếu bạn là một người làm việc trong ngành công nghiệp phần mềm, hẳn không ít thì nhiều bạn cũng sẽ phần nào thắc mắc không biết QA và QC và Tester là một sao? Trước giờ các dự án của mình thì chỉ cần mỗi Tester là đủ và đến giờ mình cũng chưa rõ chúng khác nhau như nào vì thế bây giờ mình sẽ phải tìm hiểu thêm chút về mảng kiểm thử phần mềm này xem sao nhé.
QA (Quality Assurance = Đảm bảo chất lượng):
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).
Nhiệm vụ chủ yếu của QA là:
Đề 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, thông thường các truy trình này phát triển trên V-model hay Agile hay ISO hay CMMI. Đư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 Ví dụ: QA 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. Nhiều Công ty vừa và nhỏ thì 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.
Kỹ năng cần có của QA:
Hiểu sâu về kiến trúc hệ thống của phần mềm. 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.
QC = Quality Control (Kiểm soát chất lượng):
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).
Nhiệm vụ chủ yếu của 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.
Kỹ năng cần có của QC:
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. Tester/Testing Engineer/Test Engineer/Software Testing (Kiểm thử): 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.
Tóm lại: QA: là người người đặt ra các qui định, nguyên tắc để dự án được thành công.
QC: là người thi thành các qui định, nguyên tắc, đảm bảo sản phẩm cuối cùng đạt đúng các qui định, nguyên tắc mà QA đặt ra.
Tester: là người kiểm thử, tìm các trường hợp còn thiếu sót hay lỗi so với yêu cầu.
VD: Sản xuất 1 sản phẩm nước đóng chai , QA là bộ phận quy định nước đóng chai sau khi hoàn thành phải đảm bảo , chất lượng nước phải đạt độ tinh khiết 100%, chưa những chất gì và không chứa những chất gì , điều kiện bảo quản , thời hạn sử dung….QC sẽ tiến hành các khâu kiểm tra trong suốt quá trình sản xuất sản phẩm xem trong quá trình ấy, có xảy ra sai sót gì không, Đảm bảo mọi thứ sẽ đạt được đúng như chất lượng đề ra ( từ QA) . Sau khi sản phẩm đã hoàn thành, Tester là người thử trước , sản phẩm có thực sự như vậy chưa trước khi tung sản phẩm ra thị trường .