1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

81 414 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 81
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

Trang 2

Thái Nguyên - 2013

ĐẠ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

Thái Nguyên - 2013

Trang 4

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ọc củ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 5

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 đạt những những kiến thức và kinh nghiệm quý báu cho chúng em trong thời gian họ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ọc CK10C, 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 6

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 7

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 31

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 8

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 46

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

CHƯƠNG 3 48

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

3.1 MỞ ĐẦU 48

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: 60

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

Trang 9

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

Trang 10

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 11

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 24

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

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

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 12

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 13

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 14

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

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Ử 63

Trang 15

để 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ày cà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ức nă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ùng truy 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ác vấn đề đã nghiên cứu thực hiện thử nghiệm kiểm thử cho một phần mềm có sẵn bằ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ểm thử 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ệu nă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ựng bá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ột phần mềm được chọn

Trang 16

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ần mề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ểm thử 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ệu tham 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ần mề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ợp cá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ệm trong 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 động trong 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

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à quy trình trong kiểm thử hiệu năng như: xác định workload, thiết lập môi trường kiểm

Trang 17

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ử.

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ũng như 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 18

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ấp cho 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ếm khuyế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 trong nhiều ngành khác nhau Kiểm thử phần mềm là một giai đoạn quan trọng trong quy trì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ấy lỗ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 19

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ặc kịch bản (script), trong đó chỉ định rõ dữ liệu vào, các bước thực hiện và dữ liệu mong 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ành phần bên trong của một chương trình chạy đúng, chú trọng đến hoạt động củ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ủa chươ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 20

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ích hợ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ểm nà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ác yê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ảo mậ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ần mề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ặc chiế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ống thỏ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ệc phâ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ảo mậ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ên hoặc dữ liệu; đặc biệt quan trọng đối với các hệ thống giao dịch như ngân hàng trực tuyến

Trang 21

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ách hà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ểm thử 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ủa khá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ểm thử 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ặc phả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ới cho người dùng (tiềm năng) để kiểm thử ngay trong môi trường thực, lỗi hoặc phản hồ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ểm thử 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ụng nhữ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 22

để 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ần kiế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 ứng dụng phần mềm/thành phần đang kiểm thử Các chức năng được kiểm thử bằng cá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ên trong 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 23

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ầ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

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ăng khả 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ư độ tin cậ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êu cầ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ần mề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ắc là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 đời kiểm thử hiệu năng: [6]

Trang 24

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ểm trì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 bao gồ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 25

Ví dụ, thông lượng máy chủ có thể được thể hiện như: 2.5 Mbps hoặc 35 lượ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ọng như: 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 web dướ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ểm thử 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ịch khá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ệc của trang web đó Đối với các trang web chưa được hoạt động, một mô hình tải làm việ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ác chuyê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ụng trướ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êu cầ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 truy cậ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ỗi hì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ệu nă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 26

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 để suy nghĩ 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ập trong 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ệu nă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êu cầ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ông việ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 được cá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ết các doanh nghiệp, tổ chức đều có trang web riêng Một trong những lợi ích điển hì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 cho vấ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ần thiế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ều kiệ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 27

để đá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át triể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 truy cập và có thể họ sẽ không bao giờ quay trở lại trang web đó Uy tín và doanh thu củ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ắc nghẽ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ần mề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ới kinh doanh cạnh tranh Vì vậy kiểm thử hiệu năng là hoạt động cần thiết cho việc phá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âu hỏ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ông mong đợ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ác mụ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 kinh doanh, doanh thu của mỗi đơn vị Một phần mềm mang tính thực thi cao phải đồng thờ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ệc coi 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ần mềm không đáp ứng được yêu cầu hiệu năng khi đưa vào hoạt động thực tế Trong nhiề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 áp dụ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 28

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ăng chưa được quan tâm đúng mức, nhiều tổ chức đã quyết định mua phần cứng dung lượ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ần nhậ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 động nà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át triển hệ thống Trong khi nước ta đang trong giai đoạn xây dựng một nghành công nghiệ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ều chuyê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ác nước như: Ấn Độ, Trung Quốc…và hiện tại đã có những công cụ hỗ trợ cho việc phá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ác nhau Theo Ramya Ramalinga Moorthy [6] các hoạt động sau đây được thực hiện khi 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 29

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ệu nă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 30

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ác cô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ểm thử, 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 định mô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ôi trườ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ét trong 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 quan tâ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ài nguyê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 31

-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ản cô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ến hà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ác kiể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 đã đượ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

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 32

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ựa chọn của họ như JMeter, OpenSTA Đối với tổ chức có ứng dụng hiệu năng quan trọ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, HP Performance 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ác kị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ịch duy 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 33

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ống trong 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 đến cá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ăng má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ích nguyê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ểm thử, 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ủ web khá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ấp dẫ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 34

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ông lượ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ệp html 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ệc tạ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 đối tượ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 cho việ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 cung cấ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ùy chỉ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ốt trê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ính nă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ác tí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 trong JMeter 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êu cầ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ên ngoài Đối với việc sinh tải, JMeter cung cấp các tính năng để chạy thử nghiệm cho bấ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áy khách trong quá trình kiểm thử Không có các tính năng được cung cấp để phân tí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 35

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ểm tra 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ỏi kiế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 cho cá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át giao 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ằng tay đố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ết quả 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ệnh trong 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ự động tă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ông qua 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ản kiểm thử theo ý mình và hệ thống báo cáo kết quả kiểm thử không được linh động như JMeter

Trang 36

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át triể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ăng cầ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ác tiê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ường kiể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ớn rấ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à con người trong mỗi doanh nghiệp Nhưng dù công cụ kiểm thử có tiến bộ và hiện đại bao 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 mong muố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ình bà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 37

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áy chủ 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ệu nă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ập hợ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 định workload ảnh hưởng rất lớn tới kết quả việc nghiên cứu hiệu năng, xác định workload 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 workload thự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ác hà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 workload thự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ệu nă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 38

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ột khoảng thời gian dài tới 32 giờ)

Thời gian

Số người dùng

Trang 39

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ều kiệ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ười dù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ười dù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ác nhau 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ồng chéo múi giờ Để mô phỏng những điều kiện như vậy, workload đặc trưng thời gian

Trang 40

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ập trung 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ình bao 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ùy thuộ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ềm kiể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ột thờ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ủa tấ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ếu khô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 khi workload đượ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 workload sẽ phụ thuộc chặt chẽ vào cách nó mô phỏng tải ứng dụng trong môi trường sản xuất như thế nào

Ngày đăng: 12/12/2016, 16:44

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Nguyễn Văn Vỵ, Nguyễn Việt Hà, Giáo trình kỹ nghệ phần mềm, Nhà xuất bản Đại học Quốc Gia Hà Nội, 2008 Sách, tạp chí
Tiêu đề: Giáo trình kỹ nghệ phần mềm
Nhà XB: Nhà xuất bản Đại học Quốc Gia Hà Nội
[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ần mề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 - A Comprehensive Guide for Begineers

HÌNH ẢNH LIÊN QUAN

Hình 1.3. Sơ đồ kiểm thử tích hợp - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 1.3. Sơ đồ kiểm thử tích hợp (Trang 19)
Hình 1.4. Các loại kiểm thử khác nhau trong kiểm thử hệ thống - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 1.4. Các loại kiểm thử khác nhau trong kiểm thử hệ thống (Trang 21)
Hình 1.5. Sơ đồ kiểm thử chức năng - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 1.5. Sơ đồ kiểm thử chức năng (Trang 22)
Hình 1.6. Vòng đời kiểm thử hiệu năng [6] - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 1.6. Vòng đời kiểm thử hiệu năng [6] (Trang 24)
Hình 2.7. Tải người dùng và thông lượng hệ thống - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 2.7. Tải người dùng và thông lượng hệ thống (Trang 57)
Bảng 2.6.Bảng so sánh thời gian phản hồi - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Bảng 2.6. Bảng so sánh thời gian phản hồi (Trang 60)
Hình 3.1.Giao diện ứng dụng thử nghiệm kiểm thử - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.1. Giao diện ứng dụng thử nghiệm kiểm thử (Trang 63)
Hình 3.5. Kịch bản kiểm thử của giao dịch HTTT (1 người dùng) - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.5. Kịch bản kiểm thử của giao dịch HTTT (1 người dùng) (Trang 70)
Hình 3.7. Kịch bản kiểm thử của giao dịch HTTT(300 người dùng) - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.7. Kịch bản kiểm thử của giao dịch HTTT(300 người dùng) (Trang 71)
Hình 3.11.Giao diện bảng kết quả kiểm thử giao dịch HTTT (300 người dùng) - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.11. Giao diện bảng kết quả kiểm thử giao dịch HTTT (300 người dùng) (Trang 73)
Hình 3.12. Giao diện kết quả kiểm thử của giao dịch HTTT (300 người dùng) - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.12. Giao diện kết quả kiểm thử của giao dịch HTTT (300 người dùng) (Trang 73)
Hình 3.19. Giao diện kết quả kiểm thử  của giao dịch HTTT (1600 người dùng) - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.19. Giao diện kết quả kiểm thử của giao dịch HTTT (1600 người dùng) (Trang 76)
Hình 3.20. Đồ thị kết quả kiểm thử của giao dịch HTTT (1600 người dùng) - Kỹ thuật kiểm thử hiệu năng phần mềm và ứng dụng
Hình 3.20. Đồ thị kết quả kiểm thử của giao dịch HTTT (1600 người dùng) (Trang 77)

TỪ KHÓA LIÊN QUAN

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