Non Functional Testing

Testing được phân thành 2 loại

  • Function testing
  • Non-function testing

Function testing : Kiểm tra chức năng, xác nhận tất cả các chức năng của hệ thống. Đánh giá ứng dụng và xác nhận xem ứng dụng có đang hoạt động theo yêu cầu hay không. Các kiểu functional testing bao gồm:

  • Unit testing
  • Smoke testing
  • Sanity testing
  • Interface testing
  • Integration testing
  • Systems testing
  • Regression testing
  • User acceptance testing

Để đảm bảo mang đến cho người dùng một ứng dụng có chất lượng cao, việc kiểm tra chức năng của ứng dụng là cần thiết nhưng chưa đủ. Bên cạnh việc kiểm tra chức năng của một ứng dụng có đúng với yêu cầu của khách hàng hay không chúng ta còn phải kiểm tra xem ứng dụng có thực sự đáp ứng được sự mong đợi của khách hàng hay không. Hay nói cách khác, ngoài việc kiểm tra functional, chúng ta còn phải kiểm tra non-functional cho ứng dụng.

So sánh function testing và non-function testing

Thế nào là Non Functional Testing?

Non- function testing: tập trung vào các khía cạnh phi chức năng của ứng dụng. Vậy những khía cạnh phi chức năng là gì?:

  • App hoạt động như thế nào trong những hoàn cảnh bình thường?
  • Xử lý khi có quá nhiều người dùng đăng nhập đồng thời?
  • Xử lý stress
  • Tính an toàn
  • TÍnh phục hồi
  • App hoạt động theo cùng một cách trong các môi trường hoặc hệ điều hành khác nhau
  • dễ dàng để chuyển các ứng dụng khác nhau trong hệ thống
  • Tài liệu / tài liệu hướng dẫn người sử dụng được cung cấp kèm theo ứng dụng có dễ hiểu không?

Vấn đề ở đây là, những tính năng này có góp phần vào chất lượng của ứng dụng?

Câu trả lời là

Những tính năng này cũng quan trọng không kém. Hãy tưởng tượng ứng dụng đáp ứng tất cả các yêu cầu của người dùng một cách hoàn hảo, nhưng một số người dùng nghịch ngợm có thể dễ dàng truy cập và crack dữ liệu được nhập vào bởi người dùng trong ứng dụng hoặc ứng dụng sẽ chết khi có hơn 5BB của bất kỳ tệp nào được tải lên. Vì vậy, bạn sẽ nói rằng ứng dụng đó có chất lượng tốt? tất nhiên là không.

Vì vậy, hãy cùng khám phá những kỹ thuật kiểm thử phi chức năng này.

Các kỹ thuật kiểm thử phi chức năng

1. Performance Testing:

Đánh giá hiệu suất tổng thể của hệ thống. Các yếu tố chính như sau:

  • Xác nhận rằng hệ thống đáp ứng thời gian như mong đợi.
  • Đánh giá rằng các yếu tố quan trọng của ứng dụng đáp ứng được thời gian như mong muốn.
  • Nó cũng có thể được thực hiện như là một pert của integration testing.
  • Nó cũng có thể được thực hiện như là một phần của systems testing

2. Load Testing:

Đánh giá hiệu suất của hệ thống đúng như mong đợi trong các điều kiện bình thường và dự kiến. Các điểm chính là

  • Xác nhận rằng hệ thống thực hiện đúng như mong đợi khi người dùng đồng thời truy cập vào ứng dụng và nhận được thời gian đáp ứng mong đợi.
  • Thử nghiệm này được lặp lại với nhiều người dùng để có được thời gian đáp ứng và thông lượng.
  • Tại thời điểm test, cơ sở dữ liệu phải thực tế.
  • Thử nghiệm cần được tiến hành trên một máy chủ chuyên dụng tương tự môi trường thực tế.

3. Stress Testing:

Đánh giá hiệu suất của hệ thống như mong đợi khi nó ở mức thấp. Các điểm chính là:

  • Kiểm tra bộ nhớ thấp hoặc không gian đĩa thấp trên máy khách / máy chủ cho thấy các lỗi không thể tìm thấy trong điều kiện bình thường.
  • Nhiều người dùng thực hiện các giao dịch giống nhau trên cùng một dữ liệu.
  • Nhiều khách hàng kết nối với các máy chủ với khối lượng công việc khác nhau.
  • Giảm thời gian suy nghĩ thành "Zero" để nhấn mạnh các máy chủ tới mức căng thẳng tối đa.

Think Time: như khoảng thời gian giữa việc nhập người dùng và mật khẩu.

4. Volume Testing:

Đánh giá hành vi của phần mềm khi dữ liệu có khối lượng lớn. Các điểm chính là:

  • Đối tượng phần mềm với số dữ liệu lớn và kiểm tra giới hạn ở đó phần mềm không thành công.
  • Kích thước cơ sở dữ liệu tối đa được tạo ra và nhiều truy vấn của khách hàng cơ sở dữ liệu hoặc tạo ra báo cáo lớn hơn.
  • Ví dụ-Nếu ứng dụng đang xử lý cơ sở dữ liệu để tạo ra một báo cáo, một bài kiểm tra khối lượng sẽ sử dụng một bộ kết quả lớn và kiểm tra xem bản báo cáo được in chính xác hay không.

5. Usability Testing:

Đánh giá hệ thống phù hợp để sử dụng. Các điểm chính là:

  • Liệu sản phẩm có chính xác và có ý nghĩa và giống như dự kiến của doanh nghiệp?
  • Các lỗi được chẩn đoán chính xác không?
  • GUI chính xác và phù hợp với tiêu chuẩn không?
  • Ứng dụng có dễ sử dụng?

6. User Interface Testing:

Đánh giá GUI. Các điểm chính là:

  • GUI nên cung cấp trợ giúp và lời khuyên về công cụ để làm cho nó dễ sử dụng.
  • Nhất quán với cái nhìn của nó?
  • Dữ liệu được truyền tải chính xác từ trang này sang trang khác?
  • GUI không nên làm phiền người dùng hoặc khó hiểu.

7. Compatibility Testing:

Đánh giá rằng ứng dụng này tương thích với phần cứng / phần mềm khác với cấu hình tối thiểu và tối đa. Các điểm chính là:

  • Kiểm tra với mỗi phần cứng với cấu hình tối thiểu và tối đa.
  • Kiểm tra với các trình duyệt khác nhau.
  • Các trường hợp thử nghiệm giống nhau đã được thực hiện trong quá trình functional testing.
  • Trong trường hợp số lượng phần cứng và phần mềm là quá nhiều, chúng ta có thể sử dụng các kỹ thuật OATS để đến các trường hợp thử nghiệm để có phạm vi bảo hiểm tối đa.

8.Recovery Testing:

Đánh giá rằng ứng dụng chấm dứt một cách tốt nhất trong trường hợp thất bại và dữ liệu được thu hồi hợp lý từ bất kỳ lỗi phần cứng và phần mềm nào. Các bài test không giới hạn ở các điểm dưới đây:

  • Ngắt điện, cho khách hàng trong khi làm các hoạt động CURD.
  • Con trỏ và khóa cơ sở dữ liệu không hợp lệ
  • Quá trình cơ sở dữ liệu bị hủy bỏ hoặc bị chấm dứt sớm.
  • Các con trỏ, các trường và các phím cơ sở dữ liệu bị hỏng bằng tay và trực tiếp trong cơ sở dữ liệu.
  • Ngắt kết nối các thiết bị truyền thông, tắt nguồn, tắt router và các máy chủ mạng.

9. Instability Testing:

Đánh giá và xác nhận rằng phần mềm cài đặt và gỡ cài đặt đúng. Các điểm chính là:

  • Xác nhận rằng các thành phần hệ thống được cài đặt chính xác trên phần cứng được chỉ định.
  • Xác nhận rằng việc điều hướng trên máy mới, cập nhật cài đặt hiện tại và các phiên bản cũ.
  • Xác nhận rằng với không gian đĩa không đủ, không có hành vi không thể chấp nhận.

10. Documentation Testing:

Đánh giá tài liệu và các hướng dẫn sử dụng khác.

  • Xác nhận rằng các tài liệu đã có sẵn trong sản phẩm.
  • Xác nhận tất cả các hướng dẫn sử dụng, thiết lập hướng dẫn, các tập tin, phát hành ghi chú và trợ giúp trực tuyến.

Phần kết luận: Non - function testing là khía cạnh rất quan trọng của chất lượng ứng dụng và giống như function, Non - function testing cũng đòi hỏi một chiến lược và kế hoạch cụ thể. Chúng có thể bao gồm các bài test chi tiết không phải là chức năng trong kế hoạch kiểm tra hoặc có thể tạo ra một chiến lược riêng biệt và lên kế hoạch cho nó. Trong cả hai trường hợp, mục đích là để có đúng phạm vi của các khía cạnh non-function của phần mềm.

Tài liệu tham khảo : http://www.softwaretestinghelp.com/what-is-non-functional-testing/ http://www.testingvn.com/viewtopic.php?f=9&t=4593


All Rights Reserved