Tải bản đầy đủ (.doc) (80 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 (1.63 MB, 80 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 Nguyên - 2013


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



i

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ú


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ú



iii

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



iv

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


v

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


vi

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


vii

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

TT Viết tắt
1.
GV

Tiếng Anh

Nghĩa
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

Service Level-Agreement


8.

SPEC

Standard Performance

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

SUT

Evalution Corporation
Systems Under Test

Hệ thống kiểm thử

9.
10.

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

Workload

Cam kết mức độ dịch vụ

Tải làm việc


viii


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



ix

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


x

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


xi

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


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



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


3

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


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ế

Vòng đời phát triển
hệ thống
Bảo trìHình 1.1. Vòng đời phát triển hệ thống
Mã hóa

1.1. CÁC KHÁI NIỆM CƠ BẢN Kiểm thử
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)
Kiểm thử chấp nhận sản
phẩm (Acceptance testing)

Toàn bộ
hệ thống
Toà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]


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

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

Kế hoạch
phát triển


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


7

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

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

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


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


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


10

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

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

Hiểu
Hiểu
biếtbiết
hệ
hệ
thống
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 báo cáo

Tạo dữ liệu
kiểm thử

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

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


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.


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


×