Soak Testing là gì?
Soak Testing là gì? Soak Testing là kiểu test dạng non-functional trong đó, hệ thống chịu tải (System under Load) được test và kiểm tra để nó có thể chịu được khối lượng tải lớn trong một khoảng thời gian kéo dài. Soak Testing là 1 dạng performance test. Nó là kiểu test ở cấp độ system test, để ...
Soak Testing là gì? Soak Testing là kiểu test dạng non-functional trong đó, hệ thống chịu tải (System under Load) được test và kiểm tra để nó có thể chịu được khối lượng tải lớn trong một khoảng thời gian kéo dài. Soak Testing là 1 dạng performance test. Nó là kiểu test ở cấp độ system test, để xem hệ thống có chịu được khối lượng sử dụng cao không, và xem nếu vượt mức sử dụng thì điều gì sẽ xảy ra. Ảnh dưới miêu tả chu trình test cho ta thấy bước nào sẽ sử dụng Soak Testing trên ứng dụng:
Trong loại test này, cái được kiểm tra và theo dõi đơn giản là việc sử dụng bộ nhớ của ứng dụng trong hệ thống. Vì sao cần Soak Testing? Một hệ thống có thể hoạt động bình thường khi hoạt động trong 2 giờ, nhưng 1 hệ thống tương tự sử dụng trong 10 giờ liên tiếp hoặc hơn thế thì nó sẽ xảy ra lỗi, hoạt động không đúng. Để dự đoán và ngăn chặn những lỗi hệ thống nghiêm trọng, ta phải sử dụng Soak Testing. Khi nào sử dụng Soak Testing? Soak Testing được sử dụng trong các trường hợp:
- Trước khi bản build được deploy cho khách hàng, hoặc trước lần release của bất kỳ ứng dụng trên nền tảng nào, nó cần đi qua hàng loạt bài load test với cấp độ sử dụng cao. Sau đó, chúng ta mới thực hiện soak testing. Nó giúp chúng ta xem xem chạy ứng dụng bất kì trong 1 khoảng thời gian như thế nào. Nếu những vấn đề như thất thoát bộ nhớ/bộ nhớ bị tràn được tìm thấy, thì lỗi đó cần phải được báo cáo ngay.
- Thời điểm tốt nhất để thực hiện soak testing là cuối tuần, khi đó ứng dụng cần ở trong trạng thái chạy cả ngày lẫn đêm. Nó phụ thuộc hoàn toàn vào giới hạn của tình huống test. Soak testing là 1 trong những yêu cầu cần tuân thủ bậc nhất mà mọi công ty cần tuân thủ 1 cách nghiêm ngặt.
Chiến thuật Soak Testing Long Session Soak Testing is a strategy where system is under load for a longer time. Một ví dụ đơn giản là người dùng log in trong nhiều giờ và thực hiện nhiều giao dịch. Và theo đó, rất nhiều dữ liệu được tạo ra. Hệ thống có thể phải chịu tải khá nhiều dẫn tới việc crash server hoặc database. Khi soak testing trong khoảng thời gian dài, các hoạt động trong nhiều ngày (30 ngày) được thực hiện co ngắn lại trong 2 ngày. Số tác vụ được thực hiện trong khoảng thời gian này phải bằng, hoặc vượt qua số tác vụ thực hiện trong nhiều ngày. Phần quan trọng nhất của Soak Testing là kiểm tra bộ nhớ sẵn có trong CPU và số bộ nhớ đang sử dụng. Chúng ta cần ghi lại số bộ nhớ sử dụng lúc đầu và cuối giai đoạn soak test. Nếu cần, việc sử dụng bộ nhớ của các tiện ích như Java Virtual Machines cũng khá quan trọng và cần phải được theo dõi. Bên dưới là 1 số thứ cần ghi nhớ để kiểm tra trước khi Soak Testing: a) Theo dõi độ tiêu thụ tài nguyên của cơ sở dữ liệu. b) Theo dõi độ tiêu thụ tài nguyên của server.
Đặc điểm của Soak Testing
- Một qui trình Soak Testing chuẩn cần tuân theo những qui tắc:
- Thời gian làm soak testing thường là khi có thời gian rảnh.
- Bất cứ app nào khi thực hiện test cũng phải chạy mà không được phép gián đoạn.
- Phải cover được tất cả các trường hợp mà được sự đồng ý từ các bên liên quan.
Ví dụ về Soak Testing
Trong khi test ứng dụng về ngân hàng, khi có 1 lượng lớn dữ liệu từ người bán, tester sẽ load test hệ thống liên tục trong 70 tới 150 giờ để check xem ứng dụng sẽ xử lý như thế nào trong giai đoạn load test.
Giả sử có 33000 lượt đăng nhập, hệ thống sẽ phải xử lý hết trong tầm 7 ngày rưỡi. Trong trường hợp này, soak test khoảng 60-70 giờ là hợp lý, ta sẽ test từ tối thứ 6, tầm 6h tối, và sẽ test xong vào sáng thứ 2, lúc 6h sáng. Với cách test như vậy, ta sẽ thấy được bất kỳ sự cố nào xảy tới với performance của hệ thống trong dưới điều kiện test được kiểm soát.
Trong trường hợp test video games, ứng dụng di động, etc.. sẽ có trường hợp rời game hay ứng dụng khi đang sử dụng trong 1 khoảng thời gian dài, trong nhiều chế độ sử dụng đa dạng khác nhau - ví dụ như trong thời gian rảnh, pause ứng dụng, v...v ta sẽ biết được ứng dụng có thể xử lý liên tục được hay không.
Các vấn đề thường gặp trong quá trình Soak Testing
- Hệ thống không thể cung cấp vùng nhớ đã cấp phát
- Việc sử dụng tài nguyên cơ sở dữ liệu
- Giảm hiệu suất sử dụng: phải đảm bảo thời gian phản hồi sau 1 khoảng thời gian cũng phải bằng với lúc bắt đầu test.
- Giảm thời gian phản hồi của 1 số chức năng khi cấu trúc dữ liệu nội bộ trở nên kém hiệu quả trong khoảng thời gian test dài.
Tổng kết
- Soak testing được thực hiện để xác định xem ứng dụng cần test có thể chịu tải liên tục được hay không.
- Nó là 1 dạng performance test.
- Nó xác định khi hệ thống có mức độ sử dụng rất cao thì nó có chạy tốt hay không.
- Trong loại test này, cái cần kiểm tra và đánh giá là mức độ sử dụng bộ nhớ bởi ứng dụng trong hệ thống.
- Những phần cần kiểm tra bởi tester trước giai đoạn Soak Testing bao gồm:
- Sự tiêu thụ tài nguyên của cơ sở dữ liệu.
- Sự tiêu thụ tài nguyên của server.