Chi tiết bài viết

Stress testing hay còn gọi là kiểm thử độ bền là một phương pháp rất phổ biến trong quá trình tối ưu và hoàn thiện của phần mềm. Vậy chính xác stress testing là gì? Đâu là các loại test bên trong stress testing…

5 loại stress testing mà dân kiểm thử phải biết
Stress testing là gì? 5 loại stressting mà dân kiểm thử phải biết.

Stress testing là gì?

Stress testing là một loại kiểm thử trong phần mềm nhằm xác minh tình ổn định và tin cậy của phần mềm và ứng dụng. Trong các bài stress test, mục tiêu chính là đo lường độ bền bỉ của phần mềm và xác định khả năng xử lý lỗi của nó trong điều kiện quá tải. Stress testing đảm bảo các phần mềm được kiểm thử không bị sập trong các điều kiện khủng hoảng. Nó thậm chí còn chỉ ra các vị trí đang hoạt động vượt ngưỡng bình thường và đánh giá cách phần mềm hoạt động trong điều kiện khắc nghiệt.

Stress testing là gì?
Khái niệm stress testing là gì?

Khi nào cần thực hiện stress testing

Một vài ví dụ dưới đây sẽ chỉ ra thời điểm phù hợp để thực hiện các bài Kiểm tra độ bền của phần mềm:

  • Vào thời điểm khuyến mãi, một trang web mua sắm trực tuyến xuất hiện lưu lượng truy cập tăng đột biến.
  • Hay ở 1 blog, khi blog đó được đề cập bởi 1 tờ báo – website uy tín hàng đầu, nó sẽ có lưu lượng truy cập tăng đột biến

Ở những thời điểm đột biến trên, Stress testing cần phải được thực hiện để điều chỉnh lưu lượng truy cập bất thường. Việc không đáp ứng được  lưu lượng truy cập đột biến này có thể dẫn đến mất doanh thu cũng như danh tiếng của doanh nghiệp.

Stress testing cũng cần được thực hiện và thể hiện giá trị ở những trường hợp sau:

  • Để kiểm tra xem hệ thống có hoạt động trong điều kiện bất thường không
  • Hiển thị thông báo, lỗi tương ứng khi hệ thống đang bị căng thẳng
  • Lỗi hệ thống trong điều kiện khắc nghiệt có thể dẫn đến thất thoát cho doanh nghiệp
  • Stress testing nên được sẵn sàng triển khai thực hiện bất cứ lúc nào.

Mục tiêu cần đạt được khi thực hiện stress testing

Khi đã biết stress testing là gì, một câu hỏi cũng quan trọng không kém là mục tiêu của stress testing là gì? Đó là phân tích hành vi của hệ thống sau khi xảy ra các bugs. Để các thử nghiệm căng thẳng được thành công, hệ thống sẽ hiển thị một thông báo lỗi thích hợp khi hệ thống ở trong các điều kiện khắc nghiệt.

Trong quá trình thực hiện các thử nghiệm stress testing, đôi khi tập hợp các dữ liệu rất lớn trước đó có thể bị mất. Nhân viên kiểm thử cần phải sao lưu lại dữ liệu trước khi thực hiện stress testing, để tránh tình trạng mất dữ liệu sau kiểm tra. Tóm lại mục đích chính của stress testing là đảm bảo hệ thống sẽ được phục hồi sau sự cố

Câu hỏi đặt ra bên cạnh stress testing, còn phương pháp kiểm thử hiệu suất nào nữa không? Đó là bài kiểm thử Load testing và Performance testing.

Performace testing là gì?

Đây là phương pháp được sử dụng để xác định tốc độ của máy tính tốc độ mạng hoặc thiết bị. Nó kiểm thử hiệu suất của các thành phần của một hệ thống bằng cách truyền các tham số khác nhau trong những kịch bản test khác nhau.

Load testing là gì?

Nếu như stress testing và performance testing đã kiểm thử tính ổn định và hiệu xuất tốc độ của phần mềm thì Load Test lại mô phỏng độ chịu tải thực tế của bất kỳ ứng dụng hoặc trang web nào. Nó kiểm thử cách ứng dụng hoạt động trong điều kiện hoạt động bình thường và hoạt động hiệu suất cao. Loại kiểm thử này được áp dụng cho những dự án gần đi đến giai đoạn hoàn thành.

So sánh các phương pháp sự khác nhau của Load testing, Performance testing và stress testing là gì?

Load testingPerformance testingStress testing
Giúp nhận ra giới hạn của hệ thống, thiết lập SLA của ứng dụng và kiểm tra hệ thống có khả năng chịu tải như thế nàoGiúp tạo ra thiết lập chuẩn và tiêu chuẩn cho ứng dụngKiểm tra xem hệ thống hoạt động như thế nào khi quá tải và cách hệ thống phục hồi khi xảy ra lỗi
Tạo ra những kịch bản khi hệ thống hoạt động quá tảiMục đích của Performance Test là tạo ra hướng dẫn về cách hệ thống hoạt động khi ở điều kiện bình thườngStress Test nhằm đảm bảo rằng khi hoạt động trong điều kiện tải cao trong một khoảng thời gian cố định sẽ không bị crash
Các thuộc tính được kiểm tra trong một bài kiểm tra tải là hiệu suất hoạt động lúc cao điểm, số lượng máy chủ và thời gian phản hồi.Việc sử dụng tài nguyên, khả năng đáp ứng và độ tin cậy của sản phẩm được kiểm tra ở phương pháp kiểm thử nàyLoại kiểm thử này kiểm tra thời gian phản hồi ổn định, v.v.
Trong Load Test giới hạn tải là ngưỡng ngắt.Trong Performance Test, giới hạn tải bao gồm cả dưới và trên ngưỡng nghỉ.Trong Stress Test giới hạn tải là trên ngưỡng nghỉ.
Thời điểm thực hiện: Tìm ra lỗi mà không thể tìm ra với bất kỳ phương pháp thử nghiệm khác. Chẳng hạn như rò rỉ bộ nhớ, lỗi quản lý bộ nhớ, tràn bộ đệm, v.v…Thời điểm thực hiện: Để kiểm tra xem ứng dụng đang hoạt động chính xác hay khôngThời điểm thực hiện: Nó giúp các đơn vị kiểm tra hệ thống khi xảy ra lỗi.

5 loại stress testing mà dân tester nào cũng phải biết

Distributed Stress testing

Trong các hệ thống client và server distributed, việc kiểm tra được triển khai trên tất cả các máy chủ và máy tính khác. Mục đích chính của stress server là phân chia các các stress testing ở tất cả các client và theo dõi trạng thái của client. Sau khi client liên hệ đến server thì các máy chủ sẽ ghi nhớ và gửi dữ liệu để kiểm tra.

Trong khi đó, các client xác nhận là đã được kết nối đến server. Nếu server không nhận được bất kỳ tín hiệu xác nhận nào từ client thì cần phải được kiểm tra để gỡ lỗi. Buổi tối là thời điểm tốt nhất để thực hiện stress testing, các server lớn cần một phương pháp hiệu quả để xác định máy tính nào đang gặp sự cố do stress testing thực hiện.

Tác dụng của Distributed Stress testing
Distributed stress testing là gì?

Application stress testing

Nhiệm vụ của Application stress testing là gì? Loại kiểm thử độ bền này chủ yếu liên quan đến khoá và chặn dữ liệu, các sự cố mạng và tắc nghẽn hiệu suất trong một ứng dụng.

Transactional stress testing

Stress testing đảm bảo một hay nhiều giao dịch giữa hai hay nhiều ứng dụng. Transactional stress testing được sử dụng để tinh chỉnh và tối ưu hoá hệ thống.

Systemic stress testing

Đây là loại stress testing tích hợp có thể được thử nghiệm trên nhiều hệ thống chạy trên cùng một máy chủ. Nó được sử dụng để tìm các lỗi trong đó dữ liệu của một ứng dụng chặn ứng dụng khác.

Exploratory stress testing

Một trong những loại stress testing được sử dụng để kiểm tra hệ thống với các thông số hoặc điều kiện bất thường không có khả năng xảy ra trong một tình huống thực tế. Nó được sử dụng để tìm ra lỗi trong các tình huống không mong muốn sau:

  • Lượng lớn user truy cập cùng một lúc
  • Nếu trình quét virus khởi động đồng thời trong tất cả các máy
  • Nếu cơ sở dữ liệu đã ngoại tuyến khi được truy cập từ một trang web
  • Khi một lượng lớn cơ sở dữ liệu được đưa vào cơ sở đồng thời 

Quy trình thực hiện 1 quy trình stress testing cơ bản

Khi thực hiện 1 quy trình stress testing, kiểm thử viên cần thực hiện theo các bước dưới đây:

Bước 1: Lập kế hoạch cho Stress test

Ở bước này, kiểm thử viên cần thu thập dữ liệu của hệ thống, phân tích dữ liệu và xác định mục tiêu của stress test

Bước 2: Tạo tập lệnh tự động hoá

Trong giai đoạn này, Tester tạo tập lệnh automation testing stress, tạo dữ liệu kiểm tra cho các kịch bản stress.

Bước 3: Thực thi tập lệnh

Tester chạy các automation testing stress và lưu trữ các kết quả trả về.

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

Đến giai đoạn này, bạn sẽ phân tích kết quả kiểm tra của testing stress và xác định các nút thắt cổ chai

Bước 5: Tinh chỉnh và tối ưu

Giai đoạn này tester sẽ phối hợp với đội ngũ developers tinh chỉnh lại hệ thống, thay đổi cấu hình và tối ưu code với mục tiêu đạt chuẩn mong muốn

Có thể bạn quan tâm: Automation test là gì? Quy trình kiểm thử tự động chuẩn

Các tools hay gặp

Hiện nay, Stress testing tools bao gồm 4 loại công cụ chính là:

Loadrunner

Được biết tới là công cụ loading stress testing được ưu chuộng và sử dụng nhiều nhất đối với kiểm thử độ bền. Khi kiểm thử với loadrunner, kiểm thử viên sẽ nhận được một kết quả tiêu chuẩn giống với một chuẩn kiểm thử

Jmeter

Là mã nguồn mở trong khi thực hiện kiểm thử, ở quá trình kiểm thử hiệu năng nó được coi như là công cụ Java thuần. Đặc biệt để hoạt động cao hơn thì cần phải được nâng cấp lên JDK5

Stress tester

Giúp người dùng dễ dàng phân tích được những chỉ số, dữ liệu của trang web. Stress tester sẽ có những phân tích cụ thể và sâu hơn về hiệu suất hoạt động, kết quả trả về từ stress tester ở dưới dạng biểu đồ, đội ngũ kiểm thử và phát triển có thể đưa ra những phân tích và quyết định đúng đắn về hiệu suất của phần mềm

Neo load

Bên cạnh Loadrunner, Neo load là công cụ có lượng người dùng tương đối lớn, đặc biệt hữu dụng trong quá trình kiểm thử web và mobile. Neo load đưa ra cho đội ngũ kiểm thử những đánh giá về hiệu suất và thời gian của phần mềm thông qua 1 quá trình mô phỏng hành vi của End user trên phần mềm.

Tiện lợi hơn, Neo load còn có hợp icloud, stress testing, load testing, chính vì thế có thể tiết kiệm chi phí cần chi trả cho quá trình test.

Ưu và nhược điểm của stress testing

Như tất cả các quá trình testing khác, Stress testing vẫn đang tồn tại những ưu điểm và đặc điểm của riêng mình. Vậy ưu và nhược điểm của stress testing là gì?

Ưu điểm

  • Thông qua quá trình stress testing giúp hệ thống nhanh chóng phục hồi sau khi xảy ra những lỗi
  • Duy trì trạng thái hoạt động thường xuyên và ổn định của website
  • Nâng cao hiệu suất bên trong phần mềm và mở rộng website

Nhược điểm

Cũng như nhiều phương pháp kiểm thử khác, khi sử dụng stress testing kiểm thử viên sẽ gặp phải những hạn chế như sau:

  • Quá trình kiểm thử stress testing tốn rất nhiều tài nguyên, do đó làm tốn dung lượng máy.
  • Quá trình này đòi hỏi tester phải có kiến thức về automation test vì nếu thực hiện thủ công sẽ khá tốn thời gian.
  • Các kịch bản kiểm thử của Stress testing đòi hỏi nhân viên kiểm thử phải có kiến thức sâu rộng về những ngôn ngữ lập trình khác nhau để đòi hỏi sự thành công.

Xem thêm: Tester có nên biết code hay không? Lợi thế nào dành cho tester khi biết viết code?

Bài viết trên của Daotaotester cung cấp cho bạn đọc những thông tin về Stress testing là gì? Các loại kiểm thử bên trong stress testing và làm sao để thực hiện 1 quy trình kiểm thử phần mềm cơ bản. Mong rằng những kiến thức trên sẽ hữu ích trong quá trình học tập và làm việc để trở thành tester chuyên nghiệp của bạn.

Bài trước

Ngành công nghệ thông tin thi khối nào? Muốn học công nghệ thông tin thi môn gì?

Bài tiếp theo

6 kỹ năng biến bạn trở thành game tester hàng đầu

Chia sẻ:

Bình luận

Bài viết liên quan

Zalo Zalo Messenger Messenger Phone Phone