Làm thế nào để thực hiện Manual Performance Testing?
Tốc độ của 1 trang web có sự liên quan trực tiếp đến số lượng lớn người truy cập và trải nghiệm người dùng tốt hơn. Performance testing đóng 1 vai trò quan trọng. Đây là cách duy nhất để xác định khả năng đáp ứng của ứng dụng với những mức tải khác nhau. Nhưng liệu Performance tests có thể ...
Tốc độ của 1 trang web có sự liên quan trực tiếp đến số lượng lớn người truy cập và trải nghiệm người dùng tốt hơn.
Performance testing đóng 1 vai trò quan trọng. Đây là cách duy nhất để xác định khả năng đáp ứng của ứng dụng với những mức tải khác nhau.
Nhưng liệu Performance tests có thể thực hiện thủ công giống functional test? Hãy cùng tìm hiểu những khía cạnh của performance test trong bài viết này.
Bàn giao 1 sản phẩm chất lượng, đúng hạn, hoàn thiện testing bao quát được requirement là rất quan trọng cho bất kì ứng dụng nào.
Manual và Automation Testing đã luôn tồn tại song song để giúp testers đạt được mục đích của functional testing. Dù vậy, manual test tốn thời gian, không rẻ và thiên về tìm lỗi. Automation Testing khắc phục những hạn chế này, giúp tiết kiệm thời gian và công sức theo thời gian.
- Một test script có thể sử dụng cho nhiều lần thực thi, chỉ cần thay đổi test data.
- Thời gian thực thi ít hơn nhiều so với Manual Testing.
- Kết quả nhất quán.
- Khỏa lấp những phần Manual Testing không thể hoặc không thích hợp để làm. (ví dụ: webservices)
Tương tự, Performance Testing cho kết quả đáng tin cậy hơn khi automated test scripts được sử dụng, thay vì dùng manual test cases:
- Performance testing là 1 phần của Performance testing, bao gồm test phần mềm và hiểu được performance của phần mềm tại 1 mức xác định trước hoặc tại 1 thời điểm ngẫu nhiên. Bên cạnh đó, nắm được response time cũng là 1 yếu tố quan trọng.
- Mục đích chính của performance testing là xác định Tốc độ, Khả năng mở rộng, và Độ ổn định.
- Tốc độ và sự hiểu quả có thể xác định bằng 1 máy tính, 1 network, 1 software program hoặc 1 device thông qua performance testing
- Xác định môi trường test
- Xác định các tiêu chuẩn chấp nhận được
- Plan và Design Test
- Thiết lập môi trường test
- Áp dụng Test Design
- Thực hiện Test
- Phân tích, Báo Cáo và Re-test
Cả Performance testing and Automated testing thực chất là những hình thức của việc thực hiện kiểm tra bằng những công cụ khác nhau. Thông thường, Test Automation là sự kết hợp của functional testing, load testing, and performance testing.
Khi 1 functional test automation script được điều chỉnh, để không chỉ thống kê kết quả pass/fail, mà còn ghi lại thời gian của đối tượng/màn hình, thì khi đó functional test automation script đã được chuyển thành 1 performance monitor.
Cả quá trình diễn ra như sau:
- Load generator được bắt đầu để test response time của server trong khi load hoặc thời điểm cao nhất.
- Khi đối tượng giả định đã đặt được, functional test automation được bắt đầu để đo thời gian thực tế cần để mọi thứ được chạy thông qua 1 môi trường đã được thiết lập hoàn chỉnh.
- Cả quá trình này sẽ cho ta 1 góc nhìn tuyệt vời về trải nghiệm người dùng trong suốt quá trình chịu tải cao của 1 ứng dụng.
Câu hỏi đặt ra là, "Liệu có phải performance testing chỉ có thể thực hiện được thông qua automated test scripts, hoặc cũng có thể thực hiện thủ công?"
Như chúng ta đã cùng trao đổi ở trên, kết quả đáng tin cậy được tạo ra khi có sự kết hợp của performance và automation testing. Tuy nhiên, có những trường hợp performance của ứng dụng có thể đo được bằng các thủ công.
Hãy cùng xem xét vài ví dụ sau:
Ví dụ 1: Giả sử 1 performance test ngắng cần được đánh giá bởi tester. Việc này dành cho 1 AUT(Application Under Test????) trong 1 khoảng thời gian giới hạn. Do đó, 1 manual test vừa phải có thể được dùng để tìm ra thời gian load trang hay response time.
Ví dụ 2: Tương tự với 1 ứng dụng java web. Để thực hiện performance test thử công, nhiều active sessions của ứng dụng cần được mở trong quá trình test. Chúng ta sẽ xác định số lượng active sessions, kết nối đến database, và số thread đang chạy. Lượng CPU, memory được sử dụng và vài tham số khác cũng có thể được thu thập.
Tivoli Performance Viewer (TPV) có thể được cài đặt để theo dõi các tham số mong muốn. Thông thường, thực hiện test bằng cách deploy ứng dụng lên server, truy cập ứng dụng từ nhiều máy client và cho phép chạy multiple threads.
TPV được sử dụng như thế nào để theo dõi performance của các WebSphere Application Server (WAS):
WebSphere Application Server (WAS) là 1 sản phẩm hoặc framework web nền java. Kết quả có được nhờ theo dõi performance thông qua TPV cho bất cứ WAS nào có thể được phân tích để tìm ra các yếu tố gây nên response time lớn. Từ đó, các yếu tố này có thể được cải thiện.
Thủ tục để theo dõi performance như sau:
- Chọn server để theo dõi. Như trong biểu đồ ở dưới, Chọn "server 1".
- Khi ứng dụng đang chạy, hoạt động của server được theo dõi nhờ thu thập và nghiên cứu các dữ liệu thời gian thực - được thu thập bởi Performance Monitoring infrastructure (PMI), bên trong admin console. Dữ liệu PMI thu thập được sẽ giúp đạt hiệu suất tối ưu.
Biểu đồ sau giải thích cách thức làm việc: Checkbox "Server1" đã được chọn. Khi click "Start Monitoring", TPV bắt đầu theo dõi PMI data.
Biểu đồ dưới đây giải thích các Settings và phần hiển thị phía bên trái cho "Server 1" bên dưới TPV. Phần bên phải mô tả dữ liệu đã được theo dõi cho các tham số đã được chọn ở bên trái.
Chúng ta có thể thấy rõ trong biểu đồ, các tham số dữ liệu sau có thể được xem và phân tích:
- Advisor
- Settings
- Summary reports (bao gồm Servlets , EJBs, EJB Methods, Connection Pool, Thread Pool)
- Performance Modules (chứa các option của JVM runtime, bao gồm graph hiển thị runtime PMI data)
- Cấu hình của user và Logging Settings đã được thực hiện, do đó server performance logs có thể được xem trong admin console. Những thiết lập này cũng có thể ảnh hưởng performance của server.
- Real-time data được ghi lại bởi Performance viewer. Ví dụ: server performance logs, ... cũng có thể được xem sau.
Ví dụ 3: Performance của 1 ứng dụng cần được đánh giá về bandawidth dưới các tốc độ mạng khác nhau.
Ví dụ 4: Kiểm tra nhanh performance database có thể được thực hiện thủ công để lấy được các thông tin cần thiết.
Như vậy, trong tất cả các trường hợp này, performance testing có thể được thực hiện mà không cần automation scripts. Bạn có thể cần 1 vài tool theo dõi, dự đoán, nhưng 100% automation chắc chắn là không cần thiết.
Một non-performance tester có thể nhanh chóng thực hiện test mà không phải đi qua cả quy trình thiết lập automated test, hay thậm chí không có kiến thức về automation test.
Điều này là rất hữu ích khi:
- Performance testers cần đánh giá nhanh về khả năng phản hồi của sản phẩm dưới 1 vài điều kiện.
- Thực hiện 1 performance test ở mức vừa đủ. Ví dụ: chạy vài bước thủ công khi hoàn thiện phần test.
Một performance tester cũng có thể giả lập 1 điều kiện performance test tư vài client machine khác nhau bằng cách thao tác với từng server riêng biệt. Nhưng cách này không phải là cách hiệu quả để chạy performance test. Do đó, hãy ghi nhớ rằng không phải mọi thứ có thể làm thủ công.
Performance testing được coi là 1 trong những dạng phức tạp và đòi hỏi kiến thức kĩ thuật nhiều nhất của software testing. Automated test scripts đem lại giá trị vô cùng to lớn đối với giảm công sức cần có để test. Nhưng chúng ta nên không ngừng khám phá những cách thức mới để kết hợp với performance testing. Manual testing cũng có thể có ích.
Bài viết được dịch lại từ nguồn: http://www.softwaretestinghelp.com/manual-performance-testing/