Tổng quan nghiên cứu

Trong bối cảnh phát triển phần mềm ngày càng phức tạp và quy mô lớn, việc đảm bảo hiệu năng của hệ thống trở thành một thách thức quan trọng đối với các nhà phát triển và kiểm thử viên. Theo thống kê từ một số hệ thống quản lý trường học trực tuyến, số lượng người dùng đồng thời có thể lên đến hàng trăm người trong giờ cao điểm, đòi hỏi phần mềm phải đáp ứng được yêu cầu về thời gian phản hồi, thông lượng và sử dụng tài nguyên máy chủ hiệu quả. Vấn đề nghiên cứu tập trung vào kiểm thử hiệu năng dịch vụ phần mềm quản lý trường học, nhằm đánh giá khả năng phục vụ người dùng đồng thời, thời gian phản hồi và mức độ sử dụng tài nguyên hệ thống trong điều kiện tải thực tế.

Mục tiêu cụ thể của nghiên cứu là xây dựng và áp dụng các kỹ thuật kiểm thử hiệu năng cho phần mềm quản lý trường học trên nền web, phân tích mô hình người sử dụng và tải công việc, thiết kế kịch bản kiểm thử phù hợp, thực hiện kiểm thử tải với các mức tải khác nhau và phân tích kết quả để đưa ra các đề xuất cải thiện hiệu năng. Phạm vi nghiên cứu tập trung vào phần mềm quản lý trường học đang được triển khai thử nghiệm tại một số địa phương như Hà Nội, Vĩnh Phúc và Hải Phòng trong năm 2011-2012.

Nghiên cứu có ý nghĩa quan trọng trong việc đảm bảo chất lượng dịch vụ phần mềm, giúp các nhà phát triển và quản lý hệ thống có cơ sở để tối ưu hóa hiệu năng, giảm thiểu rủi ro khi triển khai trên diện rộng, đồng thời nâng cao trải nghiệm người dùng thông qua các chỉ số như thời gian phản hồi dưới 4 giây với 100 người dùng đồng thời và mức sử dụng CPU ổn định dưới 60%.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Luận văn dựa trên các lý thuyết và mô hình kiểm thử hiệu năng phần mềm, bao gồm:

  • Khái niệm kiểm thử hiệu năng: Đánh giá thời gian phản hồi, thông lượng, độ tin cậy và khả năng mở rộng của hệ thống theo tải công việc thực tế.
  • Mô hình tải công việc (Workload Model): Phân loại tải công việc thành các kiểu như tải ổn định, tải sườn dốc, tải bùng nổ và tải theo thời gian, giúp mô phỏng chính xác hành vi người dùng.
  • Các loại kiểm thử hiệu năng: Kiểm thử cơ sở, kiểm thử chuẩn, kiểm thử tải, kiểm thử áp lực, kiểm thử chịu đựng, kiểm thử spike và kiểm thử cô lập nghẽn cổ chai.
  • Thuật ngữ chuyên ngành: Thời gian nghĩ (think time), người dùng ảo (virtual user), tải người dùng đồng thời (simultaneous user load), thời gian phản hồi (response time), thông lượng (throughput), nút nghẽn cổ chai (performance bottleneck).

Phương pháp nghiên cứu

Nghiên cứu sử dụng phương pháp thực nghiệm kết hợp phân tích định lượng:

  • Nguồn dữ liệu: Số liệu người dùng và hành vi truy cập thu thập từ Google Analytics của phần mềm quản lý trường học đang triển khai thử nghiệm; dữ liệu hiệu năng thu thập từ các kịch bản kiểm thử tải thực hiện trên máy chủ ảo.
  • Phương pháp phân tích: Phân tích mô hình người sử dụng và tải công việc dựa trên số liệu thực tế; xây dựng kịch bản kiểm thử dựa trên các luồng chức năng được sử dụng nhiều nhất; sử dụng phần mềm mã nguồn mở JMeter để mô phỏng tải và thu thập số liệu về thời gian phản hồi, thông lượng, mức độ sử dụng CPU, bộ nhớ và I/O trên máy chủ.
  • Timeline nghiên cứu: Nghiên cứu được thực hiện trong năm 2011-2012, bao gồm các giai đoạn: thu thập và phân tích dữ liệu người dùng, xây dựng kịch bản kiểm thử, thực hiện kiểm thử tải với 2 mức tải 50 và 100 người dùng đồng thời, phân tích kết quả và đề xuất giải pháp.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

  1. Mô hình người sử dụng và tải công việc: Số người truy cập lớn nhất trong 1 tháng đạt khoảng 1726 người, trong 1 tuần là 395 người, trong 1 ngày là 260 người và trong 1 giờ là 46 người. Phân bố thống kê cơ sở mô hình yêu cầu người dùng thuộc loại Self-similar, phản ánh tính phức tạp và biến động của tải công việc theo thời gian.

  2. Luồng chức năng sử dụng nhiều nhất: Các chức năng chính gồm xem thông tin lớp học, điểm danh, nhập điểm và xuất báo cáo chiếm khoảng 80% tổng số luồng chức năng được sử dụng, phù hợp để lựa chọn làm kịch bản kiểm thử hiệu năng.

  3. Kết quả kiểm thử tải với 100 người dùng đồng thời:

    • Thời gian phản hồi trung bình của các trang dao động từ 76 ms đến 733 ms, trong đó trang đăng nhập có thời gian phản hồi 733 ms.
    • Thông lượng trung bình đạt khoảng 17.4 yêu cầu/phút trên các trang chính.
    • Mức sử dụng CPU trên máy chủ dao động từ 30% đến 60%, có lúc vượt quá 100% trong thời gian tải ổn định 30 phút.
    • Sử dụng bộ nhớ và I/O ổn định, không phát hiện lỗi nghiêm trọng trong quá trình kiểm thử.
  4. So sánh hiệu năng giữa 50 và 100 người dùng: Thời gian phản hồi tăng gần gấp đôi khi số người dùng tăng từ 50 lên 100, cho thấy hệ thống bắt đầu có dấu hiệu quá tải khi số người dùng đồng thời vượt quá 100.

Thảo luận kết quả

Kết quả kiểm thử cho thấy phần mềm quản lý trường học có khả năng đáp ứng tốt với tải lên đến 50 người dùng đồng thời, thời gian phản hồi dưới 300 ms và mức sử dụng CPU dưới 50%. Tuy nhiên, khi tải tăng lên 100 người dùng đồng thời, thời gian phản hồi tăng đáng kể, có lúc CPU bị quá tải trên 100%, dẫn đến nguy cơ giảm hiệu năng và trải nghiệm người dùng.

Nguyên nhân chính được xác định là do cấu hình máy chủ ảo hiện tại có giới hạn về CPU và bộ nhớ, đồng thời phần mềm chưa tối ưu hoàn toàn các truy vấn dữ liệu và xử lý song song. So sánh với các nghiên cứu trong ngành, việc sử dụng JMeter để mô phỏng tải và thu thập số liệu là phương pháp hiệu quả, tuy nhiên cần mở rộng quy mô kiểm thử với nhiều mức tải hơn để đánh giá toàn diện hơn.

Dữ liệu có thể được trình bày qua các biểu đồ thời gian phản hồi theo số người dùng, biểu đồ mức sử dụng CPU và bộ nhớ theo thời gian, giúp trực quan hóa hiệu năng hệ thống và các điểm nghẽn tiềm ẩn.

Đề xuất và khuyến nghị

  1. Tăng cường cấu hình máy chủ: Nâng cấp CPU và bộ nhớ máy chủ để đáp ứng tải cao hơn, giảm thiểu tình trạng quá tải CPU khi số người dùng đồng thời vượt quá 100. Thời gian thực hiện: 3-6 tháng; Chủ thể thực hiện: Ban quản lý hệ thống.

  2. Tối ưu hóa truy vấn và xử lý dữ liệu: Rà soát và cải tiến các câu truy vấn cơ sở dữ liệu, áp dụng caching và xử lý song song để giảm thời gian phản hồi. Thời gian thực hiện: 2-4 tháng; Chủ thể thực hiện: Đội phát triển phần mềm.

  3. Mở rộng kiểm thử hiệu năng với các mức tải đa dạng: Thực hiện kiểm thử tải với các mức từ 100 đến 500 người dùng đồng thời để đánh giá khả năng mở rộng và phát hiện các nút nghẽn cổ chai mới. Thời gian thực hiện: 1-2 tháng; Chủ thể thực hiện: Đội kiểm thử.

  4. Triển khai giám sát hiệu năng liên tục: Sử dụng các công cụ giám sát để theo dõi thời gian phản hồi, thông lượng và tài nguyên hệ thống trong môi trường thực tế, từ đó có các điều chỉnh kịp thời. Thời gian thực hiện: liên tục; Chủ thể thực hiện: Ban quản lý hệ thống.

Đối tượng nên tham khảo luận văn

  1. Đội phát triển phần mềm: Nhận biết các yếu tố ảnh hưởng đến hiệu năng, áp dụng các kỹ thuật kiểm thử hiệu năng để cải thiện chất lượng sản phẩm.

  2. Kiểm thử viên phần mềm: Học hỏi quy trình xây dựng kịch bản kiểm thử, sử dụng công cụ JMeter và phân tích kết quả kiểm thử hiệu năng thực tế.

  3. Quản lý dự án CNTT: Hiểu rõ tầm quan trọng của kiểm thử hiệu năng trong quản lý rủi ro dự án, lập kế hoạch kiểm thử hiệu quả.

  4. Nhà quản lý hệ thống và vận hành: Nắm bắt các chỉ số hiệu năng quan trọng, đề xuất nâng cấp hạ tầng phù hợp để đảm bảo dịch vụ ổn định khi mở rộng quy mô.

Câu hỏi thường gặp

  1. Kiểm thử hiệu năng khác gì so với kiểm thử chức năng?
    Kiểm thử hiệu năng tập trung vào các yêu cầu phi chức năng như thời gian phản hồi, thông lượng và sử dụng tài nguyên, trong khi kiểm thử chức năng kiểm tra tính đúng đắn của các chức năng phần mềm. Ví dụ, một chức năng có thể hoạt động đúng nhưng thời gian phản hồi quá lâu sẽ ảnh hưởng đến trải nghiệm người dùng.

  2. Tại sao phải mô phỏng người dùng ảo trong kiểm thử hiệu năng?
    Người dùng ảo giúp mô phỏng hành vi của nhiều người dùng đồng thời trên hệ thống, từ đó đánh giá được khả năng chịu tải và hiệu năng thực tế của phần mềm. Ví dụ, JMeter tạo ra các luồng người dùng ảo để gửi yêu cầu đồng thời đến máy chủ.

  3. Làm thế nào để chọn kịch bản kiểm thử hiệu năng phù hợp?
    Nên chọn các kịch bản đại diện cho 20% chức năng được sử dụng nhiều nhất, nhằm tập trung kiểm thử những phần quan trọng nhất ảnh hưởng đến hiệu năng. Ví dụ, trong phần mềm quản lý trường học, kịch bản nhập điểm và xuất báo cáo được ưu tiên.

  4. Thời gian nghĩ (think time) ảnh hưởng thế nào đến kết quả kiểm thử?
    Thời gian nghĩ mô phỏng khoảng thời gian người dùng tương tác hoặc suy nghĩ trước khi thực hiện hành động tiếp theo, ảnh hưởng đến tải tạo ra trên máy chủ. Nếu đặt thời gian nghĩ quá thấp, tải sẽ cao không thực tế; quá cao thì tải thấp, không phản ánh đúng thực tế.

  5. Có thể sử dụng phần mềm mã nguồn mở để kiểm thử hiệu năng không?
    Có thể, phần mềm như JMeter cung cấp đầy đủ chức năng để thực hiện kiểm thử cơ sở, chuẩn và tải với chi phí thấp. Tuy nhiên, phần mềm có bản quyền thường có giao diện trực quan và hỗ trợ kỹ thuật tốt hơn.

Kết luận

  • Kiểm thử hiệu năng là hoạt động thiết yếu để đảm bảo phần mềm quản lý trường học đáp ứng được yêu cầu về thời gian phản hồi và khả năng phục vụ người dùng đồng thời.
  • Mô hình người sử dụng và tải công việc được phân tích dựa trên số liệu thực tế từ Google Analytics, giúp xây dựng kịch bản kiểm thử chính xác và phù hợp.
  • Kết quả kiểm thử tải với 50 và 100 người dùng đồng thời cho thấy hệ thống hoạt động ổn định ở mức 50 người, nhưng bắt đầu quá tải khi lên 100 người.
  • Mức sử dụng CPU cao là nguyên nhân chính ảnh hưởng đến hiệu năng, cần được cải thiện thông qua nâng cấp phần cứng và tối ưu phần mềm.
  • Các đề xuất cải tiến và mở rộng kiểm thử sẽ giúp hệ thống đạt hiệu năng yêu cầu khi triển khai trên diện rộng.

Hành động tiếp theo: Triển khai các giải pháp nâng cấp và tối ưu, mở rộng kiểm thử với các mức tải cao hơn, đồng thời thiết lập giám sát hiệu năng liên tục để đảm bảo chất lượng dịch vụ. Đề nghị các bên liên quan phối hợp thực hiện để đạt hiệu quả tối ưu.

Hãy bắt đầu áp dụng kiểm thử hiệu năng ngay từ giai đoạn phát triển để đảm bảo thành công cho dự án phần mềm quản lý trường học!