Non-Functional Testing

Các yêu cầu phi chức năng là một phần của ứng dụng phần mềm mà cần kiểm tra và xác nhận để chắc chắn rằng chúng đúng với mong đợi của khách hàng. Kiểm tra yêu cầu phi chức năng được thiết kế để xem xét kỹ khả năng sẵn sàng của hệ thống, tương ứng với một loạt các yêu cầu mà không thể được bao phủ bởi việc kiểm tra yêu cầu chức năng.

Một vài loại test phi chức năng quan trọng được đề cập ở dưới đây:

Performance testing (test hiệu năng) là việc thực hiện test để xác định một hệ thống có thể đáp ứng và ổn định với yêu cầu độ tải cao.Nó được sử dụng chủ yếu để xác định bất kỳ vướng mắc hoặc vấn đề hiệu suất hơn là việc tìm kiếm lỗi trong một phần mềm. Có nhiều nguyên nhân khác nhau, trong việc làm giảm hiệu năng của một phần mềm:

  • Sự chậm trễ mạng
  • Xử lý bên phía client
  • Xử lý transaction
  • Cân bằng tải giữa các máy chủ
  • Render dữ liệu

Performance testing (kiểm thử hiệu năng ) được coi là một trong những loại thử nghiệm quan trọng và bắt buộc về các khía cạnh sau:

  • Tốc độ (ví dụ: Thời gian đáp ứng, dựng hình dữ liệu và truy cập)
  • Dung lượng
  • Tính ổn định
  • Khả năng mở rộng( ví dụ thêm 1 chức năng vào hệ thống thì có thể dễ dàng add thêm vào không)

Performance testing có thể là định tính hay định lượng và có thể được chia thành các loại khác nhau như Load testing và Stress testing.

Load testing

Nó là một quá trình thử nghiệm hiệu năng của một phần mềm bằng cách áp dụng tải trọng tối đa về phần mềm truy nhập và thao tác dữ liệu đầu vào lớn. Nó có thể được thực hiện ở cả hai điều kiện tải trọng bình thường và cao điểm. Đây là loại xét nghiệm xác định công suất tối đa của phần mềm và hiệu suất của nó ở thời gian cao điểm.

Hầu hết thời gian, Performance testing được thực hiện với sự giúp đỡ của các công cụ tự động như tải Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Performer Silk, Visual Studio Load Test, vv

stress test.png

Stress testing

Stress testing là một hình thức kiểm thử được sử dụng để xác định tính ổn định của một hệ thống hoặc một đối tượng .Ví dụ, bằng việc bỏ đi một số tài nguyên hoặc áp dụng một tải trọng vượt quá giới hạn tải trọng thực tế.

Mục đích của stress testing là để kiểm tra phần mềm hoạt động trong trường hợp ứng dụng hoạt động ngoài giới hạn thông thường. thử nghiệm này có thể được thực hiện bằng cách kiểm tra các kịch bản khác nhau như:

  • Tắt máy hoặc khởi động lại cổng mạng ngẫu nhiên
  • Kiểm tra trong trường hợp tắt server database.
  • Chạy các tiến trình khác nhau có thể tiêu thụ các nguồn tài nguyên như CPU, bộ nhớ, máy chủ, vv

Usability Testing

Là loại test sử dụng kỹ thuật test hộp đen, người kiểm thử sẽ đóng vai trò trong vai trò người sử dụng từ đó đánh giá giao diện người dùng dễ dàng như thế nào. Và nó cũng đề cập đến việc để cải thiện dễ dàng sử dụng trong quá trình thiết kế.
Theo Nielsen, test usability được định nghĩa bởi 5 yếu tố.: dễ sử dụng, dễ tìm hiểu , dễ nhớ , ít lỗi và thỏa mãn nhu cầu của người dùng.

Mấu chốt của việc kiểm thử khả năng sử dụng chính là để đảm bảo người dùng cuối có thể sử dụng phần mềm một cách dễ dàng. Kiểm tra khả năng sử dụng có thể được chia thành các thử nghiệm khả năng sử dụng với người đã sử dụng và người chưa sử dụng.

Security Testing

Kiểm thử bảo mật phần mềm là rất cần thiết trong việc xử lý dữ liệu mật và ngăn chặn các hacker xâm nhập hệ thống.
Kiểm tra an ninh liên quan đến việc thử nghiệm một phần mềm để xác định bất kỳ sai sót và lỗ hổng an ninh và dễ gây ảnh hưởng tới dữ liệu quan. Dưới đây là những khía cạnh chính mà Security Testing đảm bảo:

  • Tính bảo mật
  • Tính đúng đắn
  • Tính xác thực
  • Tính sẵn sàng
  • Tính cho người dùng sử dụng
  • Ngăn chặn các lỗ hổng bảo mật
  • Phần mềm dữ liệu được an toàn
  • Phần mềm dữ liệu được theo các quy định về bảo mật
  • Kiểm tra và xác nhận dữ liệu đầu vào
  • Kiểm tra tin
  • Chống lại SQL injection
  • Các vấn đề về quản lí section.
  • Các cuộc tấn công bằng Java script.
  • Sử dụng các thủ thuật để làm tràn buffer bộ nhớ

Portability Testing

Portability Testing bao gồm việc test phần mềm với mục đích đảm bảo có thể tái sử dụng các chức năng và có thể chuyển quan phần mềm khác. Dưới đây là các chiến lược sử dụng trong mô hình test này:

  • Chuyển 1 phần mềm đã được cài đặt sang một máy tính khác
  • Xây dựng file chạy trên nhiều plattform( vi dụ có thể chạy trên nhiều hệ điều hành)

test u.jpg

Portability Testing có thể được cân nhắc là một phần của test hệ thống , và kiểu test này quan tâm đến việc chạy phần mềm trên các môi trường khác nhau.
Phần cứng máy tính hệ điều hành và web brosers là đối tượng được quan tâm khi thực hiện kiểu test này. Một vài tiền đề cho việc test này:

  • Phần mềm nên được thiết kế và được phát triển đã thỏa mãn yêu cầu “portability"
  • Unit test phải được thực hiện trên các thành phần liên quan.
  • Test tích hợp phải được thực hiện.
  • Môi trường test đã được xây dựng