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.27 MB, 79 trang )


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

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

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












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

Học sinh sinh viên
3.
ND

Ngƣời dùng
4.
QTHT

Quản trị hệ thống
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ử
10.

Workload
Tải làm việc


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

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

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)






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ử
Bảo trì
Vòng đời phát triển
hệ thống
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)
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



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.









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
Kế hoạch
phát triển
Phần mềm 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 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.


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

7









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

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



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


10













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
Xác định mục
tiêu hiệu năng
Mô hình
ngƣời dùng
Mô hình tải
làm việc
Phát triển
kịch bản
Tạo dữ liệu
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


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

×