Phân tích yêu cầu phi chức năng (Non-Functional Requirements Analysis)
Khái niệm về yêu cầu chức năng và phi chức năng chắc hẳn không còn xa lạ với những ai làm việc trong lĩnh vực công nghệ thông tin. Mỗi dự án phát triển phần mềm để thành công đều cần đáp ứng đầy đủ các yêu cầu về mặt chức năng và cả phi chức năng. Yêu cầu chức năng dễ hình dung hơn, nó là cách phần mềm hoạt động, cách người dùng tương tác với hệ thống. Vậy còn yêu cầu phi chức năng là gì? Làm thế nào để phân tích hiệu quả yêu cầu phi chức năng?
Chúng ta cùng tìm hiểu rõ hơn trong bài blog này nhé!
1. Khái niệm:
- Theo BAbok, yêu cầu phi chức năng nói cách khác là các tiêu chí được sử dụng để đánh giá hoạt động của phần mềm, hệ thống. Thường được gắn với các giải pháp cải thiện hệ thống.
- Ví dụ: Kiểm thử trường hợp cùng 1 lúc X (rất nhiều) user đăng nhập đồng thời vào hệ thống thì phản hồi của hệ thống sẽ như nào?
2. Các loại yêu cầu phổ biến:
Theo BAbok, có 15 loại yêu cầu phi chức năng được biết đến rộng rãi. Đó là:
- Bảo mật (Security): Ngăn chặn phần mềm ứng dụng bị tác động bởi các phần mềm độc hại, hacker hoặc lộ thông tin.
- Độ tin cậy (Reliability): Mức độ hoạt động tốt của phần mềm hệ thống trong 1 khoảng thời gian đã được quy định.
- Khả năng mở rộng (Scalability): Mức độ mở rộng khả năng xử lí để đáp ứng các nhu cầu gia tăng.
- Hiệu suất (Usability): Mức độ thân thiện với người dùng (dễ dàng sử dụng).
- Tính khả dụng (Availability): Đo mức độ có thể sử dụng khi có yêu cầu, người dùng có thể phụ thuộc vào hệ thống hay không. Thường được thể hiện dưới dạng %.
- Tính di động (Portabilit): Dễ dàng chuyển từ môi trường này sang môi trường khác. Chuyển đổi từ môi trường phần cứng hoặc phần mềm hiện tại của nó.
- Tính tương thích (Compatibility): Mức độ tương thích giữa quy trình với quy trình, của phần mềm hệ thống với các thiết bị hoặc với phần mềm hệ thống khác.
- Hiệu quả hoạt động (Performance Efficiency): Hiệu suất mà phần mềm hệ thống phản hồi tại 1 thời điểm. Ví dụ như khi hệ thống đạt mức sử dụng cao nhất hoặc thấp nhất.
- Chức năng (Functionality): Mức độ đáp ứng nhu cầu, tương tác của người dùng với phần mềm hệ thống.
- Khả năng bảo trì (Maintainability): Tính dễ dàng thay đổi, sửa lỗi để cải thiện hiệu suất, hoặc để tương thích với môi trường mới.
- Chứng nhận (Certification): Mức độ đáp ứng các tiêu chuẩn, quy ước của ngành.
- Tuân thủ (Compliance): Các ràng buộc về quy định, tài chính hoặc pháp lý có thể thay đổi tùy theo bối cảnh hoặc thẩm quyền.
- Tính bản địa (Localization): Các yêu cầu liên quan đến ngôn ngữ, giờ địa phương, tiền tệ...
- Mức độ dịch vụ (Service Level Agreements): Các ràng buộc của bên cung cấp và bên sử dụng phần mềm hệ thống.
- Khả năng phát triển (Extensibility): Đo mức độ có thể phát triển tính năng mới trong tương lai hay không.
Ngoài ra, còn nhiều loại yêu cầu phi chức năng khác ảnh hưởng đến sự hoạt động của một phần mềm hệ thống mà ít phổ biến hơn như: Kiểm thử chuyển đổi dự phòng (Failover Testing), kiểm thử phục hồi (Disaster Recovery Testing), kiểm thử đường cơ sở (Baseline Testing)...
3. Cách kiểm thử các yêu cầu phi chức năng:
Mỗi yêu cầu phi chức năng khác nhau sẽ có một cách đo lường và kiểm thử khác nhau. Ví dụ:
- Kiểm thử tính khả dụng thường được đo lường dưới dạng %: "Hệ thống phải cung cấp 90% phản hồi trong thời gian không quá hai giây"
- Kiểm thử chứng nhận (Certification): "Được đo lường bởi các tổ chức thiết lập tiêu chuẩn hoặc quy ước, chẳng hạn như các tiêu chuẩn Chứng nhận ISO,..."
Người kiểm thử cần linh hoạt vận dụng các cách kiểm thử khác nhau trong các trường hợp và phần mềm hệ thống cụ thể.
4. Bối cảnh:
Bối cảnh (Context) của các yêu cầu phi chức năng sẽ phụ thuộc vào từng tổ chức, phần mềm hệ thống khác nhau. Ví dụ:
- Những cơ quan quản lý cần đặt ra nhiều yêu cầu về bảo mật dữ liệu hệ thống.
- Một tổ chức mở rộng hệ thống ra nước ngoài sẽ cần cân nhắc đến tính địa phương hóa, quốc tế hóa..
Về cơ bản, các bối cảnh là linh hoạt và có thể được thay đổi điều chỉnh liên tục. Các yêu cầu phi chức năng cũng có thể ảnh hưởng lẫn nhau. Mục tiêu cốt lõi vẫn là để đảm bảo phần mềm hệ thống hoạt động an toàn và hiệu quả.
5. Ưu và nhược điểm:
a. Ưu điểm:
- Cung cấp thước đo mức độ thực hiện hiệu quả của các yêu cầu chức năng.
- Những quy định, ràng buộc rõ ràng để các phần mềm hệ thống hoạt động hiệu quả.
b. Nhược điểm:
- Khó nắm bắt khi kì vọng của các tổ chức, người dùng khác nhau đối với một phần mềm hệ thống là khác nhau.
- Có những trường hợp, các yêu cầu phi chức năng gây ra xung đột cho hệ thống.
- Các yêu cầu, ràng buộc quá nghiêm ngặt có thể làm tăng thêm chi và thời gian phát triển phần mềm hệ thống.
- Các yêu cầu phi chức năng thường mang tính định tính. Do đó, nhiều trường hợp khó để đo lường và thực hiện kiểm thử.
Nguồn tham khảo:
- Sách BABOK.
- https://www.guru99.com/non-functional-testing.html (và các bài viết liên kết có liên quan)