Chất lượng phần mềm/3

Một số trong các bạn hỏi tôi về khác biệt giữa Đảm bảo chất lượng phần mềm (SQA), Kiểm soát chất lượng phần mềm (SQC) và Kiểm thử phần mềm. Về cơ bản, SQA hội tụ vào các vấn đề có liên quan tới qui trình tạo ra sản phẩm phần mềm. SQC hội tụ vào vấn đề có liên quan tới sản phẩm phần mềm. Kiểm thử là phương pháp của SQC để chắc rằng sản phẩm làm việc như mong đợi.

Thỉnh thoảng, mọi người lẫn lộn SQA với Kiểm thử và coi SQA như tổ chức kiểm thử, điều này là KHÔNG đúng. Chuẩn IEEE 12207-2008 nói rằng “Mục đích của Đảm bào chất lượng phần mềm (SQA) là cung cấp đảm bảo rằng sản phẩm công việc và qui trình tuân thủ theo kế hoạch đã xác định trước.” Chuẩn này cũng nói rằng qui trình SQA phải được phối hợp với các hoạt động dự án có liên quan như qui trình trắc nghiệm, kiểm nghiệm, kiểm điểm và kiểm định để nhận diện việc không tuân thủ. Nó ngụ ý rằng SQA đảm bảo rằng sản phẩm và qui trình tuân thủ theo kế hoạch dự án và chuẩn của tổ chức. Chuẩn này yêu cầu SQA đảm bảo rằng những qui trình này được làm tài liệu, được tuân theo và nhất quán với chính sách của công ti. Sản phẩm hoàn toàn thoả mãn các yêu cầu và được chấp nhận cho người dùng. Chẳng hạn: SQA kiểm điểm yêu cầu, kiến trúc và thiết kế dự án để đảm bảo rằng chúng được làm tài liệu tương ứng và các thành viên tổ dự án tuân theo qui trình của tổ chức để phát triển phần mềm. SQC và Kiểm thử thực hiện chương trình phần mềm để chắc rằng nó làm việc và đáp ứng yêu cầu.

Qui trình SQA có thể được mô tả như sau:

  1. Xác định kế hoạch đảm bảo chất lượng để nhận diện điều cần làm đảm bảo chất lượng.
  2. Hỗ trợ người quản lí dự án xác định các chuẩn, hướng dẫn và các kĩ thuật khác cho dự án
  3. Đảm bảo kiểm soát chất lượng một cách hệ thống cho các qui trình và sản phẩm như kiểm điểm, giám định, kiểm định cũng như quản lí/kiểm soát cấu hình, đưa ra sản xuất, kiểm soát dự án, hợp đồng và quản lí nhà cung cấp, kiểm soát tài liệu, bảo trì, sao lưu và phục hồi, và an ninh.
  4. Duy trì bản ghi chất lượng để theo dõi vấn đề.
  5. Phân tích và báo cáo về vấn đề chất lượng cho cấp quản lí.
  6. Duy trì và cải tiến chất lượng sản phẩm.

Bởi vì SQA bao giờ cũng kiểm tra về bất kì sự không tuân thủ nào và một số người phát triển không thích bị giám sát, thường có xung đột giữa họ. Một số người phát triển coi SQA giống như “cảnh sát” và không bày tỏ mấy kính trọng với công việc của họ. Điều này hầu hết là do thiếu đào tạo về chất lượng cho người phát triển và sự kiện là nhiều SQA KHÔNG được đào tạo tốt và KHÔNG có đủ kinh nghiệm đáng đòi hỏi kính trọng. Tôi đã thấy nhiều người làm việc như SQA chỉ có kinh nghiệm phần mềm hạn chế. Nhiều người quản lí KHÔNG coi SQA là quan trọng và thường phân công người mới, người không có nhiều kinh nghiệm vào việc này. Một số người quản lí thậm chí còn bảo tôi: “Nếu họ KHÔNG thể phát triển phần mềm tốt, chúng tôi xếp họ làm việc như SQA”. Đây là sai lầm rất lớn và đó là lí do tại sao nhiều SQA không thành công mấy trong việc của họ. Đó là lí do tại sao nhiều phần mềm có khiếm khuyết.

SQA thành công nhất thường bắt nguồn từ nhóm lãnh đạo kĩ thuật, chính là người phát triển có kinh nghiệm. Những người này thường lãnh đạo các dự án, giải quyết các vấn đề kĩ thuật, và cung cấp đào tạo cho người phát triển mới. Họ biết rõ về phát triển phần mềm, biết rõ qui trình phát triển, và họ được người phát triển kính trọng. Những người này rất có tính dự ứng trong hướng dẫn, đào tạo và xác định qui trình cho nên đề bạt họ vào SQA là tiến bộ tự nhiên trong nghề nghiệp của họ. Nhiều người quản lí biện minh rằng vì họ là chủ yếu kĩ thuật, họ được cần để làm việc trong dự án nhưng luận cứ của tôi là mọi dự án đều cần ai đó để đảm bảo chất lượng và đầu tư vào SQA là bản chất cho thành công của dự án.

Theo kinh nghiệm của tôi, thay vì kiểm tra sự không tuân thủ và đòi hỏi hành động sửa chữa, người SQA dự ứng phải thiết lập môi trường thúc đẩy chất lượng và bao quát vòng đời đầy đủ của việc phát triển từ quan niệm tới hoàn thành. SQA phải trao đổi tầm quan trọng của tuân thủ qui trình để tạo ra sản phẩm chất lượng và đào tạo người phát triển tuân theo qui trình tương ứng. Thay vì đơn thuần xác nhận tuân thủ theo kế hoạch, QA phải đảm bảo rằng người phát triển hiểu mọi bước cần thiết để tạo ra sản phẩm chính xác, đầy đủ và chất lượng cao. Về cơ bản người SQA dự ứng là người thầy, người thầy kèm, huấn luyện viên, và người hướng dẫn để giúp cho người phát triển chuyển giao chất lượng sản phẩm và liên tục cải tiến cách họ phát triển phần mềm.

English version: Software quality part 3

Some of you ask me about the difference between Software Quality Assurance (SQA), Software Quality Control (SQC) and Software Testing. Basically, SQA focuses on issues related to the process that create the software product. SQC focuses on the issues related to the software products. Testing is the method of SQC to make sure that the product works as expected.

Full article: Software quality part 3

Tác phẩm, tác giả, nguồn

  • Tác phẩm: Kĩ nghệ phần mềm
  • Biên tập: Kipkis.com
  • Nguồn: Blog của giáo sư John Vu, Carnegie Mellon University.
"Like" us to know more!