Luận văn: Kiểm thử hiệu năng và đảm bảo chất lượng ứng dụng web

Luận văn thạc sĩ: Kiểm thử hiệu năng ứng dụng web & đảm bảo chất lượng. Nghiên cứu chuyên sâu về các phương pháp, 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ĩ

2015

57
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 HÌNH VẼ, BẢNG BIỂU

1. Chƣơng 1: Giới thiệu

2. Chƣơng 2: Tổng quan về kiểm thử hiệu năng

2.1. Định nghĩa kiểm thử hiệu năng

2.2. Phân loại kiểm thử hiệu năng

3. Chƣơng 3: Phƣơng pháp kiểm thử hiệu năng và công cụ

3.1. Kiểm thử hiệu năng trong vòng đời phát triển phần mềm

3.2. Các dạng yêu cầu kiểm thử hiệu năng trong thực tế

3.3. Quy trình thực hiện kiểm thử hiệu năng

3.3.1. Lập kế hoạch và kiểm soát kiểm thử

3.3.2. Phân tích và thiết kế kiểm thử

3.3.3. Triển khai (Implementation) và thực thi (Execution) kiểm thử

3.4. Đánh giá các kết quả đầu ra và báo cáo

3.5. Các hoạt động kết thúc kiểm thử

3.6. Một số công cụ kiểm thử hiệu năng

4. Chƣơng 4: Ứng dụng kiểm thử hiệu năng vào dự án của đơn vị

4.1. Giới thiệu về dự án

4.2. Kế hoạch tổng thể của dự án

4.3. Lập kế hoạch kiểm thử hiệu năng

4.4. Thiết kế kiểm thử hiệu năng

4.4.1. Thiết kế môi trƣờng

4.4.2. Thiết kế các kịch bản kiểm thử

4.5. Triển khai và thực thi kiểm thử hiệu năng

4.5.1. Cài đặt môi trƣờng, công cụ

4.5.2. Tạo các kịch bản kiểm thử bằng JMeter

4.5.3. Chạy các kịch bản

4.6. Đánh giá kết quả đầu ra và báo cáo

KẾT LUẬN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Kiểm thử hiệu năng Web Tổng quan và tầm quan trọng 55 ký tự

Kiểm thử hiệu năng (performance testing) là một phần quan trọng trong việc đảm bảo chất lượng phần mềm, đặc biệt là đối với các ứng dụng web. Hiệu năng kém có thể ảnh hưởng trực tiếp đến trải nghiệm người dùng, doanh thu và uy tín của doanh nghiệp. Ví dụ, một trang web bán hàng trực tuyến tải chậm có thể khiến khách hàng bỏ đi và không bao giờ quay lại. Ở mức độ nghiêm trọng hơn, lỗi hiệu năng có thể gây thiệt hại lớn về tài chính cho khách hàng. Đã có nhiều trường hợp các ứng dụng web gặp sự cố về hiệu năng, gây ra những hậu quả nghiêm trọng. Trang Web của Nectar khi ra mắt năm 2002 đã gặp sự cố do lượng truy cập quá lớn, khiến trang web bị sập trong ba ngày. Trang Web Bản đồ tội phạm của cảnh sát Anh cũng gặp tình trạng tương tự khi ra mắt năm 2011, với mười tám triệu lượt truy cập trong một giờ, khiến trang web không thể hoạt động. Trang Web bán vé Thế vận hội London năm 2012 cũng gặp vấn đề về tốc độ và quá tải, gây khó khăn cho người dùng khi mua vé. Những ví dụ này cho thấy tầm quan trọng của việc kiểm thử hiệu năng đối với các ứng dụng web, cũng như những thiệt hại mà nó có thể gây ra nếu hệ thống không được kiểm thử đầy đủ trước khi đưa vào vận hành. Việc cân bằng giữa công nghệ, thời gian và tiền bạc để đạt được hiệu suất cao nhất của hệ thống cũng là một chủ đề quan trọng. Trong bối cảnh Internet ngày càng chi phối sâu sắc tới các hoạt động sản xuất kinh doanh cũng như đời sống xã hội, xu hƣớng dung lƣợng phần cứng ngày càng tăng mạnh với giá thành rẻ đáp ứng quy mô của ứng dụng, bài toán kiểm thử hiệu năng trở nên cấp thiết hơn bao giờ hết. Tuy nhiên, ở thị trường phần mềm Việt Nam, kiểm thử hiệu năng chưa được quan tâm đúng mức, có thể bị bỏ qua hoặc thực hiện không kỹ lưỡng. Điều này dẫn đến các ứng dụng có độ tin cậy thấp và khả năng chịu tải kém. Một số nguyên nhân có thể kể đến là doanh nghiệp chưa ý thức được tầm quan trọng của kiểm thử hiệu năng, chưa có phương pháp kiểm thử đúng đắn và chi phí kiểm thử tốn kém. Chính vì vậy, việc nghiên cứu và triển khai các giải pháp kiểm thử hiệu năng hiệu quả là vô cùng cần thiết.

1.1. Tầm quan trọng của website performance testing 53 ký tự

Hiệu năng của website có ảnh hưởng lớn đến trải nghiệm người dùng, tỷ lệ chuyển đổi và thứ hạng trên các công cụ tìm kiếm. Một trang web tải chậm có thể khiến người dùng bỏ đi ngay lập tức, làm giảm tỷ lệ chuyển đổi và doanh thu. Google cũng sử dụng tốc độ tải trang làm một trong những yếu tố xếp hạng, do đó, hiệu năng kém có thể ảnh hưởng tiêu cực đến SEO. Ngược lại, một trang web nhanh chóng và mượt mà sẽ mang lại trải nghiệm tốt cho người dùng, tăng tỷ lệ chuyển đổi, cải thiện SEO và xây dựng uy tín cho thương hiệu. Do đó, việc đảm bảo hiệu năng tốt cho website là vô cùng quan trọng.

1.2. Các yếu tố ảnh hưởng đến web application performance 60 ký tự

Có rất nhiều yếu tố có thể ảnh hưởng đến hiệu năng của ứng dụng web, bao gồm: phần cứng máy chủ, cấu hình máy chủ, mã nguồn ứng dụng, cơ sở dữ liệu, mạng, CDN, và trình duyệt. Phần cứng máy chủ yếu, cấu hình không tối ưu, mã nguồn không hiệu quả, truy vấn cơ sở dữ liệu chậm, mạng chậm, thiếu CDN, và trình duyệt cũ đều có thể làm chậm tốc độ tải trang và ảnh hưởng đến trải nghiệm người dùng. Do đó, việc tối ưu hóa tất cả các yếu tố này là cần thiết để đảm bảo hiệu năng tốt cho ứng dụng web.

1.3. Các loại performance testing web phổ biến 42 ký tự

Có nhiều loại kiểm thử hiệu năng khác nhau, bao gồm: kiểm thử tải (load testing), kiểm thử chịu tải (stress testing), kiểm thử độ bền (endurance testing), kiểm thử tăng đột biến (spike testing), và kiểm thử dung lượng (capacity testing). Kiểm thử tải đo hiệu năng của ứng dụng dưới tải trọng dự kiến. Kiểm thử chịu tải đo hiệu năng của ứng dụng dưới tải trọng cao hơn dự kiến. Kiểm thử độ bền đo hiệu năng của ứng dụng trong thời gian dài. Kiểm thử tăng đột biến đo hiệu năng của ứng dụng khi có sự gia tăng đột ngột về tải trọng. Kiểm thử dung lượng xác định giới hạn tải trọng mà ứng dụng có thể xử lý. Lựa chọn loại kiểm thử phù hợp phụ thuộc vào mục tiêu kiểm thử và yêu cầu của ứng dụng.

II. Thách thức trong kiểm thử hiệu năng ứng dụng Web 59 ký tự

Kiểm thử hiệu năng là một quá trình phức tạp và đòi hỏi nhiều kỹ năng. Một trong những thách thức lớn nhất là việc tạo ra một môi trường kiểm thử thực tế, mô phỏng chính xác tải trọng và hành vi của người dùng thực tế. Điều này đòi hỏi phải có kiến thức sâu rộng về kiến trúc ứng dụng, cơ sở hạ tầng mạng và hành vi của người dùng. Một thách thức khác là việc phân tích kết quả kiểm thử và xác định các nút thắt cổ chai hiệu năng. Điều này đòi hỏi phải có kỹ năng phân tích dữ liệu, kỹ năng gỡ lỗi và kiến thức về tối ưu hóa hiệu năng. Ngoài ra, việc lựa chọn các công cụ kiểm thử phù hợp và cấu hình chúng một cách chính xác cũng là một thách thức quan trọng. Các công cụ kiểm thử khác nhau có các tính năng và khả năng khác nhau, do đó, việc lựa chọn công cụ phù hợp phụ thuộc vào yêu cầu cụ thể của dự án. Cuối cùng, việc duy trì một quy trình kiểm thử hiệu năng liên tục và hiệu quả là một thách thức liên tục. Điều này đòi hỏi phải có sự cam kết từ tất cả các thành viên trong nhóm phát triển và phải có một quy trình rõ ràng và dễ thực hiện.

2.1. Tạo môi trường load testing web application thực tế 57 ký tự

Việc tạo ra một môi trường kiểm thử thực tế là rất quan trọng để đảm bảo kết quả kiểm thử chính xác. Môi trường kiểm thử nên mô phỏng chính xác cấu hình phần cứng, phần mềm, mạng và dữ liệu của môi trường sản xuất. Điều này có thể đòi hỏi việc sử dụng các công cụ ảo hóa, các công cụ mô phỏng mạng và các công cụ tạo dữ liệu thử nghiệm. Ngoài ra, cần phải đảm bảo rằng môi trường kiểm thử được cô lập khỏi môi trường sản xuất để tránh ảnh hưởng đến người dùng thực tế.

2.2. Xác định và giải quyết performance bottlenecks web application 60 ký tự

Việc xác định các nút thắt cổ chai hiệu năng là một bước quan trọng trong quá trình kiểm thử hiệu năng. Các nút thắt cổ chai có thể nằm ở nhiều nơi khác nhau trong hệ thống, bao gồm: mã nguồn ứng dụng, cơ sở dữ liệu, máy chủ web, mạng, và trình duyệt. Các công cụ giám sát hiệu năng, các công cụ phân tích mã nguồn và các công cụ gỡ lỗi có thể được sử dụng để xác định các nút thắt cổ chai. Sau khi xác định được các nút thắt cổ chai, cần phải thực hiện các biện pháp tối ưu hóa để cải thiện hiệu năng.

2.3. Lựa chọn performance testing tools phù hợp 48 ký tự

Có rất nhiều công cụ kiểm thử hiệu năng khác nhau trên thị trường, mỗi công cụ có các tính năng và khả năng khác nhau. Việc lựa chọn công cụ phù hợp phụ thuộc vào yêu cầu cụ thể của dự án, bao gồm: loại ứng dụng, quy mô ứng dụng, ngân sách dự án, và kỹ năng của nhóm kiểm thử. Các công cụ phổ biến bao gồm Apache JMeter, LoadRunner, Gatling, và Tsung. Ngoài ra, cũng cần phải xem xét các công cụ giám sát hiệu năng và các công cụ phân tích dữ liệu để hỗ trợ quá trình kiểm thử hiệu năng.

III. Cách thực hiện load testing web application hiệu quả 59 ký tự

Để thực hiện kiểm thử hiệu năng một cách hiệu quả, cần phải tuân theo một quy trình rõ ràng và có kế hoạch. Quy trình này bao gồm các bước sau: lập kế hoạch, thiết kế kiểm thử, triển khai kiểm thử, thực hiện kiểm thử, phân tích kết quả và báo cáo. Trong giai đoạn lập kế hoạch, cần phải xác định rõ mục tiêu kiểm thử, phạm vi kiểm thử, các yêu cầu hiệu năng và các rủi ro tiềm ẩn. Trong giai đoạn thiết kế kiểm thử, cần phải xác định các kịch bản kiểm thử, các trường hợp kiểm thử và các dữ liệu thử nghiệm. Trong giai đoạn triển khai kiểm thử, cần phải thiết lập môi trường kiểm thử, cài đặt các công cụ kiểm thử và tạo các kịch bản kiểm thử. Trong giai đoạn thực hiện kiểm thử, cần phải chạy các kịch bản kiểm thử và thu thập dữ liệu hiệu năng. Trong giai đoạn phân tích kết quả, cần phải phân tích dữ liệu hiệu năng, xác định các nút thắt cổ chai và đề xuất các giải pháp tối ưu hóa. Cuối cùng, trong giai đoạn báo cáo, cần phải tạo báo cáo kiểm thử chi tiết, bao gồm các kết quả kiểm thử, các phân tích và các đề xuất.

3.1. Thiết kế kịch bản concurrency testing thực tế 48 ký tự

Việc thiết kế các kịch bản kiểm thử đồng thời (concurrency testing) thực tế là rất quan trọng để đảm bảo rằng ứng dụng có thể xử lý nhiều người dùng đồng thời mà không gặp vấn đề về hiệu năng. Các kịch bản kiểm thử nên mô phỏng chính xác hành vi của người dùng thực tế, bao gồm: số lượng người dùng đồng thời, các hành động của người dùng, và thời gian giữa các hành động. Các công cụ kiểm thử có thể được sử dụng để tạo ra các kịch bản kiểm thử đồng thời và mô phỏng hành vi của người dùng.

3.2. Giám sát performance monitoring web trong quá trình kiểm thử 59 ký tự

Việc giám sát hiệu năng trong quá trình kiểm thử là rất quan trọng để xác định các nút thắt cổ chai và đảm bảo rằng ứng dụng đang hoạt động theo đúng kế hoạch. Các công cụ giám sát hiệu năng có thể được sử dụng để thu thập dữ liệu về các chỉ số hiệu năng, bao gồm: thời gian phản hồi, thông lượng, mức sử dụng CPU, mức sử dụng bộ nhớ, và mức sử dụng ổ đĩa. Dữ liệu này có thể được sử dụng để phân tích hiệu năng và xác định các vấn đề tiềm ẩn.

3.3. Phân tích website performance metrics và xác định vấn đề 60 ký tự

Việc phân tích các chỉ số hiệu năng là rất quan trọng để xác định các vấn đề tiềm ẩn và đề xuất các giải pháp tối ưu hóa. Các chỉ số hiệu năng quan trọng bao gồm: thời gian phản hồi, thông lượng, mức sử dụng CPU, mức sử dụng bộ nhớ, và mức sử dụng ổ đĩa. Thời gian phản hồi là thời gian cần thiết để ứng dụng phản hồi một yêu cầu. Thông lượng là số lượng yêu cầu mà ứng dụng có thể xử lý trong một đơn vị thời gian. Mức sử dụng CPU, mức sử dụng bộ nhớ, và mức sử dụng ổ đĩa là các chỉ số về tài nguyên hệ thống. Phân tích các chỉ số này có thể giúp xác định các nút thắt cổ chai và đề xuất các giải pháp tối ưu hóa.

IV. Tối ưu website speed optimization Mẹo và thủ thuật 59 ký tự

Có rất nhiều cách để tối ưu hóa hiệu năng của website. Một số mẹo và thủ thuật phổ biến bao gồm: tối ưu hóa hình ảnh, sử dụng CDN, bật bộ nhớ đệm, giảm thiểu số lượng yêu cầu HTTP, nén mã nguồn, và sử dụng các kỹ thuật tải chậm. Tối ưu hóa hình ảnh có thể giúp giảm kích thước tệp và cải thiện tốc độ tải trang. Sử dụng CDN có thể giúp phân phối nội dung đến người dùng từ các máy chủ gần nhất. Bật bộ nhớ đệm có thể giúp giảm số lượng yêu cầu đến máy chủ. Giảm thiểu số lượng yêu cầu HTTP có thể giúp giảm thời gian tải trang. Nén mã nguồn có thể giúp giảm kích thước tệp. Sử dụng các kỹ thuật tải chậm có thể giúp cải thiện trải nghiệm người dùng bằng cách chỉ tải các thành phần cần thiết khi chúng hiển thị trên màn hình.

4.1. Tối ưu front end performance testing CSS JavaScript 59 ký tự

Tối ưu hóa front-end là rất quan trọng để cải thiện trải nghiệm người dùng. Các kỹ thuật tối ưu hóa front-end bao gồm: giảm thiểu kích thước tệp CSS và JavaScript, sử dụng CDN, nén mã nguồn, và sử dụng các kỹ thuật tải chậm. Giảm thiểu kích thước tệp CSS và JavaScript có thể giúp giảm thời gian tải trang. Sử dụng CDN có thể giúp phân phối nội dung đến người dùng từ các máy chủ gần nhất. Nén mã nguồn có thể giúp giảm kích thước tệp. Sử dụng các kỹ thuật tải chậm có thể giúp cải thiện trải nghiệm người dùng bằng cách chỉ tải các thành phần cần thiết khi chúng hiển thị trên màn hình.

4.2. Back end performance testing Cơ sở dữ liệu và API 57 ký tự

Tối ưu hóa back-end là rất quan trọng để đảm bảo rằng ứng dụng có thể xử lý nhiều yêu cầu đồng thời mà không gặp vấn đề về hiệu năng. Các kỹ thuật tối ưu hóa back-end bao gồm: tối ưu hóa truy vấn cơ sở dữ liệu, sử dụng bộ nhớ đệm, và tối ưu hóa API. Tối ưu hóa truy vấn cơ sở dữ liệu có thể giúp giảm thời gian phản hồi của cơ sở dữ liệu. Sử dụng bộ nhớ đệm có thể giúp giảm số lượng yêu cầu đến cơ sở dữ liệu. Tối ưu hóa API có thể giúp giảm thời gian phản hồi của API.

4.3. Database performance testing Tối ưu hóa truy vấn 49 ký tự

Tối ưu hóa truy vấn cơ sở dữ liệu là một kỹ năng quan trọng để cải thiện hiệu năng của ứng dụng. Các kỹ thuật tối ưu hóa truy vấn bao gồm: sử dụng chỉ mục, viết truy vấn hiệu quả, và sử dụng các công cụ phân tích truy vấn. Sử dụng chỉ mục có thể giúp cơ sở dữ liệu tìm kiếm dữ liệu nhanh hơn. Viết truy vấn hiệu quả có thể giúp giảm thời gian thực thi của truy vấn. Sử dụng các công cụ phân tích truy vấn có thể giúp xác định các truy vấn chậm và đề xuất các giải pháp tối ưu hóa.

V. Web performance best practices Hướng dẫn từng bước 54 ký tự

Việc tuân theo các best practices là rất quan trọng để đảm bảo hiệu năng tốt cho website. Các best practices phổ biến bao gồm: sử dụng CDN, tối ưu hóa hình ảnh, bật bộ nhớ đệm, giảm thiểu số lượng yêu cầu HTTP, nén mã nguồn, sử dụng các kỹ thuật tải chậm, và giám sát hiệu năng liên tục. Sử dụng CDN có thể giúp phân phối nội dung đến người dùng từ các máy chủ gần nhất. Tối ưu hóa hình ảnh có thể giúp giảm kích thước tệp và cải thiện tốc độ tải trang. Bật bộ nhớ đệm có thể giúp giảm số lượng yêu cầu đến máy chủ. Giảm thiểu số lượng yêu cầu HTTP có thể giúp giảm thời gian tải trang. Nén mã nguồn có thể giúp giảm kích thước tệp. Sử dụng các kỹ thuật tải chậm có thể giúp cải thiện trải nghiệm người dùng bằng cách chỉ tải các thành phần cần thiết khi chúng hiển thị trên màn hình. Giám sát hiệu năng liên tục có thể giúp xác định các vấn đề tiềm ẩn và đảm bảo rằng website luôn hoạt động tốt.

5.1. Continuous performance testing Tự động hóa quy trình 59 ký tự

Kiểm thử hiệu năng liên tục (continuous performance testing) là một phần quan trọng của quy trình phát triển phần mềm liên tục (CI/CD). Tự động hóa quy trình kiểm thử hiệu năng có thể giúp đảm bảo rằng các thay đổi mã không ảnh hưởng đến hiệu năng của ứng dụng. Các công cụ tự động hóa kiểm thử có thể được sử dụng để tạo ra các kịch bản kiểm thử, chạy các kịch bản kiểm thử và phân tích kết quả kiểm thử. Tự động hóa quy trình kiểm thử hiệu năng có thể giúp tiết kiệm thời gian và công sức, đồng thời cải thiện chất lượng của ứng dụng.

5.2. Performance regression testing Phòng ngừa lỗi 47 ký tự

Kiểm thử hồi quy hiệu năng (performance regression testing) là một loại kiểm thử được sử dụng để đảm bảo rằng các thay đổi mã không làm giảm hiệu năng của ứng dụng. Các kịch bản kiểm thử hồi quy hiệu năng nên bao gồm các kịch bản kiểm thử quan trọng và các kịch bản kiểm thử có thể bị ảnh hưởng bởi các thay đổi mã. Chạy kiểm thử hồi quy hiệu năng sau mỗi lần thay đổi mã có thể giúp phát hiện các vấn đề hiệu năng sớm và ngăn ngừa các lỗi lớn xảy ra trong môi trường sản xuất.

5.3. API performance testing Đảm bảo hiệu suất API 53 ký tự

API performance testing is crucial for ensuring the responsiveness and scalability of your APIs. Testing should include various scenarios such as peak load, stress, and endurance. Tools like JMeter or Postman can be utilized for automating these tests. By identifying and addressing bottlenecks early, you can guarantee a positive user experience and prevent API failures under pressure.

VI. Tương lai của kiểm thử hiệu năng Website Xu hướng mới 59 ký tự

Kiểm thử hiệu năng web đang phát triển nhanh chóng, với nhiều xu hướng mới nổi lên. Một trong những xu hướng quan trọng nhất là việc sử dụng trí tuệ nhân tạo (AI) và máy học (ML) để tự động hóa các tác vụ kiểm thử hiệu năng, chẳng hạn như tạo kịch bản kiểm thử, phân tích kết quả kiểm thử và đề xuất các giải pháp tối ưu hóa. Một xu hướng khác là việc sử dụng các công cụ kiểm thử hiệu năng dựa trên đám mây, cho phép các nhóm kiểm thử thực hiện kiểm thử hiệu năng quy mô lớn một cách dễ dàng và hiệu quả. Ngoài ra, việc tập trung vào trải nghiệm người dùng (UX) và các chỉ số hiệu năng thực tế của người dùng (RUM) cũng đang trở nên quan trọng hơn. Tương lai của kiểm thử hiệu năng web sẽ tập trung vào việc tự động hóa, mở rộng quy mô và cải thiện trải nghiệm người dùng.

6.1. AI và ML trong web application performance analysis 60 ký tự

Việc sử dụng AI và ML trong phân tích hiệu năng ứng dụng web có thể giúp tự động hóa các tác vụ phức tạp và cải thiện độ chính xác của phân tích. Các thuật toán AI và ML có thể được sử dụng để phát hiện các mẫu bất thường, dự đoán các vấn đề hiệu năng và đề xuất các giải pháp tối ưu hóa. Điều này có thể giúp các nhóm kiểm thử tiết kiệm thời gian và công sức, đồng thời cải thiện chất lượng của ứng dụng.

6.2. Cloud performance testing Kiểm thử trên đám mây 54 ký tự

Kiểm thử hiệu năng trên đám mây (cloud performance testing) cho phép các nhóm kiểm thử thực hiện kiểm thử hiệu năng quy mô lớn một cách dễ dàng và hiệu quả. Các công cụ kiểm thử hiệu năng dựa trên đám mây cung cấp khả năng mở rộng quy mô linh hoạt, khả năng tiếp cận toàn cầu và khả năng tích hợp với các công cụ phát triển và triển khai khác. Điều này có thể giúp các nhóm kiểm thử giảm chi phí kiểm thử, rút ngắn thời gian kiểm thử và cải thiện chất lượng của ứng dụng.

6.3. Web performance engineering Xây dựng văn hóa hiệu suất 60 ký tự

Web performance engineering is about embedding performance considerations throughout the software development lifecycle. It's about fostering a culture where performance is prioritized from the start. This involves proactive monitoring, testing, and optimization at every stage, ensuring a robust and responsive web application.

24/09/2025

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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG THỊ LUY KIỂM THỬ HIỆU NĂNG VÀ ỨNG DỤNG ĐẢM BẢO CHẤT LƢỢNG CHO CÁC ỨNG DỤNG WEB LUẬN VĂN THẠC SĨ Hà Nội – 2015 TIEU LUAN MOI download : skknchat@gmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ HOÀNG THỊ LUY KIỂM THỬ HIỆU NĂNG VÀ ỨNG DỤNG ĐẢM BẢO CHẤT LƢỢNG CHO CÁC ỨNG DỤNG WEB Ngành: Công nghệ Thông tin Chuyên ngành: Kỹ thuật Phần mềm Mã Số: 60480103 LUẬN VĂN THẠC SĨ NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. PHẠM NGỌC HÙNG Hà Nội – 2015 TIEU LUAN MOI download : skknchat@gmail.com 1 Mục lục LỜI CẢM ƠN. 3 LỜI CAM ĐOAN. 4 DANH MỤC HÌNH VẼ, BẢNG BIỂU.

5 Chƣơng 1: Giới thiệu. 6 Chƣơng 2: Tổng quan về kiểm thử hiệu năng .1 Định nghĩa kiểm thử hiệu năng .2 Phân loại kiểm thử hiệu năng. 14 Chƣơng 3: Phƣơng pháp kiểm thử hiệu năng và công cụ .1 Kiểm thử hiệu năng trong vòng đời phát triển phần mềm .2 Các dạng yêu cầu kiểm thử hiệu năng trong thực tế .3 Quy trình thực hiện kiểm thử hiệu năng .1 Lập kế hoạch và kiểm soát kiểm thử .2 Phân tích và thiết kế kiểm thử.3 Triển khai (Implementation) và thực thi (Execution) kiểm thử 26 3.4 Đánh giá các kết quả đầu ra và báo cáo .5 Các hoạt động kết thúc kiểm thử .4 Một số công cụ kiểm thử hiệu năng. 28 Chƣơng 4: Ứng dụng kiểm thử hiệu năng vào dự án của đơn vị .1 Giới thiệu về dự án.2 Kế hoạch tổng thể của dự án .3 Lập kế hoạch kiểm thử hiệu năng .4 Thiết kế kiểm thử hiệu năng .1 Thiết kế môi trƣờng .2 Thiết kế các kịch bản kiểm thử .5 Triển khai và thực thi kiểm thử hiệu năng .1 Cài đặt môi trƣờng, công cụ.2 Tạo các kịch bản kiểm thử bằng JMeter .3 Chạy các kịch bản .6 Đánh giá kết quả đầu ra và báo cáo.

51 TIEU LUAN MOI download : skknchat@gmail.com 2 KẾT LUẬN. 53 TÀI LIỆU THAM KHẢO. 55 TIEU LUAN MOI download : skknchat@gmail.com 3 LỜI CẢM ƠN Trƣớc tiên tôi xin gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo, Tiến sĩ Phạm Ngọc Hùng – ngƣời đã hƣớng dẫn, khuyến khích và tạo điều kiện tốt nhất cho tôi thực hiện đề tài này. Bằng niềm đam mê và kinh nghiệm tuyệt vời về kiểm thử, thầy luôn là ngƣời đồng hành và truyền cảm hứng cho tôi trong suốt quá trình thực hiện nghiên cứu này.

Tôi xin gửi lời cảm ơn chân thành tới các thầy, cô giáo trong khoa Công nghệ Thông tin, Trƣờng Đại học Công nghệ, Đại học Quốc Gia Hà Nội đã tận tình đào tạo, trang bị cho tôi những kiến thức vô cùng quý giá trong suốt quá trình học tập, nghiên cứu tại trƣờng. Đồng thời tôi xin cảm ơn tất cả những ngƣời thân yêu trong gia đình tôi cùng toàn thể bạn bè những ngƣời đã luôn giúp đỡ, động viên tôi những khi tôi gặp khó khăn, bế tắc trong nghiên cứu. Cuối cùng, tôi xin chân thành cảm ơn các đồng nghiệp của tôi tại Công ty Trách Nhiệm Hữu Hạn Phần Mềm FPT, đặc biệt các anh chị em trong đội kiểm thử, đã giúp đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chƣơng trình thạc sĩ tại Đại học Công nghệ, Đại học Quốc Gia Hà Nội. TIEU LUAN MOI download : skknchat@gmail.com 4 LỜI CAM ĐOAN Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Kiểm thử hiệu năng và ứng dụng đảm bảo chất lƣợng cho các ứng dụng Web” là công trình nghiên cứu của riêng tôi, không sao chép lại của ngƣời khác.

Trong toàn bộ nội dung của luận văn, những điều đã đƣợc trình bày hoặc là của chính cá nhân tôi hoặc là đƣợc tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo đều có xuất xứ rõ ràng và hợp pháp. Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan này. Hà Nội, ngày 09 tháng 05 năm 2015 Hoàng Thị Luy TIEU LUAN MOI download : skknchat@gmail.com 5 DANH MỤC HÌNH VẼ, BẢNG BIỂU Hình 3.

Kiểm thử hiệu năng nằm trong các mức độ kiểm thử của hệ thống. Kiểm thử hiệu năng trong mô hình thác nƣớc. Kiểm thử hiệu năng trong mô hình chữ V. Kiểm thử hiệu năng trong mô hình Agile – Scrum.

Tài liệu đầu vào và đầu ra của giai đoạn lập kế hoạch. Tài liệu đầu vào và đầu ra của giai đoạn lập phân tích và thiết kế kiểm thử. Tài liệu đầu vào và đầu ra của giai đoạn triển khai kiểm thử .9 So sánh một số công cụ tính phí phổ biến .10 So sánh một số công cụ mã nguồn mở phổ biến. Tỉ lệ phân bổ thời gian giữa các công đoạn.

Tỉ lệ phân bổ thời gian giữa các công đoạn (tính theo ngày làm việc). Chi tiết công việc trong từng giai đoạn. Các thành viên tham gia vào dự án. Kế hoạch thời gian kiểm thử hiệu năng (Đơn vị tính: Ngày làm việc).

Tƣơng tác giữa Maven, Jenkins và JMeter. Các kịch bản kiểm thử. Maven sau khi cài đặt. JMeter sau khi cài đặt.

Jenkins sau khi cài đặt. Cấu trúc thƣ mục dự án. Các kịch bản kiểm thử. Dữ liệu kiểm thử.

Kết quả chạy với 10 ngƣời dùng đồng thời. Kết quả chạy với 80 ngƣời dùng đồng thời. Kết quả chạy với 100 ngƣời dùng đồng thời. Kết quả chạy với 100 ngƣời dùng đồng thời.

51 TIEU LUAN MOI download : skknchat@gmail.com 6 Chƣơng 1: Giới thiệu Kiểm thử hiệu năng (Performance test) là một phần rất quan trọng trong việc đảm bảo chất lƣợng phần mềm. Đặc biệt đối với các ứng dụng Web, kiểm thử hiệu năng ảnh hƣởng trực tiếp đến ngƣời sử dụng hệ thống cũng nhƣ các bên liên quan. Chẳng hạn nhƣ, khách hàng truy cập một trang Web bán hàng trực tuyến của một công ty. Sau một vài phút hoặc lâu hơn nữa, hệ thống mới tải xong ảnh sản phẩm mà họ cần tìm.

Việc này chắc hẳn sẽ ảnh hƣởng đến thái độ của khách hàng đối với công ty đó. Họ cảm thấy khó chịu, mất thời gian. Những lần sau, họ sẽ đắn đo hoặc có thể không bao giờ quay trở lại trang này nữa. Điều này đồng nghĩa với việc công ty mất quan hệ khách hàng, mất doanh thu.

Ở mức độ nghiêm trọng hơn, khách hàng có thể mất tiền, thậm chí rất nhiều tiền do lỗi hiệu năng của hệ thống. Dƣới đây, có thể kể ra một số thảm họa về hiệu năng của ứng dụng Web đã từng xảy ra và mức độ thiệt hại mà nó gây ra. Trang Web của Nectar1 Ngay khi ra mắt năm 2002, chƣơng trình thẻ tri ân khách hàng của Nectar đã rất nỗ lực quảng cáo trên truyền hình và tiếp thị trực tiếp qua thƣ điện tử tới trên mƣời triệu hộ gia đình, hƣớng mọi ngƣời tới dịch vụ mới ra mắt của họ. Mặc dù, đã có phƣơng tiện đăng kí qua đƣờng điện thoại và thƣ điện tử trực tiếp, Nectar vẫn cố gắng tiết kiệm chi phí bằng cách cung cấp một phần thƣởng khuyến khích mọi ngƣời đăng kí trực tuyến qua trang Web.

Trong khi Nectar đã chuẩn bị cho sự kiện này bằng cách tăng dung lƣợng máy chủ lên gấp sáu lần, thì tại thời điểm đỉnh điểm với mƣời nghìn lƣợt khách truy cập trong vòng một giờ đã đủ để trang Web bị chết trong vòng ba ngày. Nectar đã dẫn ra độ phức tạp của quá trình đăng kí (bảo mật và mã hóa) nhƣ là một nút thắt cổ chai [1]. Trang Web Bản đồ tội phạm của cảnh sát Anh2 Trong một động thái nhằm tăng tính minh bạch trong thống kê tội phạm, Chính phủ Anh đƣa ra một trang Web trong tháng hai năm 2011, cho phép các thành viên 1 Đƣờng dẫn truy cập: http://www.com/ 2 Đƣờng dẫn truy cập: http://www.uk TIEU LUAN MOI download : skknchat@gmail.com 7 của công chúng có quyền truy cập vào thông tin về tỉ lệ tội phạm ở khu vực của họ thông qua các điểm đánh dấu trên bản đồ tƣơng tác. Điều này đã nhận đƣợc những tin tức chính thống, với những câu hỏi đƣợc đặt ra về độ chính xác và sự tác động của các báo cáo, ví dụ, ảnh hƣởng đến tỉ lệ bảo hiểm hoặc giá nhà.

Các bản đồ tội phạm đã nhận đƣợc sự quan tâm rất lớn của công chúng. Nó nhận đƣợc mƣời tám triệu hit một giờ trong ngày đầu tiên (Hit: là đơn vị dùng để đo lƣợng truy cập của trang Web, mỗi tập tin gửi đến máy chủ đƣợc tính là 1 hit. Ví dụ, một trang Web có 20 hình ảnh mà ngƣời dùng có thể chọn để xem mỗi cái một lần, đƣợc tính là 20 hit). Điều này làm nó sập xuống trong vòng vài giờ theo kiểu rất công khai.

Dƣờng nhƣ có lý khi một trang Web bị sập dƣới mƣời tám triệu hit một giờ. Rõ ràng là trang Web đơn giản là không thiết kế để có thể hoạt động đƣợc ở bất kì quy mô nào, mặc dù nó đã dùng máy chủ Amazon EC2 để tăng thêm dung lƣợng. Nhƣ vậy bạn vẫn cần xây dựng một trang Web mà dung lƣợng của nó không cần đến 1000 lần máy chủ [2]. Trang Web bán vé Thế vận hội London năm 20123 Có quá nhiều bài viết về sự kiện này.

Tháng tƣ năm 2011, sau lƣợt bán vé đầu tiên kết thúc, 6.6 triệu vé đã đƣợc bán trực tuyến. Vấn đề là vé không đƣợc bán ra lần lƣợt, không phải là ngƣời đến trƣớc đƣợc phục vụ trƣớc, mà nhiều ngƣời đợi đến phút cuối mới quyết định đặt mua. Trang Web đã chậm nhƣ rùa bò vì quá tải. Họ đã phải chặn các cửa sổ để có thể tồn tại thêm vài giờ.

Vài tháng sau, trang bán vé của Thế vận hội đƣợc mở trở lại, cho phép ngƣời ta mua và bán vé chính thức với nhau. Nhƣng nó vẫn không thể đối phó với nhu cầu, vẫn chậm. Nhiều vấn đề xảy ra trong tháng mƣời hai và tháng một, với càng nhiều sự gián đoạn của trang Web bán vé, dẫn đến nhiều sự kiện đã bị bán giảm giá [3]. Thông qua các ví dụ trên, ta có thể thấy tầm quan trọng về hiệu năng của các ứng dụng Web, cũng nhƣ mức độ thiệt hại mà nó gây ra nếu nhƣ hệ thống không đƣợc kiểm thử đầy đủ trƣớc khi đƣa vào vận hành.

Việc cân bằng giữa công nghệ, thời gian và tiền bạc để đạt đƣợc hiệu suất cao nhất của hệ thống cũng là một chủ 3 Đƣờng dẫn truy cập: http://www.com TIEU LUAN MOI download : skknchat@gmail.

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