Chất lượng phần mềm là gì

Phan Thái Châu

11/11/2020

Share

Chất lượng phần mềm là gì

Chất lượng phần mềm và những nguyên nhân gây ra lỗi phần mềm

Chất lượng phần mềm là gì – Như chúng ta đã biết phần mềm là phần mà chúng ta không thể sờ được. Chúng ta chỉ có thể nhìn thấy thông qua giao diện đồ họa trên máy tính. Ở đây khi nói đến phần mềm, mọi người thường nghĩ ngay đến phần mềm được cài đặt trên máy tính.

Nếu không sờ được, cảm nhận được thì làm sao chúng ta biết được phần mềm đó chất lượng ra sao ? Tiêu chí nào để đánh giá chất lượng của một phần mềm ? Để làm rõ điều đó Kho Phần Mềm Soft Folder mời bạn cùng tìm hiểu chi tiết sau đây.

Chất lượng phần mềm là gì 

Chất lượng được hiểu là tốt hay không tốt, bền hay không bền, sử dụng có lâu hay không ? Đối với phần mềm, chất lượng đó chính là mức độ mà nó đáp ứng được yêu cầu của người sử dụng. Chất lượng phần mềm được đánh giá dựa vào nhiều tiêu chí khác nhau như :

+ Mức độ mà sản phẩm phần mềm đó đáp ứng được yêu cầu của khách hàng đó như thế nào. Nghĩa là khi sản xuất phần mềm, người lập trình phải làm việc với khách hàng để làm rõ mong muốn, yêu cầu chi tiết của khách hàng đối với phần mềm đó ra sao ?

+ Mức độ mà phần mềm hoặc ứng dụng đó có thể đáp ứng nhu cầu của khách hàng hoặc người dùng cuối. Đây chính là việc khách hàng có thoả mãn nhu cầu khi sử dụng hay không ? Tuy nhiên, để đánh giá chất lượng của một phần mềm được chính xác khách hàng phải có khả năng phân tích nhận xét, đánh giá nhất định.

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

Chất lượng phần mềm là gì theo Roger Pressman

Theo Roger Pressman,một kỹ sư phần mềm nổi tiếng người Mỹ cho biết. Chất lượng phần mềm được thể hiện khi nó có thể đáp ứng các yêu cầu chức năng, hiệu năng, các chuẩn mực nhất định.

Ở Việt Nam hiện nay, có nhiều lỗ hỏng lớn ở các phần mềm, xong chúng thường được phát hiện khi đã xảy ra sự cố lớn. Điều này khiến cho khách hàng dần mất lòng tin, tuy nhiên không phải đơn vị cung cấp phần mềm nào cũng kém chất lượng.

Có thể thấy rằng, chất lượng phần mềm là vấn đề được không ít người quan tâm. Tuy nhiên theo đánh giá của các chuyên gia trên thế giới, ngành công nghiệp phần mềm tại các công ty ở Việt Nam còn nhiều hạn chế. Dù vậy, vẫn có một số đơn vị trong nước hiện đã đạt các tiêu chuẩn như CMM/CMMI nhất định. Đây là một trong những tiêu chuẩn đánh giá năng lực và quản lý chất lượng phần mềm.

Quản lý chất lượng phần mềm là gì 

Quản lý chất lượng phần mềm việc theo dõi, giám sát tất cả quá trình từ khi nhận dự án. Kiểm tra giám sát phần mềm có phát sinh lỗi hay không. Xem phần mềm các kỹ thuật viên sản xuất có “chạy” đúng yêu cầu hay không ? Cuối cùng là hoạt động kiểm tra trước khi bàn giao, đây được xem là nhiệm vụ chính của quản lý chất lượng phần mềm.

Với khách hàng họ chỉ cần phần mềm có thể hoạt động theo đúng yêu cầu, thời gian theo như thỏa thuận ban đầu. Tuy nhiên là những người phát triển phần mềm, không phải phần mềm nào cũng có thể sản xuất đúng hạn và đúng yêu cầu. Chính vì vậy quá trình kiểm tra, dùng thử để phát hiện lỗi là khâu rất quan trọng.

Như vậy để đảm bảo tiêu chí đúng yêu cầu và thời gian bàn giao cho khách hàng. Đòi hỏi người quản lý phải thực hiện tốt công tác tổ chức vận hành kiểm tra dùng thử phần mềm. Không những vậy người quản lý còn phải tổ chức chặt chẽ nhằm duy trì quá trình hoạt động cả thống công việc liên quan đến dự án. Tại các công ty chuyên sản xuất gia công phần mềm luôn có một hệ thống quản lý chất lượng phần mềm hiệu quả. Bao gồm các quy trình được thực thi xuyên suốt trong một chu kỳ phát triển của dự án.

Chất lượng phần mềm là gì
Chất lượng phần mềm là gì

Hiện nay có khá nhiều những mô hình cung cấp các tiêu chuẩn và hướng dẫn triển khai quản lý chất lượng phần mềm. Theo đó ISO 9001-2000 và CMM/CMMi là 2 mô hình quản lý chất lượng phổ biến nhất.

Nếu như tiêu chuẩn ISO 9001-2000 là tiêu chuẩn dùng để quản lý chất lượng cho tất cả các ngành nghề thì CMM/CMMi tập hợp các kinh nghiệm thực hành quản lý chất lượng.

Mục tiêu của hệ thống quản lý chất lượng

Hệ thống quản lý chất lượng thường có 2 mục tiêu đó chính là

+ Xây dựng chất lượng ngay từ khi bắt đầu nhận dự án phần mềm. Điều này giúp cho việc theo dõi giám sát quản lý phần mềm sát sao hơn. Đòi hỏi tất cả các quy trình phải được diễn ra một cách đúng đắn, giữa người yêu cầu và người thực hiện.

+ Chất lượng phần mềm được đảm trong suốt quá trình phát triển.

10 yếu tố cơ bản trong quản lý chất lượng

Các tiêu chuẩn (Standards)

Lập kế hoạch (Planning)

Xem xét, xem lại (Reviewing)

Kiểm tra (Testing)

Phân tích lỗi (Defect analysis)

Quản lý cấu hình (Configuration Management)

Bảo mật (Security)

Đào tạo, huấn luyện (Education/Training)

Quản lý người cung cấp, thầu phụ (Vendor Management)

Quản lý rủi ro (Risk Management)

Để chất lượng phần mềm được đảm bảo, 10 yếu tố này cũng như các giai đoạn phần mềm phải có mối liên hệ với nhau.

Quản lý chất lượng phần mềm
Quản lý chất lượng phần mềm

Một số nguyên nhân gây ra lỗi phần mềm cần biết 

Lỗi khi định nghĩa yêu cầu

Lỗi này được xem là nguồn gốc của các lỗi phần mềm.

Định nghĩa yêu cầu lỗi: Định nghĩa sai, ví dụ công thức sai

Định nghĩa không đầy đủ : Yêu cầu không rõ ràng

Thiếu yêu cầu

Yêu cầu không cần thiết:

Nhiều dự án có những yêu cầu mà không bao giờ dùng đến.

Ảnh hưởng tới ngân sách, độ phức tạp, thời gian phát triển, …

Quan hệ Client-developer

Hiểu sai các tài liệu yêu cầu

Hiểu sai tài liệu khi bị thay đổi

Hiểu sai thay đổi (miệng) trong quá trình phát triển

Không tham dự

Thông báo cho khách hàng về giải pháp của devlopers về những thay đổi yêu cầu và Phản hồi của khách hàng về những câu hỏi của developer.

Đôi khi khách hàng trình bày như người dùng, lập trình viên trình bày theo tư duy khác hẳn.

Sai phạm có chủ ý với yêu cầu phần mềm

Developer tái sử dụng kết quả tương tự trước đó để tiết kiệm thời gian. Theo đó các kỹ thuật viên thường tái sử dụng code, họ chỉnh sửa những phần không cần hoặc không dùng. Sau đó chèn thêm “cải tiến” không được chấp nhận có thể là cải tiến code, sắp xếp/tìm kiếm mới…) do áp lực về thời gian. điều này có thể dẫn tới mất một vài tính năng.

Lỗi thiết kế logic

Thuật toán sai: Công thức sai, bảng quyết định sai, toán tử/toán hạng sai…

Định nghĩa tiến trình: các tiến trình trong hệ thống không phản ánh chính xác tiến trình nghiệp vụ.

Note: không phải tất cả các lỗi đều là software errors.

Đây là lỗi thủ tục, và không phải là một phần của hệ thống…

Lỗi khi định nghĩa điều kiện biên– nguồn lỗi phổ biến: Cần cẩn thận với các giá trị biên, ví dụ: ‘no more than’ “fewer than,” “n times or more;” “the first time,” …

Bỏ sót các trạng thái phần mềm : If rank is >= O1 and RPI is numeric, then…. Ta dễ bỏ sót hành động dựa trên trạng thái phần mềm.

Bỏ sót các định nghĩa liên quan tới các phản ứng khi có hành động không hợp lệ trong phần mềm có code để phát hiện ra các hành động không hợp lệ nhưng không thiết kế các hành động đáp trả của phần mềm. Ví dụ: chuông cảnh báo,…

Lỗi lập trình

Trong phần mềm có rất nhiều thứ liên quan tới lỗi coding, chẳng hạn như : Lỗi cú pháp (grammatical errors), Lỗi logic (program runs; results wrong). Lỗi Run-time (crash during execution).

Không tuân thủ các hướng dẫn viết tài liệu và code

Đây cũng là lỗi thường gặp ở các kỹ thuật viên phát triển phần mềm. Một số kỹ thuật thường Không tuân thủ theo các khuôn mẫu,Không tuân thủ theo các chuẩn coding.

Thiếu sót của quá trình kiểm thử

Là một phần của tiến trình phát triển dự án phần mềm, tuy nhiên lại thường xuyên bị các đơn vị cắt xén! Nhiều công ty phần mềm không có kế hoạch test, hoặc có nhưng qua loa, không đầy đủ: Không test hết các phần của ứng dụng, Không phát hiện được lỗi tài liệu, báo cáo. Không phát hiện được chính xác lỗi do mô tả mập mờ về lỗi đó, hoặc không đủ thời gian để sửa lỗi.

Lỗi giao diện người dùng và thủ tục

Giao diện không có hướng dẫn cho người dùng thực hiện những thao tác cần thiết với từng bước của tiến trình. Điều này rất quan trọng, nhất là đối với các phần mềm phức tạp. Lúc này đòi hỏi tiến trình gồm nhiều bước liên tiếp nhau. Mỗi bước xử lý nhiều kiểu dữ liệu khác nhau cho phép kiểm tra các kết quả trung gian.

Lỗi tài liệu

Lỗi trong thiết kế tài liệu, tài liệu hướng dẫn sử dụng, online help..

Liệt kê những chức năng không tồn tại: Đã từng lập kế hoạch phát triển, nhưng hoãn và chưa kịp sửa tài liệu.

Các thông báo lỗi vô nghĩa xuất hiện không phù hợp.

Đặc tả (Specification): đặc tả lỗi, không đầy đủ, không nhất quan.

Thiết kế (Design): lỗi cơ bản trong thiết kế phần mềm. Cài đặt (Code): lỗi lập trình, mã độc (malicious code).

Hệ thống hỗ trợ: Ngôn ngữ lập trình nghèo nàn, trình biên dịch có lỗi…

Kiểm thử không đầy đủ: kiểm thử chưa xong, kiểm chứng nghèo nàn,…

Tổng kết 

Trên đây là những kiến thức, thông tin, khái niệm cơ bản về chất lượng phần mềm. Cũng như các yếu tố đánh giá chất lượng phần mềm, Quản lý phần mềm, những lỗi thường gặp khi sản xuất phần mềm.. Hy vọng bạn sẽ có thêm nhiều thông tin hữu ích khi tìm hiểu chất lượng phần mềm là gì ?