Luận văn: Kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học

Kiểm thử hiệu năng phần mềm quản lý trường học đảm bảo hệ thống hoạt động ổn định, đáp ứng lượng lớn người dùng. Tìm hiểu quy trình và công cụ kiểm thử hiệu quả.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Luận văn thạc sĩ

2012

68
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

DANH MỤC BẢNG

DANH MỤC HÌNH VẼ

1. CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ HIỆU NĂNG

1.1. Khái niệm kiểm thử hiệu năng

1.2. Tầm quan trọng của kiểm thử hiệu năng

1.3. Các thuật ngữ trong kiểm thử hiệu năng

1.4. Các hoạt động trong kiểm thử hiệu năng

1.5. Tính linh động trong kiểm thử hiệu năng

1.6. Hiểu lầm về kiểm thử hiệu năng

1.7. Kiểu kiểm thử hiệu năng

1.8. Công cụ kiểm thử hiệu năng

1.8.1. Công cụ kiểm thử hiệu năng

1.8.2. Tiêu chuẩn để chọn một công cụ kiểm thử hiệu năng

2. CHƯƠNG 2: CÁC KỸ THUẬT TRONG KIỂM THỬ HIỆU NĂNG

2.1. Xác định tải công việc của hệ thống (workload of system)

2.1.1. Kiểu tải công việc

2.1.2. Phân tích tải công việc của hệ thống

2.2. Mô hình hóa tải công việc (workload)

2.3. Cài đặt môi trường kiểm thử hiệu năng

2.3.1. Môi trường kiểm thử

2.3.2. Cô lập môi trường kiểm thử

2.4. Tạo dữ liệu kiểm thử (Test data generator)

2.5. Xây dựng kịch bản kiểm thử hiệu năng

2.5.1. Chọn kịch bản kiểm thử hiệu năng

2.5.2. Viết kịch bản kiểm thử hiệu năng

2.6. Thực hiện kiểm thử hiệu năng (Performance test execution)

2.6.1. Những chuẩn bị trước khi kiểm thử hiệu năng

2.6.2. Phương pháp thực hiện kiểm thử hiệu năng

2.6.3. Lời khuyên khi thực hiện kiểm thử tải và kiểm thử áp lực

2.7. Báo cáo kiểm thử hiệu năng (Performance test reporting)

2.7.1. Báo cáo kiểm thử hiệu năng

2.7.2. Các thành phần của báo cáo

2.7.3. Lời khuyên và ví dụ khi tạo báo cáo

3. CHƯƠNG 3: KIỂM THỬ HIỆU NĂNG DỊCH VỤ PHẦN MỀM QUẢN LÝ TRƢỜNG HỌC

3.1. Giới thiệu trang web quản lý trường học

3.2. Phân tích mô hình người sử dụng và mô hình tải

3.2.1. Số người truy cập lớn nhất trong 1 tháng/1 tuần /1 ngày/1 giờ

3.2.2. Luồng chức năng được sử dụng nhiều nhất

3.2.3. Thời gian trung bình duyệt mỗi trang

3.3. Môi trường kiểm thử

3.4. Kịch bản kiểm thử

3.5. Chiến lược kiểm thử

3.6. Tạo và cài đặt kịch bản kiểm thử sử dụng phần mềm Jmeter

3.7. Kết quả kiểm thủ

3.7.1. Kịch bản kiểm thử NHẬP ĐIỂM

3.7.2. Kịch bản kiểm thử Báo cáo

3.8. Phân tích kết quả kiểm thử

3.8.1. Thời gian phản hồi

3.8.2. Sử dụng CPU trên máy chủ

3.8.3. Sử dụng Disk I/O trên máy chủ

3.8.4. Sử dụng bộ nhớ trên máy chủ

3.9. Kết luận hiệu năng hệ thống trên máy chủ thử nghiệm

4. CHƯƠNG 4: TRIỂN KHAI DỊCH VỤ QUẢN LÝ TRƢỜNG HỌC TRÊN DIỆN RỘNG

4.1. Vấn đề ảnh hưởng hiệu năng của hệ thống

4.2. Triển khai hệ thống trên diện rộng

4.3. Chú ý triển khai hệ thống trên diện rộng

TÀI LIỆU THAM KHẢO

MỞ ĐẦU

Tóm tắt

I. Tổng Quan Kiểm Thử Hiệu Năng Phần Mềm Quản Lý Trường Học

Kiểm thử hiệu năng là một yếu tố then chốt đảm bảo chất lượng của phần mềm quản lý trường học. Kiểm thử chức năng cho phép người dùng cuối tìm ra lỗi dễ dàng, kiểm thử hiệu năng là một hoạt động phức tạp đòi hỏi kiểm thử viên phải có kiến thức về lý thuyết, kỹ thuật và phần mềm hỗ trợ kiểm thử hiệu năng. Trong kiểm thử hiệu năng có nhiều khái niệm, thật ngữ riêng đòi mà kiểm thử viên phải hiểu rõ ý nghĩa của nó. Đồng thời các kỹ thuật cài đặt môi trường, lựa chọn và xây dựng kịch bản, thực hiện kiểm thử rất đặc thù không giống như các loại kiểm thử khác. Phải hiểu rõ bản chất và kỹ thuật trong kiểm thử hiệu năng thì kiểm thử viên mới có thể đưa ra cách tiến hành và chiến lược kiểm thử hiệu quả. Performance testing giúp đánh giá khả năng chịu tải, tốc độ phản hồi và sự ổn định của hệ thống. Software testing cần được tiến hành thường xuyên để đảm bảo hệ thống đáp ứng yêu cầu ngày càng cao của người dùng. Các loại kiểm thử như load testing, stress testing, scalability testing đóng vai trò quan trọng trong việc đảm bảo chất lượng. Theo [5], kiểm thử hiệu năng là hành động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó. 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ế.

1.1. Khái niệm và tầm quan trọng của Performance Testing

Khái niệm Performance testing liên quan đến việc đo lường và đánh giá các khía cạnh hiệu năng của phần mềm, bao gồm thời gian phản hồi, thông lượng, sử dụng tài nguyên và khả năng mở rộng. Việc kiểm tra Database performanceNetwork performance là vô cùng quan trọng. Performance testing giúp xác định các performance bottlenecks tiềm ẩn, từ đó cho phép thực hiện các optimization cần thiết để cải thiện application performance. Tầm quan trọng của performance testing nằm ở chỗ nó đảm bảo rằng phần mềm có thể đáp ứng được các yêu cầu hiệu năng đã đặt ra, mang lại trải nghiệm người dùng tốt và tránh các sự cố do quá tải hoặc chậm trễ. Ngoài ra, Performance metrics đóng vai trò quan trọng trong việc đánh giá hiệu quả và xác định các khu vực cần cải thiện. Các testing tools hỗ trợ trong quá trình đánh giá và đo lường hiệu năng.

1.2. Các thuật ngữ quan trọng trong kiểm thử hiệu năng phần mềm

Trong performance testing, có nhiều thuật ngữ quan trọng cần nắm vững như Response time, Throughput, Resource utilization, Concurrency, và User experience. Response time là thời gian hệ thống phản hồi một yêu cầu, trong khi Throughput là số lượng yêu cầu được xử lý trong một đơn vị thời gian. Resource utilization đo lường mức độ sử dụng tài nguyên hệ thống như CPU, bộ nhớ và đĩa cứng. Concurrency đề cập đến số lượng người dùng hoặc yêu cầu được xử lý đồng thời. Cuối cùng, User experience là cảm nhận của người dùng về tốc độ và độ ổn định của phần mềm. Việc hiểu rõ các thuật ngữ này giúp trong việc thiết kế và thực hiện các kịch bản kiểm thử hiệu quả, đồng thời đánh giá chính xác kết quả và đưa ra các giải pháp cải thiện hiệu năng.

II. Cách Xác Định Tải Công Việc cho Phần Mềm Quản Lý Trường Học

Xác định tải công việc (workload) là một bước quan trọng trong kiểm thử hiệu năng. Kotis từng nói, “tải công việc có thể được xác định như một tập các đầu vào từ những người sử dụng gửi tới hệ thống “ [5]. Việc này giúp tạo ra các kịch bản kiểm thử thực tế và đánh giá chính xác khả năng chịu tải của hệ thống. Phân tích tải công việc là: xác định tổng tải công việc của hệ thống phải xử lý, loại yêu cầu mà người dùng gửi đến máy chủ, luồng chức năng được sử dụng thường xuyên, chu kỳ sử dụng của người dùng, thời gian người dùng cuối sử dụng mỗi lần vào hệ thống, thời gian giữa các giao dịch, phân loại người sử dụng, số người sử dụng ứng dụng, khi nào máy chủ chịu tải cao nhất [5]. Để phân tích tải công việc của hệ thống chúng ta có thể dựa vào mô hình hành vi khách hàng hoặc phân tích tập tin web log (nếu trang web đã được đưa vào sử dụng), v.v… Với các ứng dụng đã đang được triển khai trong thực tế có thể dựa vào tập tin log (web log) trên máy chủ của hệ thống để phân tích mô hình người sử dụng. Phân tích tập tin log trên máy chủ của trang web có thể xác định: số người sử dụng trang web, tổng số yêu cầu gửi về máy chủ (ví dụ: hình ảnh, trang html), số trang được hiển thị (number of page views), ngày nhiều người sử dụng nhất, giờ nhiều người đồng thời sử dụng, số byte được truyền từ máy chủ tới máy khách ở bất kỳ thời điểm nào (throughput/Bytes transferred).

2.1. Phân tích mô hình người dùng và tải công việc hệ thống

Để phân tích mô hình người dùng và tải công việc, cần thu thập dữ liệu từ nhiều nguồn như nhật ký máy chủ, công cụ phân tích web (ví dụ: Google Analytics), khảo sát người dùng và phỏng vấn các bên liên quan. Dữ liệu này giúp xác định số lượng người dùng đồng thời, các chức năng phổ biến nhất, thời gian sử dụng trung bình, và các mẫu tải công việc theo thời gian (ví dụ: giờ cao điểm). Workload modeling là bước quan trọng để tạo ra các kịch bản kiểm thử thực tế, phản ánh đúng cách người dùng tương tác với hệ thống. Việc phân tích này cũng giúp xác định các yêu cầu về tài nguyên hệ thống và đưa ra các quyết định về mở rộng quy mô phù hợp.

2.2. Sử dụng Google Analytics phân tích hiệu năng phần mềm

Google Analytics là một công cụ mạnh mẽ để phân tích hiệu năng của các ứng dụng web. Nó cung cấp thông tin chi tiết về số lượng người dùng, nguồn lưu lượng, hành vi người dùng trên trang web, và thời gian tải trang. Bằng cách theo dõi các chỉ số như KPIs, tỷ lệ thoát trang, và thời gian phản hồi, có thể xác định các khu vực cần cải thiện hiệu năng. Thông tin này đặc biệt hữu ích cho việc tối ưu hóa UI performance testing. Google Analytics cũng cho phép tạo ra các báo cáo tùy chỉnh để theo dõi hiệu năng theo thời gian và so sánh hiệu năng giữa các phiên bản khác nhau của phần mềm. Việc sử dụng Google Analytics kết hợp với các công cụ kiểm thử hiệu năng chuyên dụng giúp có cái nhìn toàn diện về hiệu năng của phần mềm.

III. Hướng Dẫn Cài Đặt Môi Trường Kiểm Thử Hiệu Năng

Việc cài đặt môi trường kiểm thử hiệu năng cần được thực hiện cẩn thận để đảm bảo tính chính xác và tin cậy của kết quả kiểm thử. Môi trường kiểm thử nên được cô lập và cấu hình tương tự như môi trường sản xuất. Kiểm thử viên phải tìm hiểu môi trường sản phẩm hay là môi trường triển khai hệ thống trong thực tế. Ngoài ra kiểm thử viên nên biết kiến trúc triển khai ứng dụng trọng môi trường sản phẩm và yêu cầu đội phát triển cài đặt môi trường kiểm thử giống với sản phẩm để thực hiện kiểm thử hiệu năng [5]. Nếu môi trường sản phẩm và môi trường kiểm thử có sự khác nhau về phần cứng triển khai ứng dụng thì sẽ mang lại rủi ro cao là hiệu năng sau khi kiểm thử không phải là hiệu năng thực tế của hệ thống trong thực tế. Vì vậy môi trường kiểm thử nên được cài đặt giống với môi trường sản phẩm. Môi trường kiểm thử nên được xây dựng trong môi trường riêng biệt tránh tải không cần thiết để đánh giá chính xác và những vấn đề ảnh hưởng đến hiệu năng.

3.1. Thiết lập môi trường và cô lập hệ thống kiểm thử

Để thiết lập môi trường kiểm thử, cần xác định các yêu cầu về phần cứng, phần mềm, và mạng. Môi trường kiểm thử nên phản ánh môi trường sản xuất càng gần càng tốt để đảm bảo tính chính xác của kết quả. Việc cô lập hệ thống kiểm thử khỏi các hệ thống khác là rất quan trọng để tránh các tác động không mong muốn đến hiệu năng. Điều này có thể đạt được bằng cách sử dụng mạng riêng, máy ảo, hoặc các cloud-based system. Ngoài ra, cần đảm bảo rằng môi trường kiểm thử được cấu hình đúng cách và có đủ tài nguyên để đáp ứng tải công việc dự kiến.

3.2. Sử dụng Test Data Generator và tạo dữ liệu kiểm thử

Tạo dữ liệu kiểm thử là một phần quan trọng của quá trình kiểm thử hiệu năng. Dữ liệu kiểm thử nên phản ánh dữ liệu thực tế của hệ thống và bao gồm các trường hợp biên, trường hợp đặc biệt, và dữ liệu lớn. Test data generator có thể được sử dụng để tạo dữ liệu kiểm thử tự động. Cần đảm bảo rằng dữ liệu kiểm thử được tạo ra có đủ độ lớn và đa dạng để kiểm tra các giới hạn của hệ thống và xác định các vấn đề về hiệu năng. Việc quản lý dữ liệu kiểm thử cũng rất quan trọng để đảm bảo rằng dữ liệu được tạo ra, lưu trữ, và sử dụng một cách an toàn và hiệu quả.

IV. Bí Quyết Xây Dựng Kịch Bản Kiểm Thử Hiệu Năng Phần Mềm

Kịch bản kiểm thử là yếu tố then chốt quyết định chất lượng của quá trình kiểm thử hiệu năng. Việc chọn kịch bản kiểm thử hiệu năng ảnh hưởng tích cực đến việc đánh giá hiệu năng hệ thống [2, 5]. Lựa chọn kịch bản trong kiểm thử hiệu năng cần được phân tích và nó chỉ chiếm 20% trong tổng số kịch bản. Đó là những kịch bản mà người dùng sử dụng thường xuyên khi sử dụng hệ thống. Kịch bản kiểm thử được tạo ra bằng cách sử dụng phần mềm kiểm thử hiệu năng để ghi lại hành động của người dùng như trong thực tế. Tuy nhiên do hạn chế của phần mềm mà thời gian nghĩ (think time) và một số tham số khác không được ghi lại trong kịch bản. Vì vậy mà mà kiểm thử viên phải tự cài đặt lại thời gian nghĩ và tham số khác để đảm bảo kịch bản chạy đúng như trong thực tế.

4.1. Chọn lọc kịch bản kiểm thử hiệu năng

Việc chọn lọc kịch bản kiểm thử hiệu năng nên dựa trên phân tích hành vi người dùng và các yêu cầu hiệu năng. Các kịch bản nên bao gồm các chức năng phổ biến nhất, các chức năng quan trọng, và các chức năng có khả năng gây ra các vấn đề về hiệu năng. Cần ưu tiên các kịch bản có số lượng người dùng lớn, các kịch bản có thời gian thực hiện dài, và các kịch bản truy cập dữ liệu lớn. Việc chọn lọc kịch bản cũng nên dựa trên KPIs và các mục tiêu hiệu năng đã đặt ra. Bằng cách tập trung vào các kịch bản quan trọng nhất, có thể tối ưu hóa thời gian và tài nguyên kiểm thử và đảm bảo rằng các vấn đề về hiệu năng quan trọng nhất được xác định và giải quyết.

4.2. Chú ý khi viết kịch bản kiểm thử Think time các tham số

Khi viết kịch bản kiểm thử, cần chú ý đến các yếu tố như thời gian suy nghĩ (think time), các tham số động, và các điều kiện biên. Think time nên phản ánh thời gian thực tế mà người dùng cần để suy nghĩ và thực hiện các hành động. Các tham số động nên được quản lý đúng cách để đảm bảo tính đa dạng và thực tế của kịch bản. Các điều kiện biên nên được kiểm tra để xác định các giới hạn của hệ thống và đảm bảo rằng hệ thống có thể xử lý các trường hợp bất thường. Ngoài ra, cần đảm bảo rằng kịch bản được viết rõ ràng, dễ hiểu, và dễ bảo trì. Việc sử dụng các công cụ ghi kịch bản tự động có thể giúp tăng tốc quá trình viết kịch bản, nhưng cần kiểm tra kỹ kịch bản để đảm bảo tính chính xác và đầy đủ.

4.3. Áp dụng Automation testing và Agile testing vào quy trình

Áp dụng Automation testingAgile testing vào quy trình kiểm thử hiệu năng giúp tăng tốc quá trình kiểm thử, giảm thiểu lỗi, và đảm bảo tính linh hoạt. Automation testing cho phép thực hiện các kịch bản kiểm thử lặp đi lặp lại một cách nhanh chóng và chính xác. Agile testing giúp tích hợp kiểm thử hiệu năng vào các giai đoạn phát triển phần mềm, từ đó giúp phát hiện và giải quyết các vấn đề về hiệu năng sớm hơn. DevOps cũng đóng vai trò quan trọng trong việc tự động hóa và tích hợp các quy trình kiểm thử hiệu năng vào quy trình phát triển phần mềm. Bằng cách áp dụng các phương pháp này, có thể cải thiện chất lượng và hiệu quả của quá trình kiểm thử hiệu năng.

V. Thực Hiện và Phân Tích Kết Quả Kiểm Thử Phần Mềm

Thực hiện kiểm thử hiệu năng & phân tích kết quả là sự tuần hoàn. Nếu kết quả kiểm thử hiệu năng chỉ ra rằng hệ thống chưa đạt được yêu cầu hiệu năng thì đội phát triển sẽ điều chỉnh hệ thống. Khi đó kiểm thử viên sẽ thực hiện kiểm thử hiệu năng để đánh giá lại hiệu năng hệ thống sau khi được điều chỉnh [2, 4, 5]. Phân tích các vấn đề và nguyên nhân làm ảnh hưởng đến hiệu năng. Với các vấn đề khó như tìm nguyên nhân nút nghẽn cổ chai của hệ thống cần sự tham gia phân tích của một nhóm người gồm kiểm thử viên, người quản trị hệ thống, chuyên gia kỹ thuật và người quản lý dữ liệu.

5.1. Chuẩn bị trước khi kiểm thử Performance workload Data

Trước khi thực hiện kiểm thử performance cần hiểu rõ workload modeling của hệ thống thông qua việc phân tích mô hình người sử dụng hoặc từ tập tin log trên máy chủ, cần xác định phần mềm kiểm thử hiệu năng và chuẩn bị dữ liệu kiểm thử. Cần đảm bảo môi trường kiểm thử đã sẵn sàng, không có người sử dụng truy cập ứng dụng trong khi thực hiện kiểm thử và máy chủ được cách ly với bất kỳ sử dụng khác.

5.2. Phương pháp thực hiện kiểm thử hiệu năng thu thập thông tin

Khi thực hiện kiểm thử tải nên tập trung đánh giá hiệu năng máy chủ trong mô hình sử dụng thực. Để tạo độ tin tưởng cao khi phân tích hiệu năng thì nên thực hiện 3 đến 4 mẫu kiểm thử và thu thập các số liệu về thời gian phản hồi, thông lượng, mức độ sử dụng CPU. Từ đó so sánh, đánh giá và đưa ra kết luận chính xác về hiệu năng của hệ thống.

5.3. Lời khuyên khi Load testing Stress testing để đạt hiệu quả

Thực hiện ít nhất 3 vòng kiểm thử tải cần lên kế hoạch trước khi đặt hệ thống trong tải mục tiêu. Khi thực hiện kiểm thử tải có 3 vùng tải: tải từ từ tăng, tải ổn định, tải từ từ giảm. Kiểm thử áp lực (stress test) được xây dựng với mục đích gây áp lực cho hệ thống để tìm ra điểm dừng (breakpoint) và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống (nếu có).

VI. Báo Cáo Kết Quả và Đề Xuất Cải Tiến Hiệu Năng Hệ Thống

Báo cáo kiểm thử hiệu năng đưa các kết luận về hiệu năng, các yếu tố và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống (nếu có). Thông tin viết trong báo cáo gồm: yêu cầu hiệu năng cần kiểm thử, tổng quan về hệ thống, các kịch bản kiểm thử, mô hình phân bố người sử dụng và kết quả kiểm thử. Thông tin quan trọng nhất trong báo cáo là chi tiết thời gian phản hồi, thông lượng trong các giao dịch, các chỉ số về mức độ sử dụng tài nguyên phần cứng, lỗi ứng dụng hoặc những lỗi phát sinh trong khi kiểm thử…

6.1. Báo cáo kết quả kiểm thử Performance các thành phần cần

Báo cáo kiểm thử hiệu năng sẽ có nhiều người đọc khác nhau như người làm kinh doanh (business people), người phân tích , người quản lý máy chủ và người quản lý dữ liệu. Mục đích của kiểm thử hiệu năng (cam kết mức độ dịch vụ cung cấp), môi trường kiểm thử và cấu hình máy chủ, kịch bản kiểm thử, tóm tắt kết quả kiểm thử, trực quan hóa thông tin chi tiết hiệu năng hệ thống, trực quan hóa vấn đề, nguyên nhân ảnh hưởng đến hiệu năng (nếu có). Kết luận về hiệu năng và giải pháp để cải thiện hiệu năng.

6.2. Lời khuyên và ví dụ khi tạo báo cáo kết quả kiểm thử

Kết quả trình bầy trong báo cáo nên đưa ra các thông tin: Đưa ra 90% giá trị của thời gian phản hồi không nên dùng giá trị trung bình, sử dụng bảng so sánh thời gian phản hồi để chúng ta thấy rõ hiệu năng cửa hệ thống ở các mức tải khác nhau, vẽ biểu đồ để thể hiện sự thay đổi thời gian phản hồi với mức tải khác nhau.

6.3. Kết luận và gợi ý cải thiện hiệu năng phần mềm học đường

Sau khi phân tích các kết quả kiểm thử, đưa ra kết luận về tình trạng hiện tại của hiệu năng hệ thống và đề xuất các giải pháp cải thiện hiệu năng trong tương lai. Các giải pháp này có thể bao gồm tối ưu hóa mã nguồn, cấu hình hệ thống, nâng cấp phần cứng, hoặc thay đổi kiến trúc phần mềm. Cần đánh giá hiệu quả của các giải pháp và đề xuất để đảm bảo rằng chúng thực sự cải thiện hiệu năng hệ thống. Việc liên tục theo dõi hiệu năng hệ thống và thực hiện các điều chỉnh cần thiết là rất quan trọng để đảm bảo rằng hệ thống có thể đáp ứng được các yêu cầu hiệu năng ngày càng cao.

24/09/2025

Trích đoạn nội dung tài liệu

Chương 1 và Chương 2 là lý thuyết về kiểm thử hiệu năng, toàn bộ nội dung 2 chương này tôi tham khảo trong các quyển sách được đề cập trong mục tài liệu tham khảo.2 Khái niệm kiểm thử hiệu năng Có nhiều định nghĩa về kiểm thử hiệu năng. Theo [5], kiểm thử hiệu năng là hành động kiểm định, đánh giá phần mềm, một thành phần hoặc phần cứng có đúng với yêu cầu về hiệu năng và tối ưu hóa hiệu năng của nó. Một cách định nghĩa khác của kiểm thử hiệu năng theo [4], kiểm thử hiệu năng là kiểm thử xác định thời gian phản hồi (repsonsiveness), thông lượng (throughput), mức độ tin cậy (reliability) hoặc khả năng mở rộng (scalability) của hệ thống theo khối lượng công việc (workload). Mục tiêu của kiểm thử chức năng là kiểm thử và xác nhận các yêu cầu chức năng trong khi mục tiêu của thử nghiệm hiệu năng là kiểm thử và xác nhận các yêu cầu phi chức năng của hệ thống như hệ thống có thể phục vụ tối đa bao nhiêu người sử dụng đồng thời trong khoảng thời gian bao lâu, khi đó thời gian phản hồi và thông lượng là bao nhiêu, sử dụng bao nhiêu phần trăm CPU, bao nhiêu bộ nhớ của máy chủ, v.v… Trước kia để tăng hiệu năng của ứng dụng các tổ chức thường mua phần cứng dung lượng cao mặc dù nó không phải là cách để giải quyết triệt để vấn đề hiệu năng.

Ngày nay các tổ chức đã nhận ra phải phân tích thiết kế hệ thống để đạt được yêu cầu về hiệu năng và thực hiện kiểm thử hiệu năng để xác nhận hệ thống đã đạt được hiệu năng yêu cầu chưa. Và nhiều người nghĩ rằng kiểm thử hiệu năng là việc sử dụng một công cụ mô phỏng nhiều người sử dụng và xác định thời gian phản hồi, thông lượng của hệ thống khi thực hiện các chức năng khác nhau. Nhưng thực sự làm thế nào để ` TIEU LUAN MOI download : skknchat@gmail.com 12 mô phỏng được nhiều người sử dụng giống như trong thực tế để có thể đánh giá đúng hiệu năng thực của hệ thống không thực sự đơn giản.3 Tầm quan trọng của kiểm thử hiệu năng 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ế.

Ví dụ khi ứng dụng chạy đúng nhưng quá chậm thì sản phẩm sẽ không được người dùng hài lòng. Ngoài ra chúng ta có thể thấy một số lý do của việc cần kiểm thử hiệu năng như sau:  So sánh hiệu năng hiện tại của hệ thống với hiệu năng của hệ thống khác mà đã làm hài lòng người sử dụng.  Kiểm định hiệu năng của hệ thống đã đúng yêu cầu của khách hàng chưa.  Phân tích hành vi của hệ thống ở những mức tải khác nhau.

Việc phân tích này giúp ta đánh giá về hiệu năng của hệ thống một cách toàn diện hơn.  Tìm nguyên nhân ảnh hưởng đến hiệu năng của hệ thống và nguyên nhân của nút nghẽn cổ chai. Ví dụ một vài nguyên nhân như rò rỉ (thất thoát) bộ nhớ (memory leaks), thời gian phản hồi chậm.  Xác định khả năng của các thiết bị và đưa ra yêu cầu về tài nguyên trong tương lai để ứng dụng đạt được hiệu năng sử dụng.

 So sánh với hệ thống đã thành công khác tìm được một giải pháp tốt cho ứng dụng để đáp ứng được vấn đề thương mại.2 Các thuật ngữ trong kiểm thử hiệu năng Theo [5] tôi đã chọn lọc và đưa ra một thuật ngữ hay được sử dụng trong kiểm thử hiệu năng: Thời gian nghĩ (think time): là khoảng thời gian người sử dụng nắm bắt nội dung của trang web hoặc là thời gian người dùng thực hiện một hành động tương tác với hệ thống như nhấp vào một đường dẫn, nút, v.v… Ngƣời dùng ảo (virtual user): công cụ kiểm thử hiệu năng mô phỏng nhiều người dùng hệ thống như trong thực tế bằng cách tạo ra người sử dụng ảo trong quá trình kiểm thử. Tải ngƣời sử dụng đồng thời (simultaneous user load): là tải nhiều người đồng thời cùng sử dụng ứng dụng, tại cùng một thời điểm bất kỳ mỗi người thực hiện một tương tác khác nhau. Ví dụ có 100 người đang sử dụng hệ thống, sẽ có 100 phiên làm việc khác nhau ở máy chủ. ` TIEU LUAN MOI download : skknchat@gmail.com 13 Tải ngƣời sử dụng đồng thời thực hiện một hành động (concurrent user load): là tải nhiều người đồng thời cùng sử dụng ứng dụng và thực hiện cùng một hoạt động tại bất kỳ thời điểm nào.

Ví dụ, tất cả 100 người dùng sẽ đăng nhập trang web vào cùng thời điểm. Một trang web ngân hàng trực tuyến có thể có 10.000 người đồng thời sử dụng hệ thống, nhưng 1000 đến 1500 người cùng thực hiện một giao dịch với ứng dụng. Yêu cầu/mục đích hiệu năng (performance requirements/goals): là định lượng đưa ra tiêu chí cho rằng hiệu năng của hệ thống là tốt. Yêu cầu hiệu năng của một ứng dụng được thể hiện trong thời gian phản hồi, số lượt truy cập trong 1 giây (hits), số giao địch trong 1 giây, v.v… Tải công việc (workload): là tải người sử dụng hệ thống trong thời gian thực khi người sử dụng đang truy cập hoặc trong khi kiểm thử hiệu năng.

Hit: là yêu cầu gửi về máy chủ để truy cập vào một trang web hoặc một tập tin hoặc một ảnh từ máy chủ web. Ví dụ, nếu một trang web có 5 ảnh, người sử dụng vào trang đó thì sẽ có 6 hit trên máy chử web (5 hit cho mỗi ảnh và 1 hit cho tải trang web). Với một trang web, yêu cầu về hiệu năng là số hit trong một đơn vi thời gian như 'hệ thống hỗ chợ 10 hit / giây với thời gian phản hồi là dưới 5 giây. Thời gian phản hồi (response time): là thời gian phục vụ hoặc xử lý để phản hồi lại yêu cầu.

Thời gian phản hồi được tính từ khi trình duyệt web gửi yêu cầu tới máy chủ web cho tới khi trình duyện web nhận được những byte phản hồi đầu tiên từ máy chủ. Ví dụ thời gian phản hồi của một giao dịch: đăng nhập vào hệ thống là thời gian máy chủ xử lý việc đăng nhập thành công và hiển thị trang chủ của web (nó bao gồm thời gian máy chủ xử lý, thời gian ứng dụng xử lý, thời gian máy chủ dữ liệu xử lý và độ trễ của mạng). Thông lƣợng (throughput): là tổng dữ liệu (bytes) được chuyền từ máy chủ tới máy khách để phục vụ yêu cầu người dùng. Nó là chỉ số đánh giá hiệu năng của máy chủ, nó nói lên số lượng công việc được thực hiện trên máy chủ.

Thông lượng cũng được hiểu như là tổng số yêu cầu hoặc số phiên giao địch được xử lý bởi máy chủ tại một thời điểm bất kỳ. Ví dụ, thông lượng của máy chủ là 2.5Mbps hoặc 35hits/giây or 8 giao dịch (transaction)/giây. Nút nghẽn cổ chai (performance bottleneck): là nút mà các giao dịch của hệ thống được thực hiện rất chậm. Nó là tình trạng/khu vực không cho phép ứng dụng thực hiện như mong đợi.

Ví dụ, thời gian phản hồi tăng lên khi 100 người sử dụng đồng thời do tham số kết nối HTTP không thích hợp trong máy chủ IIS, máy chủ sử dụng CPU lên đến 95% trong 100%. Máy chủ bị quá tải sử dụng, đó là một kiểu nút nghẽn cổ chai tiêu biểu. Một nút cổ chai sẽ làm cho hệ thống thất bại nếu không có giải pháp. ` TIEU LUAN MOI download : skknchat@gmail.3 Các hoạt động trong kiểm thử hiệu năng Hình 1.1: Các giai đoạn trong kiểm thử hiệu năng [5].

Dựa vào Hình 1.1 ta thấy có 4 giai đoạn chính trong thực hiện kiểm thử hiệu năng và lần lượt thứ tự thực hiện là: lên kế hoạch kiểm thử, tạo kịch bản, thực hiện và phân tích, báo cáo kết quả. Trong mỗi giai đoạn này có các hoạt động khác nhau. Lập kế hoạch kiểm thử Trước khi đưa ra bản hoạch kiểm thử kiểm thử viên nên thực hiện những việc sau:  Hiểu hệ thống: hiểu nghiệp vụ hay các luồng chức năng của hệ thống.  Xác định mục tiêu/yêu cầu hiệu năng: xác định mục tiêu/yêu cầu hiệu năng dựa vào yêu cầu khách hàng và đặc thù của ứng dụng.

 Mô hình người sử dụng: từ việc hiểu hệ thống và phân tích đối tượng sử dụng hệ thống kiểm thử viên phải đưa ra mô hình về người sử dụng hệ thống.  Mô hình tải công việc: kiểm thử viên phải phân tích đưa ra được mô hình về các yêu cầu người sử dụng gửi đến máy chủ như: đặc điểm các yêu cầu, thời gian, số lượng yêu cầu, v.v… Từ việc hiểu hệ thống, yêu cầu hiệu năng cần kiểm thử, mô hình người sử dụng và tải công việc kiểm thử viên sẽ lập ra kế hoạch cho việc kiểm thử hiệu năng. Trong bản kế hoạch kiểm thử kiểm thử viên phải chỉ ra: công cụ sử dụng để kiểm thử (tools), loại kiểm thử cần thực hiện, các kịch bản cần kiểm thử, thời gian thực hiện, chuẩn đầu ` TIEU LUAN MOI download : skknchat@gmail.com 15 vào, đầu ra để xây dựng ca kiểm thử. Kế hoạch kiểm thử được tài liệu hóa và gửi cho các bên liên quan: các kiểm thử viên, khách hàng, đội phát triển hệ thống.

Kịch bản Những công việc kiểm thử viên phải thực hiện trong giai đoạn này: phát triển kịch bản kiểm thử (test scripts) và tạo dữ liệu kiểm thử (generate data). Kiểm thử viên sẽ sử dụng công cụ kiểm thử hiệu năng, các kịch bản đã đưa ra trong bản kế hoạch để mô phỏng người sử dụng truy cập vào hệ thống như trong thực tế. Để thực hiện kiểm thử hiệu năng thì kiểm thử viên phải tạo dữ liệu như trong thực tế để đảm bảo hiệu năng của hệ thống được đánh giá đúng. Thực hiện kiểm thử & phân tích kếtquả Những công việc cần thực hiện trong giai đoạn này là:  Cài đặt môi trường kiểm thử.

 Thực hiện kiểm thử: sử dụng công cụ kiểm thử và kịch bản đã được tạo ra để chạy kịch bản kiểm thử.  Phân tích và đưa ra kết luận về hiệu năng của hệ thống tại thời điểm kiểm thử và nguyên nhân ảnh hưởng đến hiệu năng của hệ thống (nếu có). Trước khi thực hiện kiểm thử hiệu năng của hệ thống, nên thực hiện kiểm thử cơ sở (baseline test) và kiểm thử chuẩn. Kiểm thử cơ sở là kiểm thử cho một người dùng ảo để kiểm tra tính hợp lệ của kịch bản kiểm thử.

Nếu kết quả kiểm thử cơ sở có lỗi thì cần được phân tích là do hệ thống hay do kịch bản kiểm thử.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ