• Hotline: +84–246 293 9036
  • recruit@vietis.com.vn
  • 3F & 5F, 3A Building, Lane 82 Duy Tan Str., Hanoi, Vietnam

1. Giới thiệu chung

Trong lĩnh vực công nghệ thông tin (sản xuất phần mềm), có 2 khái niệm (vị trí công việc) thường bị nhầm lẫn với nhau, đó là QA và Test. Trên thực tế, ở nhiều công ty phần mềm, bộ phận QA còn nằm lẫn với bộ phận kiểm lỗi (test) sản phẩm. Thực tế, QA là công việc khác biệt nhiều so với test phần mềm. Dù được coi là sản phẩm “chất xám” và high-tech nhưng để ra đời một phần mềm tốt, quy trình sản xuất phần mềm cũng không khác gì so với việc sản xuất một sản phẩm cụ thể.

2. Phân biệt SQA và PQA

Khái niệm QA phần mềm bao gồm PQA (Process Quality Assurance – bảo đảm chất lượng quy trình) với SQA (Software Quality Assurance – bảo đảm chất lượng phần mềm). Tại một số công ty ở Việt Nam :

SQA được xem như việc kiểm lỗi khi sản phẩm đã định hình. Số khác lại coi SQA là việc kiểm tra đầu ra trung gian của sản phẩm, để sản phẩm đạt được sự nhất quán trong quá trình thực hiện. Dù ở khía cạnh nào thì SQA cũng là kiểm tra trực tiếp sản phẩm. Công việc của SQA thường được biết đến như là công việc của một tester.

Còn PQA có 2 việc chính:

  • Một : là xây dựng hệ thống quy trình cho dự án (bằng cách ứng dụng những quy trình quản lý sẵn có như ISO hay CMM hoặc dựa trên đó xây dựng quy trình chuẩn).
  • Hai : là thực hiện việc giám sát, kiểm tra việc thực hiện quy trình của từng bộ phận, từng dự án, từ đó tổng hợp thông tin để đưa ra những cải tiến cho quy trình hoạt động tốt.

3. Những đặc trưng của nghề PQA

Với công việc đúng nghĩa như trên thì PQA đang là “của hiếm” trong các công ty phần mềm, cũng có thể coi đây chính là đại diện cho nghề QA nói chung. Bởi, xây dựng được một quy trình quản lý chất lượng tốt chính là cách làm tăng lợi nhuận hơn gấp nhiều lần.

Khi đầu tư cho PQA, các công ty phải bỏ ra những loại chi phí nhất định để có thể duy trì được quy trình này và có thể ứng dụng vào thực tế. Theo lý thuyết có 3 loại chi phí con trong chi phí về chất lượng sản phẩm:

Chi phí ngăn chặn lỗi (prevention cost).

Chi phí kiểm soát lỗi (control cost).

Chi phí phát sinh khi có lỗi (failure).

Theo một số tài liệu về quy trình sản xuất phần mềm (như CMM), 1 đồng đầu tư cho khâu thứ nhất sẽ làm giảm được 10 đồng ở khâu thứ 3, và 1 đồng đầu tư cho khâu thứ 2 sẽ giảm 3 đồng ở khâu thứ 3. Khi một doanh nghiệp biết đầu tư đúng chỗ thì cả quá trình hoạt động sẽ tiết kiệm được rất nhiều chi phí. Muốn được như vậy, thì phải có người đưa quy trình ấy vào thực tế hoạt động của doanh nghiệp – đó chính là công việc của PQA. 

Nhưng để tuyển được một PQA không phải là điều đơn giản. Nhiều công ty vừa và nhỏ không chỉ định một vị trí PQA rõ ràng, mà QA 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, hoặc vị trí PQA không được phân chia rạch ròi, bộ phận QA sẽ chịu trách nhiệm chung cho cả mảng PQA và SQA dẫn đến việc chuyên môn sâu của PQA không được sử dụng hiệu quả, kiểm soát chất lượng phần mềm không đạt được kết quả như mong chờ.

Trong thực tế, PQA chuyên biệt 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 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 mới tuyển vị trí PQA và chỉ có 2 – 3 nhân sự cho toàn bộ các team làm sản phẩm còn lại.

4. Nhiệm vụ chủ yếu của PQA

  • Đề xuất và đưa ra những quy trình phát triển (development process) sản phẩm phù hợp theo yêu cầu của từng dự án. Các quy trình này có thể phát triển dựa trên V-model hay Agile (đa số Scrum Lean Development) hay thông qua việc áp dụng những quy trình quản lí sẵn có như ISO, CMMI. 
  • Cung cấp 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ả bộ phận trong nhóm phát triển sản phẩm. 
  • Kiểm tra, giám sát việc thực thi quy trình của các bộ phận trong nhóm sản phẩm có đúng quy trình đã đề 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 cho phù hợp với từng sản phẩm mà các team đang thực hiện.

5. Những yếu tố nào là quan trọng nhất đối với một PQA?

5.1. Về Technical: có 3 yếu tố:

  • Được đào tạo, có kiến thức nền tảng về IT và lập trình. Nghề QA đòi hỏi có kiến thức rộng hơn là kiến thức sâu. Ví dụ một QA quá tập trung vào một ngôn ngữ lập trình, khi gặp dự án sử dụng 1 ngôn ngữ lập trình khác, hoặc domain knowledge khác thì chắc chắn sẽ gặp rắc rối.
  • Những kiến thức về domain đặc thù: healthcare, banking, tài chính… Chúng đều cần thiết. Đôi khi có những dự án đặc thù về banking, khách hàng sẽ bỏ qua tiêu chí chọn QA có IT background, vì khi đó background về domain knowledge banking sẽ có lợi thế hơn
  • Kiến thức về các hệ thống phần mềm và chuyên ngành QA. Ví dụ: một QA khi test ứng dụng web nhưng không hiểu cấu trúc của ứng dụng web thế nào? Nó được hình thành thế nào? thì người đó sẽ không thể nào cống hiến tốt cho việc đảm bảo chất lượng.

5.2. Về soft skills cũng có 3 yếu tố:

  • Kỹ năng giao tiếp tốt: Ví dụ điển hình: khi QA test ra bug, report với developer. dev không đồng ý đó là bug và xảy ra tranh luận dẫn đến ảnh hưởng đến tinh thần teamwork.. Một QA có kỹ năng giao tiếp tốt là người giúp dev hiểu đó là bug và cần phải sửa.
  • Cẩn thận và suy nghĩ thấu đáo: Ví dụ: 1 tester đang thực hiện manual testing về ứng dụng web, gặp lỗi nhỏ về UI và bỏ qua nó. Nhưng khi đến với khách hàng, lỗi này làm họ cảm thấy khó chịu. Người QA cần có kỹ năng làm việc cẩn thận và suy nghĩ thấu đáo để chú ý đến từng vấn đề nhỏ nhất.
  • Tư duy sáng tạo. Nếu chỉ test những case thông thường thì không thể đảm bảo được tất cả các trường hợp xảy ra lúc hệ thống vận hành tại các môi trường bên ngoài. Do đó, tư duy sáng tạo giúp QA tạo nên những test case lạ, sáng tạo và giúp tìm được những lỗi có giá trị cho việc đảm bảo chất lượng.

6. Career path nào sẽ phù hợp cho một QA?

Career path cho 1 QA khác nhau giữa các công ty, nhưng nhìn chung sẽ có những bước cơ bản: bắt đầu với vị trí tester khi chưa có kinh nghiệm gì, khi có kiến thức hơn thì làm test design, sau đó là test lead/QA lead, test manager/QA manager.

  • Lên đến manager thì chuyển sang lĩnh vực quản lý hoặc nếu giỏi technical thì có thể chọn hướng làm chuyên gia test automation, performance, security và đóng góp rất nhiều cho chất lượng sản phẩm.

7. Kết Luận

Với tính chất công việc như đã nêu ở trên, PQA thường được gọi là những “kẻ đi soi mói”, công việc là “soi mói” quy trình phần mềm. Và trên thực tế, để có thể làm tốt được nhiệm vụ của mình, kiến thức của người làm PQA không những phải rộng mà còn phải có độ sâu nhất định để hiểu hết công việc trong phạm vi hệ thống mình đang quản lý, và cũng không thể thiếu khả năng tổ chức, tư duy logic và có hệ thống. Hơn nữa, một PQA còn có kỹ năng đo lường và phân tích số liệu. Ngoài ra, kỹ năng giao tiếp và khai thác thông tin của nhân viên PQA cũng quan trọng, bởi trong công ty có nhiều người, mỗi người giỏi ở một lĩnh vực khác nhau thì PQA cần biết khai thác để tận dụng những thông tin đó cho việc xây dựng hệ thống quy trình.

Như vậy, có thể thấy được rằng PQA là một nghề quan trọng, không thể thiếu trong quy trình tạo ra một sản phẩm phần mềm, đây chắc chắn không phải là một công việc dễ dàng nhưng đó là một công việc thú vị và có nhiều thử thách.

Tài liệu tham khảo:

  1. https://qmsgurus.com/information-technology-quality-assurance/#:~:text=Quality%20assurance%20in%20information%20technology,configuration%20management%20and%20process%20improvement
  2. https://www.guru99.com/all-about-quality-assurance.html
  3. https://melsatar.blog/2012/03/15/software-development-life-cycle-models-and-methodologies/
  4. https://viblo.asia/p/gioi-thieu-ve-process-quality-assurancepqa-RnB5peVJKPG
  5. https://viblo.asia/p/nhung-dieu-lam-nen-mot-qa-gioi-924lJMG0ZPM
  6. https://viblo.asia/p/phan-biet-qa-qc-va-testing-gGJ59anx5X2
  7. https://nld.com.vn/viec-lam/nghe-sam-soi-phan-mem-178500.htm

ĐỐI TÁC TIÊU BIỂU