+2

Một số kiến thức cơ bản về Kiểm thử hiệu năng

1.Định nghĩa về kiểm thử hiệu năng

Kiểm thử hiệu năng là kiểm tra tốc độ, thời gian phản hồi, độ tin cậy, mức sử dụng tài nguyên, khả năng mở rộng của một chương trình phần mềm trong khối lượng công việc dự kiến của chúng. Mục đích của Kiểm tra hiệu năng không phải để tìm ra các khiếm khuyết về chức năng mà là để loại bỏ các nút thắt về hiệu suất trong phần mềm hoặc thiết bị.

  • Kiểm thử hiệu năng là một khâu trong quy trình sản xuất phần mềm đồng thời cũng là 1 loại kiểm thử phi chức năng.
  • Kiểm thử hiệu năng nhằm kiểm tra tải của hệt hống khi có nhiều người dùng đồng thời.
  • Kiểm thử hiệu năng khá phức tạp khi thực hiện, cần đầu tư khá tốn kém: Tài nguyên, thời gian,công sức.

Kiểm thử hiệu năng là một tên chung cho các bài kiểm tra, các bài kiểm tra này nhằm kiểm tra khả năng đáp ứng, khả năng mở rộng, độ tin cậy, tốc độ và việc sử dụng tài nguyên của phần mềm, cũng như cở sở hạ tầng triển khai hệ thống.

  • Responsiveness: Hệ thống đáp ứng được bao nhiêu user ? Bao nhiêu giao dịch trên giây? Duy trì trong bao lâu ?
  • Stability: hệ thống có bị chậm, treo, giật, ngắt quãng , mất kết nối trong một thời giandài hay không ? có bị mất dữ liệu và có khôi phục được trạng thái ban đầu trong trường hợp xảy ra sự cố hay không ?
  • Scalability: Kiểm tra khả năng của đường mạng, hạ tầng, cơ sở dữ liệu hệ thống có thể tiếp tục hoạt động tốt hay không nếu lưu lượng người dùng ngày càng tăng
  • Speed: thời gian phản hồi của hệ thống là bao nhiêu ? Nhanh hay chậm hơn so với yêu cầu khách hàng ?
  • Resource usage: Mức độ tiêu thụ tài nguyên của hệ thống như thế nào ? Nhiều hơn hayít hơn so với yêu cầu khách hàng ?
  • Reliability: Hệ thống có thể thực hiện thao tác đúng nghiệp vụ, không bị lỗi trong một khoảng thời gian xác định, trong một điều kiện môi trường chỉ định hay không ?

2.Tại sao cần kiểm thử hiệu năng

Kiểm tra hiệu năng được thực hiện để cung cấp cho các bên liên quan thông tin về ứng dụng của họ liên quan đến tốc độ, tính ổn định và khả năng mở rộng. Quan trọng hơn, Kiểm tra hiệu năng phát hiện ra những gì cần được cải thiện trước khi sản phẩm ra thị trường. Nếu không có Kiểm tra hiệu năng, phần mềm có thể gặp phải các vấn đề như: chạy chậm trong khi nhiều người dùng sử dụng nó đồng thời, tính không nhất quán giữa các hệ điều hành khác nhau và khả năng sử dụng kém.Vì thế :

  • Kiểm thử hiệu năng là hoạt động cần thiết cho việc phát triển những giải pháp tối ưu hóa hiệu năng cho phần mềm.
  • Kiểm thử hiệu năng giúp chúng ta tránh được các tình huống không lường trước khi triển khai ứng dụng trong môi trường thực tế.
  • Nếu không có kiểm thử hiệu năng thì sẽ không kiểm tra được phần mềm có gặp các vấn đề như: chạy chậm, bị treo, ngừng cung cấp dịch vụ, bị sập, bị mất dữ liệu, ... khi nhiều người dùng sử dụng nó đồng thời như vậy sẽ gây tổn thất lớn cho nhà phát triển cũng như niềm tin của khách hàng. Khi cần kiểm tra hiệu suất trang web, hiệu suất ứng dụng, cũng như máy chủ, cơ sở dữ liệu, mạng, v.v. Nếu phần mềm phát triển theo mô hình thác nước, thì ít nhất mỗi lần bạn phát hành một phiển bản, nếu phần mềm phát triển theo mô hình agile thì mỗi chu kỳ cần kiểm tra 1 lần và tích hợp liên tục qua mỗi chu kỳ.

3.Các loại kiểm thử hiệu năng

  1. Load testing: kiểm tra cách các hệ thống hoạt động dưới một số lượngdự kiến người dùng ảo đồng thời thực hiện các giao dịch trong một khoảng thời gian nhất định. Hay nói cách khác, cách các hệ thống xử lý khối lượng tải ở mức dự kiến thông thường (Bên kinh doanh sẽ đưa ra mức tải dự kiến). Kiểu kiểm thử này tập trung vào speed.

  2. Stress testing: kiểm tra giới hạn trên của hệ thống bằng tải cực lớn.Bài test này nhằm kiểm tra cách hệ thống hoạt động khi tải cực lớn, cách hệ thống phục hồi trở lại hoạt động bình thường,tức là kiểm tra các tiêu chí hiệu năng có giống như trước nữa hay không ? Ngoài ra cũng kiểm traviệc rò rỉ bộ nhớ, sự chậm chạm, bảo mật và hỏng dữ liệu. Kiểu kiểm thử này tập trung vào Stability.

  3. Spike testing: Kiểm tra phản ứng của phần mềm đối với các thay đổi lớn, đột ngột trọng tải do người tạo ra. Kiểu kiểm thử này tập trung vào speed.

  4. Soak testing/ Endurance testing: là được thực hiện để đảm bảo phần mềm có thể xử lý tải dự kiến trong một thời gian dài. Kiểu kiểm thử này tập trung vào stability.

  5. Scalability testing/ Capacity testing: là khả năng xử lý tải của ứng dụng khi tải người dùng tăng. Nó sẽ cung cấp các số liệu để đưa ra phần cứng được yêu cầu trong tương lai để đáp ứng quy mô lớn hơn của ứng dụng. Mục đích cho việc sizing hệ thống. Kiểu kiểm thử này tập trung vào Scalability

  6. Volume test: kiểm tra phần mềm hoặc ứng dụng về hiệu năng của nó đối với dữ liệu khổng lồ của cơ sở dữ liệu. VD báo cáo, đồng bộ...Kiểu kiểm thử này tập trung vào Speed

4.Các bước kiểm thử hiệu năng

  1. Xác định môi trường kiếm thử: Là môi trường phát triển, hay môi trường thật ? Mô hình hệ thống gồm những thành phần nào ? Có bao nhiêu server ? Cấu hình các server như thế nào ? Có dùng Load balancer không? Cấu hình mạng như thế nào. Xác định được các yếu tố này để thiết kế và lập kế hoạch test hiệu quả hơn, xác định được những thách thức trong quá trình test.
  2. Xác định các tiêu chí chấp nhận: Bao gồm số CCU, %Error, Response time, TPS, %RAM, %CPU. Các tiêu chí này được đưa ra trong bộ KPI của hệ thống, hoặc dựa trên hợp đồng vớikhách hàng ...
  3. Lập kế hoạch test: Chọn lựa các kịch bản chính, các chức năng chính, hay sử dụng, chứcnăng cần xử lý lượng dữ liệu lớn ...Xác định các biến đổi giữa các người dùng (phânquyền khác nhau với các role khác nhau), xác định dữ liệu test. VD: có thể dùng 1 tài khoản để giả lập nhiều người dùng hay phải dùng nhiều tài khoản khác nhau, cụm từ hay tìm kiếm là gì ? ..
  4. Cấu hình môi trường: Chuẩn bị công cụ test, tài nguyên test. VD: tool giả lập tải, máy client đủ mạnh để đẩy tải, cần bao nhiêu máy client ...
  5. Thực hiện thiết kế các script test theo kế hoạch test.
  6. Thực thi các script test.
  7. Phân tích kết quả và viết báo cáo.

Kết Luận

Trong Kỹ thuật phần mềm, kiểm tra Hiệu năng là cần thiết trước khi tiếp thị bất kỳ sản phẩm phần mềm nào. Nó đảm bảo sự hài lòng của khách hàng và bảo vệ khoản đầu tư của nhà đầu tư khỏi sự cố về sản phẩm. Chi phí kiểm tra hiệu suất thường nhiều hơn so với việc cải thiện sự hài lòng, lòng trung thành và giữ chân khách hàng.

Tài liệu tham khảo

https://www.guru99.com/performance-testing.html


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí