Tải bản đầy đủ (.pdf) (79 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.3 MB, 79 trang )

..

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

PHẠM THỊ TÚ

KỸ THUẬT KIỂM THỬ HIỆU NĂNG
PHẦN MỀM VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái Ngun - 2013
Số hóa bởi trung tâm học liệu

/>

ii

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

PHẠM THỊ TÚ

KỸ THUẬT KIỂM THỬ HIỆU NĂNG
PHẦN MỀM VÀ ỨNG DỤNG
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: 60.48.01

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH


Ngƣời hƣớng dẫn khoa học: PGS.TS ĐẶNG VĂN ĐỨC

Thái Nguyên - 2013
Số hóa bởi trung tâm học liệu

/>

i

LỜI CAM ĐOAN
Tôi xin cam đoan, kết quả của luận văn hồn tồ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 hồn tồn chịu trách nhiệm về tính pháp lý q 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ú

Số hóa bởi trung tâm học liệu

/>

ii

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ú

Số hóa bởi trung tâm học liệu

/>

iii

MỤC LỤC
LỜI CAM ĐOAN ..................................................................................................... i
LỜI CẢM ƠN ......................................................................................................... ii
MỤC LỤC .............................................................................................................iii
DANH MỤC CÁC TỪ TIẾNG ANH VÀ VIẾT TẮT ............................................ vi
DANH MỤC CÁC HÌNH VẼ ............................................................................... vii
DANH MỤC CÁC BẢNG BIỂU ........................................................................... ix
MỞ ĐẦU ................................................................................................................ 1
CHƢƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM ............................... 4
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.5. Kiểm thử chấp nhận sản phẩm (Acceptance Testing) ................................. 7
1.1.6. Kiểm thử hồi quy (Regression Testing) ...................................................... 7

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À NGỒ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
1.4.5. Cài đặt thiết kế kiểm thử .......................................................................... 17
Số hóa bởi trung tâm học liệu

/>

iv

1.4.6. Thực hiện 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
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: CÁC KỸ THUẬT SỬ DỤNG TRONG KIỂM THỬ 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
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: THỬ NGHIỆM KIỂM THỬ HIỆU NĂNG VỚI PHẦN MỀM
ĐƢỢC CHỌN ...................................................................................................... 49
Số hóa bởi trung tâm học liệu

/>

v

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
3.4. XÁC ĐỊNH WORKLOAD ............................................................................. 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
3.10.KẾT LUẬN CHƢƠNG 3 .............................................................................. 65
KẾT LUẬN .......................................................................................................... 66
DANH MỤC TÀI LIỆU THAM KHẢO ............................................................ 67

Số hóa bởi trung tâm học liệu

/>

vi

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

Viết tắt

Tiếng Anh

Nghĩa

1.

GV

Giáo viên

2.


HSSV

3.

ND

4.

QTHT

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


8.

SPEC

Học sinh sinh viên
Ngƣời dùng
Quản trị hệ thống

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

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

Evalution Corporation
9.
10.

SUT

Systems Under Test
Workload

Số hóa bởi trung tâm học liệu

Hệ thống kiểm thử
Tải làm việc

/>


vii

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
3.2.Giao diện màn hình khi khởi động JMeter ............................................... 51
Hình 3.3.Các thành phần của JMeter ..................................................................... 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
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
Số hóa bởi trung tâm học liệu

/>

viii

Hình 3.13. Đồ thị kết quả kiểm thử của giao dịch HTTT(300 ngƣời dùng) ............ 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
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

Số hóa bởi trung tâm học liệu

/>

ix

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 tố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

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

Số hóa bởi trung tâm học liệu

/>


1

MỞ ĐẦU
1. Lý do chọn đề tài
Những năm gần đây, với sự phát triển mạnh mẽ của Công nghệ thông tin, mạng
máy tính và Internet đã giúp cho các phần mềm và ứng dụng web ngày càng phổ biến.
Ở khắp mọi nơi, trong mọi loại hình doanh nghiệp từ nhà máy, xí nghiệp sản xuất, đến
các trƣờng học, ngân hàng hay siêu thị… các ứng dụng web trở lên thật gần gũi và
quen thuộc với đông đảo đối tƣợng ngƣời dùng. Nhu cầu truy cập vào các ứng dụng đó
để 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, 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.
Số hóa bởi trung tâm học liệu

/>

2

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
Số hóa bởi trung tâm học liệu

/>

3

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.

Số hóa bởi trung tâm học liệu

/>

4

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)
Phân tích
Lập kế hoạch
Thiết kế

Bảo trì

Vịng đời phát triển
hệ thống
Mã hóa

Kiểm thử

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]
Kiểm thử mức đơn vị
(Unit testing)

Các bộ phận
đơn lẻ

Kiểm thử mức
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)

Tồn bộ
hệ thống

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

Tồn bộ hệ thống nhìn
từ khách hàng

Hình 1.2. Các mức độ kiểm thử cơ bản của phần mềm [2]
Số hóa bởi trung tâm học liệu

/>

5

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.
Kế hoạch
kiểm thử

Phần mềm đã
phát triển

Sơ đồ phát
triển

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

Kiểm thử tích hợp

Phần mềm tích
hợp


Báo cáo
chấp nhận

Kế hoạch
phát triển

Hình 1.3. Sơ đồ kiểm thử tích hợp
Số hóa bởi trung tâm học liệu

/>

6

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 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 tồ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.
Số hóa bởi trung tâm học liệu

/>

7

Hệ thống đã đƣợc
tích hợp hồn chỉnh

Các loại tài liệu yêu
cầu của khách hàng

Tài
liệu sử
dụng

Dữ

liệu

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

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

Kiểm thử
khả năng
bảo mật
Kiểm thử đã
hoàn thành

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


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 q 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,
Số hóa bởi trung tâm học liệu

/>

8

để 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
Số hóa bởi trung tâm học liệu

/>

9

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 ngồ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 ngun 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ị. Q 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 hồ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]

Số hóa bởi trung tâm học liệu

/>

10

Lập kế
hoạch
kiểm thử

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


Hiểu
biếtbiết
hệ
Hiểu
thống
hệ
thống

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

Báo cáo
kiểm thử

Thiết lập
mơi trƣờng
Phát triển
kịch bản

Xác định mục
tiêu hiệu năng

Mơ hình
ngƣời dùng

Chạy kiểm
thử hiệu năng
Tạo dữ liệu
kiểm thử


Mơ hình tải
làm việc

Tạo báo
cáo

Cung cấp
tài liệu

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ủ hồ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.
Số hóa bởi trung tâm học liệu

/>


11

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.
Số hóa bởi trung tâm học liệu

/>

12

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

Số hóa bởi trung tâm học liệu

/>

13

để đá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
Số hóa bởi trung tâm học liệu

/>

×