ĐẠ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
ĐẠ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
3.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ị ............................. 34
4.1
4.2
4.3
4.4
Giới thiệu về dự án............................................................................. 34
Kế hoạch tổng thể của dự án .............................................................. 35
Lập kế hoạch kiểm thử hiệu năng ...................................................... 38
Thiết kế kiểm thử hiệu năng .............................................................. 42
4.4.1 Thiết kế môi trƣờng .................................................................. 42
4.4.2 Thiết kế các kịch bản kiểm thử ................................................. 44
4.5
Triển khai và thực thi kiểm thử hiệu năng ......................................... 47
4.5.1 Cài đặt môi trƣờng, công cụ...................................................... 47
4.5.2 Tạo các kịch bản kiểm thử bằng JMeter ................................... 48
4.5.3 Chạy các kịch bản ..................................................................... 50
4.6
Đánh giá kết quả đầu ra và báo cáo ................................................... 51
2
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
5
DANH MỤC HÌNH VẼ, BẢNG BIỂU
Hình 3.1. Kiểm thử hiệu năng nằm trong các mức độ kiểm thử của hệ thống ........ 16
Hình 3.2. Kiểm thử hiệu năng trong mô hình thác nƣớc ......................................... 17
Hình 3.3. Kiểm thử hiệu năng trong mô hình chữ V ............................................... 19
Hình 3.4. Kiểm thử hiệu năng trong mô hình Agile – Scrum .................................. 20
Bảng 3.6. Tài liệu đầu vào và đầu ra của giai đoạn lập kế hoạch ............................ 23
Bảng 3.7. 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ử............................................................................................................................. 25
Bảng 3.8. Tài liệu đầu vào và đầu ra của giai đoạn triển khai kiểm thử .................. 26
Bảng 3.9 So sánh một số công cụ tính phí phổ biến ................................................ 29
Bảng 3.10 So sánh một số công cụ mã nguồn mở phổ biến .................................... 31
Bảng 4.1. Tỉ lệ phân bổ thời gian giữa các công đoạn ............................................. 35
Bảng 4.2. 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) ... 35
Hình 4.3. Chi tiết công việc trong từng giai đoạn .................................................... 37
Bảng 4.4. Các thành viên tham gia vào dự án.......................................................... 38
Hình 4.5. Kế hoạch thời gian kiểm thử hiệu năng (Đơn vị tính: Ngày làm việc) .... 41
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
2
Đƣờng dẫn truy cập: />Đƣờng dẫn truy cập:
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
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. Trên thế giới, nhiều tác giả với nhiều công
trình nghiên cứu đã đƣa ra nhiều phƣơng pháp tiếp cận và giải quyết bài toán kiểm
thử hiệu năng cho các ứng dụng Web. Các doanh nghiệp và cộng đồng yêu thích
kiểm thử hiệu năng cũng ra mắt nhiều công cụ hỗ trợ kiểm thử hiệu năng hiệu quả
loại ứng dụng này. Tuy nhiên, đối với thị trƣờng phần mềm non trẻ của Việt Nam,
không phải lúc nào việc kiểm thử hiệu năng của các ứng dụng Web cũng đƣợc quan
tâm một cách đúng mức. Nó có thể bị bỏ qua hoặc không đƣợc thực hiện một cách
đúng đắn, kỹ lƣỡng trƣớc khi triển khai sản phẩm. Kết quả là, các ứng dụng thƣờ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à:
Một là, bản thân doanh nghiệp phát triển, doanh nghiệp đầu tƣ chƣa ý thức đƣợc
tầm quan trọng của kiểm thử hiệu năng; Hai là, chƣa có phƣơng pháp kiểm thử hiệu
năng một cách đúng đắn; Cuối cùng là, chi phí kiểm thử tốn kém (chi phí mua công
cụ, đào tạo kiểm thử viên, thực hiện kiểm thử, v.v.). Kiểm thử hiệu năng vẫn là bài
toán khó. Vì vậy, tôi quyết định chọn đề tài “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”.
Đề tài này nhằm cung cấp cái nhìn tổng thể về kiểm thử hiệu năng, đƣa ra
phƣơng pháp, công cụ cũng nhƣ cách thức giải quyết bài toán kiểm thử hiệu năng
của các ứng dụng Web, trong điều kiện thực tế của doanh nghiệp phần mềm ở Việt
Nam. Đặc biệt, phƣơng pháp sử dụng trong đề tài áp dụng cho mô hình phát triển
phần mềm nhanh – Agile, một trong những mô hình phát triển phần mềm mới và
hiệu quả hiện nay.
Luận văn bao gồm bốn chƣơng và một phần kết luận. Chƣơng 1 giới thiệu đề
tài. Chƣơng này giúp ngƣời đọc hiểu bối cảnh của đề tài, lý do chọn đề tài, mục
4
Đƣờng dẫn truy cập: />
để xác định khả năng phản hồi, thông lƣợng, độ tin cậy và/hoặc khả năng mở rộng
của hệ thống dƣới lƣợng tải công việc (workload) xác định. Theo đó, các tác giả
cũng cho rằng các hoạt động liên quan đến hiệu năng, nhƣ kiểm tra và chỉnh sửa,
quan tâm đến việc đạt đƣợc thời gian phản hồi (response times), thông lƣợng
(throughput) và các mức độ tối ƣu hóa tài nguyên (resource-utilization) phù hợp với
các mục tiêu hiệu năng đối với ứng dụng cần kiểm tra.
Hai định nghĩa ở trên là hai định nghĩa chính thống, đƣợc đƣa ra bởi các tổ chức
uy tín và đƣợc công nhận, sử dụng rộng rãi. Ngoài ra, kiểm thử hiệu năng còn tồn
tại nhiều cách hiểu khác nhau. Mặc dù nó đƣợc mô tả theo các cách thức khác
nhau, nhƣng trong các định nghĩa, một số điểm chung của nó vẫn đƣợc làm nổi bật
nhƣ: Nó là một loại kiểm thử phi chức năng của hệ thống (non-functional), do các
bên liên quan đƣa ra hoặc chính đội phát triển phần mềm có nhu cầu kiểm tra sản
phẩm của mình, nhằm kiểm tra các đặc tính của ứng dụng nhƣ tốc độ, khả năng mở
rộng, tính ổn định, trong một điều kiện nhất định (môi trƣờng kiểm thử). Việc thực
hiện kiểm thử hiệu năng thƣờng tốn nhiều thời gian và cần phải đƣợc thực hiện
11
thƣờng xuyên. Đặc biệt, để lấy đƣợc chính xác các thông số hiệu năng quan trọng,
nó thƣờng đƣợc thực hiện bằng công cụ.
2.2 Phân loại kiểm thử hiệu năng
Theo [5], kiểm thử hiệu năng là một hoạt động rộng và phức tạp, nó có thể thực
hiện ở nhiều dạng dẫn đến nhiều rủi ro, và cung cấp một loạt các giá trị cho một tổ
chức. Việc quan trọng là hiểu đƣợc các loại kiểm thử hiệu năng khác nhau để giảm
rủi ro, giảm thiểu chi phí và để biết khi nào áp dụng kiểm thử hiệu năng trong một
dự án kiểm thử hiệu năng xác định. Để áp dụng các loại kiểm thử hiệu năng khác
nhau, đội kiểm thử cần đánh giá đƣợc một số điểm chính nhƣ đƣợc trình bày dƣới
đây.
hoặc kiểm tra các đặc tính hiệu năng của hệ thống hoặc ứng dụng cần kiểm thử
trong những điều kiện vƣợt ra ngoài những điều kiện dự đoán trƣớc trong các hoạt
động của sản phẩm. Kiểm thử áp lực cũng có thể bao gồm những kiểm thử tập
trung vào xác định hoặc kiểm tra các đặc tính hiệu năng của hệ thống hay ứng dụng
cần test khi chịu các điều kiện về áp lực, nhƣ bộ nhớ bị giới hạn, không gian ổ đĩa
không đủ, lỗi máy chủ. Những kiểm thử này đƣợc thiết kế để xác định dƣới những
điều kiện gì mà ứng dụng bị lỗi, lỗi nhƣ thế nào và những chỉ số gì có thể đƣợc
kiểm soát để đƣa ra cảnh báo về lỗi sắp xảy ra. Kiểm thử áp lực để xác định hoặc
kiểm tra hành vi của một ứng dụng khi đẩy nó vƣợt ra ngoài các điều kiện tải bình
thƣờng hoặc tối đa.
Ngoài hai loại kiểm thử hiệu năng phổ biến gồm kiểm thử tải và kiểm thử áp
lực, một số tác giả còn đƣa ra nhiều loại nhỏ khác nhau:
Kiểm thử dung lƣợng (Capacity test): kiểm thử dung lƣợng bổ sung cho kiểm
thử tải bằng cách xác định điểm lỗi cuối cùng của máy chủ, trong khi kiểm thử tải
theo dõi các kết quả ở các mức độ khác nhau của các mẫu lƣu lƣợng và tải. Kiểm
thử dung lƣợng đƣợc thực hiện cùng với các kế hoạch về dung lƣợng, cái đƣợc sử
dụng để lập kế hoạch cho sự tăng trƣởng trong tƣơng lai, nhƣ tăng số lƣợng ngƣời
dùng cơ bản hoặc tăng khối lƣợng dữ liệu. Ví dụ, để phù hợp với lƣợng tải trong
tƣơng lai, bạn cần biết có bao nhiêu tài nguyên cần thiết đƣợc thêm vào để hỗ trợ
các mức độ sử dụng trong tƣơng lai nhƣ dung lƣợng bộ vi xử lý, khả năng sử dụng
bộ nhớ, dung lƣợng ổ đĩa hoặc băng thông mạng. Kiểm thử dung lƣợng giúp bạn
13
xác định đƣợc một chiến lƣợc mở rộng quy mô để xác định nên mở rộng theo chiều
dọc hoặc chiều ngang (scale up hoặc scale out) [5].
Kiểm thử sức bền (Endurance test): Kiểm thử sức bền là một loại kiểm thử
hiệu năng tập trung vào xác định hoặc kiểm tra các đặc tính hiệu năng của ứng
dụng khi chịu các mô phỏng tải làm việc hoặc khối lƣợng tải cho trƣớc trong một
lĩnh vực cụ thể của họ. Thời gian và các vấn đề cần thiết khác nhƣ dữ liệu kiểm thử
cũng là một số vấn đề chính cần giải quyết khi lập kế hoạch và thực hiện một kiểm
thử dài đúng đắn. Kiểm thử nên chạy trong thời gian dài nhất có thể hoặc đến khi
xác định đƣợc xu hƣớng cụ thể qua một số giám sát. Quá trình kiểm thử dài có lẽ
đã phát hiện ra nhiều nhất các lỗi nghiêm trọng [8].
Kiểm thử khối lƣợng (Volume test): Kiểm thử khối lƣợng đề cập đến kích cỡ
hay cụ thể hơn là các kích thƣớc của tập tin và cơ sở dữ liệu. Kiểm thử này thƣờng
không có yêu cầu, nhƣng quan trọng, phụ thuộc vào loại ứng dụng đƣợc kiểm thử.
Kích cỡ của cơ sở dữ liệu ảnh hƣởng lớn đến hiệu năng và nó nên đƣợc đƣa ra nhƣ
một rủi ro khi kiểm thử hiệu năng đƣợc thực hiện đối với cơ sở một cơ sở dữ liệu
nhỏ so sánh với kích thƣớc thật trên môi trƣờng vận hành sản phẩm. Với kiểm thử
khối lƣợng, tải không đòi hỏi số lƣợng ngƣời dùng cao mà việc lập kế hoạch cẩn
thận về cách thực hiện test nhƣ thế nào mới là cần thiết [8].
2.3 Các thuật ngữ
Để tìm hiểu kiểm thử hiệu năng, các thuật ngữ cơ bản cần phải đƣợc hiểu rõ.
Một số thuật ngữ chính đƣợc trình bày nhƣ dƣới dây.
Dung lƣợng (capacity): Dung lƣợng của hệ thống là tổng các tải làm việc nó
xử lý mà không gây xung đột với tiêu chí chính chấp nhận về hiệu năng cho trƣớc
[5].
Thời gian nghĩ (Think time): Là thời gian thể hiện độ trễ hoặc tạm dừng mà
một ngƣời dùng nào đó thực hiện trong khi tƣơng tác với một ứng dụng [7].
Tải công việc (Work load): Tải công việc là một tác nhân kích thích đƣợc sử
dụng cho một hệ thống, ứng dụng hoặc thành phần mô phỏng một mẫu sử dụng,
liên quan đến tính đồng thời và/hoặc dữ liệu nhập. Tải làm việc bao gồm tổng số
lƣợng ngƣời dùng, ngƣời dùng đồng thời, khối lƣợng dữ liệu và khối lƣợng giao
dịch đi kèm với giao dịch. Đối với mô hình hiệu năng, bạn kết hợp một tải công
việc với một kịch bản riêng [5].
dàng.
Kiểm thử chấp nhận
Kiểm thử cài đặt/
triển khai
Kiểm thử hệ thống
Kiểm thử tích hợp
Kiểm thử h
iệu năng
Kiểm thử đơn vị
Hình 3.1. Kiểm thử hiệu năng nằm trong các mức độ kiểm thử của hệ thống
Xem xét ở cấp độ cao hơn, trong vòng đời phát triển phần mềm, việc tiến hành
kiểm thử hiệu năng phụ thuộc vào mô hình phát triển phần mềm đƣợc định nghĩa ở
17
giai đoạn đầu của dự án. Mỗi mô hình sẽ áp dụng kiểm thử hiệu năng theo một cách
riêng biệt và phù hợp. Dƣới đây, kiểm thử hiệu năng đƣợc áp dụng cho ba mô hình
phát triển phần mềm nổi tiếng là mô hình thác nƣớc truyền thống, mô hình phát
triển hình chữ V và mô hình phát triển nhanh – Agile –Scrum. Những phân tích này
sẽ giúp đội kiểm thử dự đoán đƣợc những thuận lợi và khó khăn, đồng thời nhanh
chóng tìm ra những giải pháp tốt nhất giải quyết những vấn đề gặp phải.
Với dự án áp dụng mô hình thác nước truyền thống: Các bƣớc của hoạt động
kiểm thử hiệu năng đƣợc tiến hành trọn vẹn ở giai đoạn kiểm thử. Hình 3.2 thể hiện
các hoạt động kiểm thử hiệu năng đƣợc thực hiện trong pha kiểm thử của mô hình
thác nƣớc. Mũi tên đi xuống thể hiện thứ tự hoàn thành của từng pha. Ƣu nhƣợc
điểm của việc kiểm thử này cũng tƣơng tự nhƣ ƣu nhƣợc điểm của mô hình truyền
18
Với dự án áp dụng mô hình chữ V (V-Model): Các bƣớc kiểm thử hiệu năng
đƣợc tiến hành song song với các giai đoạn của dự án. Hình 3.3 minh họa các bƣớc
của kiểm thử hiệu năng đƣợc thực hiện trong mô hình phát triển phần mềm hình
chữ V. Hƣớng mũi tên thể hiện các hoạt động theo trình tự thời gian từ trái sang
phải. Mỗi giai đoạn phát triển ở nửa chữ V bên trái tƣơng ứng với một số hoạt động
của các mức độ kiểm thử ở nửa chữ V bên phải và cột các hoạt động kiểm thử hiệu
năng. Cụ thể là, ngay ở giai đoạn phân tích yêu cầu, kiểm thử viên đƣợc tham gia
phân tích và đƣa ra các tiêu chí đầu ra chấp nhận của kiểm thử chấp nhận, trong đó,
các tiêu chí chấp nhận của kiểm thử hiệu năng đƣợc xác định. Ở giai đoạn này, đối
với kiểm thử chức năng, tài liệu liên quan đến các ca kiểm thử chấp nhận đƣợc tạo
ra, đối với kiểm thử hiệu năng, một bản kế hoạch chi tiết đƣợc hoàn thành. Tiếp
theo, ở giai đoạn thiết kế kiến trúc, đội phát triển sẽ thiết kế tổng quát cấu trúc các
thành phần hệ thống. Tƣơng ứng với hoạt động kiểm thử chức năng, các kiểm thử
viên sẽ phân tích và tạo ra tài liệu về các ca kiểm thử mức hệ thống. Hoạt động
kiểm thử hiệu năng sẽ là phân tích, thiết kế tổng quát các kịch bản kiểm thử, thiết
kế môi trƣờng. Ở giai đoạn thiết kế chi tiết, các thiết kế kiểm thử hiệu năng sẽ đƣợc
triển khai chi tiết thành các ca kiểm thử. Đội kiểm thử sẽ cài đặt công cụ, môi
trƣờng để chuyển các ca kiểm thử dạng ngôn ngữ tự nhiên sang các kịch bản của
công cụ. Sau đó, các kịch bản đƣợc chạy, thu thập kết quả và phân tích đánh giá.
Nhƣ vậy, các hoạt động kiểm thử hiệu năng đƣợc thực hiện song song với các hoạt
động kiểm thử khác. Các tài liệu tạo ra tƣơng ứng với quá trình phát triển dự án.
Điều này giúp cho đội kiểm thử phát hiện lỗi sớm, làm cho chi phí điều tra lỗi và
sửa lỗi giảm xuống. Tuy nhiên, dễ dàng nhận thấy các hoạt động kiểm thử hiệu
năng đƣợc thực hiện đan xen với các hoạt động kiểm thử chức năng trong các pha
của dự án. Các tài liệu đƣợc tạo ra cho từng giai đoạn. Đây chính là những khó
khăn khi áp dụng kiểm thử hiệu năng cho mô hình này. Việc quản lý, phân công
công việc và kiểm soát các hoạt động trở nên phức tạp.
hoàn thành bao gồm phần hệ thống đƣợc phát triển trong Sprint đó cộng với phần
đƣợc phát triển trong các Sprint trƣớc đó. Ứng dụng đƣợc tích hợp các phần mới
liên tục qua các Sprint. Việc kiểm thử hiệu năng trong mô hình này đòi hỏi phải
phù hợp.
Thuận lợi của việc áp dụng kiểm thử hiệu năng trong mô hình này là các yêu
cầu đƣợc chia nhỏ, thời gian ngắn dễ quản lý và và kiểm soát thực hiện. Sau mỗi
Sprint, đội phát triển sẽ bàn giao phần hoàn thiện của Sprint đó và các tài liệu liên
quan cho khách hàng của họ. Điều này giúp cho tƣơng tác giữa khách hàng và đội
phát triển tăng lên. Khách hàng phản hồi sớm đồng nghĩa với việc các yêu cầu đƣợc
thay đổi và cập nhật nhanh, đáp ứng sự hài lòng của khách hàng. Khó khăn trong
mô hình này là khi tích hợp các Sprint đã hoàn thiện vào với nhau. Lỗi gặp phải lúc
này thƣờng tốn thời gian tìm và sửa. Do vậy các đội phát triển đã chọn phƣơng án
tích hợp dần, tích hợp liên tục từng phần ngay khi Sprint đƣợc hoàn thiện. Mặc dù
vậy, kiểm thử hiệu năng vẫn gặp những khó khăn: các thông số hiệu năng đã đạt
yêu cầu ở Sprint trƣớc, nhƣng khi tích hợp với phần hệ thống của Sprint sau, nó lại
20
không thỏa mãn yêu cầu khách hàng nữa. Nếu đội kiểm thử không có phƣơng pháp
tốt, họ rất dễ phải đập đi làm lại. Và, càng ở các Sprint cuối, khi hệ thống càng
hoàn thiện, các vấn đề liên quan đến hiệu năng càng phát sinh. Theo minh họa ở
Hình 3.4, để đạt đƣợc hiệu quả của việc kiểm thử hiệu năng, việc kiểm thử ở Sprint
2 phải bao gồm phần mới ở Sprint 2 mà không ảnh hƣởng đến phần đã kiểm tra ở
Sprint 1. Do vậy, cách tốt nhất là thực hiện lại các kiểm thử đã chạy ở Sprint 1, vừa
chạy song song với cái mới ở Sprint 2.
Sprint 1
Sprint 2
Bƣớc 1,
Bƣớc 2,
(v.v.)
Hình 3.4. Kiểm thử hiệu năng trong mô hình Agile – Scrum
3.2 Các dạng yêu cầu kiểm thử hiệu năng trong thực tế
Kiểm thử hiệu năng là một bài toán đặc thù. Về lý thuyết, tất cả các ứng dụng
Web trƣớc khi đƣợc đƣa vào vận hành đều phải đƣợc kiểm thử đầy đủ, trong đó có
kiểm thử hiệu năng. Tuy nhiên, không phải ứng dụng nào hay đơn vị sản xuất phần
mềm nào cũng thực hiện một bài toán kiểm thử nhƣ nhau. Các bên liên quan luôn
phải cân đối giữa công nghệ, thời gian và chi phí. Do đó, các bài toán kiểm thử hiệu
năng trên thực tế cũng có nhiều màu sắc đa dạng khác nhau.
Qua khảo sát các dự án có yêu cầu về kiểm thử hiệu năng tại nhiều Công ty
phần mềm lớn tại Việt Nam, nhiều dạng yêu cầu về bài toán kiểm thử hiệu năng
đƣợc ghi nhận trên thực tế. Nếu theo thời gian phát sinh yêu cầu kiểm thử hiệu
năng, các bài toán đƣợc chia làm hai dạng: dạng có yêu cầu rõ ràng từ đầu và dạng
phát sinh.
Dạng 1 - Loại bài toán có yêu cầu rõ ràng từ đầu: Thƣờng gặp đối với các hệ
thống lớn nhƣ trang Web của các hệ thống ngân hàng, các trang nhận gửi hàng đa
quốc gia, các sàn giao dịch chứng khoán, v.v. Đối tác nắm rõ lƣu lƣợng ngƣời dùng
21
cuối truy cập trang Web của mình. Họ có yêu cầu chi tiết về kiểm thử hiệu năng đối
với đội phát triển ngay từ khi bắt đầu dự án. Khi hệ thống đƣợc đƣa vào vận hành,
họ có các giai đoạn bảo trì hoặc nâng cấp thêm. Song song với các giai đoạn này,
họ cũng cập nhật thêm các yêu cầu về kiểm thử hiệu năng. Với loại này, các bƣớc
thực hiện kiểm thử sẽ đƣợc tiến hành nhƣ ở mục 3.3.
trạng hạ tầng công nghệ thông tin của công ty A nhƣ máy chủ, cơ sở dữ liệu, hệ
thống mạng, v.v. Từ đó, đƣa ra các yêu cầu kiểm thử hiệu năng chính xác nhất.
Với dạng bài toán thứ hai, đội phát triển phải khoanh vùng đƣợc vấn đề, tìm ra
nguyên nhân có khả năng ảnh hƣởng đến hiệu năng của trang Web, sau đó đƣa ra
các yêu cầu kiểm thử hiệu năng chi tiết.
3.3 Quy trình thực hiện kiểm thử hiệu năng
Kiểm thử hiệu năng là một loại kiểm thử phi chức năng. Các yêu cầu thƣờng rất
cụ thể. Quy trình thực hiện kiểm thử hiệu năng cũng tuân theo quy trình kiểm thử
nói chung. Dựa vào quy trình kiểm thử cơ bản của [9], chƣơng 1, mục 1.4, ta có thể
áp dụng cho bài toán kiểm thử hiệu năng, thực hiện kiểm thử hiệu năng gồm các
hoạt động nhƣ sau:
Lập kế hoạch và kiểm soát kiểm thử
Phân tích và thiết kế kiểm thử
Triển khai và thực thi kiểm thử
Đánh giá các kết quả đầu ra và báo cáo
Các hoạt động kết thúc kiểm thử
Hình 3.5 mô tả trình tự các hoạt động trong kiểm thử hiệu năng. Trong đó, hoạt
động kiểm soát và điều chỉnh kiểm thử nằm trong hoạt động lập kế hoạch nhƣng
đƣợc kéo dài từ lúc bắt đầu đến khi kết thúc kiểm thử hiệu năng. Điều này cho thấy,
việc lập kế hoạch luôn phải gắn liền với việc kiểm soát các hoạt động. Trong quá
trình thực hiện kiểm thử hiệu năng, các vấn đề phát sinh sẽ đƣợc xem xét, đánh giá
và điều chỉnh cho phù hợp.
Lập kế hoạch
Phân tích và
thiết kế
Triển khai và Đánh giá kết
thực thi
Xác định phạm vi, rủi ro và mục tiêu của việc kiểm thử hiệu năng. Chẳng
hạn nhƣ, kiểm thử hiệu năng toàn bộ trang Web hay một phần nào đó của
trang, thời gian cho kiểm thử hiệu năng là bao lâu, các rủi ro là gì và mục
tiêu của việc kiểm thử hiệu năng liên quan đến yêu cầu khách hàng, chất
lƣợng của trang Web, v.v.
Xác định các phƣơng pháp kiểm thử. Việc xác định phƣơng pháp kiểm thử
hiệu năng nhằm xác định xem việc kiểm thử hiệu năng đƣợc tiến hành nhƣ
thế nào. Nó bao gồm xác định loại kiểm thử hiệu năng sẽ đƣợc sử dụng
(Kiểm thử áp lực, kiểm thử tải, v.v.), công cụ sử dụng (công cụ mã nguồn
mở hay công cụ tính phí), v.v.
Xác định các tài nguyên kiểm thử (con ngƣời, môi trƣờng, thời gian, v.v.). Ở
giai đoạn lập kế hoạch, việc xác định các nguồn lực cho kiểm thử hiệu năng
rất quan trọng. Tùy vào mục tiêu của dự án, mục tiêu và phƣơng pháp kiểm