Performance Testing – Kiểm thử hiệu năng là gì?


Kiểm thử độ hiệu quả là gì? Kiểm thử độ hiệu quả, hay còn gọi là performance testing, được định nghĩa là một loại kiểm thử phần mềm được sử dụng để đảm bảo rằng các ứng dụng phần mềm hoạt động một cách hiệu quả trong các tác vụ dự kiến.

1. Định nghĩa kiểm thử độ hiệu quả

Việc định nghĩa về kiểm thử độ hiệu quả có nhiều phiên bản khác nhau, tuy nhiên, kiểm thử độ hiệu quả được định nghĩa là một loại kiểm thử phần mềm được sử dụng để đảm bảo rằng các ứng dụng phần mềm hoạt động một cách hiệu quả trong các tác vụ dự kiến của chúng.

Đối với một hệ thống phần mềm, không chỉ các tính năng và chức năng là quan trọng. Hiệu quả của ứng dụng phần mềm như thời gian phản hồi, độ tin cậy, sử dụng tài nguyên và khả năng mở rộng cũng là các yếu tố quan trọng cần chú ý.

Trong kiểm thử độ hiệu quả, chú trọng đến các yếu tố sau:

  • Thời gian phản hồi: Xác định xem ứng dụng có thể đáp ứng nhanh hay chậm.
  • Khả năng mở rộng: Xác định mức tải tối đa mà ứng dụng có thể xử lý.
  • Độ ổn định: Xác định xem ứng dụng có đáp ứng tốt dưới tải khác nhau hay không.

Mục tiêu của kiểm thử độ hiệu quả không chỉ là tìm lỗi, mà nó còn là một hoạt động cần thiết để phát triển các giải pháp tối ưu cho hiệu suất của phần mềm. Kiểm thử độ hiệu quả giúp tránh những tình huống lỗi không lường trước khi triển khai ứng dụng trong môi trường thực tế.

Ảnh chụp màn hình của Performance test

>> Có thể bạn quan tâm: 8 kỹ thuật kiểm thử phần mềm quan trọng

2. Các loại kiểm thử độ hiệu quả

Kiểm thử tải (Load test): Kiểm thử khả năng của ứng dụng để xử lý tải người dùng dự đoán. Mục tiêu là xác định mức tắc nghẽn hiệu suất trước khi triển khai ứng dụng phần mềm trong môi trường thực tế.

Kiểm thử tải căng (Stress test): Liên quan đến việc kiểm tra ứng dụng dưới khối lượng công việc lớn để xem cách nó xử lý lưu lượng truy cập cao hoặc cách nó xử lý dữ liệu. Mục tiêu là xác định giới hạn của ứng dụng.

Kiểm thử khả năng (Capacity test): Xác định số lượng người dùng, số giao dịch hoặc lượt truy cập trong một khoảng thời gian có thể đáp ứng đầy đủ yêu cầu hiệu suất của hệ thống.

Kiểm thử độ bền (Endurance test): Đảm bảo rằng phần mềm có thể xử lý tải dự kiến trong một khoảng thời gian dài.

Kiểm thử đột ngột (Spike test): Kiểm tra phản ứng của phần mềm đối với thay đổi đột ngột trong lưu lượng truy cập do người dùng tạo ra.

Có Thể Bạn Quan Tâm :   [TK 153] Kết cấu và nội dung tài khoản 153 (tài khoản công cụ, dụng cụ)

Kiểm thử khối lượng (Volume test): Kiểm tra hiệu suất của ứng dụng phần mềm theo các khối lượng dữ liệu khác nhau.

Kiểm thử khả năng mở rộng (Scalability test): Kiểm tra khả năng mở rộng của ứng dụng để xác định hiệu suất của nó khi mở rộng để hỗ trợ tăng tải người dùng và hỗ trợ lập kế hoạch để bổ sung dung lượng cho hệ thống nếu cần thiết.

Kiểm thử đáng tin cậy (Reliability test): Là loại kiểm thử để xác minh rằng phần mềm có khả năng thực hiện một hoạt động không có lỗi trong một khoảng thời gian nhất định và trong một môi trường được xác định. Điều này cũng đồng nghĩa với việc kiểm thử độ tin cậy của hệ thống. Ví dụ: Xác suất mà một máy tính trong một cửa hàng hoạt động và chạy trong tám giờ mà không xảy ra lỗi là 99% => yếu tố này được gọi là độ tin cậy.

>> Tìm hiểu thêm: Performance test, Load test và Stress test khác nhau như thế nào?

3. Những vấn đề chung về hiệu suất của một hệ thống

Hầu hết các vấn đề về hiệu suất đều xoay quanh tốc độ, thời gian đáp ứng, thời gian tải và khả năng mở rộng kém. Tốc độ thường là một trong những thuộc tính quan trọng nhất của ứng dụng. Một ứng dụng chạy chậm sẽ tốn nhiều thời gian, giảm sự hài lòng của người dùng đối với hệ thống và có thể làm mất đi những người dùng tiềm năng. Kiểm thử độ hiệu quả được thực hiện để đảm bảo rằng ứng dụng chạy đủ nhanh để thu hút sự quan tâm của người dùng và mang lại sự thỏa mãn và hài lòng cho họ.

Dưới đây là một số vấn đề chung về hiệu suất, trong đó tốc độ là yếu tố phổ biến nhất:

Thời gian tải quá lâu: Thời gian tải là thời gian mà ứng dụng ban đầu cần để khởi chạy. Điều này thường nên giữ ở mức thấp. Mặc dù có một số ứng dụng không thể tải dưới một phút, nhưng thời gian tải nên được giữ trong vài giây nếu là tốt nhất.

Thời gian phản hồi chậm: Thời gian phản hồi là thời gian mà người dùng phải chờ đợi từ khi nhập dữ liệu vào ứng dụng cho đến khi nhận được phản hồi từ ứng dụng. Thường thì thời gian phản hồi sẽ rất nhanh. Nếu người dùng phải chờ quá lâu, họ sẽ mất hứng thú.

Khả năng mở rộng kém: Nếu phần mềm không có khả năng mở rộng tốt, nghĩa là không thể xử lý số lượng người dùng như dự kiến hoặc không thể đáp ứng yêu cầu của người dùng, thì kiểm thử độ hiệu quả phải được thực hiện để đảm bảo ứng dụng có khả năng xử lý số lượng người dùng dự kiến.

Điểm nghẽn cổ chai: Điểm nghẽn cổ chai là các rào cản trong hệ thống gây suy giảm hiệu suất toàn bộ hệ thống. Điểm nghẽn cổ chai xảy ra khi các lỗi mã hóa hoặc vấn đề phần cứng gây suy giảm băng thông theo một tải trọng nhất định. Điểm nghẽn thường được gây ra bởi lỗi mã hóa phần mềm. Phương pháp để khắc phục vấn đề này là tiến hành kiểm thử điểm nghẽn cổ chai để tìm lỗi mã hóa gây ra sự chậm trễ và tìm giải pháp khắc phục. Một số điểm nghẽn phổ biến là: CPU, bộ nhớ, mạng, hệ điều hành, ổ cứng.

4. Quy trình kiểm thử độ hiệu quả

Có nhiều phương pháp để áp dụng kiểm thử độ hiệu quả, tuy nhiên mục tiêu của quá trình kiểm thử độ hiệu quả luôn giữ nguyên. Nó có thể giúp chứng minh rằng hệ thống đáp ứng một số yêu cầu hiệu suất đã được xác định trước. Hoặc nó có thể giúp so sánh hiệu suất của hai hay nhiều hệ thống phần mềm. Hoặc nó cũng có thể giúp xác định thành phần nào của hệ thống đang làm suy giảm hiệu suất.

Có Thể Bạn Quan Tâm :   Hibernate là gì? Sao phải dùng nó thay JDBC?

Quy trình kiểm thử độ hiệu quả cơ bản gồm các bước sau:

1. Xác định môi trường kiểm thử

Chuẩn bị môi trường thử nghiệm vật lý, môi trường sản xuất và công cụ kiểm tra sẵn sàng. Nắm rõ các cấu hình phần cứng, phần mềm và mạng được sử dụng trong quá trình kiểm thử trước khi bắt đầu. Điều này sẽ giúp tạo ra các bộ testcase kiểm thử độ hiệu quả hiệu quả hơn và cũng xác định các khó khăn mà người kiểm thử có thể gặp phải trong quá trình kiểm thử độ hiệu quả.

2. Xác định các tiêu chí chấp nhận độ hiệu quả của hệ thống

Bao gồm các mục tiêu và ràng buộc cho thông lượng, thời gian phản hồi và phân bổ tài nguyên. Cần thiết để xác định các tiêu chí thành công của dự án. Người kiểm thử cần xác định các tiêu chí và mục tiêu độ hiệu quả tối thiểu cần đạt của hệ thống, vì thông thường các thông số của dự án sẽ không bao gồm nhiều hoặc không có tiêu chí độ hiệu quả đủ lớn. Việc sử dụng một ứng dụng tương tự để so sánh là một cách tốt để thiết lập tiêu chí độ hiệu quả.

3. Lập kế hoạch và thiết kế kiểm thử độ hiệu quả

Xác định cách sử dụng có khả năng khác nhau giữa người dùng cuối và xác định các tình huống chính để kiểm tra tất cả các trường hợp sử dụng có thể. Đây là cần thiết để mô phỏng một loạt các người dùng cuối, lập kế hoạch dữ liệu thử nghiệm hiệu suất và phác thảo phương pháp thu thập dữ liệu. Cuối cùng, xác định số liệu thu thập được khi thực hiện kiểm thử độ hiệu quả.

4. Cài đặt môi trường kiểm thử

Cài đặt môi trường, công cụ và tài nguyên cần thiết trước khi thực hiện kiểm thử.

5. Triển khai thiết kế kiểm thử độ hiệu quả

Tạo các testcase kiểm thử độ hiệu quả theo thiết kế kiểm thử đã được xác định.

6. Thực hiện kiểm thử

Thực hiện và giám sát kết quả của việc kiểm thử.

7. Phân tích, điều chỉnh và kiểm tra lại

Tổng hợp, phân tích và chia sẻ kết quả kiểm thử. Sau đó, điều chỉnh và kiểm tra lại để xem có cải thiện hoặc giảm sự hiệu suất hay không. Vì các cải tiến thường nhỏ hơn sau mỗi lần kiểm thử lại, hãy dừng lại khi gặp tắc nghẽn do CPU gây ra. Sau đó, bạn có thể xem xét tăng tốc độ xử lý của CPU.

5. Công cụ kiểm thử độ hiệu quả

Việc lựa chọn công cụ kiểm thử độ hiệu quả dựa trên nhiều yếu tố như chi phí, hỗ trợ phương pháp, trình duyệt, ngôn ngữ phát triển phần mềm, phần cứng, v.v.

Dưới đây là một số công cụ phổ biến được sử dụng trong kiểm thử độ hiệu quả:

Jmeter: Là phần mềm mã nguồn mở, sử dụng 100% ngôn ngữ Java, được thiết kế để kiểm thử tải và ứng dụng web và app trên máy chủ.

Link download trên Windows: http://jmeter.apache.org/download_jmeter.cgi

Link download trên Ubuntu: http://jmeter.apache.org/download_jmeter.cgi

LoadRunner: Là công cụ kiểm thử độ hiệu quả cho phép phát hiện và giải quyết các vấn đề về hiệu suất bằng cách phân tích nguyên nhân và các yếu tố làm cho phần mềm chạy chậm hoặc không thỏa mãn yêu cầu.

Link download: https://software.microfocus.com/en-us/products/loadrunner-load-testing/overview?jumpid=va_uwxy6ce9tr

LoadView-Testing: Là công cụ kiểm thử độ hiệu quả cho phép đặt các tham số thời gian phản hồi dựa trên số lượng người dùng cụ thể, xác định điểm tắc nghẽn hiệu suất khi số lượng người dùng đồng thời tăng, xác định giới hạn hiệu năng hiện tại để lập kế hoạch cho hiệu năng tương lai, tăng hiệu năng lên mức cao hơn trên môi trường thử để hiểu cách hệ thống xử lý dữ liệu và điểm giới hạn hiệu năng của nó.

Có Thể Bạn Quan Tâm :   Lotte là gì? Siêu thị Lotte đến từ nước nào?

Link download: https://www.loadview-testing.com/

LoadStorm: Là công cụ có khả năng chịu được tải tốt, có thể kiểm thử hiệu suất của ứng dụng dựa trên lưu lượng và người dùng. Điểm đặc biệt của công cụ này là có thể tùy chỉnh kịch bản kiểm thử khi sử dụng. Sau khi thực hiện kiểm thử, bạn sẽ nhận được báo cáo chi tiết.

Link download: https://pro.loadstorm.com/

6. Sử dụng LoadRunner để kiểm thử độ hiệu quả

1. Thành phần của LoadRunner

LoadRunner bao gồm các thành phần sau:

  • Virtual User Generator: Tự động tạo ra kịch bản thực thi các thao tác người dùng tương tác trên phần mềm. Kịch bản này cũng được xem là hoạt động của một người dùng ảo mà LoadRunner tạo ra.
  • Controller: Tổ chức, điều chỉnh, quản lý và giám sát hoạt động kiểm tra độ hiệu quả. Thành phần này có chức năng tạo ra các tình huống kiểm tra.
  • Load Generator: Cho phép giả lập hàng ngàn người dùng, hoạt động của từng người dùng sẽ được thực hiện dựa trên kịch bản tạo ra từ Virtual User Generator. Kết quả thực hiện sẽ được báo cáo cho Controller.
  • Analysis: Cung cấp một giao diện để xem, phân tích và so sánh kết quả kiểm tra độ hiệu quả phần mềm.
  • Launcher: Nơi tập trung tất cả các thành phần của LoadRunner để người dùng truy cập.

2. Thuật ngữ trong LoadRunner

  • Scenario: Là một file định nghĩa các sự kiện xảy ra trong mỗi lần kiểm tra dựa trên yêu cầu về hiệu suất.
  • Vuser: Trong Scenario, LoadRunner sử dụng khái niệm Vuser để thay thế người dùng thật. Vuser mô phỏng hành động của con người làm việc với ứng dụng. Một Scenario có thể chứa hàng trăm, hàng ngàn Vuser.
  • Vuser Script: Các hành động mà Vuser thực hiện trong Scenario được mô tả trong Vuser Script.
  • Transactions: Định nghĩa một giao dịch để đo lường hiệu suất hoạt động của máy chủ. Một giao dịch đại diện cho việc người dùng thực hiện theo một quy trình đã xác định.

3. Các bước kiểm thử độ hiệu quả

Bước 1: Lập kế hoạch kiểm thử độ hiệu quả

Thiết kế các testcase với các bước rõ ràng và định rõ các thông số cần đo lường.

Bước 2: Tạo Vuser Scripts

Sử dụng công cụ LoadRunner để ghi lại các thao tác tương tác của người dùng với hệ thống dưới dạng script.

Bước 3: Xác định Scenario

Thiết kế các scenario để giả lập môi trường hoạt động của phần mềm giống như trong thực tế.

Bước 4: Thực hiện Scenario

Chạy, quản lý và giám sát quá trình thực hiện kiểm thử độ hiệu quả.

Bước 5: Phân tích kết quả

Phân tích kết quả dựa trên các thông số mà công cụ LoadRunner cung cấp. Nếu kết quả thực tế không đáp ứng yêu cầu, phần mềm cần được điều chỉnh.

4. Ví dụ

Giả sử chúng ta muốn tạo một người dùng ảo ghi lại các hoạt động được thực hiện bởi người dùng thật trên trang web http://facebook.com.vn

  1. Ghi lại hoạt động đăng nhập của một người dùng vào Facebook.
  1. Khi Vuser Script dừng chạy, chúng ta có thể xem tổng quan về hoạt động thực hiện trong Replay Summary.

Thời gian bắt đầu chạy: 11/08/2017 10:34:34 PM

Thời gian kết thúc: 11/08/2017 10:35:01 PM

  1. Kết quả chi tiết:

Bizfly Cloud hy vọng rằng bài viết đã giúp bạn hiểu hơn về kiểm thử độ hiệu quả và có thể chọn cho mình công cụ kiểm thử độ hiệu quả phù hợp với hệ thống.

Tài liệu tham khảo: https://www.guru99.com/performance-testing.html

Theo viblo.asia

>> Có thể bạn quan tâm: Các hình thức kiểm thử website

Back to top button