Ngay cả khi ứng dụng phần mềm tốt nhất được tung ra thị trường, nó phải được kiểm thử một cách nghiệm ngặt. Đó là lý do tại sao các nhà phát triển cần đưa một sản phẩm mới qua các bước trước khi tới tay người dùng. Vì vậy, hôm nay hãy cùng Testerpro tìm hiểu về kiểm thử, cụ thể là kiểm thử phi chức năng.
Kiểm thử phi chức năng Non-functional Testing là gì?
Kiểm thử phi chức năng là kiểm thử được thiết kế để kiểm tra các khía cạnh phi chức năng của ứng dụng phần mềm như hiệu suất, độ tin cậy, tiện ích… Ngoài ra, nó còn được thiết kế để kiểm tra mức độ sẵn sàng của hệ thống liên quan đến các tham số phi chức năng thường không bao giờ được giải quyết bởi kiểm thử chức năng.
Chẳng hạn, có bao nhiêu người dùng có thể đồng thời đăng nhập vào một ứng dụng phần mềm? Hoặc việc chuyển ứng dụng sang một hệ thống khác dễ hay khó như thế nào? Hoặc ứng dụng có hoạt động khác trong hệ điều hành, môi trường khác hay không?
Vì vậy, kiểm thử phi chức năng đưa ứng dụng vượt qua các bước của nó, kiểm tra các khía cạnh mà kiểm thử chức năng không chạm tới. Kiểm thử phi chức năng được thực hiện ngay sau khi kiểm thử chức năng kết thúc.
Mục tiêu của kiểm thử phi chức năng
- Đầu tiên, để tăng hiệu quả, khả năng bảo trì, khả năng sử dụng và tính di động của sản phẩm
- Tối ưu hóa cách cài đặt, thiết lập, thực thi, quản lý và giám sát sản phẩm
- Cải thiện và nâng cao kiến thức về hành vi sản phẩm và công nghệ của nó
- Hỗ trợ giảm rủi ro sản xuất và chi phí liên quan đến các khía cạnh phi chức năng của sản phẩm
- Thu thập và báo cáo các phép đo và chỉ số sản phẩm cho nghiên cứu và phát triển nội bộ
Đặc điểm của kiểm thử phi chức năng
Kiểm thử phi chức năng sở hữu một tập hợp các đặc điểm duy nhất:
- Kiểm thử phi chức năng phải khách quan, có thể định lượng và đo lường và không được sử dụng đặc tính chủ quan, chẳng hạn như các thuật ngữ như: tốt, tốt hơn, tốt nhất
- Con số chính xác có thể sẽ không được biết khi bắt đầu quá trình yêu cầu
- Yêu cầu phi chức năng cần phải được ưu tiên
- Người kiểm thử phải đảm bảo rằng tất cả các thuộc tính chất lượng được xác định chính xác trong công nghệ phần mềm.
Các thông số của kiểm thử phi chức năng
- Độ tin cậy ( Reliability): Hệ thống phần mềm liên tục đạt được các chức năng cụ thể mà không bị lỗi. Điều kiện này được kiểm tra bằng Reliability Testing.
- Mức độ bảo mật (Security): Tham số này xác định chệ thống được bảo vệ tốt như thế nào trước những cuộc tấn công bất ngờ và có chủ ý từ bên trong và ngoài hệ thống.
- Khả năng sử dụng (Usability): Người dùng có thể học, vận hành và chuẩn bị đầu vào và đầu ra dễ dàng như thế nào thông qua tương tác với hệ thống? Usability Testing được sử dụng để kiểm tra tham số này
- Khả năng mở rộng (Scalability): Một ứng dụng có thể được mở rộng (hoặc thu hẹp) khả năng xử lý của nó ở mức độ nào để luôn đồng bộ với nhu cầu? Đó là những gì Scalability Testing sẽ cho chúng ta biết.
- Tính linh hoạt (Flexibility): Tham số này cho biết ứng dụng hoạt động dễ dàng như thế nào với các cấu hình phần cứng và phần mềm khác nhau, chẳng hạn như các yêu cầu về CPU và RAM
- Khả năng tương tác (Interoperability): Làm thế nào để phần mềm được đề cập giao tiếp với các hệ thống phần mềm khác? Interoperability Testing được sử dụng để kiểm tra tham số này
- Khả năng tái sử dụng (Reusability): Một số ứng dụng phần mềm có mức độ linh hoạt cho phép các phần cứng ứng dụng được chuyển đổi dễ sử dụng trong các ứng dụng khác
- Tính di động (Portability): Khả năng linh hoạt của phần mềm có thể chuyển từ các môi trường phần cứng hay phần mềm mềm hiện tại của nó.
- Khả năng sống sót (Survivability): Tham số này đảm bảo rằng hệ thống phần mềm tiếp tục hoạt động và tự phục hồi trong trường hợp lỗi hệ thống. Thông số này được kiểm tra bằng Recovery Testing
- Tính khả dụng (Availability): Người dùng có thể phụ thuộc vào hệ thống trong khi vận hành ở mức độ nào? Stability Testing sẽ cho biết điều đó
- Tính hiệu quả – Efficiency: Mức độ mà bất kỳ hệ thống phần mềm nào có thể xử lý dung lượng, số lượng và thời gian phản hồi.
Các loại kiểm thử phi chức năng
- Kiểm thử bảo mật – Security Testing: Xác định rằng các biện pháp bảo mật của hệ thống thông tin hoạt động, bảo vệ dữ liệu và duy trì chức năng dự kiến
- Kiểm thử tương thích – Compatibility Testing: Kiểm tra xem ứng dụng hoạt động tốt như thế nào trong phần cứng, phần mềm, hệ điều hành hoặc môi trường mạng cụ thể
- Kiểm thử chuyển đổi dự phòng – Failover Testing: Xác minh rằng, trong trường hợp xảy ra lỗi hệ thống, hệ thống có đủ khả năng để xử lý các tài nguyên bổ sung như máy chủ.
- Kiểm thử hiệu suất – Performance Testing: Đánh giá sự tuân thủ của các thành phần hệ thống với các yêu cầu hiệu suất được chỉ định.
- Stress Testing: Đẩy một hệ thống hoặc thành phần lên đến hoặc vượt quá giới hạn yêu cầu đã chỉ định của nó
- Kiểm thử tuân thủ – Compliance Testing: Kiểm tra xem hệ thống hoặc phần mềm có được phát triển theo các quy trình tiêu chuẩn và hướng dẫn đã thiết lập hay không?
- Kiểm thử tính hiệu quả – Efficiency Testing: Xác minh rằng ứng dụng hoạt động hiệu quả và đo lường các yếu tố như số lượng tài nguyên cần thiết, độ phức tạp, yêu cầu của khách hàng, môi trường cần thiết, thời gian cần thiết, loại dự án…
- Kiểm thử độ tin cậy – Reliability Testing: Chứng minh rằng ứng dụng đáng tin cậy, tạo ra cùng một đầu ra mong đợi mỗi khi nó được sử dụng. Kiểm thử này được chạy trong một khoảng thời gian cụ thể trong môi trường xác định,
- Kiểm thử tải – Load Testing: Đặt các yêu cầu trên thiết bị hoặc hệ thống và đo lường phản hồi của nó
- Kiểm thử bảo trì – Maintainability Testing: Kiểm tra khả năng xử lý các sự cố phát sinh trong môi trường trực tiếp hoặc nếu khách hàng muốn cải tiến cho một ứng dụng đã hoạt động
- Kiểm thử khả năng mở rộng – Scalability Testing: Đo lường khả năng mở rộng quy mô của ứng dụng, chẳng hạn như số lượng giao dịch, khối lượng dữ liệu, hỗ trợ tải người dùng…
- Kiểm thử khối lượng – Volume Testing: Xác nhận rằng chương trình có thể xử lý các giá trị có khả năng tăng theo thời gian (ví dụ số lượng tích lũy, nhật ký và tệp dữ liệu) và quá trình xây dựng sẽ không làm hỏng chương trình hoặc làm suy giảm hoạt động của chương trình theo bất kỳ cách nào.
- Kiểm thử phục hồi – Recovery Testing: Đo lường mức độ hệ thống phục hồi sau lỗi phần cứng hoặc các sự cố nghiêm trọng khác.
- Disaster Recovery Testing: Tương tự như kiểm thử phục hồi.
- Kiểm thử tính di động – Portability Testing: Xác minh rằng chức năng của sản phẩm sẽ không thay đổi nếu nó được cài đặt trên một nền tảng hoặc hệ thống khác.
- Efficiency Testing: Chứng minh rằng ứng dụng đáng tin cậy, tạo ra cùng một đầu ra mong đợi mỗi khi được sử dụng. Kiểm thử này được chạy trong một khoảng thời gian cụ thể trong môi trường xác định.
- Baseline Testing: Tạo ra một cơ sở mới để sử dụng trong kiểm thử tiếp theo
- Kiểm thử sức chịu đựng – Endurance Testing: Kiểm tra rò rỉ bộ nhớ hoặc các sự cố khác có thể phát sinh do thực thi kéo dài.
- Documentation Testing: Đánh giá hướng dẫn sử dụng của sản phẩm và các tài liệu liên quan
- Internationalization Testing: Xác minh rằng chức năng của sản phẩm không bị hỏng và tất cả thông báo được đưa ra bên ngoài đúng cách khi sản phẩm được sử dụng ở các ngôn ngữ khác nhau.
- Localization Testing: Tập trung vào việc chuyển đổi một ứng dụng toàn cầu hóa sang một khu vực hoặc nền văn hóa cụ thể.
Ví dụ về kiểm thử phi chức năng
Test Case | Testing Domain | |
1 | Phần mềm có dễ cài đặt trên nền tảng Windows và MacOS không? | Compatibility Testing – Kiểm thử tương thích |
2 | Có phải tất cả các hình ảnh trên web đều có thẻ ‘alt’ không? | Accessibility Testing – Kiểm thử khả năng tiếp cận |
3 | Thời gian tải của ứng dụng có diễn ra dưới 5s ngay cả khi có 1000 người dùng truy cập đồng thời hay không? | Kiểm thử hiệu suất – Performance Testing |