ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
------------
NGUYỄN THỊ NGỌC HƯƠNG
KỸ THUẬT KIỂM THỬ CÁC ỨNG DỤNG WEB
LUẬN VĂN THẠC SĨ
Hà nội – 2011
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
------------
NGUYỄN THỊ NGỌC HƯƠNG
KỸ THUẬT KIỂM THỬ CÁC ỨNG DỤNG WEB
Ngành
:
Công nghệ thông tin
Chuyên ngành
:
Hệ thống thông tin
Mã số
:
60 48 05
LUẬN VĂN THẠC SĨ
NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS Nguyễn Ngọc Bình
Hà nội – 2011
Luận văn Thạc sĩ 2011
2
Kỹ thuật kiểm thử trên các ứng dụng Web
MỤC LỤC
LỜI CAM ĐOAN ............................................................................................. 1
BẢNG KÝ HIỆU ............................................................................................... 6
BẢNG CÁC HÌNH VẼ ...................................................................................... 8
DANH MỤC CÁC BẢNG ............................................................................... 10
MỞ ĐẦU ......................................................................................................... 12
CHƢƠNG 1:CÁC KHÁI NIỆM,PHƢƠNG PHÁP VÀ CHIẾN LƢỢC KIỂM
THỬ PHẦN MỀM, SO SÁNH KIỂM THỬ WEB VÀ KIỂM THỬ PHẦN
MỀM ................................................................................................................ 14
1.1.
Đặt vấn đề ........................................................................................................... 14
1.2.
Các khái niệm cơ bản về kiểm thử phần mềm ...................................................... 14
1.2.1. Khái niệm kiểm thử phần mềm? .......................................................................... 14
1.2.2. Mục đích của kiểm thử ........................................................................................ 14
1.3.
Điều kiện kiểm thử .............................................................................................. 15
1.3.1. Điều kiện liên quan đến ứng dụng ................................................................... 15
1.3.2. Điều kiện liên quan đến môi trƣờng................................................................. 15
1.4.
Các giai đoạn kiểm thử phần mềm[18] ................................................................ 16
1.4.1. Kiểm thử đơn vị (Unit Test) ............................................................................ 16
1.4.2. Kiểm thử tích hợp(Integration test).................................................................. 16
1.4.3. Kiểm thử hệ thống(System Test) ..................................................................... 16
1.4.4. Kiểm thử chấp nhận sản phẩm-Acceptance test ............................................... 17
1.4.5. Kiểm thử hồi quy-Regression Testing ............................................................. 17
1.5.
Các phƣơng pháp kiểm thử .................................................................................. 18
1.5.1. Kiểm thử tĩnh - Static testing .......................................................................... 18
1.5.2. Kiểm thử động – Dynamic testing[12] ............................................................. 18
1.6.
Các chiến lƣợc kiểm thử ...................................................................................... 18
1.6.1. Kiểm thử hộp đen (Black-Box Testing) ........................................................... 18
1.6.2. Kiểm thử hộp trắng- White box testing ............................................................ 18
1.6.3. Kiểm thử hộp xám-Gray box testing ................................................................ 19
1.7.
So sánh giữa kiểm thử Web và kiểm thử phần mềm............................................. 19
1.7.1. Khái niệm kiểm thử Website[16] ..................................................................... 20
1.7.2. So sánh sự khác nhau giữa các mô hình ứng dụng ........................................... 20
1.7.3. So sánh sự khác nhau giữa phần cứng và phần mềm ........................................ 22
1.7.4. Sự khác nhau giữa các hệ thống khách chủ truyền thống và Web .................... 24
1.7.5. Các điều khiển giao diện ngƣời dùng[13] ........................................................ 27
1.7.6. Các ứng dụng trên trình chủ ............................................................................ 29
1.7.7. Các vấn đề về khả năng tƣơng tác[8] ............................................................... 31
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
3
Kỹ thuật kiểm thử trên các ứng dụng Web
CHƢƠNG 2: TỔNG QUAN VỀ KỸ THUẬT, NGUYÊN TẮC CƠ BẢN CỦA
VIỆC LẬP KẾ HOẠCH KIỂM THỬ VÀ CÁC THÀNH PHẦN ỨNG DỤNG
WEB ................................................................................................................ 33
2.1.
Tổng quan về kiểm thử các ứng dụng Web .......................................................... 33
2.2.
Kiến trúc ứng dụng phân tán................................................................................ 33
2.2.1. Hệ thống khách –chủ truyền thống .................................................................. 33
2.2.2. Hệ thống khách- chủ trên Web ........................................................................ 34
2.3.
Kiến trúc thành phần của ứng dụng Web[8] ......................................................... 37
2.3.1. Những thành phần phía trình chủ..................................................................... 37
2.3.2. Những thành phần dịch vụ cơ bản của ứng dụng ............................................. 37
2.3.3. Những chƣơng trình dựa trên mở rộng của trình chủ Web[6] ........................... 39
2.3.4. Những thành phần dịch vụ của ứng dụng khác ................................................ 41
2.3.5. Thành phần truyền thông ................................................................................. 44
2.4.
Nguyên tắc cơ bản để lập kế hoạch kiểm thử ....................................................... 44
2.4.1. Kế hoạch kiểm thử .......................................................................................... 44
2.4.2. Tài liệu kế hoạch kiểm thử .............................................................................. 44
2.4.3. Các mẫu kế hoạch kểm thử (test plan templates) ............................................. 45
CHƢƠNG 3: TRÌNH BÀY CÁC KIỂU KIỂM THỬ TRONG KIỂM THỬ
ỨNG DỤNG WEB VÀ CÁCH ỨNG DỤNG .................................................. 46
3.1.
Kỹ thuật Kiểm thử giao diện ngƣời dùng ............................................................. 46
3.1.1. Kỹ thuật Kiểm thử thiết kế giao diện ngƣời dùng................................................. 46
3.1.2. Kỹ thuật kiểm thử khả năng sử dụng và truy cập ................................................. 62
3.1.3. Các vấn đề cần xem xét của kiểm thử .................................................................. 63
3.2.
Kỹ thuật kiểm thử chức năng: .............................................................................. 64
3.2.1. Kiểm thử đơn giản chấp nhận chức năng ......................................................... 64
3.2.2. Kiểm thử chức năng hƣớng tác vụ ................................................................... 65
3.2.3. Kỹ thuật kiểm thử lỗi ép buộc ......................................................................... 66
3.2.4. Kỹ thuật kiểm thử điều kiện biên và phân tích lớp tƣơng đƣơng ...................... 66
3.2.5. Kỹ thuật kiểm thử dạng khám phá ................................................................... 66
3.3.
Kỹ thuật kiểm thử phía trình chủ ......................................................................... 67
3.3.1. Kỹ thuật sử dụng các tệp log ........................................................................... 67
3.3.2. Kỹ thuật sử dụng các công cụ giám sát ............................................................ 68
3.3.3. Kỹ thuật tạo các giao diện kiểm thử và các trình điều khiển kiểm thử .............. 71
3.3.4. Kỹ thuật thiết lập lại trình chủ ......................................................................... 72
3.3.5. Kỹ thuật sử dụng script trong kiểm thử trình chủ ............................................. 72
3.4.
Sử dụng script để kiểm thử .................................................................................. 72
3.4.1. Kỹ thuật quản trị hệ thống ............................................................................... 72
3.4.2. Kỹ thuật kiểm thử trực tiếp trình chủ ............................................................... 72
3.4.3. Kỹ thuật làm việc với ứng dụng độc lập với giao diện ..................................... 73
3.4.4. Kỹ thuật xem xét dữ liệu: (các tệp log và các báo cáo) .................................... 73
3.4.5. Kỹ thuật sử dụng script để hiểu rõ kết quả kiểm thử ........................................ 73
3.5.
Kỹ thuật kiểm thử cơ sở dữ liệu ........................................................................... 73
3.5.1. Các phƣơng pháp kiểm thử hộp trắng .............................................................. 74
3.5.2. Các phƣơng pháp kiểm thử hộp đen ................................................................ 75
3.6.
Kỹ thuật kiểm thử trợ giúp .................................................................................. 76
3.6.1. Các phƣơng pháp kiểm thử .............................................................................. 76
3.6.2. Những vấn đề cần xem xét về kiểm thử trợ giúp .............................................. 76
3.7.
Kỹ thuật kiểm thử cài đặt .................................................................................... 78
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
4
Kỹ thuật kiểm thử trên các ứng dụng Web
3.7.1. Các tiện ích kiểm thử chƣơng trình cài đặt, xóa cài đặt ................................... 78
3.7.2. Những vấn đề cần xem xét về kiểm thử ........................................................... 78
3.8.
Kỹ thuật kiểm thử khả năng tƣơng thích và cấu hình ........................................... 82
3.8.1. So sánh kiểm thử cấu hình với kiểm thử khả năng tƣơng thích ........................ 82
3.8.2. Các vấn đề của kiểm thử cấu hình và khả năng tƣơng thích ............................ 82
3.8.3. Các vấn đề cần xem xét về kiểm thử................................................................ 83
3.9.
Kỹ thuật kiểm thử bảo mật Web .......................................................................... 85
3.9.1. Kiểm thử yêu cầu và thiết kế ........................................................................... 86
3.9.2. Kiểm thử mã nguồn ứng dụng[9] ..................................................................... 86
3.9.3. Kiểm thử mã nguồn của hãng thứ ba ............................................................... 86
3.9.4. Kiểm thử xâm nhập (Penetration testing) ......................................................... 87
3.9.5. Kiểm thử sự bảo vệ ngƣời sử dụng qua các thiết lập của trình duyệt[14].......... 88
3.10. Kỹ thuật kiểm thử hiệu năng................................................................................ 88
3.10.1
Kỹ thuật tạo dữ liệu thử............................................................................... 89
3.10.2
Kỹ thuật thiết lập môi trƣờng kiểm thử ........................................................ 89
3.10.3
Kỹ thuật thiết lập các tham số của bộ kiểm thử ............................................ 89
CHƢƠNG 4: ÁP DỤNG KIỂM THỬ TRÊN ỨNG DỤNG WEB CỤ THỂ,
ĐÁNH GIÁ VÀ ĐỀ XUẤT ............................................................................. 91
4.1.
4.2.
4.3.
4.3.1.
4.3.2.
Kế hoạch kiểm thử Website Hand-made Flower Shop ......................................... 91
Mô phỏng 2 Use Case cụ thể ............................................................................. 101
Thực hiện kiểm thử ........................................................................................... 107
Kiểm thử bằng tay ............................................................................................. 107
Kiểm thử tự động bằng tool ............................................................................... 111
PHỤ LỤC ...................................................................................................... 114
A.
Các công cụ kiểm thử Web .................................................................................... 116
A.1.
Browershots .................................................................................................. 116
A.2.
Superpreview ................................................................................................ 116
A.3.
Cross brower testing ...................................................................................... 116
A.4.
Spoon brower sandbox .................................................................................. 116
A.5.
Browerseal .................................................................................................... 116
A.6.
IE tester......................................................................................................... 116
A.7.
Watchfire linkbot pro .................................................................................... 117
A.8.
Parasoft web king .......................................................................................... 117
A.9.
Macromedia homsite ..................................................................................... 117
A.10. Xenu‘s link sleuth ......................................................................................... 117
A.11. Dr.watson...................................................................................................... 117
A.12. Reasoning illuma .......................................................................................... 117
A.13. Test center .................................................................................................... 118
B. Các công cụ kiểm thử hiệu năng và kiểm thử tải Web ............................................ 118
B.1.
Empirix eload................................................................................................ 118
B.2.
Compuware qacenter performancedition ....................................................... 118
B.3.
XML load testing .......................................................................................... 118
B.4.
Mecury interactive application performance management ............................. 119
B.5.
Segue silkperformers ..................................................................................... 119
B.6.
Loadtesting.com portent ................................................................................ 119
B.7.
Webpartner stress testing ............................................................................... 119
C. Công cụ kiểm tra tự động mã nguồn mở ................................................................ 119
D. Một số công cụ mã nguồn mở khác........................................................................ 120
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
5
Kỹ thuật kiểm thử trên các ứng dụng Web
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ...................................................... 114
TÀI LIỆU THAM KHẢO .............................................................................. 122
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
6
Kỹ thuật kiểm thử trên các ứng dụng Web
BẢNG KÝ HIỆU
Ký hiệu
Thuật ngữ
RAM
Random Access Memory
CPU
UI
LAN
HTML
Central Processing Unit
User Interface
Local area network
Hypertext Markup
Language
XML
EXtensible Markup
Language
DHTML Dynamic Hypertext
Markup Language
CSS
SDI
SDI- single document
interface
MDI
Multiple document
interface
CORBA Common Object Request
Broker Architecture
DCOM
Distributed Common
Object Model
API
Application Programming
Interface
DLL
Dynamic link library
PDA
Personal Digital Assistant
SDK
Soffware Development Kit
JVM
FPT
HTTP
RDBMS
Java Virtual Machine
File Transfer Protocol
Hypertext Transfer
Protocol
Relational Database
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Ý nghĩa
Mục tham
chiếu
Bộ nhớ truy cập ngẫu
nhiên
Bộ xử lý trung tâm
Giao diện ngƣời dùng
Mạng nội bộ
Ngôn ngƣ̃ đánh dấ u siêu
văn bản
1.3.2
Ngôn ngữ đánh dấu mở
rộng
1.7.4
1.7.1
1.7.1
1.7.3
1.7.4
1.7.4
Giao diện đơn tài liếu
1.7.4
1.7.4
Giao diện đa tài liệu
1.7.4
Công nghệ chuyển đổi
giao diện
Mô hình đối tƣợng phân
tán
Giao diện lập trình ứng
dụng
Thƣ viện liên kết động
Các thiết bị số cầm tay
Bộ công cụ phát triển
phần mềm
Máy ảo Java
1.7.7
Giao thức truyền tập tin
2.3.2
Giao thức truyền tải siêu
văn bản
Trình chủ cơ sở dữ liệu
2.3.2
1.7.7
1.7.6
1.7.5
2.2.2
2.2.2
2.2.2
2.3.2
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
SQL
SOAP
Management System
Struct Query Language
CGI
Simple Object Access
Protocol
Common Gateway
ASP
Active Server Page
JSP
Java Server Page
PERL
Practical Extraction and
Reporting Language
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
7
Kỹ thuật kiểm thử trên các ứng dụng Web
quan hệ
Ngôn ngữ truy vấn có cấu
trúc
Giao thức truy cập đối
tƣợng đơn giản
2.3.2
2.3.2
2.3.2
Ngôn ngữ máy chủ
ASP(công nghệ
Microsoft)
Ngôn ngữ máy chủ
JSP(công nghệ Sun)
Công cụ soạn kịch bản
2.3.2
2.3.2
2.3.2
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
8
Kỹ thuật kiểm thử trên các ứng dụng Web
BẢNG CÁC HÌNH VẼ
Số thứ
tự
1
2
3
4
5
6
7
8
9
10
11
12
13
Hình
Hình 1.1
Hình 1.2
Hình 1.3
Hình 1.4
Hình 1.5
Hình 1.6
Hình 1.7
Hình 1.5
Hình 1.6
Hình 1.7
Hình 1.8
Hình 1.9
Hình 1.10
14
15
Hình 1.11
Hình 1.12
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Hình 1.13
Hình 1.14
Hình 1.15
Hình 1.16
Hình 1.17
Hình 2.1
Hình 2.2
Hình 2.3
Hình 2.4
Hình 2.5
Hình 3.1
Hình 3.2
Hình 3.3
Hình 3.4
Hình 3.5
Mục tham
chiếu
Cấu hình hai máy
Mục 1.3.2
Sơ đồ tranh chấp tài nguyên
Mục 1.3.2
Cấu trúc kiểm thử hộp đen
Mục 1.6.1
Cấu trúc kiểm thử hộp trắng
Mục 1.6.2
Cấu trúc của đồ thị luồng
Mục 1.6.2
Độ phức tạp Cyclomat
Mục 1.6.2
Các kiểu vòng lặp
Mục 1.6.2
Kiểm thử hộp xám
Mục 1.6.3
Mô hình ứng dụng
Mục 1.7.2
Các hệ thống máy tính lớn
Mục 1.7.2
Các hệ thống máy tính cá nhân để bàn
Mục 1.7.2
Các hệ thống khách – chủ
Mục 1.7.2
Môi trƣờng phần cứng và phần mềm đƣợc Mục 1.7.3
điều khiển
Một hệ thống khách –chủ trên mạng LAN Mục 1.7.3
Các trình khách truyền thống và trình Mục 1.7.4
khách Web
Hai thể hiện của một ứng dụng
Mục 1.7.4
Nhiều cửa sổ của ứng dụng
Mục 1.7.4
dụng giao diện đa tài liệu
Mục 1.7.4
Ứng dụng giao diện đơn tài liệu
Mục 1.7.4
Khả năng tƣơng tác
Mục 1.7.7
Hệ thống thin-client
Mục 2.2.1
Hệ thống thick-client
Mục 2.2.1
Hệ thống Web ba tầng
Mục 2.2.2
Ứng dụng thin-client trên Web
Mục 2.2.2
Ứng dụng thick-client trên Web
Mục 2.2.2
Phép ẩn dụ dựa trên tài liệu
Mục 3.1.1
Phép ẩn dụ dựa trên thiết bị
Mục 3.1.1
Lựa chọn qua nút radio
Mục 3.1.1
Lựa chọn qua trình đơn kéo xuống
Mục 3.1.1
Các điều khiển HTML bao gồm một hộp Mục 3.1.1
văn bản chuẩn HTML và một hộp văn bản
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Mô tả
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
31
Hình 3.6
32
Hình 3.7
33
Hình 3.8
34
Hình 3.9
35
36
37
Hình 3.10
Hình 3.11
Hình 3.12
38
Hình 3.13
39
40
Hình 3.14
Hình 3.15
41
Hình 3.16
42
Hình 3.17
43
Hình 3.18
44
Hình 3.19
45
Hình 3.20
46
47
48
Hình 3.21
Hình 3.22
Hình 4.1
9
Kỹ thuật kiểm thử trên các ứng dụng Web
cuộn
Các điều khiển HTML bao gồm một trình
đơn kéo xuống
Các liên kết đồ họa, liên kết văn bản khi di
chuyển chuột qua và trƣờng văn bản
Đoạn mã HTML cho liên kết đồ họa, liên
kết văn bản khi di chuyển chuột qua va
liên kết văn bản
Bảng, mẫu, và khung mô phỏng các điều
khiển giao diện trong Windows
Thông điệp lỗi dựa trên trình duyệt
minh họa phản hồi phía trình chủ
Không tƣơng thích của trình duyệt- Trình
duyệt A
Không tƣơng thích của trình duyệt- Trình
duyệt B
Tệp log ví dụ
(System Monitor Utility )có thể ghi lại
việc sử dụng tài nguyên hệ thống
Windows Performance Monitor- ghi nhận
các loại hoạt động phần cứng khác nhau
Window Event Viewer – Tiện ích ghi
nhận thông tin log
Windows System Information- cho biết tài
nguyên phần cứng và môi trƣờng phần
mềm
Terminal System Information- cho phép
xem thông tin hệ thống
Windows Task Manager- Xem ứng dụng
hiện tại và tiến trình đang chạy, số liệu đo
lƣờng sử dụng CPU và bộ nhớ
Ví dụ giao diện kiểm thử
Các điểm tƣơng tác
Biểu đồ mô phỏng 2 use case
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 3.3.1
Mục 3.1.3
Mục 3.3.1
Mục 3.3.1
Mục 3.3.1
Mục 3.3.1
Mục 3.3.1
Mục 3.3.1
Mục 3.5
Mục 4.2
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
10
Kỹ thuật kiểm thử trên các ứng dụng Web
DANH MỤC CÁC BẢNG
Số thứ
Bảng
tự
1
Bảng 1.1
Mô tả
Mục tham
chiếu
So sánh sự khác nhau giữa các mô hình Mục 1.7.2
ứng dụng
So sánh sự khác nhau giữa phần cứng và Mục 1.7.3
phần mềm
2
Bảng 1.2
3
Bảng 1.3
So sánh Các ứng dụng phía trình khách
Mục 1.7.4
4
Bảng 1.4
So sánh xử lý sự kiện
Mục 1.7.4
5
Bảng 1.5
6
Bảng 1.6
7
Bảng 1.7
So sánh xử lý các cửa sổ và thể hiện của Mục 1.7.4
ứng dụng
So sánh các ứng dụng trên trình chủ và các Mục 1.7.6
ứng dụng trên trình khách
Các cấu hình trình chủ phân tán
Mục 1.7.6
8
9
10
Bảng 3.1
Bảng 3.3
Bảng 3.4
11
Bảng 4.1
12
13
14
15
16
17
18
19
20
21
22
23
24
Bảng 4.2
Bảng 4.3
Bảng 4.4
Bảng 4.5
Bảng 4.6
Bảng 4.7
Bảng 4.8
Bảng 4.9
Bảng 4.10
Bảng 4.11
Bảng 4.12
Bảng 4.13
Bảng 4.14
25
Bảng 4.15
Đánh giá kinh nghiệm ngƣời dùng
Các nút lệnh khẳng định và hủy bỏ
Liệt kê một số phần tử giao diện ngƣời
dùng cần đƣợc kiểm thử
Danh sách các tài liệu đã có của dự án (có
thể thêm/bớt các lọai tài liệu cho phù hợp)
Rủi ro do kế hoạch
Rủi ro do kinh phí và tài nguyên
Rủi ro vận hành
Rủi ro do kỹ thuật
Kiểm thử Giai đoạn 1
Kiểm thử giai đoạn 2
Các công cụ sau sẽ đƣợc dùng cho dự án
Môi trƣờng kiểm thử
Nhân sự
Hệ thống
Các mốc thời gian kiểm thử - giai đoạn 1
Các mốc thời gian kiểm thử - giai đoạn 2
Ca sử dụng cho tác nhân ngƣời dùng
internet
Ca sử dụng cho tác nhân quản trị viên
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Mục 3.1.1
Mục 3.1.1
Mục 3.1.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.1
Mục 4.2
Mục 4.2
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
26
Bảng 4.16
27
Bảng 4.17
11
Kỹ thuật kiểm thử trên các ứng dụng Web
Các ca kiểm thử cho ngƣời dùng internet Mục 4.2
từ ca sử dụng tìm kiếm sản phẩm
Các ca kiểm thử cho quản trị viên thêm Mục 4.2
sản phẩm
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
12
Kỹ thuật kiểm thử trên các ứng dụng Web
MỞ ĐẦU
Cùng với sự phát triển nhanh chóng của công nghệ thông tin nói chung và công
nghệ phần mềm nói riêng, việc phát triển phần mềm ngày càng đƣợc hỗ trợ bởi nhiều
công cụ tiên tiến, từ đó giúp cho việc phát triển phần mềm đỡ vất vả và có tính hiệu
quả cao. Nhƣng, do tính phức tạp của phần mềm và những giới hạn về thời gian và chi
phí, cho dù các hoạt động đảm bảo chất lƣợng phần mềm nói chung và kiểm thử nói
riêng ngày càng chặt chẽ và khoa học vẫn không đảm bảo đƣợc các sản phẩm phần
mềm đang đƣợc ứng dụng là không bị lỗi. Lỗi phần mềm tiềm ẩn luôn là một vấn đề
khó chịu và gây những thiệt hại lớn. Chính vì vậy, chúng ta cần quan tâm tới vấn đề
kiểm thử phần mềm nhƣ một vấn đề sống còn của sản phẩm phần mềm.
Những năm gần đây, các tổ chức phát triển phần mềm tại Việt Nam đã bắt đầu
nghiên cứu và quan tâm hơn đến lĩnh vực kiểm thử phần mềm. Tuy nhiên, vấn đề kiểm
thử phần mềm tại nƣớc ta chƣa đƣợc phát triển. Nƣớc ta đang trong quá trình xây
dựng một ngành công nghiệp phần mềm thì vấn đề kiểm thử phần mềm phải đƣợc đặt
lên hàng đầu, nếu không, xác suất triển khai phần mềm thất bại là rất cao. Ngoài ra,
các công ty phát triển phần mềm lớn và uy tín luôn đặt ra đòi hỏi là phần mềm phải có
tài liệu kiểm thử đi kèm thì mới đƣợc chấp nhận.
Lĩnh vực Web rất có tiềm năng mang lại lợi nhuận cao trong các dự án kinh
doanh.Tuy nhiên, thách thức chính mà chúng ta gặp phải trong kiểm thử các ứng dụng
web là nắm bắt đƣợc các công nghệ liên quan để làm chủ tốt hơn môi trƣờng. Chúng ta
cần hiểu sự ảnh hƣởng của các công nghệ Web đối với sự tƣơng tác giữa các thành
phần phần mềm, cũng nhƣ xem các hệ thống Web là một khối thống nhất. Kiểm thử
viên cũng cần phải biết làm thế nào để thực hiện kiểm thử các ứng dụng Web. Điều
này đòi hỏi kiểm thử viên phải hiểu biết các loại kiểm thử, các vấn đề của kiểm thử,
các loại lỗi phần mềm thƣờng gặp và các rủi ro về chất lƣợng đặc trƣng đối với các
ứng dụng Web. Nhƣ vậy chỉ có những hiểu biết vững chắc về kiểm thử phần mềm và
những kiến thức thấu đáo về các công nghệ Web, chúng ta mới có thể kiểm thử tốt các
hệ thống Web. Trong giới hạn luận văn, tôi tập chung trình bày tổng quan về kiểm thử
phần mềm và kiểm thử các ứng dụng Web, các phƣơng pháp kiểm thử có thể ứng dụng
trong kiểm thử úng dụng web, các công cụ kiểm thử và cách ứng dụng. Cấu trúc luận
văn gồm các phần nhƣ sau:
Phần mở đầu: Nội dung phần mở đầu chỉ ra vai trò và tầm quan trọng của
kiểm thử phần mềm nói chung và kiểm thử Web nói riêng trên thế giới và Việt Nam
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
13
Kỹ thuật kiểm thử trên các ứng dụng Web
Chƣơng 1: Trình bày các khái niệm, phƣơng pháp và chiến lƣợc kiểm thử phần
mềm, so sánh kiểm thử ứng dụng Web và kiểm thử phần mềm.
Chƣơng 2:Tổng quan về ứng dụng Web và các nền tảng kỹ thuật cũng nhƣ các
nguyên tắc cơ bản của lập kế hoạch kiểm thử
Chƣơng 3: Trình bày các kiểu kiểm thử, các công cụ kiểm thử có thể ứng dụng
trong kiểm thử ứng dụng Web và cách ứng dụng
Chƣơng 4: Áp dụng kiểm thử trên ứng dụng Web cụ thể, đánh giá và đề xuất
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
14
Kỹ thuật kiểm thử trên các ứng dụng Web
CHƢƠNG 1:CÁC KHÁI NIỆM,PHƢƠNG PHÁP
VÀ CHIẾN LƢỢC KIỂM THỬ PHẦN MỀM, SO SÁNH
KIỂM THỬ WEB VÀ KIỂM THỬ PHẦN MỀM
1.1. Đặt vấn đề
Kiểm thử mềm là một quy trình bắt buộc trong phát triển phần mềm. Các kỹ
thuật kiểm thử áp dụng cho kiểm thử phần mềm là các kỹ thuật kiểm thử cơ bản nhƣ:
kiểm thử chức năng (functionality test), kiểm thử ép buộc lỗi(forced-error test), phân
tích điều kiện biên (boundary condition) và phân tích lớp tƣơng đƣơng (equivalence
class analysis),v.v
1.2. Các khái niệm cơ bản về kiểm thử phần mềm
1.2.1. Khái niệm kiểm thử phần mềm?
Kiểm thử phần mềm là hoạt động nhằm tìm kiếm, phát hiện các lỗi của phần
mềm được kiểm thử về thiết kế, mã nguồn, chức năng, dữ liệu, bảo mật, thân thiện với
người dùng, tài liệu kèm theo, môi trường hoạt động, tốc độ hoạt động, khả năng tải
của hệ thống, thường được chia thành các nhóm là nhóm thuộc về chức năng, nhóm
không thuộc chức năng, nhóm thuộc về cấu trúc và nhóm liên quan đến các thay đổi
[16]
Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi.
[14]
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. [15]
1.2.2. Mục đích của kiểm thử
Phát hiện lỗi.
Một trƣờng hợp kiểm thử tốt là trƣờng hợp có nhiều khả năng tìm thấy các
lỗi chƣa từng bị phát hiện bao giờ.
Một kiểm thử thành công là kiểm thử phát hiện ra lỗi chƣa tìm thấy
Thiết kế các ca kiểm thử để tìm kiếm các lỗi/khuyết tật
Thực hiện chƣơng trình để tìm các lỗi/khuyết tật
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
15
Kỹ thuật kiểm thử trên các ứng dụng Web
1.3. Điều kiện kiểm thử
Điều kiện kiểm thử là các nhân tố quan trọng trong kiểm thử ứng dụng Web.
Điều kiện kiểm thử là các tình huống trong đó các ứng dụng cần đƣợc kiểm thử hoạt
động. Có hai loại điều kiện kiểm thử đƣợc mô tả dƣới đây.
1.3.1. Điều kiện liên quan đến ứng dụng
Điều kiện liên quan đến ứng dụng bao gồm việc chạy cùng một bộ kiểm thử từ
vựng(trong MSWord) trong chế độ Normal View và sau đó chạy lại trong chế dộ Page
View. Nếu một phép thử sinh ra lỗi, phép thử khác không sinh ra lỗi,thì bạn có thể kết
luận có một điều kiện liên quan đến ứng dụng sinh ra lỗi
1.3.2. Điều kiện liên quan đến môi trƣờng
Khi một lỗi sinh ra bởi các điều kiện bên ngoài ứng dụng cần đƣợc kiểm thử,
các điều kiện đƣợc xem là liên quan đến môi trƣờng.Môi trƣờng tĩnh (lỗi về khả năng
tƣơng thích và cấu hình):Một môi trƣờng hoạt động trong đó khả năng không tƣơng
thích có thể tồn tại, bất kể các điều kiện biến đổi nhƣ tốc độ xử lý và dung lƣợng bộ
nhớ
Hình 1.1 Cấu hình hai máy[8]
Môi trƣờng động(RAM, không gian đĩa, bộ nhớ, băng thông mạng…).Một môi
trƣờng trong đó các thành phần tƣơng thích khác có thể tạo ra lỗi liên quan đến bộ nhớ
hay các điều kiện về độ trễ.
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
16
Kỹ thuật kiểm thử trên các ứng dụng Web
Hình 1.2 Sơ đồ tranh chấp tài nguyên [8]
1.4. Các giai đoạn kiểm thử phần mềm[18]
1.4.1. Kiểm thử đơn vị (Unit Test)
Các phƣơng pháp thiết kế phần mềm đều chia phần mềm thành những mô- đun
hoặc thành các chƣơng trình nhỏ có các dữ liệu vào và kết quả riêng. Chúng ta gọi các
mô-đun hay chƣơng trình đó là các đơn vị phần mềm. Trên các đơn vị này chúng ta sẽ
tiến hành kiểm thử đơn vị.
Một khi đơn vị phần mềm đã đƣợc mã hoá, nghĩa là lập trình và hồ sơ kiểm thử
đơn vị tƣơng ứng đã đƣợc hoàn thành thì kiểm thử đơn vị có thể đƣợc tiến hành.
Thực hiện các trƣờng hợp kiểm thử đã đƣợc mô tả. Nếu có lỗi xảy ra cần phải
chỉnh sửa lại đơn vị phần mềm. Thực hiện kiểm thử đơn vị lại. Nếu tất cả các trƣờng
hợp đã đƣợc kiểm thử hết và thành công thì kiểm thử đơn vị sẽ kết thúc
1.4.2. Kiểm thử tích hợp(Integration test)
Kiểm thử tích hợp kết hợp các thành phần của một ứng dụng và kiểm thử nhƣ
một ứng dụng đã hoàn thành. Trong khi của kiểm thử đơn vị kiểm tra các thành phần
và đơn vị riêng lẻ thì kiểm thử tích hợp kết hợp chúng lại với nhau và kiểm tra sự giao
tiếp giữa chúng.
1.4.3. Kiểm thử hệ thống(System Test)
Mục đích kiểm thử hệ thống là kiểm thử thiết kế và toàn bộ hệ thống (sau khi
tích hợp) có thỏa mãn yêu cầu đặt ra hay không. Kiểm thử hệ thống bắt đầu khi tất cả
các bộ phận của phần mềm đã đƣợc tích hợp thành công. Thông thƣờng loại kiểm thử
này tốn rất nhiều công sức và thời gian. Trong nhiều trƣờng hợp, việc kiểm thử đòi hỏi
một số thiết bị phụ trợ, phần mềm hoặc phần cứng đặc thù, đặc biệt là các ứng dụng
thời gian thực, hệ thống phân bố, hoặc hệ thống nhúng. Ở mức độ hệ thống, ngƣời
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
17
Kỹ thuật kiểm thử trên các ứng dụng Web
kiểm thử cũng tìm kiếm các lỗi, nhƣng trọng tâm là đánh giá về hoạt động, thao tác, sự
tin cậy và các yêu cầu khác liên quan đến chất lƣợng của toàn hệ thống.
1.4.4. Kiểm thử chấp nhận sản phẩm-Acceptance test
Thông thƣờng, 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 có ý nghĩa hết sức quan trọng, mặc dù trong hầu
hết mọi trƣờng hợp, các phép kiểm thử của kiểm thử hệ thống và kiểm thử chấp nhận
sản phẩm gần nhƣ tƣơng tự, nhƣng bản chất và cách thức thực hiện lại rất khác biệt.
Đối với những sản phẩm dành bán rộng rãi trên thị trƣờng cho nhiều ngƣời sử
dụng, thông thƣờng sẽ thông qua hai loại kiểm thử gọi là kiểm thử Alpha – Alpha
Test và kiểm thử Beta – Beta Test. Với Alpha Test, ngƣời dù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 Beta Test, phần mềm sẽ đƣợc gửi tới cho ngƣời dù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.
Thực tế cho thấy, nếu khách hàng không quan tâm và không tham gia vào quá
trình phát triển phần mềm thì kết quả kiểm thử chấp nhận sản phẩm sẽ sai lệch rất lớn,
mặc dù phần mềm đã trải qua tất cả các kiểm thử trƣớc đó. Sự sai lệch này liên quan
đến việc hiểu sai yêu cầu cũng nhƣ sự mong chờ của khách hàng. Ví dụ đôi khi một
phần mềm xuất sắc vƣợt qua các phép kiểm thử về chức năng thực hiện bởi nhóm thực
hiện dự án, nhƣng khách hàng khi kiểm thử sau cùng vẫn thất vọng vì bố cục màn hình
nghèo nàn, thao tác không tự nhiên, không theo tập quán sử dụng của khách hàng v.v...
Gắn liền với giai đoạn kiểm thử chấp nhận sản phẩm thƣờng là một nhóm
những dịch vụ và tài liệu đi kèm, phổ biến nhƣ hƣớng dẫn cài đặt, sử dụng v.v... Tất cả
tài liệu đi kèm phải đƣợc cập nhật và kiểm thử chặt chẽ.
1.4.5. Kiểm thử hồi quy-Regression Testing
Kiểm thử hồi quy là kiểm thử kiểm tra lại các phần mềm đã đƣợc kiểm tra
trƣớc đó. Kiểm tra để phát hiện các hoạt động của phần mềm không bị thay dổi trừ khi
có các yêu cầu thay đổi.
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
18
Kỹ thuật kiểm thử trên các ứng dụng Web
1.5. Các phƣơng pháp kiểm thử
1.5.1. Kiểm thử tĩnh - Static testing
Quy về việc kiểm tra một số thứ mà nó không phải đang chạy, đang kiểm tra,
đang xem lại. Đây là phƣơng pháp kiểm thử phần mềm cần phải duyệt lại các yêu cầu
và các đặc tả bằng tay bằng cách sử dụng giấy, bút để kiểm tra logic, các chi tiết mà
không cần chạy chƣơng trình.
Cũng có thể tự động hóa kiểm thử tĩnh bằng cách thực hiện kiểm tra toàn bộ các
chƣơng trình đƣợc phân tích bằng cách sử dụng một trình thông dịch hoặc biên dịch
để xác nhận tính hợp lệ của chƣơng trình.
1.5.2. Kiểm thử động – Dynamic testing[12]
Là quá trình kiểm thử, chạy và sử dụng phần mềm. Dùng máy để kiểm tra và
chạy chƣơng trình để kiểm tra lỗi của chƣơng trình. Kiểm tra các hoạt động của câu
lệnh.Chúng ta tiến hành biên dịch và chạy chƣơng trình sau đó nhập các giá trị đầu vào
và kiểm tra xem dữ liệu đầu ra có đúng không. Có bốn phƣơng pháp kiểm thử động đó
là kiểm thử đơn vị – Unit Tests, Kiểm thử tích hợp – Intergration Tests, Kiểm thử hệ
thống – System Tests, và Kiểm thử chấp nhận sản phẩm – Acceptance Tests.
1.6. Các chiến lƣợc kiểm thử
Các kỹ thuật kiểm thử phần mềm có thể đƣợc chia thành 3 loại: Kỹ thuật kiểm
thử hộp đen (black-box testing), kỹ thuật kiểm thử hộp trắng (White-box testing), kỹ
thuật kiểm thử hộp xám (Gray-box testing).
1.6.1. Kiểm thử hộp đen (Black-Box Testing)
Kỹ thuật kiểm thử hộp đen (black-box testing): Là kỹ thuật kiểm thử giao diện,
nó kiểm thử dựa trên giao diện của phần mềm đã có hay còn đƣợc gọi là kiểm thử mù
(Blind testing) [1]
IN PUT
BLACK BOX
OUT PUT
Hình 1.3: Kiểm thử hộp đen
1.6.2. Kiểm thử hộp trắng- White box testing
Kiểm thử hộp trắng là một kĩ thuật kiểm thử mà các kĩ sƣ phần mềm sử dụng để
kiểm tra các đoạn mã làm việc theo đúng mong đợi.Kiểm thử hộp trắng là kiểm thử có
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Luận văn Thạc sĩ 2011
19
Kỹ thuật kiểm thử trên các ứng dụng Web
tập trung vào cấu trúc chƣơng trình để tìm ra các lỗi bên trong chƣơng trình (Theo
IEEE 1990). Kiểm thử hộp trắng là kiểm thử cấu trúc, kiểm thử hộp rõ ràng(clear box
testing), kiểm thử hộp kính(glass box testing) (Theo Beizer 1995).
IN PUT(i)
if(i<10)
printf(“i=%d”,i);
OUT PUT(i)
Hình 1.4 : Kiểm thử hộp trắng
1.6.3. Kiểm thử hộp xám-Gray box testing
Kiểm thử hộp xám là sự kết hợp giữa kiểm thử hộp đen và kiểm thử hộp
trắng. Mục đích của việc kiểm thử này là tìm ra những nhƣợc điểm có liên quan
tới lỗi thiết kế, hoặc lỗi thi hành của hệ thống.
IN PUT
GRAY BOX
OUT PUT
Hình 1.5: Kiểm thử hộp xám
1.7. So sánh giữa kiểm thử Web và kiểm thử phần mềm
Công nghệ Web đòi hỏi những phƣơng pháp phân tích lỗi và kiểm thử
mới, giả sử bạn đã có kinh nghiệm kiểm thử trong môi trƣờng truyền thống. Để
thực hiện hiệu quả việc kiểm thử Web, chúng ta cần hiểu sự khác nhau về kiến
trúc và công nghệ giữa kiểm thử truyền thống và kiểm thử Web.
Khác với phần mềm, những ứng dụng dựa trên website cần sự kiểm thử
tích cực, vì chúng luôn hoạt động nhƣ một hệ thống đa ngƣời dùng với sự hạn
chế về dải thông. Cần triển khai một số kiểm thử nhƣ: Sự tích hợp, khả năng
chịu tải, sự linh động và khả năng thích ứng, độ nét và khả năng thích ứng chéo
với trình duyệt. Bạn cũng cần tiến hành kỹ lƣỡng cả về kiểm thử tự động và
điều khiển. Ví dụ nhƣ việc kiểm thử đồ họa tải nhanh và tính toán thời gian tải
rất quan trọng cho bất cứ website nào.
Có những công cụ kiểm thử lý tƣởng đảm bảo chất lƣợng. Sau khi hoàn
tất kiểm thử, thì nên tiến hành kiểm thử beta cần thiết cho các website và
những ứng dụng dựa trên web. Khi website đã tải lên, việc kiểm thử cuối cùng
mới đƣợc kiểm soát.
Khoa Công Nghệ Thông Tin
Học viên: Nguyễn Thị Ngọc Hƣơng
Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
- Xem thêm -