1. Trang chủ
  2. » Công Nghệ Thông Tin

Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng

80 373 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 2,44 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Xuất phát từ thực tế đó, đề tài luận văn “Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng” với mục đích tìm hiểu, nghiên cứu các vấn đề trong kiểm thử hiệu năng như các khái niệm cơ bản

Trang 2

ĐẠI HỌC THÁI NGUYÊN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan, kết quả của luận văn hoàn toàn là kết quả của tự bản thân

tôi tìm hiểu, nghiên cứu dưới sự hướng dẫn của thầy giáo PGS.TS Đặng Văn Đức

Tôi hoàn toàn chịu trách nhiệm về tính pháp lý quá trình nghiên cứu khoa họccủa luận văn này

Thái Nguyên, tháng 11 năm 2013

Người cam đoan

Phạm Thị Tú

Trang 4

LỜI CẢM ƠN

Em xin gửi lời cảm ơn chân thành nhất đến thầy giáo PGS.TS Đặng Văn Đức

đã định hướng và nhiệt tình hướng dẫn, giúp đỡ em trong quá trình làm luận văn

Em xin gửi lời biết ơn sâu sắc đến quý thầy cô trường đại học Công nghệthông tin truyền thông, các thầy ở viện công nghệ thông tin Hà Nội đã truyền đạtnhững những kiến thức và kinh nghiệm quý báu cho chúng em trong thời gianhọc tập

Xin chân thành cảm ơn các bạn bè, đồng nghiệp, các bạn học viên lớp cao họcCK10C, những người thân trong gia đình đã động viên, chia sẻ, tạo điều kiện giúp

đỡ trong suốt quá trình học và làm luận văn

Thái Nguyên, tháng 11 năm 2013

Phạm Thị Tú

Trang 5

MỤC LỤC

DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT VII DANH MỤC CÁC HÌNH VẼ VIII DANH MỤC CÁC BẢNG BIỂU X

MỞ ĐẦU 1

1.1 CÁC KHÁI NIỆM CƠ BẢN 4

1.1.1.Kiểm thử phần mềm (Software Testing) [1], [2] 4

1.1.2.Kiểm thử đơn vị (Unit Testing) 5

1.1.3 Kiểm thử tích hợp (Integration Testing) 5

1.1.4.Kiểm thử hệ thống (System Testing) 6

1.1.7.Kiểm thử chức năng (Functional Testing) 8

1.1.8 Kiểm thử hiệu năng (Performance Testing) 9

Là hoạt động thử nghiệm, đánh giá phần mềm, các thành phần hoặc phần cứng về sự tương thích của nó với mục tiêu kiểm thử hiệu năng Đó là loại kiểm thử với mục đích xác định khả năng mở rộng của ứng dụng 9

1.2.TẦM QUAN TRỌNG CỦA KIỂM THỬ HIỆU NĂNG 12

1.3 TÌNH HÌNH NGHIÊN CỨU HIỆN NAY TRONG VÀ NGOÀI NƯỚC 14

1.4 CÁC HOẠT ĐỘNG TRONG KIỂM THỬ HIỆU NĂNG 14

1.4.1 Xác định môi trường kiểm thử 16

1.4.2.Xác định các tiêu chí hiệu năng 16

1.4.3 Lập kế hoạch và thiết kế kiểm thử 16

1.4.4 Cấu hình môi trường kiểm thử 17

Chuẩn bị môi trường kiểm thử, các công cụ, và các nguồn lực cần thiết để thực hiện mỗi chiến lược kiểm thử 17

1.4.5 Cài đặt thiết kế kiểm thử 17

Phát triển các bài kiểm thử phù hợp với các thiết kế kiểm thử 17

1.4.6 Thực hiện kiểm thử 17

Trang 6

Chạy và theo dõi các kiểm thử Xác nhận các kiểm thử, dữ liệu kiểm thử, và thu thập kết quả Thực hiện xác nhận kiểm thử để phân tích trong khi theo dõi các

kiểm thử và môi trường kiểm thử 17

1.4.7 Phân tích kết quả, báo cáo và kiểm thử lại 17

Củng cố và chia sẻ dữ liệu kết quả Phân tích các dữ liệu cá nhân cũng như cả nhóm Thực hiện các bài kiểm thử còn lại và thực hiện lại chúng khi cần thiết Khi tất cả các giá trị số liệu trong giới hạn chấp nhận, không một thông số nào trong số các ngưỡng quy định đã bị vi phạm, và tất cả các thông tin mong muốn đã được thu thập, thử nghiệm mà kịch bản xác định trên cấu hình cụ thể đã hoàn thành 17

1.5.CÁC CÔNG CỤ HỖ TRỢ KIỂM THỬ HIỆU NĂNG 17

1.5.1.Một số lưu ý cho việc lựa chọn công cụ kiểm thử chính xác 18

1.5.2.Giới thiệu một số công cụ kiểm thử hiệu năng phổ biến [6] 19

1.6 KẾT LUẬN CHƯƠNG 1 22

CHƯƠNG 2 23

CÁC KỸ THUẬT SỬ DỤNG TRONG KIỂM THỬ 23

HIỆU NĂNG 23

2.1 XÁC ĐỊNH WORKLOAD 23

2.1.1 Workload là gì? 23

2.1.2 Các loại workload [6] 23

2.1.3.Các bước xác định workload 26

2.2.THIẾT LẬP MÔI TRƯỜNG KIỂM THỬ 30

2.2.1 Cô lập môi trường kiểm thử 31

2.2.2 Cô lập mạng 31

2.2.3 Sinh tải 32

2.2.4 Sinh dữ liệu kiểm thử 32

2.3 LẬP KẾ HOẠCH KIỂM THỬ 32

2.4 XÂY DỰNG KỊCH BẢN KIỂM THỬ 33

2.5.THỰC HIỆN KIỂM THỬ 35

Trang 7

2.5.1.Điều kiện thực hiện kiểm thử hiệu năng [5] 35

2.5.2.Các loại kiểm thử hiệu năng 36

2.5.3.Phương pháp tiếp cận thực hiện kiểm thử 39

2.5.4.Các yếu tố thực hiện kiểm thử 41

2.6 XÂY DỰNG BÁO CÁO VÀ PHÂN TÍCH KẾT QUẢ KIỂM THỬ HIỆU NĂNG 44

2.6.1.Xây dựng báo cáo kết quả kiểm thử 44

2.6.2.Phân tích kết quả kiểm thử hiệu năng 47

2.7 KẾT LUẬN CHƯƠNG 2 48

CHƯƠNG 3 49

THỬ NGHIỆM KIỂM THỬ HIỆU NĂNG VỚI PHẦN MỀM ĐƯỢC CHỌN 49

3.1 MỞ ĐẦU 49

3.2.GIỚI THIỆU PHẦN MỀM SẼ KIỂM THỬ 49

3.3 GIỚI THIỆU GIAO DIỆN VÀ CÁC THÀNH PHẦN CỦA CÔNG CỤ SỬ DỤNG KIỂM THỬ [3] 51

- Sampler(Mẫu): Cung cấp thông tin cho JMeter gửi các yêu cầu đến máy chủ cần kiểm tra và đợi máy chủ trả lời Tùy theo giao thức kiểm tra, JMeter hỗ trợ những loại sampler khác nhau Bộ điều khiển có thể được sử dụng để thay đổi số lần lặp lại của một sampler 52

3.4 XÁC ĐỊNH WORKLOAD 53

Mục tiêu thử nghiệm kiểm thử Website với tải mục tiêu 1.500 người dùng 53

3.5 THIẾT LẬP MÔI TRƯỜNG KIỂM THỬ (phần cứng/phần mềm/mạng) 53

3.6 LẬP KẾ HOẠCH KIỂM THỬ 53

3.7 XÂY DỰNG KỊCH BẢN KIỂM THỬ 55

3.8 THỰC HIỆN KIỂM THỬ 58

3.9 BÁO CÁO KẾT QUẢ KIỂM THỬ VÀ PHÂN TÍCH 58

Đồ thị kết quả như sau: 61

3.10.KẾT LUẬN CHƯƠNG 3 65

Trang 8

KẾT LUẬN 65 DANH MỤC TÀI LIỆU THAM KHẢO 66

Trang 9

DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT

TT Viết tắt Tiếng Anh Nghĩa

5 AUT Application Under Test Ứng dụng kiểm thử

6 DBA Database Administrator Người quản trị cơ sở dữ liệu

7 SLA Service Level-Agreement Cam kết mức độ dịch vụ

8 SPEC Standard Performance

Evalution Corporation

Tập đoàn đánh giá hiệu suất chuẩn

9 SUT Systems Under Test Hệ thống kiểm thử

Trang 10

DANH MỤC CÁC HÌNH VẼ

HÌNH 1.1 VÒNG ĐỜI PHÁT TRIỂN HỆ THỐNG 4

HÌNH 1.2 CÁC MỨC ĐỘ KIỂM THỬ CƠ BẢN CỦA PHẦN MỀM [2] 4

HÌNH 1.3 SƠ ĐỒ KIỂM THỬ TÍCH HỢP 5

HÌNH 1.4 CÁC LOẠI KIỂM THỬ KHÁC NHAU TRONG KIỂM THỬ HỆ THỐNG 7

HÌNH 1.5 SƠ ĐỒ KIỂM THỬ CHỨC NĂNG 8

HÌNH 1.6 VÒNG ĐỜI KIỂM THỬ HIỆU NĂNG [6] 10

HÌNH 1.7.A CÁC HOẠT ĐỘNG KIỂM THỬ HIỆU NĂNG [6] 15

HÌNH 1.7.B CÁC HOẠT ĐỘNG KIỂM THỬ HIỆU NĂNG [4] 15

HÌNH 2.1 WORKLOAD ỔN ĐỊNH 24

HÌNH 2.2 WORKLOAD LỆCH 25

HÌNH 2.3 WORKLOAD ĐỘT BIẾN 25

HÌNH 2.4 WORKLOAD ĐẶC TRƯNG THỜI GIAN 26

HÌNH 2.5 TẢI NGƯỜI DÙNG MỤC TIÊU VÀ SỐ KIỂM THỬ 42

HÌNH 2.6 TẢI NGƯỜI DÙNG VÀ THỜI GIAN PHẢN HỒI 42

HÌNH 2.7 TẢI NGƯỜI DÙNG VÀ THÔNG LƯỢNG HỆ THỐNG 43

HÌNH 2.8 TẢI NGƯỜI DÙNG VÀ NÚT CỔ CHAI HỆ THỐNG 43

HÌNH 3.1.GIAO DIỆN ỨNG DỤNG THỬ NGHIỆM KIỂM THỬ 49

HÌNH 3.2.GIAO DIỆN MÀN HÌNH KHI KHỞI ĐỘNG JMETER 51

CÁC THÀNH PHẦN CHÍNH: 51

HÌNH 3.3.CÁC THÀNH PHẦN CỦA JMETER 52

*TEST PLAN(KẾ HOẠCH KIỂM THỬ): BAO GỒM CÁC BƯỚC SẼ ĐƯỢC JMETER THỰC THI 52

HÌNH 3.4 BIỂU ĐỒ UCASE CỦA HỆ THỐNG KIỂM THỬ 55

HÌNH 3.5 KỊCH BẢN KIỂM THỬ CỦA GIAO DỊCH HTTT (1 NGƯỜI DÙNG) 56

HÌNH 3.6 GIAO DIỆN CẤU HÌNH HTTP REQUEST CHO GIAO DỊCH HTTT 56

Trang 11

HÌNH 3.7 KỊCH BẢN KIỂM THỬ CỦA GIAO DỊCH HTTT(300 NGƯỜI DÙNG) 57 HÌNH 3.8 KỊCH BẢN KIỂM THỬ CỦA GIAO DỊCH HTTT(500 NGƯỜI DÙNG) 57 HÌNH 3.9 KỊCH BẢN KIỂM THỬ CỦA GIAO DỊCH HTTT(600 NGƯỜI DÙNG) 58 HÌNH 3.10.GIAO DIỆN BÁO CÁO KẾT QUẢ KIỂM THỬ GIAO DỊCH HTTT (1 NGƯỜI DÙNG) 58 HÌNH 3.11.GIAO DIỆN BẢNG KẾT QUẢ KIỂM THỬ GIAO DỊCH HTTT (300 NGƯỜI DÙNG) 59 HÌNH 3.12 GIAO DIỆN KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT (300 NGƯỜI DÙNG) 59 HÌNH 3.13 ĐỒ THỊ KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT(300 NGƯỜI DÙNG) 60 60 HÌNH 3.14 KẾT QUẢ SỬ DỤNG TÀI NGUYÊN GIAO DỊCH HTTT (300 NGƯỜI DÙNG) 60 HÌNH 3.15 GIAO DIỆN KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT (500 NGƯỜI DÙNG) 60 HÌNH 3.16 ĐỒ THỊ KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT (500 NGƯỜI DÙNG) 61 HÌNH 3.17 GIAO DIỆN KẾT QUẢ KIỂM THỬ GIAO DỊCH HTTT (600 NGƯỜI DÙNG) 61 HÌNH 3.18 GIAO DIỆN KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT (900 NGƯỜI DÙNG) 62 HÌNH 3.19 GIAO DIỆN KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT (1600 NGƯỜI DÙNG) 62 HÌNH 3.20 ĐỒ THỊ KẾT QUẢ KIỂM THỬ CỦA GIAO DỊCH HTTT (1600 NGƯỜI DÙNG) 63

Trang 12

HÌNH 3.21.KẾT QUẢ SỬ DỤNG TÀI NGUYÊN GIAO DỊCH HTTT (1600

NGƯỜI DÙNG) 63

HÌNH 3.22 ĐỒ THỊ THÔNG LƯỢNG HỆ THỐNG KIỂM THỬ 64

DANH MỤC CÁC BẢNG BIỂU BẢNG 1.1 BẢNG SO SÁNH GIỮA CÔNG CỤ MÃ NGUỒN MỞ VÀ THƯƠNG MẠI 18

BẢNG 2.1.BẢNG MỘT SỐ CÔNG CỤ PHÂN TÍCH TỆP TIN LOG MÁY CHỦ WEB 27

BẢNG 2.2 BẢNG CÁC MÃ LỖI CƠ BẢN 30

BẢNG 2.3.TÍNH TOÁN KẾT QUẢ KỊCH BẢN THEO CÁC YẾU TỐ 33

BẢNG 2.4 CHIẾN LƯỢC THỰC HIỆN KIỂM THỬ TẢI 41

Trang 13

BẢNG 2.5.BÁO CÁO THỜI GIAN PHẢN HỒI 46

BẢNG 2.6.BẢNG SO SÁNH THỜI GIAN PHẢN HỒI 46

BẢNG 3.1 MÔI TRƯỜNG THỰC HIỆN THỬ NGHIỆM KIỂM THỬ 53

BẢNG 3.2 BẢNG SO SÁNH HIỆU NĂNG CÁC KẾT QUẢ KIỂM THỬ 64

Trang 14

để tìm kiếm, khai thác, xử lý thông tin cũng rất đa dạng và phong phú Khi đó vấn đềtiếp nhận, khai thác, xử lý các nguồn thông tin một cách nhanh chóng, hiệu quả ngàycàng trở lên quan trọng và là mối quan tâm hàng đầu đối với mỗi tổ chức xã hội và đơn

vị sản xuất kinh doanh Vì vậy, một phần mềm ngoài đảm bảo chạy đúng các chứcnăng, yêu cầu của khách hàng còn rất cần tính ổn định khi có số lượng lớn người dùngtruy cập Tiến hành kiểm thử phần mềm nói chung và kiểm thử hiệu năng nói riêng làcông việc rất cần thiết đối với bất kỳ một doanh nghiệp sản xuất phần mềm nào Điều

đó sẽ giúp cho các doanh nghiệp kiểm tra được chất lượng của phần mềm một cách tối

ưu trước khi đưa đến người sử dụng

Xuất phát từ thực tế đó, đề tài luận văn “Kỹ thuật kiểm thử hiệu năng phần

mềm và ứng dụng” với mục đích tìm hiểu, nghiên cứu các vấn đề trong kiểm thử

hiệu năng như các khái niệm cơ bản của kiểm thử hiệu năng, các công cụ hỗ trợkiểm thử hiệu năng, các kỹ thuật sử dụng trong kiểm thử hiệu năng Trên cơ sở cácvấn đề đã nghiên cứu thực hiện thử nghiệm kiểm thử cho một phần mềm có sẵnbằng một công cụ kiểm thử, đưa ra báo cáo và phân tích kết quả kiểm thử

2 Mục tiêu và nhiệm vụ nghiên cứu

Luận văn tập trung nghiên cứu, tìm hiểu và giải quyết các vấn đề trong kiểmthử hiệu năng của phần mềm và ứng dụng, các kỹ thuật sử dụng trong kiểm thử hiệunăng phần mềm như: xác định Workload, xác định và thiết lập môi trường kiểm thử,lập kế hoạch kiểm thử, xây dựng kịch bản kiểm thử, thực hiện kiểm thử, xây dựngbáo cáo kết quả kiểm thử Trên cơ sở đó thực hiện thử nghiệm kiểm thử cho mộtphần mềm được chọn

Trang 15

3 Đối tượng và phạm vi nghiên cứu

Cơ sở lý thuyết kiểm thử hiệu năng, các kỹ thuật sử dụng trong kiểm thửhiệu năng phần mềm như: xác định Workload, thiết lập môi trường kiểm thử, lập kếhoạch kiểm thử, xây dựng kịch bản kiểm thử, thực hiện kiểm thử, xây dựng báo cáo

và phân tích kết quả kiểm thử

Tìm hiểu tính năng công cụ kiểm thử hiệu năng giúp kiểm thử tự động phầnmềm, ứng dụng

Lựa chọn một phần mềm có sẵn để thực hiện thử nghiệm kiểm thử trên cơ sở

kỹ thuật đã nghiên cứu trên đây

4 Ý nghĩa khoa học và thực tiễn của đề tài

Phần nghiên cứu lý thuyết của đề tài cung cấp cách nhìn tổng quan về kiểmthử hiệu năng, quy trình kiểm thử hiệu năng Kết quả nghiên cứu có thể làm tài liệutham khảo cho những người phát triển kiểm thử hiệu năng

Đề tài có mục tiêu giải quyết vấn đề thực tiễn là đề xuất quy trình kiểm thửhiệu năng thành một quy trình bắt buộc cần phải có trong các doanh nghiệp phầnmềm Việt Nam hiện nay nhằm đảm bảo chất lượng sản phẩm

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

Luận văn sử dụng phương pháp nghiên cứu thu thập, chọn lọc và tổng hợpcác tài liệu liên quan đến kiểm thử hiệu năng, kết hợp với triển khai thực hiện thửnghiệm kiểm thử để làm rõ nội dung lý thuyết đã nghiên cứu

6 Bố cục của luận văn

Bố cục của luận văn bao gồm các phần sau:

CHƯƠNG 1:TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Chương này sẽ giới thiệu tổng quan về kiểm thử phần mềm, các khái niệmtrong kiểm thử phần mềm nói chung và kiểm thử hiệu năng nói riêng, các hoạt độngtrong kiểm thử hiệu năng và các công cụ hỗ trợ kiểm thử hiệu năng

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

Trang 16

Trong chương này, luận văn tập trung trình bày các kỹ thuật và cũng là quytrình trong kiểm thử hiệu năng như: xác định workload, thiết lập môi trường kiểmthử, lập kế hoạch kiểm thử, xây dựng kịch bản kiểm thử, thực hiện kiểm thử, xâydựng báo cáo và phân tích kết quả kiểm thử.

CHƯƠNG 3: THỬ NGHIỆM KIỂM THỬ HIỆU NĂNG VỚI PHẦN MỀM ĐƯỢC CHỌN

Chương này sẽ trình bày các đặc điểm của phần mềm được lựa chọn thửnghiệm kiểm thử, công cụ kiểm thử hiệu năng sử dụng thử nghiệm kiểm thử cũngnhư quy trình các bước thử nghiệm kiểm thử dựa trên cơ sở lý thuyết đã trình bày.Kết quả tóm tắt của các trường hợp đã thử nghiệm và phân tích

KẾT LUẬN

- Trình bày các kết quả đạt được của luận văn

- Nêu phương hướng phát triển của đề tài trong tương lai

- Nêu các đề xuất, kiến nghị

TÀI LIỆU THAM KHẢO

Trình bày thông tin các danh mục làm tài liệu tham khảo liên quan đến luận văn

Trang 17

Chương 1

TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

Kiểm thử phần mềm là hoạt động khảo sát thực tiễn sản phẩm hay dịch vụphần mềm trong đúng môi trường chúng dự định sẽ được triển khai nhằm cung cấpcho người có lợi ích liên quan những thông tin về chất lượng của sản phẩm hay dịch

vụ phần mềm ấy Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếmkhuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ưu của phần mềm trongnhiều ngành khác nhau Kiểm thử phần mềm là một giai đoạn quan trọng trong quytrình phát triển một phần mềm (Hình 1.1)

Hình 1.1 Vòng đời phát triển hệ thống 1.1 CÁC KHÁI NIỆM CƠ BẢN

1.1.1.Kiểm thử phần mềm (Software Testing) [1], [2]

Kiểm thử phần mềm là tiến trình thực thi chương trình với mục đích tìm thấylỗi (Glen Myer) Theo định nghĩa của Glen Myers, kiểm thử mà không phát hiệnđược lỗi được coi là không thành công

Trong kiểm thử phần mềm chia ra các cấp độ kiểm thử sau: [2]

Hình 1.2 Các mức độ kiểm thử cơ bản của phần mềm [2]

Lập kế hoạch

Phân tích

Thiết kế

Mã hóa Kiểm thử

tích hợp các đơn vị (Integration testing)

Các nhóm

bộ phận Kiểm thử mức

hệ thống sau khi tích hợp (System testing)

Toàn bộ

hệ thống

Kiểm thử chấp nhận sản phẩm (Acceptance testing) Toàn bộ hệ thống nhìn

từ khách hàng

Trang 18

1.1.2.Kiểm thử đơn vị (Unit Testing)

Kiểm thử đơn vị là kiểm thử một thành phần nhỏ nhất của phần mềm nhưcác hàm (Function), thủ tục (Procedure), lớp (Class), hoặc phương thức (Method)…

Mục đích của kiểm thử đơn vị là bảo đảm thông tin được xử lý và xuất làchính xác, trong mối tương quan với dữ liệu nhập và chức năng của đơn vị

Kiểm thử đơn vị đòi hỏi phải chuẩn bị trước các tình huống (test case) hoặckịch bản (script), trong đó chỉ định rõ dữ liệu vào, các bước thực hiện và dữ liệumong chờ sẽ xuất ra Các test case và script này nên được giữ lại để tái sử dụng

1.1.3 Kiểm thử tích hợp (Integration Testing)

Là kiểm thử được thực hiện bằng cách tích hợp từng module vào hệ thống vàkiểm thử

Có 4 loại kiểm thử trong kiểm thử tích hợp: (Hình 1.3)

• Kiểm thử cấu trúc(Structure Testing): Kiểm thử nhằm bảo đảm các thànhphần bên trong của một chương trình chạy đúng, chú trọng đến hoạt độngcủa các thành phần cấu trúc nội tại của chương trình như các lệnh và nhánh

• Kiểm thử chức năng (Functional Testing): Kiểm thử chú trọng chức năng củachương trình theo yêu cầu kỹ thuật, không quan tâm đến cấu trúc bên trong

• Kiểm thử hiệu năng (Performance Testing): Kiểm thử việc vận hành của hệ thống

• Kiểm thử khả năng chịu tải (Stress Testing): Kiểm thử giới hạn của hệ thống

Hình 1.3 Sơ đồ kiểm thử tích hợp

Tiêu chí chấp nhận người dùng

Phần mềm đã

phát triển

Kế hoạch kiểm thử

Sơ đồ phát triển

Kiểm thử tích hợp

Báo cáo chấp nhận phát triển Kế hoạch Phần mềm tích

hợp

Trang 19

1.1.4.Kiểm thử hệ thống (System Testing)

Là kiểm thử nhằm xác minh toàn bộ các thành phần của hệ thống được tíchhợp có thỏa mãn yêu cầu đặt ra hay không

Sau khi thực hiện kiểm thử đơn vị và kiểm thử tích hợp để bảo đảm mọi đơn

vị và sự tương tác giữa chúng hoạt động chính xác Một hệ thống phần mềm đãđược hình thành cùng với các thành phần đã được kiểm thử đầy đủ Tại thời điểmnày, lập trình viên hoặc kiểm thử viên (tester) bắt đầu kiểm thử phần mềm như một

hệ thống hoàn chỉnh

Kiểm thử hệ thống kiểm thử cả các hành vi chức năng của phần mềm lẫn cácyêu cầu về chất lượng như độ tin cậy, tính tiện lợi khi sử dụng, hiệu năng và bảomật Mức kiểm thử này đặc biệt thích hợp cho việc phát hiện lỗi giao tiếp với phầnmềm hoặc phần cứng bên ngoài, chẳng hạn các lỗi “tắc nghẽn” (deadlock) hoặcchiếm dụng bộ nhớ

Trong kiểm thử hệ thống lại gồm nhiều loại kiểm thử khác nhau (hình1.4),phổ biến nhất gồm:

• Kiểm thử chức năng (Functional Testing): bảo đảm các hành vi của hệ thốngthỏa mãn đúng yêu cầu thiết kế

• Kiểm thử khả năng vận hành (Performance Testing): bảo đảm tối ưu việcphân bổ tài nguyên hệ thống nhằm đạt các chỉ tiêu như thời gian xử lý hayđáp ứng câu truy vấn…

• Kiểm thử tải hoặc khả năng chịu tải (Stress Testing hay Load Testing): bảo đảm

hệ thống vận hành đúng dưới áp lực cao (ví dụ nhiều người truy cập cùng lúc),các trạng thái tới hạn, các “điểm chết”, các tình huống bất thường…

• Kiểm thử cấu hình (Configuration Testing)

• Kiểm thử khả năng bảo mật (Security Testing): bảo đảm tính toàn vẹn, bảomật của dữ liệu và của hệ thống

• Kiểm thử khả năng phục hồi (Recovery Testing): bảo đảm hệ thống có khảnăng khôi phục trạng thái ổn định trước đó trong tình huống mất tài nguyênhoặc dữ liệu; đặc biệt quan trọng đối với các hệ thống giao dịch như ngânhàng trực tuyến

Trang 20

Hình 1.4 Các loại kiểm thử khác nhau trong kiểm thử hệ thống

1.1.5 Kiểm thử chấp nhận sản phẩm (Acceptance Testing)

Sau giai đoạn kiểm thử hệ thống là kiểm thử chấp nhận sản phẩm, được kháchhàng thực hiện (hoặc ủy quyền cho một nhóm thứ ba thực hiện) Mục đích của kiểmthử chấp nhận sản phẩm là để chứng minh phần mềm thỏa mãn tất cả yêu cầu củakhách hàng và khách hàng chấp nhận sản phẩm (và trả tiền thanh toán hợp đồng)

Kiểm thử chấp nhận sản phẩm thường thông qua hai loại kiểm thử là: kiểmthử Alpha và kiểm thử Beta Với kiểm thử Alpha, người dùng (tiềm năng) kiểm thửphần mềm ngay tại nơi phát triển phần mềm, lập trình viên sẽ ghi nhận các lỗi hoặcphản hồi, và lên kế hoạch sửa chữa Với kiểm thử Beta, phầm mềm sẽ được gửi tớicho người dùng (tiềm năng) để kiểm thử ngay trong môi trường thực, lỗi hoặc phảnhồi cũng sẽ gửi ngược lại cho lập trình viên để sửa chữa

Trong quá trình thực hiện không nhất thiết phải thực hiện tất cả các loại kiểmthử nêu trên Tùy theo yêu cầu và đặc trưng của từng hệ thống, tuỳ theo khả năng vàthời gian cho phép của dự án, khi lập kế hoạch, trưởng dự án sẽ quyết định áp dụngnhững loại kiểm thử nào

1.1.6 Kiểm thử hồi quy (Regression Testing)

Kiểm thử hồi quy không phải là một mức kiểm thử như các mức khác đã nói

ở trên Kiểm thử hồi quy kiểm thử lại phần mềm sau khi có một sự thay đổi xảy ra,

Hệ thống đã được tích hợp hoàn chỉnh

Các loại tài liệu yêu

cầu của khách hàng

Kiểm thử khả năng chịu tải

Kiểm thử khả năng bảo mật

Kiểm thử cấu hình

Kiểm thử khả năng vận hành

Kiểm thử khả năng phục hồi

Hệ thống đã sẵn sàng để khách hàng kiểm thử chấp nhận

Kiểm thử

chức năng

Kiểm thử đã hoàn thành

Kiểm thử mức hệ thống(System testing)

Dữ liệu

Tài liệu sử dụng

Trang 21

để bảo đảm phiên bản phần mềm mới thực hiện tốt các chức năng như phiên bản cũ

và sự thay đổi không gây ra lỗi mới trên những chức năng vốn đã làm việc tốt.Kiểm thử hồi quy có thể thực hiện tại mọi mức kiểm thử

1.1.7.Kiểm thử chức năng (Functional Testing)

Kiểm thử chức năng một phần mềm là kiểm thử được tiến hành trên một hệthống tích hợp đầy đủ, để đánh giá sự phù hợp của hệ thống với các yêu cầu đặc tảcủa nó Kiểm thử chức năng là một loại kiểm thử hộp đen, vì vậy nên không cầnkiến thức về thiết kế hoặc logic bên trong mã nguồn

Trong kiểm thử chức năng các test case của nó được dựa trên đặc tả của ứngdụng phần mềm/thành phần đang kiểm thử Các chức năng được kiểm thử bằngcách nhập vào các giá trị và kiểm tra kết quả đầu ra, và ít quan tâm đến cấu trúc bêntrong của ứng dụng

Kiểm thử chức năng thường bao gồm 5 bước cần thiết sau:

1 Xác định các chức năng mà phần mềm mong muốn sẽ thực hiện

2.Tạo ra các dữ liệu đầu vào dựa trên các tài liệu đặc tả kỹ thuật của các chức năng.3.Xác định kết quả đầu ra dựa trên các tài liệu đặc tả kỹ thuật của các chức năng

4 Thực hiện các trường hợp kiểm thử

5 So sánh kết quả thực tế và kết quả mong muốn

Hình 1.5 Sơ đồ kiểm thử chức năng

Trang 22

1.1.8 Kiểm thử hiệu năng (Performance Testing)

Là hoạt động thử nghiệm, đánh giá phần mềm, các thành phần hoặc phầncứng về sự tương thích của nó với mục tiêu kiểm thử hiệu năng Đó là loại kiểm thửvới mục đích xác định khả năng mở rộng của ứng dụng

Mục đích của kiểm thử hiệu năng ngoài việc tìm ra các thông số tiêu chuẩn

về hiệu năng như: thông lượng, thời gian phản hồi, các tài nguyên bị chiếm giữ …còn tìm ra điểm “thắt cổ chai” của phần mềm để từ đó có những cải tiến nhằm tăngkhả năng thực thi của phần mềm

Thực chất của kiểm thử hiệu năng là quá trình xác định tốc độ và hiệu quảcủa máy tính, mạng, phần mềm, chương trình hoặc thiết bị Quá trình này có thểliên quan đến các kiểm thử định lượng như đo thời gian phản hồi, thông lượng hệthống và việc sử dụng tài nguyên của máy chủ… hoặc các thuộc tính như độ tincậy, khả năng mở rộng và khả năng tương tác cũng có thể được đánh giá

Khác với các loại kiểm thử khác, kiểm thử hiệu năng xác nhận những yêucầu phi chức năng của hệ thống, nghĩa là đánh giá xem khả năng vận hành của phầnmềm ấy trên toàn bộ hệ thống như thế nào

Ví dụ: Thời gian để nạp hoàn chỉnh một trang web theo yêu cầu là tối đa 10s.Vậy, nếu kiểm thử hiệu năng cho thấy các trang được nạp trong vòng 10s tức là hệthống đạt yêu cầu về hiệu năng

Kiểm thử hiệu năng chỉ có giá trị khi hệ thống không còn sự chỉnh sửa về mãnguồn và kiểm thử chức năng cơ bản được hoàn thành

Khi tiến hành kiểm thử hiệu năng cần có quy trình thực hiện và nguyên tắclàm việc để đạt được mục tiêu cao nhất Dưới đây là các giai đoạn của vòng đờikiểm thử hiệu năng: [6]

Trang 23

Hình 1.6 Vòng đời kiểm thử hiệu năng [6]

Trong kiểm thử hiệu năng các khái niệm sau thường được sử dụng:

1.1.8.1.Thời gian phản hồi (Respone Time)

Là khái niệm dùng để chỉ thời gian phục vụ hoặc thời gian xử lý của máy chủ

để phục vụ một yêu cầu người dùng Thời gian phản hồi được tính từ thời điểmtrình duyệt web gửi yêu cầu đến máy chủ web đến khi người dùng yêu cầu nhậnđược các byte đầu tiên của phản hồi sau khi máy chủ xử lý Thời gian phản hồi baogồm thời gian xử lý máy chủ web + thời gian xử lý máy chủ ứng dụng+ thời gian

xử lý máy chủ cơ sở dữ liệu + độ trễ mạng

Thời gian phản hồi là thước đo cơ bản cần được kiểm thử để biết thời gian

xử lý của máy chủ đáp ứng các yêu cầu người dùng

1.1.8.2.Thông lượng (Throughput)

Là khái niệm dùng để chỉ lượng dữ liệu (các byte) được máy chủ chuyển giao

để phục vụ các yêu cầu của máy khách Đó là một chỉ số tốt về hiệu năng máy chủ vì

nó đề cập đến lượng công việc máy chủ hoàn thành Thông lượng cũng đề cập đến sốlượng các yêu cầu hoặc giao dịch mà máy chủ xử lý tại bất kỳ thời điểm nào

Lập kế

hoạch

kiểm thử

Xây dựng kịch bản

Thực hiện và phân tích kiểm thử

Báo cáo kiểm thử

Hiểu biết

hệ thống

Thiết lập môi trường

Chạy kiểm thử hiệu năng

Cung cấp

tài liệu

Tạo báo cáo

Trang 24

Ví dụ, thông lượng máy chủ có thể được thể hiện như: 2.5 Mbps hoặc 35lượt truy cập/giây hoặc 8 giao dịch/giây.

1.1.8.3.Việc sử dụng tài nguyên (Resource Utilization)

Là khái niệm chỉ việc theo dõi hiệu suất của các nguồn tài nguyên quan trọngnhư: CPU, Memory(RAM), Disk trên máy chủ, theo dõi tình hình sử dụng Network

1.1.8.4 Tải làm việc (Workload)

Là khái niệm dùng để chỉ tải người dùng được đưa ra bởi một ứng dụng webdưới sự truy cập trong thời gian thực tế của người dùng hoặc trong quá trình kiểmthử hiệu năng và cách thức người dùng được phân phối giữa các luồng giao dịchkhác nhau

Thông thường, đối với các trang web đã thực sự đi vào môi trường sản xuất,các tệp tin log của máy chủ web có thể được phân tích để tìm hiểu về tải làm việccủa trang web đó Đối với các trang web chưa được hoạt động, một mô hình tải làmviệc cần phải được phát triển dựa trên các cuộc thảo luận với các nhà phân tích, cácchuyên gia ứng dụng, Sẽ rất quan trọng khi biết được tải làm việc của ứng dụngtrước khi tiến hành kiểm thử hiệu năng Tiến hành kiểm thử hiệu năng cho một hệthống mà không phân tích đúng tải làm việc có thể dẫn đến kết quả sai lệch

1.1.8.5 Lượt truy cập (Hit)

Là khái niệm dùng để chỉ một yêu cầu về tài nguyên trên máy chủ web (yêucầu về một tệp tin hoặc hình ảnh)

Ví dụ, nếu một trang web có chứa 5 hình ảnh, lúc đó một người dùng truycập đến trang đó tạo ra 6 lượt truy cập trên máy chủ web (5 lượt truy cập để lấy mỗihình ảnh và 1 lượt truy cập để lấy trang web) Đối với một trang web, yêu cầu hiệunăng có thể được thể hiện trong thuật ngữ số lượt truy cập trên mỗi đơn vị thời gian

1.1.8.6 Người dùng ảo (Virtual User)

Là khái niệm chỉ người dùng giả lập, được tạo ra từ các công cụ kiểm thửhiệu năng để mô phỏng lưu lượng truy cập người dùng thực Một người dùng ảođược cấu hình trong công cụ kiểm thử hiệu năng để chạy kịch bản mô phỏng hành

vi người dùng thực

Trang 25

1.1.8.7.Thời gian suy nghĩ (Think Time)

Là khái niệm dùng để chỉ thời gian được thực hiện bởi người dùng để suynghĩ hoặc nhấp chuột vào bất kỳ liên kết hoặc các nút… của trang web trong khiđiều hướng qua trang web

Thời gian suy nghĩ là một tham số rất quan trọng cần phải được thiết lậptrong khi xây dựng kịch bản kiểm thử bằng việc sử dụng các công cụ kiểm thử hiệunăng Các nhà phân tích ứng dụng hoặc đội ngũ quản lý trang web hoặc thậm chíđôi khi khảo sát người dùng cuối có thể cung cấp một hình ảnh thực tế về các yêucầu thời gian suy nghĩ của một giao dịch

1.1.8.8.Kịch bản kiểm thử (Test Scenario)

Là khái niệm dùng để chỉ một giao dịch quan trọng hoặc một tiến trình côngviệc có lưu lượng cao được xác định cho kiểm thử hiệu năng Kịch bản kiểm thửtrong kiểm thử hiệu năng thường được tạo ra bằng các công cụ kiểm thử

1.2.TẦM QUAN TRỌNG CỦA KIỂM THỬ HIỆU NĂNG

Kiểm thử hiệu năng được thực hiện để xác định tốc độ, khả năng phân tải vàmức độ tin tưởng của phần mềm trong môi trường nhiều người dùng, có nhiều hoạtđộng khác nhau Việc thực hiện kiểm thử hiệu năng giúp kiểm thử viên biết đượccác thông số ngưỡng của phần mềm

Thực tế cho thấy các trang web hiện nay được phát triển rất rộng rãi Hầu hếtcác doanh nghiệp, tổ chức đều có trang web riêng Một trong những lợi ích điểnhình của các ứng dụng web là chúng cho phép nhiều người dùng truy cập đồng thời.Khi mà trung bình mỗi trang web có vài nghìn người truy cập mỗi ngày sẽ làm chovấn đề lưu thông trở lên quan trọng Nhiều người dùng có thể yêu cầu các dịch vụkhác nhau và truy cập đến các chức năng khác nhau cùng một lúc Vì vậy rất cầnthiết phải đánh giá khả năng hệ thống thực hiện các chức năng phức tạp trong điềukiện sử dụng bình thường và lúc cao điểm Kiểm thử hiệu năng là một phương pháp

Trang 26

để đánh giá khả năng chịu tải của hệ thống, đến một mức nào đó tải sẽ vượt quá khảnăng chịu đựng nguồn tài nguyên của hệ thống

Bên cạnh đó, cùng với thời gian và lưu lượng truy cập lớn, dữ liệu cũng pháttriển và có thể vượt ra khỏi giới hạn của nó Nếu không xử lý đúng cách dữ liệu này

sẽ làm cho trang web trở lên chậm chạp Khách hàng sẽ khó chấp nhận mỗi khi truycập và có thể họ sẽ không bao giờ quay trở lại trang web đó Uy tín và doanh thucủa doanh nghiệp sẽ bị giảm sút Thông qua kiểm thử hiệu năng đảm bảo rằng tắcnghẽn được xác định và loại bỏ trước khi ứng dụng đi vào môi trường sản xuất

Hiệu năng của ứng dụng có tác động đến chất lượng tổng thể của phầnmềm Sự cần thiết phải loại bỏ tắc nghẽn đã trở thành vấn đề lớn trong thế giớikinh doanh cạnh tranh Vì vậy kiểm thử hiệu năng là hoạt động cần thiết cho việcphát triển các giải pháp phần mềm tối ưu Kiểm thử hiệu năng giúp trả lời các câuhỏi dưới đây:

+Thời gian phản hồi của hệ thống trong điều kiện chịu tải mong đợi là gì?+Làm thế nào để hệ thống đáp ứng được trong điều kiện chịu tải khôngmong đợi?

+Hệ thống có khả năng mở rộng với tải người dùng cụ thể không?

+Môi trường nào cung cấp hiệu năng tốt nhất cho hệ thống?

+Hệ thống có hoạt động tốt sau khi thêm card NIC mới? Hệ thống sẽ xử lýtải người dùng tăng đột biến? Hoặc nó sẽ sụp đổ?

+Hệ thống có cần một máy chủ cơ sở dữ liệu chuyên dụng để đáp ứng cácmục tiêu hiệu năng?

Tóm lại duy trì sự tồn tại của một phần mềm và ứng dụng trên nền web làcông việc đáng quan tâm đối với mỗi doanh nghiệp Điều đó thể hiện năng lực kinhdoanh, doanh thu của mỗi đơn vị Một phần mềm mang tính thực thi cao phải đồngthời đáp ứng được các tiêu chí vận hành quan trọng là chức năng và hiệu năng Việccoi nhẹ hoặc không thực hiện kiểm thử hiệu năng có thể dẫn đến tình trạng phầnmềm không đáp ứng được yêu cầu hiệu năng khi đưa vào hoạt động thực tế Trongnhiều trường hợp phần mềm trở lên vô dụng mặc dù chức năng vẫn đúng Việc ápdụng kiểm thử hiệu năng hợp lý sẽ giúp cho việc tìm ra nơi phần mềm cần được cải

Trang 27

tiến ngay trong quá trình phát triển phần mềm

1.3 TÌNH HÌNH NGHIÊN CỨU HIỆN NAY TRONG VÀ NGOÀI NƯỚC

Ở nước ta trong thời gian qua, kiểm thử phần mềm và kiểm thử hiệu năngchưa được quan tâm đúng mức, nhiều tổ chức đã quyết định mua phần cứng dunglượng cao để giải quyết vấn đề hiệu năng Vài năm gần đây, nhiều tổ chức đang dầnnhận ra tầm quan trọng của kiểm thử hiệu năng thậm chí từ giai đoạn đầu của vòngđời phát triển hệ thống Bộ thông tin và truyền thông có công văn số 3228/BTTTT-VCL ngày 24 tháng 10 năm 2011 hướng dẫn kiểm thử phần mềm nội bộ trong đó có

kiểm thử hiệu năng phần mềm Tuy nhiên kiểm thử hiệu năng vẫn chưa được coi là

một nhiệm vụ chính trong các doanh nghiệp Thời gian và chi phí cho hoạt độngnày ở các doanh nghiệp còn hạn chế so với các giai đoạn khác của vòng đời pháttriển hệ thống Trong khi nước ta đang trong giai đoạn xây dựng một nghành côngnghiệp phần mềm thì kiểm thử phần mềm cũng như kiểm thử hiệu năng không thể

bị xem nhẹ trong quy trình phát triển phần mềm và công nghệ phần mềm

Hội nghị Quốc tế Kiểm thử phần mềm và kiểm thử tự động (VISTACON

2011) với chủ đề “Nâng cao những phương pháp thực hành trong kiểm thử phần mềm và tự động hóa” diễn ra trong 02 ngày 06-07/12/2011 tại khách sạn Sheraton,

TP HCM Sự kiện do tập đoàn LogiGear và MRD phối hợp tổ chức với nhiềuchuyên đề nhằm nâng cao chất lượng kiểm thử cho các doanh nghiệp

Trên thế giới công việc kiểm thử hiệu năng được phát triển tập trung ở cácnước như: Ấn Độ, Trung Quốc…và hiện tại đã có những công cụ hỗ trợ cho việcphát triển kiểm thử hiệu năng

1.4 CÁC HOẠT ĐỘNG TRONG KIỂM THỬ HIỆU NĂNG

Trong quá trình kiểm thử hiệu năng, cần tiến hành nhiều hoạt động khácnhau Theo Ramya Ramalinga Moorthy [6] các hoạt động sau đây được thực hiệnkhi kiểm thử hiệu năng:

Kế hoạch kiểm thử hiệu năng

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

Tạo kịch bản Thiết lập môi trường kiểm thử

Kiểm thử cơ bản/Kiểmthử điểm chuẩn

Trang 28

Hình 1.7.a Các hoạt động kiểm thử hiệu năng [6]

Ở một tài liệu khác [4], tác giả đã tổng kết các hoạt động của kiểm thử hiệunăng bao gồm:

Hình 1.7.b Các hoạt động kiểm thử hiệu năng [4]

1.Xác định môi trường kiểm thử 2.Xác định các tiêu chí hiệu năng 3.Lập kế hoạch và thiết kế kiểm thử 4.Cấu hình môi trường kiểm thử 5.Cài đặt thiết kế kiểm thử 6.Thực hiện kiểm thử 7.Phân tích, báo cáo và kiểm thử lại

Trang 29

1.4.1 Xác định môi trường kiểm thử

Xác định môi trường kiểm thử vật lý và môi trường sản xuất cũng như cáccông cụ và nguồn lực sẵn có cho các nhóm kiểm thử Để thiết kế kiểm thử và lập kếhoạch hiệu quả cần có một sự hiểu biết thấu đáo về toàn bộ môi trường kiểm thửngay từ đầu Trong một số trường hợp, quá trình này phải được xem xét lại định kỳtrong suốt vòng đời của dự án

Môi trường trong đó ứng dụng được kiểm thử hiệu năng gồm công cụ kiểmthử, phần cứng, phần mềm, cấu hình mạng Yếu tố then chốt trong việc xác địnhmôi trường kiểm thử là hiểu được những điểm tương đồng và khác biệt giữa môitrường kiểm thử và môi trường sản xuất Một số yếu tố quan trọng cần xem xéttrong việc xác định môi trường kiểm thử là:

+ Phần cứng: Cấu hình, phần cứng máy (bộ xử lý, RAM…)

+ Mạng: Kiến trúc mạng và định vị người dùng cuối, cấu hình hệ thống tên miền.

+ Công cụ kiểm thử: -Giới hạn của công cụ sinh tải

-Tác động môi trường của công cụ giám sát+ Phần mềm: Những phần mềm khác cài và chạy trong môi trường chia sẻhoặc ảo

1.4.2.Xác định các tiêu chí hiệu năng

Xác định các đặc tính hiệu năng mà người dùng và các bên liên quan quantâm Các thông số đó là:

- Thời gian phản hồi: (tính bằng giây): Thời gian máy chủ thực hiện để đápứng yêu cầu của khách

- Thông lượng: Khả năng xử lý của máy chủ về các yêu cầu xử lý trên mộtđơn vị thời gian, các giao dịch được xử lý trên một đơn vị thời gian hoặc sốbyte trả lại cho người dùng trên một đơn vị thời gian

- Việc sử dụng tài nguyên trên máy chủ: Theo dõi hiệu suất của các nguồn tàinguyên quan trọng như: CPU, Memory (RAM), Disk, Network

1.4.3 Lập kế hoạch và thiết kế kiểm thử

Xác định các kịch bản chính, xác định các dữ liệu kiểm thử

Trang 30

-Lập kế hoạch kiểm thử: Hiểu được mục đích và các biểu đồ chức năng

khác nhau của hệ thống, hiểu được mục tiêu kiểm thử hiệu năng của hệ thống,những yêu cầu hoặc mục tiêu hiệu năng cần phải được bắt nguồn dựa trên sự mongđợi của khách hàng

Kế hoạch kiểm thử hiệu năng bao gồm: mục tiêu kiểm thử hiệu năng, công

cụ kiểm thử hiệu năng sẽ được sử dụng, loại kiểm thử được tiến hành, các kịch bảncông việc bao gồm trong quá trình kiểm thử hiệu năng, các tiêu chuẩn được tiếnhành các kiểm thử, điều kiện vào/ra được tiến hành cho các kiểm thử cần phảiđược tạo ra bởi những kiểm thử viên và giao cho các bên liên quan

- Thiết kế kiểm thử: Thiết kế các trường hợp kiểm thử, các loại kiểm thử.

1.4.4 Cấu hình môi trường kiểm thử

Chuẩn bị môi trường kiểm thử, các công cụ, và các nguồn lực cần thiết để

thực hiện mỗi chiến lược kiểm thử

1.4.5 Cài đặt thiết kế kiểm thử

Phát triển các bài kiểm thử phù hợp với các thiết kế kiểm thử.

1.4.6 Thực hiện kiểm thử

Chạy và theo dõi các kiểm thử Xác nhận các kiểm thử, dữ liệu kiểm thử, và

thu thập kết quả Thực hiện xác nhận kiểm thử để phân tích trong khi theo dõi cáckiểm thử và môi trường kiểm thử

1.4.7 Phân tích kết quả, báo cáo và kiểm thử lại

Củng cố và chia sẻ dữ liệu kết quả Phân tích các dữ liệu cá nhân cũng như

cả nhóm Thực hiện các bài kiểm thử còn lại và thực hiện lại chúng khi cần thiết.Khi tất cả các giá trị số liệu trong giới hạn chấp nhận, không một thông số nào trong

số các ngưỡng quy định đã bị vi phạm, và tất cả các thông tin mong muốn đã đượcthu thập, thử nghiệm mà kịch bản xác định trên cấu hình cụ thể đã hoàn thành

1.5.CÁC CÔNG CỤ HỖ TRỢ KIỂM THỬ HIỆU NĂNG

Kiểm thử hiệu năng khó có thể hoàn thành một cách hiệu quả mà không sửdụng một công cụ tự động nào Vì phải tiến hành kiểm thử ứng dụng trên một sốlượng lớn người dùng và công việc lặp đi lặp lại là khá mệt mỏi nếu thực hiện một

Trang 31

cách thủ công Hiện nay trên thị trường có nhiều công cụ kiểm thử hiệu năng gồm

cả phần mềm thương mại và phần mềm mã nguồn mở Việc lựa chọn một công cụkiểm thử phù hợp cần được quyết định trong giai đoạn lập kế hoạch Thông thườngđối với tổ chức nhỏ, có hạn chế về ngân sách, công cụ mã nguồn mở sẽ là sự lựachọn của họ như JMeter, OpenSTA Đối với tổ chức có ứng dụng hiệu năng quantrọng, do kỳ vọng về tính chính xác cao và độ tin cậy về kết quả kiểm thử, thường

sử dụng các công cụ bản quyền trên thị trường như HP Load Runner, HPPerformance Center…

Dưới đây là bảng so sánh giữa công cụ kiểm thử hiệu năng mã nguồn mở vàcông cụ kiểm thử hiệu năng thương mại (Bảng 1.1)

Bảng 1.1 Bảng so sánh giữa công cụ mã nguồn mở và thương mại

1.5.1.Một số lưu ý cho việc lựa chọn công cụ kiểm thử chính xác

1.Xem xét công cụ kiểm thử hỗ trợ những giao thức nào Công cụ có hỗ trợcác ứng dụng web hay các ứng dụng clien- server không?

2 Kiểm tra xem công cụ đó có cung cấp trình soạn thảo để phát triển cáckịch bản kiểm thử?

3 Kiểm tra xem công cụ có cung cấp các tính năng để xác định các giao dịchduy nhất, cung cấp cho người dùng thời gian suy nghĩ, cung cấp các dữ liệu kiểm thử

4 Kiểm tra xem công cụ có tùy chọn để cấu hình các lựa chọn ramp up, ramp down

Trang 32

5 Kiểm tra xem công cụ có cung cấp việc giám sát các tài nguyên hệ thốngtrong quá trình kiểm thử.

6 Kiểm tra xem công cụ có cung cấp kết quả kiểm thử trong một định dạng

có thể đọc được (Chẳng hạn html hay định dạng văn bản)

7 Kiểm tra xem công cụ này cung cấp đủ thông tin về số lượt truy cập/giây,thông lượng (các giao dịch/giây và số byte/giây), số người dùng chạy/giây, theo dõi,giám sát tài nguyên hệ thống và các lỗi/giây

8 Các công cụ không nên tiêu thụ nhiều tài nguyên của máy khách dẫn đếncác vấn đề về tải

Các công cụ kiểm thử hiệu năng chỉ có thể cung cấp chi tiết về hiệu năngmáy chủ, nhưng còn rất cần có các kiểm thử viên để dịch chính xác và phân tíchnguyên nhân của các vấn đề, xác nhận tắc nghẽn bằng cách chạy lại các bài kiểmthử, cung cấp báo cáo, quan sát và giải thích ở định dạng người dùng dễ hiểu Mặc

dù các công cụ kiểm thử có nhiều tiến bộ chuyên môn, kiểm thử viên cần xử lýchính xác các khả năng để xác định các vấn đề hiệu năng của ứng dụng Đó chính làđiều làm nên thành công của kiểm thử hiệu năng

1.5.2.Giới thiệu một số công cụ kiểm thử hiệu năng phổ biến [6]

+ HP load Runner (bản quyền)

+ Radview’s Webload (bản quyền)

+ Compuware’s Qaload (bản quyền)

+Borland’s SilkPerformer (bản quyền)

+ Empirix’s e-Load (bản quyền)+ OpenSTA (miễn phí)

+ JMeter (miễn phí)+ Grinder (miễn phí)

1.5.2.1 HPLoadRunner

Đây là công cụ hỗ trợ một loạt các giao thức HTTP/HTTPS, SAP,PeopleSoft, Citrix, Oracle Apps, RTE, Winsock, COM/DCOM, SOAP, Tuxedo.Công cụ sử dụng ngôn ngữ TSL để tạo ra các kịch bản trong đó có cú pháp C vàcho phép bổ sung thư viện C Việc tạo kịch bản dễ dàng vì không yêu cầu bất kỳnền tảng lập trình nào Đối với bộ sinh tải, nó cung cấp tính năng kiểm soát nhiềuđại diện/bộ sinh tải và thu thập kết quả Nó cung cấp việc giám sát các máy chủ webkhác nhau, máy chủ ứng dụng và máy chủ cơ sở dữ liệu với một giao diện rất hấpdẫn dễ sử dụng Đồng thời công cụ này cung cấp nhiều đồ thị về số giao dịch/giây,

Trang 33

số truy cập mỗi giây, việc sử dụng tài nguyên máy chủ, hiệu năng theo tải, thônglượng máy chủ, và cũng cung cấp tính năng tùy chỉnh các đồ thị và xuất sang tệphtml hoặc các định dạng văn bản Nó cũng cung cấp một công cụ phân tích với việctạo ra đồ thị động Mặc dù nó là công cụ rất phổ biến trên thị trường với rộng rãi đốitượng người dùng, tuy nhiên chi phí rất cao của công cụ này tạo ra một rào cản choviệc sử dụng công cụ trong tất cả các tổ chức.

1.5.2.2.OpenSTA

Là một công cụ mã nguồn mở chỉ hỗ trợ chỉ các giao thức HTTP/HTTPS Nó

sử dụng ngôn ngữ SCL để tạo ra các kịch bản Tính dễ sử dụng của công cụ nàyđược đánh giá cao Đối với việc sinh tải, nó cung cấp tính năng kiểm soát nhiều bộsinh tải và thu thập kết quả trên bộ điều khiển duy nhất Công cụ này không cungcấp hỗ trợ sẵn có cho việc che giấu địa chỉ IP, mô phỏng mạng WAN/LAN và môphỏng băng thông mạng Phân tích kết quả sẵn có của công cụ này là rất hạn chế và

nó cung cấp các biểu đồ và đồ thị đơn giản có thể được xuất sang MS excel Người

sử dụng cần sử dụng các macro và các nguồn bên ngoài để tạo ra các đồ thị tùychỉnh Điểm hạn chế nữa của OpenSTA là chỉ hoạt động trên môi trường Windows

1.5.2.3.JMeter

JMeter là một công cụ mã nguồn mở được viết bằng Java và hoạt động tốttrên Windows và Linux/Solaris Công cụ này hỗ trợ HTTP, FTP, JNDI và JDBC,mặc dù HTTP đến nay là một phần trưởng thành nhất của JMeter Nó cung cấp tínhnăng giao diện người dùng dễ dàng dựa trên các đặc điểm phát triển kịch bản và cáctính năng quản lý kịch bản, nhưng sự ổn định của công cụ này là hạn chế lớn trongJMeter Nó cung cấp việc giám sát giao dịch rất hạn chế Vì vậy, kịch bản được yêucầu phải đồng bộ hóa dữ liệu kiểm thử với các dữ liệu giám sát hiệu năng bênngoài Đối với việc sinh tải, JMeter cung cấp các tính năng để chạy thử nghiệm chobất kỳ số lượng người dùng nào và điều khiển đa tải JMeter không thu thập bất kỳ

số liệu hiệu năng nào phía máy chủ Nhưng nó có thể tạo ra một số đồ thị phía máykhách trong quá trình kiểm thử Không có các tính năng được cung cấp để phântích kết quả kiểm thử và các tập tin log cần được phân tích để xác định hiệu năng hệ

Trang 34

thống Các tính năng như che dấu địa chỉ IP, mô phỏng mạng WAN/LAN và môphỏng băng thông mạng không được hỗ trợ Đây là công cụ chuyên dùng để kiểmtra hiệu năng của các ứng dụng web, JMeter có thể hoạt động trên các hệ điều hành

có hỗ trợ JVM (Java Virtual Machine) phiên bản 1.4 trở lên JMeter không đòi hỏikiến thức lập trình chuyên sâu để sử dụng Hiện nay ứng dụng này đã được cải tiến

để có thể đo lường hiệu năng hoạt động của các đối tượng và giao thức sau: HTTP,HTTPS, SOAP, JDBC, LDAP, JMS, POP3

1.5.2.4 Grinder

Là một công cụ miễn phí được phát triển dựa trên Swing, Java và Jython, chỉ

hỗ trợ giao thức HTTP Nó sử dụng ngôn ngữ Jython cho việc tạo ra các kịch bản

và cung cấp tính năng quản lý kịch bản tốt Công cụ này chủ yếu là mục tiêu chocác nhà phát triển vì nó cần nhiều sự hiểu biết về lập trình hướng đối tượng, do đó,xây dựng kịch bản cần đáng kể các kỹ năng lập trình Nó cung cấp việc giám sátgiao dịch rất hạn chế Đối với việc sinh tải, cung cấp các tính năng để chạy kiểm thửcho bất kỳ số lượng người sử dụng, nhưng các kịch bản cần được triển khai bằngtay đối với mỗi đại diện tải Không có các tính năng được cung cấp để phân tích kếtquả kiểm thử Không có tính năng lập lịch trình kiểm thử hoặc thực hiện dòng lệnhtrong công cụ và nó không hỗ trợ che dấu địa chỉ IP, mô phỏng mạng WAN/LAN

và mô phỏng băng thông mạng Công cụ này không cung cấp các tùy chọn tự độngtăng hoặc giảm tải người dùng trong khi kiểm thử đang chạy Nhìn chung Grinder

có nhiều điểm tương đồng với JMeter là một ứng dụng Java hoạt động trên nhiều hệđiều hành, thường được sử dụng để kiểm thử hiệu năng web, cơ sở dữ liệu thôngqua JDBC và một số giao thức khác Điều khác biệt là Grinder đòi hỏi kiểm thửviên phải có khả năng sử dụng ngôn ngữ Jython để có thể viết, chỉnh sửa kịch bảnkiểm thử theo ý mình và hệ thống báo cáo kết quả kiểm thử không được linh độngnhư JMeter

Trang 35

1.6 KẾT LUẬN CHƯƠNG 1

Kiểm thử hiệu năng là một nhiệm vụ không thể thiếu trong quy trình pháttriển phần mềm cũng như công nghệ phần mềm.Việc tiến hành kiểm thử hiệu năngcần thực hiện các hoạt động cụ thể như: xác định môi trường kiểm thử, xác định cáctiêu chí hiệu năng, lập kế hoạch kiểm thử và thiết kế kiểm thử, cấu hình môi trườngkiểm thử, cài đặt thiết kế kiểm thử, thực hiện kiểm thử và phân tích báo cáo kết quảkiểm thử Để thực hiện kiểm thử hiệu năng hiệu quả với số lượng người dùng lớnrất cần có sự hỗ trợ của các công cụ kiểm thử hiệu năng Việc lựa chọn công cụkiểm thử hiệu năng sẽ dựa trên đặc điểm của công cụ, nguồn lực tài chính và conngười trong mỗi doanh nghiệp Nhưng dù công cụ kiểm thử có tiến bộ và hiện đạibao nhiêu cũng rất cần những kiểm thử viên hiệu năng có trình độ chuyên môn tốt

để thực hiện, phân tích, báo cáo chính xác, dễ hiểu và có khả năng hiểu được mongmuốn của khách hàng

Những khái niệm và kiến thức cơ sở về kiểm thử hiệu năng đã được trìnhbày trong chương 1 sẽ được thực hiện đầy đủ, chi tiết trong các kỹ thuật kiểm thửhiệu năng của chương 2

Trang 36

2.1 XÁC ĐỊNH WORKLOAD

2.1.1 Workload là gì?

Workload (tải làm việc) liên quan đến tải người dùng được tạo ra trên máychủ bằng sự truy cập thời gian thực của người dùng hoặc trong các kiểm thử hiệunăng Theo như G.Kotis, "Workload có thể được định nghĩa là tập hợp các thiết lậpđầu vào (các chương trình, lệnh, ) từ môi trường của người sử dụng tới hệ thống

Ví dụ, đối với một thiết bị đầu cuối UNIX, cách thức người dùng đưa tậphợp các lệnh vào hệ thống trong thiết bị đầu cuối là workload

Workload mô tả lưu lượng truyền tin trong một hệ thống Việc xác địnhworkload ảnh hưởng rất lớn tới kết quả việc nghiên cứu hiệu năng, xác địnhworkload sai sẽ dẫn đến kết luận sai

Workload có thể tự nhiên hoặc giả lập Workload tự nhiên hoặc workloadthực tế là tải trong môi trường sản xuất thực tế Còn workload giả lập bắt chước cáchành vi của workload tự nhiên

Workload được chọn để thực hiện kiểm thử nên giống với mô hình workloadthực của các ứng dụng web Nếu có nhiều sai lệch giữa workload kiểm thử vàworkload hệ thống sản xuất thì sẽ đưa ra kết quả kiểm thử không chính xác về hiệunăng của hệ thống trong môi trường sản xuất

2.1.2 Các loại workload [6]

Phân tích và thiết kế workload của một hệ thống là việc làm rất quan trọng.Nếu workload của máy chủ không được phân tích và hiểu đúng, khi đó kiểm thửhiệu năng có thể tạo ra các tải khác nhau trên máy chủ dẫn đến các kiểm thử không

Trang 37

thực tế Trong khi tiến hành kiểm thử hiệu năng các workload sau đây có thể được

sử dụng

2.1.2.1 Workload ổn định

Đại diện cho tải người dùng không đổi đồng thời truy cập vào hệ thống Sốlượng người dùng truy cập vào ứng dụng tại bất kỳ thời điểm nào là hằng số.Workload này không đại diện cho mô hình thời gian thực của các ứng dụng web vàđược sử dụng rộng rãi để thực hiện kiểm thử tính ổn định (có thể kéo dài trong mộtkhoảng thời gian dài tới 32 giờ)

Thời gian

Số người dùng

Trang 38

Hình 2.2 Workload lệch

2.1.2.3 Workload đột biến

Workload đại diện cho tải người dùng cao đột ngột truy cập vào hệ thống.Thử nghiệm này thường được thực hiện để kiểm thử hiệu năng hệ thống trong điềukiện tải đột ngột Đôi khi trong kiểm thử khả năng chịu tải, workload đột biến sẽđược sử dụng để xác định hiệu năng hệ thống chấm dứt đột ngột

Hình 2.3 Workload đột biến

2.1.2.4 Workload đặc trưng thời gian

Workload đặc trưng thời gian rất khó để đạt được Thông thường, khi ngườidùng truy cập các ứng dụng web theo phân phối địa lý, tại một thời điểm ngườidùng truy cập vào ứng dụng từ các vùng, miền khác nhau với các múi giờ khácnhau Chỉ có một thời gian rất ngắn một hay hai giờ tải trên máy chủ sẽ giảm vìkhông bị chồng chéo về múi giờ Đối với các ứng dụng như vậy, mẫu người dùng sẽ

có mức lặp đi lặp lại cao và thấp suốt trong ngày và sẽ quá tải tại thời điểm chồngchéo múi giờ Để mô phỏng những điều kiện như vậy, workload đặc trưng thời gian

có thể được sử dụng

Thời gian

86420

Trang 39

Hình 2.4 Workload đặc trưng thời gian 2.1.3.Các bước xác định workload

2.1.3.1.Thiết kế các trường hợp sử dụng Các trường hợp sử dụng giúp xác định

các hoạt động của Workload

Đối với một workload, số lượng các hoạt động phải được giữ ở mức nhỏ

(6-8 Không cần thiết phải mô phỏng tất cả các trường hợp sử dụng, thay vào đó tậptrung vào các trường hợp sử dụng mà có nhiều khả năng xảy ra

2.1.3.2 Xác định các thông số

Trong bước này, ta xác định những thông số cần đo Các thông số điển hìnhbao gồm thông lượng, thời gian phản hồi hoặc số lượng người dùng Tuy nhiên, tùythuộc vào workload, các số liệu khác như bộ vi xử lý hoặc việc sử dụng bộ nhớ…

+Thông lượng

Số đo thông lượng đo bao nhiêu giao dịch có thể được xử lý bởi phần mềmkiểm thử trong một đơn vị thời gian Số liệu thông lượng có thể được tính toán bằng

sử dụng một số phương pháp:

Đối với một workload đơn giản điều khiển tất cả các giao dịch, thông lượng (X),

có thể được tính bằng cách tính một số (N) của tất cả các giao dịch thực hiện trong mộtthời gian nhất định (T) như vậy X = N / T Đây là phương pháp đơn giản nhất

Nếu có nhiều workload kết hợp, một trung bình cộng của thông lượng củatất cả các workload có thể được sử dụng nếu các thông lượng của các tải khác nhau

có liên quan

+Thời gian phản hồi

Trong hầu hết các trường hợp, thước đo thông lượng không có ý nghĩa nếukhông có một yêu cầu hoặc số liệu thời gian phản hồi tương ứng

Số đo thời gian phản hồi thường được xác định theo trung bình (trung bình)

và 90 phần trăm Các yêu cầu về thời gian phản hồi có thể được hoàn thành sau khiworkload được xây dựng và mẫu chạy thực hiện

2.1.3.3 Thiết kế workload

Đây là bước quan trọng nhất trong xác định workload Sự liên quan của

Trang 40

workload sẽ phụ thuộc chặt chẽ vào cách nó mô phỏng tải ứng dụng trong môitrường sản xuất như thế nào.

2.1.3.4 Xác định quy tắc mở rộng

Các workload phức tạp cần một cách thức mở rộng workload phụ thuộc phầncứng thực tế phát triển Thông thường mở rộng workload được thực hiện bằng cáchtăng hoặc giảm số người dùng mô phỏng Mặc dù điều này làm cho workload trênSUT thay đổi

2.1.3.5 Thiết kế bộ sinh workload

Bộ sinh workload thực hiện sinh tải và theo dõi số liệu hiệu năng khác nhaunhư thời gian phản hồi, thời gian suy nghĩ và thông lượng Một số công cụ có sẵn

để tự động sinh tải

Ngoài ra có thể xác định chính xác workload trên hệ thống trong nhữngkhoảng thời gian khác nhau bằng cách phân tích các tệp tin log của máy chủ webnhư máy chủ IIS hoặc Apache cung cấp các thông tin về hành vi của khách Việcphân tích có thể sử dụng rất nhiều công cụ Bảng 2.1 cung cấp một vài công cụ cóthể sử dụng:

Bảng 2.1.Bảng một số công cụ phân tích tệp tin log máy chủ web

1 Analog Analog http:/ / www an a l o g cx /d o w n l oad ht m l.

Latest Version : 6.0

OS Supported : Windows, Mac

Free (Open Source)

2 Webalizer Mrunix http:/ / www m r un i x net / we b a l i z e r /

Latest Version : 2.0.1-10

OS Supported : Solaris, Linux , Mac, OS/2, Unix

Free (Open Source)

3 Summary Summary.Net http:/ / www s u m m a r y n et/ do wn l o ad ht m l

Latest Version : 3.0.2

OS Supported : Windows, Macintosh OS X , Linux X86 , Free BSD

Commercial (30 days trail version)

4 WebTrends WebTrends

Corp

http : / / ww w webt r e nd s c om Latest Version : 8.0

OS Supported : Windows

Commercial (15 days trail version)

5 AWStats AWStats http:/ /a w s tat s s o u rc e f o r ge.net/ ? Free (Open

Ngày đăng: 16/04/2017, 17:40

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Thạc Bình Cường, Nguyễn Đức Mận, Kiểm thử và đảm bảo chất lượng phần mềm, Nhà xuất bản Bách Khoa, Hà Nội, 2011.Tiếng Anh Sách, tạp chí
Tiêu đề: Kiểm thử và đảm bảo chất lượng phầnmềm
Nhà XB: Nhà xuất bản Bách Khoa
[3] Emily H.Halili, Apache JMeter, Packt Publishing Ltd, 2008 Sách, tạp chí
Tiêu đề: Apache JMeter
[4] Meier J.D., Carlos Farre, Prashant Bansode, Scott Barber, and Dennis Rea, Performance Testing Guidance for Web Application, Microsoft Corporation, 2007 Sách, tạp chí
Tiêu đề: Performance Testing Guidance for Web Application
[5] Molyneaux Ian, The Art of Application Performance Testing, O’Reilly Media, Inc., 2009 Sách, tạp chí
Tiêu đề: The Art of Application Performance Testing
[6] Ramya Ramalinga Moorthy, Software Performance Testing Handbook - A Comprehensive Guide for Begineers, Indian, 2008 Sách, tạp chí
Tiêu đề: Software Performance Testing Handbook - AComprehensive Guide for Begineers

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w