Tiêu chí đánh giá chất lượng sản phẩm phần mềm là gì?

Software functional quality reflects how well it complies with or conforms to a given design, based on functional requirements or specifications.

Thuật ngữ và định nghĩa

Mô hình chất lượng: là một hợp tiêu chí và mối quan hệ giữa chúng để cung cấp cơ sở cho việc xác định yêu cầu chất lượng và đánh giá chất lượng. 

Chất lượng trong: là tổng hợp của tất cả các đặc điểm của sản phẩm phần mềm từ góc độ của người phát triển phần mềm.Chất lượng trong được đo lường và đánh giá theo các yêu cầu chất lượng trong (sử dụng bộ đo trong). Chất lượng trong của sản phẩm phần mềm được cải tiến trong suốt suốt thời gian lập trình, kiểm thử và không bao gồm giai đoạn thiết kế phần mềm.

Chất lượng ngoài: là toàn bộ các đặc điểm của sản phẩm phần mềm từ góc độ của người đánh giá phần mềm độc lập. Chất lượng này thể hiện khi phần mềm hoạt động, nó được đánh giá trong môi trường với dữ liệu giả lập (sử dụng công cụ đo độc lập). 

Chất lượng sử dụng: là cách nhìn của người sử dụng về chất lượng sản phẩm phần mềm khi nó được cài đặt trong một môi trường và ngữ cảnh cụ thể. Chất lượng này xác định phạm vi mà người sử dụng có thể đạt được mục đích của mình trong một môi trường cụ thể hơn là chỉ ra các tính năng của bản thân phần mềm.

Mô hình cho chất lượng trong và ngoài: phân loại chất lượng sản phẩm phần mềm theo sáu tiêu chí: tính năng, độ tin cậy, sự tiện lợi, tính hiệu quả, khả năng bảo hành bảo trì và tính khả chuyển.

Tiêu chí đánh giá chất lượng sản phẩm phần mềm là gì?

Chất lượng sản phẩm phần mềm được xác định và đánh giá theo nhiều hướng, gắn với kết quả thu được, các yêu cầu, sự phát triển, sử dụng, đánh giá, hỗ trợ, tính ổn định, đảm bảo chất lượng và kiểm định của phần mềm. Chất lượng sản phẩm có thể được đánh giá bởi nhà thầu (đơn vị xây dựng phần mềm), đơn vị sử dụng, nhân viên đảm bảo chất lượng phần mềm (QA), người thẩm định thiết kế, người đánh giá độc lập...

Đầu vào đánh giá chất lượng sản phẩm phần mềm

Mô hình chất lượng có thể được dùng để:

  • Kiểm tra khả năng đáp ứng đối với những yêu cầu đặt ra.
  • Xác định/khoanh vùng phạm vi các yêu cầu phần mềm.
  • Xác định ai là người phù hợp có thể tham gia thiết kế, xây dựng phần mềm.
  • Xác định ai là người phù hợp có thể kiểm thử phần mềm với dự án này.
  • Xác định các tiêu chuẩn đảm bảo chất lượng.
  • Xác định các tiêu chuẩn chấp nhận cho một sản phẩm phần mềm hoàn chỉnh.

Quy trình đánh giá chất lượng sản phầm phần mềm

Phương pháp xác định tham số chất lượng

Các bước trong phương pháp:

  • Xây dựng yêu cầu chất lượng phần mềm.
  • Xác định tham số chất lượng.
  • Áp dụng tham số chất lượng: thu thập thông tin và áp dụng tham số chất lượng cho từng pha trong chu trình phần mềm.
  • Phân tích kết quả tham số chất lượng phần mềm. Các kết quả phải được phân tích và báo cáo hỗ trợ điều chỉnh hướng phát triển phần mềm và hoàn thiện nó.

Khung tham số chất lượng phần mềm

Mỗi tiêu chí chất lượng, tiêu chí chất lượng con của phần mềm đều được xác định cụ thể. Với mỗi tiêu chí và các tiêu chí con, khả năng của phần mềm được xác định bằng tập các thuộc tính trong có thể đo đạc được. Các tiêu chí và các tiêu chí con cũng có thể đo đạc trong phạm vi khả năng của hệ thống chứa phần mềm.

Software quality

a) Tính chức năng (Functional Suitability)
Khả năng của phần mềm cung cấp các chức năng đáp ứng được nhu cầu sử dụng khi phần mềm làm việc trong điều kiện cụ thể.

  • Tính phù hợp: là khả năng của một phần mềm có thể cung cấp một tập các chức năng thích hợp cho công việc cụ thể phục vụ mục đích của người sử dụng.
  • Tính chính xác: là khả năng của phần mềm có thể cung cấp các kết quả đúng đắn, hoặc hiệu quả chấp nhận được với độ chính xác cần thiết.
  • Khả năng hợp tác làm việc: khả năng tương tác với một hoặc một vài hệ thống cụ thể của phần mềm.
  • Tính an toàn: khả năng bảo vệ thông tin và dữ liệu của sản phẩm phần mềm, sao cho người, hệ thống không được phép thì không thể truy cập, đọc hay chỉnh sửa chúng.
  • Tính năng phù hợp: các phần mềm theo các quy chuẩn, quy ước, quy định.

b) Tính tin cậy (Reliability)
Là khả năng của phần mềm có thể hoạt động ổn định trong những điều kiện cụ thể.

  • Khả năng tự hoàn thiện: khả năng tránh được các kết quả sai, dẫn người dùng theo các thao tác phụ để đi đến kết quả đúng.
  • Khả năng chịu đựng lỗi: khả năng của phần mềm hoạt động ổn định tại một mức độ cả trong trường hợp có lỗi xảy ra ở phần mềm hoặc có những lỗi thao tác trong giao diện người dùng.
  • Khả năng phục hồi: khả năng của phần mềm có thể tái thiết lại hoạt động tại một mức xác định và khôi phục lại những dữ liệu có liên quan trực tiếp đến lỗi.
  • Tính tin cậy phù hợp: phần mềm thoả mãn các quy chuẩn, quy ước, quy định.

c) Tính khả dụng (Operability)
Là khả năng của phần mềm có thể hiểu được, học được, sử dụng được và hấp dẫn người sử dụng trong từng trường hợp sử dụng cụ thể.

  • Có thể cảm nhậnđược: người dùng có thể hiểu được xem phần mềm có hợp với họ không và và sử dụng chúng thế nào cho những công việc cụ thể.
  • Có thể học được: người sử dụng có thể học các ứng dụng của phần mềm.
  • Tính hấp dẫn: khả năng hấp dẫn người sử dụng phần mềm
  • Tính khả dụng: khả năng của phần mềm cho phép người dùng sử dụng và điều khiển nó.
  • Tính khả dụng phù hợp: phần mềm thoả mãn các chuẩn, quy ước, quy định

d) Tính hiệu quả (Performance Efficiency)
Khả năng của phần mềm có thể hoạt động một cách hợp lý, tương ứng với lượng tài nguyên nó sử dụng, trong điều kiện cụ thể.

  • Đáp ứng thời gian: khả năng của phần mềm có thể đưa ra một trả lời, một thời gian xử lý và một tốc độ thông lượng hợp lý khi nó thực hiện công việc của mình, dưới một điều kiện làm việc xác định.
  • Sử dụng tài nguyên: khả năng của phần mềm có thể sử dụng một lượng, một loại tài nguyên hợp lý để thực hiện công việc trong những điều kiện cụ thể.
  • Tính hiệu quả phù hợp: thoả mãn các quy chuẩn, quy ước, quy định.

e) Khả năng bảo hành, bảo trì (Maintainability)
Là khả năng của phần mềm có thể chỉnh sửa, điều chỉnh để phù hợp với quy mô mới, thực trạng mới. Việc chỉnh sửa bao gồm: sửa lại cho đúng, cải tiến và làm phần mềm thích nghi được với những thay đổi của môi trường, của yêu cầu và của chức năng xác định.

  • Có thể phân tích được: phần mềm có thể được chẩn đoán để tìm những thiếu sót hay những nguyên nhân gây lỗi hoặc để xác định những phần cần sửa.
  • Có thể thay đổi được: phần mềm có thể chấp nhận một số thay đổi cụ thể trong quá trình triển khai.
  • Tính ổn định: khả năng tránh những tác động không mong muốn khi chỉnh sửa phần mềm.
  • Có thể kiểm định (verify), thẩm định (validate) được: khả năng cho phép đánh giá được phần mềm chỉnh sửa.
  • Khả năng bảo hành bảo trì phù hợp: thoả mãn các quy chuẩn, quy ước, quy định.

f) Tính khả chuyển (Transferability, Portability)
Là khả năng của phần mềm cho phép được chuyển từ môi trường này sang môi trường khác.

  • Khả năng thích nghi: khả năng của phần mềm có thể thích nghi với nhiều môi trường khác nhau mà không cần phải thay đổi.
  • Có thể cài đặt được: phần mềm có thể cài đặt được trên những môi trường cụ thể.
  • Khả năng cùng tồn tại: phần mềm có thể cùng tồn tại với những phần mềm độc lập khác trong một môi trường chung, cùng chia sẻ những tài nguyên chung.
  • Khả năng thay thế: phần mềm có thể dùng thay thế cho một phần mềm khác, với cùng mục đích và trong cùng môi trường.
  • Tính khả chuyển phù hợp: thoả mãn các quy chuẩn, quy ước, quy định.