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

Kỹ thuật kiểm thử các ứng dụng web

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 (5.4 MB, 124 trang )



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

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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
Luận văn Thạc sĩ 2011 3 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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
Luận văn Thạc sĩ 2011 4 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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. Kế hoạch kiểm thử Website Hand-made Flower Shop 91
4.2. Mô phỏng 2 Use Case cụ thể 101
4.3. Thực hiện kiểm thử 107
4.3.1. Kiểm thử bằng tay 107
4.3.2. 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
Luận văn Thạc sĩ 2011 5 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 114
TÀI LIỆU THAM KHẢO 122
Luận văn Thạc sĩ 2011 6 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


BẢNG KÝ HIỆU
Ký hiệu
Thuật ngữ
Ý nghĩa
Mục tham
chiếu
RAM
Random Access Memory

Bộ nhớ truy cập ngẫu
nhiên
1.3.2
CPU
Central Processing Unit
Bộ xử lý trung tâm
1.7.1
UI
User Interface
Giao diện ngƣời dùng
1.7.1
LAN
Local area network
Mạng nội bộ
1.7.3
HTML
Hypertext Markup
Language
Ngôn ngƣ
̃
đa
́
nh dấu siêu
văn ba
̉
n

1.7.4
XML
EXtensible Markup

Language
Ngôn ngữ đánh dấu mở
rộng
1.7.4
DHTML
Dynamic Hypertext
Markup Language

1.7.4
CSS


1.7.4
SDI
SDI- single document
interface
Giao diện đơn tài liếu
1.7.4
MDI
Multiple document
interface
Giao diện đa tài liệu
1.7.4
CORBA
Common Object Request
Broker Architecture
Công nghệ chuyển đổi
giao diện
1.7.7
DCOM

Distributed Common
Object Model
Mô hình đối tƣợng phân
tán
1.7.7
API
Application Programming
Interface
Giao diện lập trình ứng
dụng
1.7.6
DLL
Dynamic link library
Thƣ viện liên kết động
1.7.5
PDA
Personal Digital Assistant
Các thiết bị số cầm tay
2.2.2
SDK
Soffware Development Kit
Bộ công cụ phát triển
phần mềm
2.2.2
JVM
Java Virtual Machine
Máy ảo Java
2.2.2
FPT
File Transfer Protocol

Giao thức truyền tập tin
2.3.2
HTTP
Hypertext Transfer
Protocol
Giao thức truyền tải siêu
văn bản
2.3.2
RDBMS
Relational Database
Trình chủ cơ sở dữ liệu
2.3.2
Luận văn Thạc sĩ 2011 7 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


Management System
quan hệ
SQL
Struct Query Language
Ngôn ngữ truy vấn có cấu
trúc
2.3.2
SOAP
Simple Object Access
Protocol
Giao thức truy cập đối
tƣợng đơn giản

2.3.2
CGI
Common Gateway


2.3.2
ASP
Active Server Page
Ngôn ngữ máy chủ
ASP(công nghệ
Microsoft)
2.3.2
JSP
Java Server Page
Ngôn ngữ máy chủ
JSP(công nghệ Sun)
2.3.2
PERL
Practical Extraction and
Reporting Language
Công cụ soạn kịch bản
2.3.2
Luận văn Thạc sĩ 2011 8 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


BẢNG CÁC HÌNH VẼ
Số thứ

tự
Hình
Mô tả
Mục tham
chiếu
1
Hình 1.1
Cấu hình hai máy
Mục 1.3.2
2
Hình 1.2
Sơ đồ tranh chấp tài nguyên
Mục 1.3.2
3
Hình 1.3
Cấu trúc kiểm thử hộp đen
Mục 1.6.1
4
Hình 1.4
Cấu trúc kiểm thử hộp trắng
Mục 1.6.2
5
Hình 1.5
Cấu trúc của đồ thị luồng
Mục 1.6.2
6
Hình 1.6
Độ phức tạp Cyclomat
Mục 1.6.2
7

Hình 1.7
Các kiểu vòng lặp
Mục 1.6.2
8
Hình 1.5
Kiểm thử hộp xám
Mục 1.6.3
9
Hình 1.6
Mô hình ứng dụng
Mục 1.7.2
10
Hình 1.7
Các hệ thống máy tính lớn
Mục 1.7.2
11
Hình 1.8
Các hệ thống máy tính cá nhân để bàn
Mục 1.7.2
12
Hình 1.9
Các hệ thống khách – chủ
Mục 1.7.2
13
Hình 1.10
Môi trƣờng phần cứng và phần mềm đƣợc
điều khiển
Mục 1.7.3
14
Hình 1.11

Một hệ thống khách –chủ trên mạng LAN
Mục 1.7.3
15
Hình 1.12
Các trình khách truyền thống và trình
khách Web
Mục 1.7.4
16
Hình 1.13
Hai thể hiện của một ứng dụng
Mục 1.7.4
17
Hình 1.14
Nhiều cửa sổ của ứng dụng
Mục 1.7.4
18
Hình 1.15
dụng giao diện đa tài liệu
Mục 1.7.4
19
Hình 1.16
Ứng dụng giao diện đơn tài liệu
Mục 1.7.4
20
Hình 1.17
Khả năng tƣơng tác
Mục 1.7.7
21
Hình 2.1
Hệ thống thin-client

Mục 2.2.1
22
Hình 2.2
Hệ thống thick-client
Mục 2.2.1
23
Hình 2.3
Hệ thống Web ba tầng
Mục 2.2.2
24
Hình 2.4
Ứng dụng thin-client trên Web
Mục 2.2.2
25
Hình 2.5
Ứng dụng thick-client trên Web
Mục 2.2.2
26
Hình 3.1
Phép ẩn dụ dựa trên tài liệu
Mục 3.1.1
27
Hình 3.2
Phép ẩn dụ dựa trên thiết bị
Mục 3.1.1
28
Hình 3.3
Lựa chọn qua nút radio
Mục 3.1.1
29

Hình 3.4
Lựa chọn qua trình đơn kéo xuống
Mục 3.1.1
30
Hình 3.5
Các điều khiển HTML bao gồm một hộp
văn bản chuẩn HTML và một hộp văn bản
Mục 3.1.1
Luận văn Thạc sĩ 2011 9 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


cuộn
31
Hình 3.6
Các điều khiển HTML bao gồm một trình
đơn kéo xuống
Mục 3.1.1
32
Hình 3.7
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
Mục 3.1.1
33
Hình 3.8
Đ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

Mục 3.1.1
34
Hình 3.9
Bảng, mẫu, và khung mô phỏng các điều
khiển giao diện trong Windows
Mục 3.1.1
35
Hình 3.10
Thông điệp lỗi dựa trên trình duyệt
Mục 3.1.1
36
Hình 3.11
minh họa phản hồi phía trình chủ
Mục 3.1.1
37
Hình 3.12
Không tƣơng thích của trình duyệt- Trình
duyệt A
Mục 3.1.1
38
Hình 3.13
Không tƣơng thích của trình duyệt- Trình
duyệt B
Mục 3.1.1
39
Hình 3.14
Tệp log ví dụ
Mục 3.3.1
40
Hình 3.15

(System Monitor Utility )có thể ghi lại
việc sử dụng tài nguyên hệ thống
Mục 3.1.3
41
Hình 3.16
Windows Performance Monitor- ghi nhận
các loại hoạt động phần cứng khác nhau
Mục 3.3.1
42
Hình 3.17
Window Event Viewer – Tiện ích ghi
nhận thông tin log
Mục 3.3.1
43
Hình 3.18
Windows System Information- cho biết tài
nguyên phần cứng và môi trƣờng phần
mềm
Mục 3.3.1
44
Hình 3.19
Terminal System Information- cho phép
xem thông tin hệ thống
Mục 3.3.1
45
Hình 3.20
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ớ
Mục 3.3.1

46
Hình 3.21
Ví dụ giao diện kiểm thử
Mục 3.3.1
47
Hình 3.22
Các điểm tƣơng tác
Mục 3.5
48
Hình 4.1
Biểu đồ mô phỏng 2 use case
Mục 4.2
Luận văn Thạc sĩ 2011 10 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


DANH MỤC CÁC BẢNG
Số thứ
tự
Bảng
Mô tả
Mục tham
chiếu
1
Bảng 1.1
So sánh sự khác nhau giữa các mô hình
ứng dụng
Mục 1.7.2

2
Bảng 1.2
So sánh sự khác nhau giữa phần cứng và
phần mềm

Mục 1.7.3
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
So sánh xử lý các cửa sổ và thể hiện của
ứng dụng
Mục 1.7.4
6
Bảng 1.6
So sánh các ứng dụng trên trình chủ và các
ứng dụng trên trình khách
Mục 1.7.6
7
Bảng 1.7
Các cấu hình trình chủ phân tán
Mục 1.7.6
8

Bảng 3.1
Đánh giá kinh nghiệm ngƣời dùng
Mục 3.1.1
9
Bảng 3.3
Các nút lệnh khẳng định và hủy bỏ
Mục 3.1.1
10
Bảng 3.4
Liệt kê một số phần tử giao diện ngƣời
dùng cần đƣợc kiểm thử
Mục 3.1.1
11
Bảng 4.1
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)
Mục 4.1
12
Bảng 4.2
Rủi ro do kế hoạch
Mục 4.1
13
Bảng 4.3
Rủi ro do kinh phí và tài nguyên
Mục 4.1
14
Bảng 4.4
Rủi ro vận hành
Mục 4.1
15

Bảng 4.5
Rủi ro do kỹ thuật
Mục 4.1
16
Bảng 4.6
Kiểm thử Giai đoạn 1
Mục 4.1
17
Bảng 4.7
Kiểm thử giai đoạn 2
Mục 4.1
18
Bảng 4.8
Các công cụ sau sẽ đƣợc dùng cho dự án
Mục 4.1
19
Bảng 4.9
Môi trƣờng kiểm thử
Mục 4.1
20
Bảng 4.10
Nhân sự
Mục 4.1
21
Bảng 4.11
Hệ thống
Mục 4.1
22
Bảng 4.12
Các mốc thời gian kiểm thử - giai đoạn 1

Mục 4.1
23
Bảng 4.13
Các mốc thời gian kiểm thử - giai đoạn 2
Mục 4.1
24
Bảng 4.14
Ca sử dụng cho tác nhân ngƣời dùng
internet
Mục 4.2
25
Bảng 4.15
Ca sử dụng cho tác nhân quản trị viên
Mục 4.2
Luận văn Thạc sĩ 2011 11 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


26
Bảng 4.16
Các ca kiểm thử cho ngƣời dùng internet
từ ca sử dụng tìm kiếm sản phẩm
Mục 4.2
27
Bảng 4.17
Các ca kiểm thử cho quản trị viên thêm
sản phẩm
Mục 4.2


Luận văn Thạc sĩ 2011 12 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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
Luận văn Thạc sĩ 2011 13 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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
Luận văn Thạc sĩ 2011 14 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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
Luận văn Thạc sĩ 2011 15 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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ễ.
Luận văn Thạc sĩ 2011 16 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội

Học viên: Nguyễn Thị Ngọc Hƣơng




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
Luận văn Thạc sĩ 2011 17 Kỹ thuật kiểm thử trên các ứng dụng Web


Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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.
Luận văn Thạc sĩ 2011 18 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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]






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ó
IN PUT
OUT PUT

BLACK BOX
Luận văn Thạc sĩ 2011 19 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


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






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.






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.
IN PUT(i)
OUT PUT(i)
if(i<10)
printf(“i=%d”,i);
IN PUT
OUT PUT

GRAY BOX
Luận văn Thạc sĩ 2011 20 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


1.7.1. Khái niệm kiểm thử Website[16]
Kiểm thử website là một thành phần trong kiểm thử phần mềm tập trung vào
các ứng dụng web.
Kiểm thử website là một trong những thành phần đang phát triển nhanh nhất
của kiểm thử phần mềm
1.7.2. So sánh sự khác nhau giữa các mô hình ứng dụng
Đối với hệ thống máy tính thông thƣờng, bao gồm phần cứng và phần
mềm, có thể nhận đầu vào từ ngƣời dùng, sau đó lƣu trữ đâu đó, hoặc trong bộ
nhớ trong nhƣ RAM (Random Access Memory) hay bộ nhớ ngoài nhƣ đĩa
cứng. Hệ thống có thể thực thi các câu lệnh tính toán của phần mềm bởi bộ xử
lý trung tâm (CPU-Central Processing Unit). Cuối cùng hệ thống có thể trả về

các đầu ra cho ngƣời dùng. Hình 1.6 mô tả tƣơng tác giữa con ngƣời và máy
tính. Thông qua giao diện ngƣời dùng (UI-User Interface), ngƣời dùng tƣơng
tác với ứng dụng bởi nhập các đầu vào và nhận các đầu ra từ nhiều dạng giao
diện khác nhau[13]


Hình 1.6: Mô hình ứng dụng[8]
Bảng 1.1: So sánh sự khác nhau giữa các mô hình ứng dụng
Hệ thống máy tính lớn
Hệ thống máy tính cá
nhân
Hệ thống Web
-Hệ thống sẽ chịu trách
nhiệm xử lý tất cả các tác
vụ của một ứng dụng, trừ
các điều khiển giao diện
ngƣời dùng
-Các điều khiển giao diện
ngƣời dùng đƣợc thực hiện
trên các đầu cuối (terminal)
chỉ đơn giản là hiển thị các
chuỗi văn bản từ máy tính
lớn. Rất ít các xử lý hay
tính toán cũng đƣợc thực
hiện trên các đầu cuối

-Hệ thống sẽ xử lý tất cả
các từ giao diện qua các
luật xử lý cho đến hệ
thống tệp-trên một máy

tính đơn
- Các ứng dụng trên máy
tính cá nhân có thể hỗ trợ
giao diện văn bản hoặc
giao diện đồ họa. Các ứng
dụng giao diện đồ họa
cũng hỗ trợ các sự kiện
bàn phím, chuột, nhƣ
nhấp đơn, nhấp đôi, kéo
- Hệ thống khách-chủ,
không chỉ trình khách
hoặc trình chủ có thể
thực hiện các xử lý, mà
các xử lý phía trình chủ
còn có thể đƣợc thực
hiện trên nhiều máy
tính chủ (máy chủ ứng
dụng, máy chủ Web,
máy chủ cơ sở dữ liệu)




Luận văn Thạc sĩ 2011 21 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng




-Hệ thống mạng kết nối
các đầu cuối với các máy
tính lớn. Các giao diện trên
đầu cuối là dạng văn bản.
Ngƣời dùng gửi dữ liệu
hay lệnh điều khiển đến hệ
thống qua bàn phím

và thả…
- Hệ thống mạng không
cần thiết cho một máy tính
cá nhân để bàn


-Hệ thống mạng là cần
thiết và ít nhất hai máy
tính để hoạt động: một
máy tính khách và một
máy tính chủ. Máy chủ
trả lời dữ liệu yêu cầu
từ máy tính khách. Đối
với phần lớn các ứng
dụng Web, một trình
duyệt Web hoạt động
nhƣ một chƣơng trình
giao diện trên máy tính
khách.





Hình 1.7. Các hệ thống máy tính lớn[13]

Luận văn Thạc sĩ 2011 22 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng



Hình 1.8 Các hệ thống máy tính cá nhân để bàn

Hình 1.9 mô tả các xử lý vào ra và xử lý lô-gíc đƣợc thực hiện bởi máy
chủ ứng dụng (máy chủ ở giữa), trong khi máy chủ cơ sở dữ liệu (máy chủ ở
bên phải) xử lý lƣu trữ dữ liệu. Đƣờng thẳng nét đứt chỉ ra rằng các xử lý có
thể đƣợc thực hiện phía trình khách hoặc trình chủ.


Hình 1.9 Các hệ thống khách – chủ
1.7.3. So sánh sự khác nhau giữa phần cứng và phần mềm
Bảng 1.2: So sánh sự khác nhau giữa phần cứng và phần mềm
Hệ thống máy tính lớn
Hệ thống máy tính cá
nhân
Hệ thống Web
-Máy tính lớn (Hình 1.10) là
những môi trƣờng đƣợc
điều khiển.Từ một vị trí
trung tâm một máy tính lớn
với chỉ một hệ điều hành và

-Hệ thống máy tính cá nhân
bao gồm các phần cứng và
phần mềm hỗn hợp nhiều
thành phần phần cứng đƣợc
sản xuất và hỗ trợ bởi các
-Hệ thống Web bao gồm
nhiều trình khách và
trình chủ, bao gồm các
thành phần phần cứng và
phần mềm phức tạp hơn.
Luận văn Thạc sĩ 2011 23 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


các ứng dụng đƣợc bán và
hỗ trợ bởi cùng một nhà
sản xuất có thể phục vụ cho
nhiều đầu cuối
-Vấn đề tƣơng thích quản
lý dễ dàng hơn so với máy
tính cá nhân và các hệ
thống khách chủ
nhà sản xuất khác nhau, các
phần mềm ứng dụng thì
không giới hạn

-Vấn đề tƣơng thích khó
khăn hơn và rất khó để

quản lý trong môi trƣờng
này

Phía trình chủ của hệ
thống Web có thể hỗ trợ
tập hợp các phần cứng
và phần mềm
-Vấn đề về khả năng
tƣơng thích và cấu hình
phức tạp hơn



Hình 1.10 Môi trƣờng phần cứng và phần mềm đƣợc điều khiển[13]



Hình 1.11: Một hệ thống khách –chủ trên mạng LAN[8]
Luận văn Thạc sĩ 2011 24 Kỹ thuật kiểm thử trên các ứng dụng Web

Khoa Công Nghệ Thông Tin Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội
Học viên: Nguyễn Thị Ngọc Hƣơng


1.7.4. Sự khác nhau giữa các hệ thống khách chủ truyền thống và Web
Bảng 1.3 So sánh Các ứng dụng phía trình khách
Hệ thống khách chủ truyền thống
Hệ thống khách chủ Web
-Hầu hết các hệ thống khách-chủ là các
ứng dụng hƣớng truy cập dữ liệu. Một

trình khách cho phép ngƣời dùng, thông
qua giao diện, gửi dữ liệu vào, nhận kết
quả ra và tƣơng tác xử lý bên trong (ví
dụ: gửi một lệnh truy vấn).
- Trình khách hoạt động trong môi
trƣờng hệ điều hành. Mỗi hệ điều hành
của trình khách window 16,32,64 bít,
Solaris, Linux, Macintosh…), một ứng
dụng trên trình khách sẽ đƣợc phát triển
và kiểm thử cho hệ điều hành đó


- Hầu hết các hệ thống Web cũng là các
ứng dụng hƣớng truy cập dữ liệu. . Các
trình khách dựa trên trình duyệt đƣợc
thiết kế để xử lý các hoạt động tƣơng tự
nhƣ các hoạt động hỗ trợ bởi các trình
khách truyền thống.
- Trình khách Web hoạt động trong môi
trƣờng trình duyệt Web. Các trình duyệt
Web bao gồm phần mềm gắn liền với hệ
điều hành chuyên biệt chạy trên máy
khách. Trình duyệt cho phép hiển thị
thông tin trang Web viết bằng ngôn ngữ
đánh dấu siêu văn bản HTML và các nội
dung động. Nhiều trình duyệt phổ biến
hỗ trợ các nội dung động nhƣ Java
applet, ActiveX, Flash, Ajax, web
servies, ngôn ngữ đánh dấu mở rộng
XML, CSS (cascading style sheet),

HTML động (DHTML), các tính năng
bảo mật…Để thực hiện điều này, những
nhà sản xuất trình duyệt phải tạo ra các
động cơ và các bộ thông dịch để dịch và
định dạng nội dung HTML. Trong khi
tạo ra các phần mềm này, các trình
duyệt cũng trình bày các vấn đề về khả
năng không tƣơng thích

×