Quality Assurance và Quality Control: Hai ngành này liệu có phải là một?

Quality Assurance và Quality Control: Hai ngành này liệu có phải là một?

Quality Assurance (đảm bảo chất lượng) là quy trình đảm bảo chất lượng của một quá trình sản xuất phần mềm, sản phẩm công nghệ thông tin hoặc dịch vụ của một doanh nghiệp trước khi cung cấp các sản phẩm, dịch vụ này tới khách hàng. Quality Control (kiểm soát chất lượng) trong ngành kỹ sư phần mềm là quy trình kiểm tra chất lượng phần mềm.

Dạo quanh các trang tìm kiếm việc làm, bạn sẽ bắt gặp rất nhiều thông báo tuyển dụng vị trí QA (Quality Assurance), QC (Quality Control) hay Software Tester. Nhu cầu tìm kiếm nhân sự ngành QA và QC đã xuất hiện từ lâu và vẫn không ngừng gia tăng trong những năm gần đây. Nhu cầu này xuất phát từ mong muốn nâng cao chất lượng sản phẩm của các doanh nghiệp, nhằm tăng lợi thế cạnh tranh trong thời đại công nghiệp 5.0.

Đối với những người lần đầu tiếp xúc với các khái niệm này thì việc phân biệt nhiệm vụ và vai trò của một QA và QC dường như là một điều khá khó khăn, bởi rất nhiều JD (bản mô tả công việc) được đăng tải bởi các nhà tuyển dụng thường sử dụng hai khái niệm này thay thế cho nhau. Thực trạng này đã dẫn tới sự hiểu nhầm, thậm chí là hiểu sai về vai trò và nhiệm vụ của nhân viên QA và QC. 

Vậy nên, trong bài viết này, Spiderum sẽ cung cấp một cái nhìn tổng quan về lịch sử phát triển, định nghĩa, sự khác biệt giữa QA và QC, các kỹ năng cần thiết và các nguồn hữu ích để tự học và thành công trong ngành này.

Lịch sử ngành QA và QC

Khái niệm Quality control (QC) ra đời vào những năm 1920:

Theo sau cuộc cách mạng công nghiệp và sự phát triển chóng mặt của ngành sản xuất hàng loạt, các nhà máy và doanh nghiệp bắt đầu quan tâm tới việc kiểm soát chất lượng sản phẩm bằng việc đưa ra các tiêu chí rà soát chất lượng. Mục tiêu ban đầu của việc kiểm soát chất lượng là để đảm bảm các yêu cầu về mặt kỹ thuật và công nghệ trong dây chuyền sản xuất sản phẩm. Về sau, khi quá trình sản xuất trở nên phức tạp hơn, QC dần trở thành một quy trình được tiêu chuẩn hóa và đóng vai trò then chốt trong việc sản xuất các sản phẩm chất lượng cao của bất kỳ doanh nghiệp nào.

Khái niệm Quality assurance (QA) ra đời vào những năm 1950:

30 năm sau khi khái niệm QC ra đời, khái niệm QA dần được sử dụng phổ biến với vai trò là một ‘phiên bản nâng cấp’ của QC. Các ngành công nghiệp liên quan đến nâng cao sức khỏe cộng đồng và đảm bảo an toàn trong lao động sản xuất chính là một trong những ngành tiên phong trong việc áp dụng và thực hành quy trình QA. 

Quality assurance (QA) là gì?

QA là viết tắt của Quality Assurance (đảm bảo chất lượng), khái niệm này cũng được biết đến với tên gọi QA Testing. Trong ngành IT, QA là quy trình đảm bảo chất lượng của một quá trình sản xuất phần mềm, sản phẩm công nghệ thông tin hoặc dịch vụ của một doanh nghiệp trước khi cung cấp các sản phẩm, dịch vụ này tới khách hàng. Cụ thể, nhiệm vụ ưu tiên của QA chính là tập trung cải thiện, tăng hiệu suất và hiệu quả của quá trình sản xuất, phát triển phần mềm bằng cách đưa ra quy trình làm việc giữa các bên liên quan đến quá trình phát triển phần mềm, ví dụ như: khách hàng, Developer,…

Chu trình thực hành QA là một chu trình khép kín bao gồm bốn bước cơ bản: 

  • Lên kế hoạch (Plan): Các doanh nghiệp nên lập kế hoạch và thiết lập các mục tiêu liên quan đến quá trình sản xuất sản phẩm và đảm bảo chất lượng sản phẩm
  • Thực hiện (Do): Thực hiện quá trình đảm bảo chất lượng theo quy trình đã đề ra
  • Kiểm định (Check): Giám sát quá trình, kiểm tra xem các mục tiêu đã đề ra có đang được thực hiện đúng cách hay không 
  • Hành động (Act): Cải tiến quá trình

Quality control (QC) là gì?

Song hành với khái niệm QA, QC (viết tắt của quality control, tạm dịch là kiểm soát chất lượng) cũng là một thuật ngữ được sử dụng phổ biến trong ngành IT nói riêng và khối ngành sản xuất nói chung. QC trong ngành kỹ sư phần mềm là quy trình kiểm tra chất lượng phần mềm. QC không bao gồm việc kiểm soát quá trình sản xuất và phát triển phần mềm; thay vào đó, QC kiểm tra chất lượng của ‘sản phẩm cuối cùng’ và đánh giá kết quả cuối cùng của quá trình sản xuất. Bên cạnh đó, nhiệm vụ của QC cũng bao gồm việc đánh giá kỹ năng, trình độ của nhân viên trong doanh nghiệp để từ đó cung cấp lộ trình đào tạo và chứng chỉ cho nhân viên. 

Một vị trí quan trọng thuộc ngành QC chính là Software Tester (nhân viên kiểm thử phần mềm). Nhiệm vụ chính của Software Tester chính là phát triển trình hệ thống nhằm thăm dò và phát hiện các lỗi trong phần mềm của sản phẩm công nghệ thông tin. Có hai loại software tester, đó là: kiểm thử thủ công (manual software tester) và kiểm thử tự động (automation software tester). Đối với kiểm thử thủ công, tester sẽ trực tiếp tìm lỗi phần mềm bằng tay thông qua việc viết test case, thực hiện test, click nút, quan sát và so sánh kết quả. Trong khi đó, kiểm thử phần mềm tự động không yêu cầu quá nhiều sự can thiệp từ con người bởi kiểm thử tự động được thực hiện thông qua một chương trình đặc biệt giúp các software tester không phải thực hiện lặp đi lặp lại nhiều bước để tìm ra lỗi phần mềm.

Điểm khác biệt giữa QA và QC

Sau khi tìm hiểu qua về định nghĩa của QA và QC, bạn đã nhận ra điểm khác biệt giữa hai khái niệm này chưa? Nếu chưa thì ngay sau đây, Spiderum sẽ cung cấp thông tin chi tiết giúp bạn nhận diện sự giống nhau và khác nhau giữa công việc của một QA và một QC.

Nếu như hoạt động và trách nhiệm của QA là đánh giá bao quát cả một hệ thống kiểm định chất lượng (quality system) thì QC là một tập con của QA.

Quality Assurance

Điểm khác biệt cụ thể:

Quality Assurance

Quality Control

Kiểm định quá trình (Process):

Bao gồm các hoạt động liên quan đến việc thực hiện các quy trình, thủ tục và tiêu chuẩn

Kiểm định sản phẩm (Product)

Bao gồm hoạt động kiểm định sản phẩm

Chủ động đón đầu (Proactive) Phản ứng kịp thời (Reactive)
Ngăn chặn lỗi sản phẩm (Prevent Defects)

Tinh thần làm việc: Phòng lỗi còn hơn chữa lỗi

Nhận diện lỗi sản phẩm, nếu có (Find Defects

Tinh thần làm việc của QC: Diệt lỗi phải diệt tận gốc

Điểm khác biệt được trình bày trong bảng so sánh trên được áp dụng với vị trí QA và QC thuộc hệ thống kiểm định chất lượng của bất kỳ sản phẩm nào, không riêng gì chất lượng của phần mềm trong ngành IT. 

Trong một doanh nghiệp, số lượng QC thường thấp hơn nhiều so với số lượng QA. Cụ thể, trong một công ty  thường thì chỉ có 1-3 QA tập trung làm về quy trình, trong khi số lượng QC có thể lên đến hàng chục người tập trung làm việc với Developer để nâng cao chất lượng sản phẩm. Trên thị trường lao động cũng xuất hiện một số thuật ngư như PQA (Process Quality Assurance- đảm bảo chất lượng quy trình), và SQA (Software Quality Assurance- đảm bảo chất lượng phần mềm). Hiểu một cách đơn giản, PQA có vai trò tương đương với một QA và SQA có nhiệm vụ giống với một QC. Khi ứng tuyển vào các vị trí QA/ QC/ SQA/ PQA, bạn nên tìm hiểu kỹ mục JD để tránh nhầm lẫn giữa nhiệm vụ của các vị trí này bạn nhé. 

Các kỹ năng cần có để trở thành một QA và QC

Vì chức năng và nhiệm vụ của QC là một tập con thuộc hoạt động của QA, nên một nhân viên QA sẽ phải sở hữu ‘bộ kỹ năng’ (skill sets) rộng hơn QC, cụ thể như sau:

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. Như vậy mới 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.

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 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. Mục đích: 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.

Nguồn tự học dành cho QA và QC:

Tài liệu cho QA

  • 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.
  • 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.Tài liệu QC học tập

Tài liệu học tập QC

  • 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.

Hy vọng rằng những thông tin xoay quanh chủ đề QA, QC được đề cập trong bài viết này đã giúp bạn có một cái nhìn tổng quan về lịch sử phát triển, định nghĩa, sự khác biệt giữa QA và QC, các kỹ năng cần thiết và các nguồn hữu ích để trau dồi các kỹ năng đó. Trong các bài viết tiếp theo, Spiderum sẽ cung cấp mô tả chi tiết về môi trường làm việc của QA và QC, vậy nên các bạn hãy tiếp tục theo dõi và đừng bỏ lỡ những bài viết sắp tới của chúng mình nhé. Nếu bạn có bất kỳ câu hỏi hay thông tin nào liên quan đến ngành QA và QC thì hãy chia sẻ với cộng đồng bạn đọc bằng cách comment và share bài viết này. Thân ái.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *