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

Nghiên cứu và đề xuất các phương pháp kiểm thử giao diện phần mềm

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



ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


TRẦN THỊ LONG

NGHIÊN CỨU VÀ ĐỀ XUẤT CÁC PHƯƠNG PHÁP
KIỂM THỬ GIAO DIỆN PHẦN MỀM

Ngành: Công nghệ thông tin
Chuyên ngành: Công nghệ phần mềm
Mã số: 60 48 10

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN


NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS. TS. Bùi Thế Duy




Hà Nội – năm 2012
4


MỤC LỤC
LỜI CAM ĐOAN 3
DANH MỤC CÁC BẢNG 9
DANH MỤC CÁC HÌNH VẼ 9


CHƢƠNG I – TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 12
1.1. Các khái niệm cơ bản 12
1.1.1. Lỗi phần mềm 12
1.2.2. Chi phí cho việc sửa lỗi 12
1.1.3. Kiểm thử phần mềm 13
1.2. Tiến trình kiểm thử phần mềm 14
1.2.1. Kiểm thử đơn vị 14
1.2.2. Kiểm thử tích hợp 15
1.2.3. Kiểm thử hệ thống 15
1.2.4. Kiểm thử hồi quy 16
1.2.5. Kiểm thử chấp nhận 17
1.3. Các phƣơng pháp kiểm thử phần mềm 17
1.3.1. Kiểm thử hộp trắng 17
1.3.2. Kiểm thử hộp đen – Black box testing 18
1.3.3. Kiểm thử hộp xám 20
1.4. Các kỹ thuật kiểm thử cơ bản 20
1.4.1. Kiểm thử luồng điều khiển 20
1.4.2. Kiểm thử luồng dữ liệu 22
1.4.3. Kỹ thuật phân lớp tƣơng đƣơng 23
1.4.4. Kỹ thuật phân tích giá trị biên 24
1.4.5. Kỹ thuật đồ thị - nhân quả 24
1.5. Kiểm thử tự động 25
1.5.1. Kiến trúc kiểm thử tự động 26
1.5.2. Ƣu và nhƣợc điểm của kiểm thử tự động 28
1.5.2. Lựa chọn công cụ kiểm thử tự động 28
5


CHƢƠNG II – GIAO DIỆN VÀ CÁC VẤN ĐỀ CẦN QUAN TÂM 34
2.1. Khái niệm giao diện ngƣời dùng 34

2.2. Tại sao cần thiết kế giao diện 34
2.3. Các dạng giao tiếp ngƣời dùng - máy tính 35
2.3.1. Giao tiếp dòng lệnh 35
2.3.2. Giao tiếp bảng chọn 36
2.3.3. Giao tiếp bằng ngôn ngữ tự nhiên 36
2.3.4. Giao tiếp dạng hỏi đáp truy vấn 36
2.3.5. Giao tiếp dạng form-fill 36
2.3.6. Giao tiếp dạng WIMP 37
2.4. Tính tiện lợi của hệ thống tƣơng tác 38
2.5. Nguyên lý thiết kế hệ thống có tính tiện lợi 39
2.5.1. Sự rõ ràng 40
2.5.2. Sự phản hồi 40
2.5.3. Tính ràng buộc 40
2.5.4. Tính ánh xạ 41
2.5.5. Tính nhất quán 41
2.5.6. Tính gợi ý 41
2.6. Các lỗi giao diện ngƣời dùng 42
2.6.1. Lỗi chức năng 42
2.6.2. Lỗi giao tiếp truyền thông 42
2.6.3. Lỗi cấu trúc lệnh 42
2.6.4. Thiếu lệnh 43
2.6.5. Lỗi thi hành 43
2.6.6. Đầu ra 43
CHƢƠNG 3 – KIỂM THỬ GIAO DIỆN PHẦN MỀM 44
3.1. Khái niệm kiểm thử giao diện phần mềm 44
3.2. Kiểm thử nhƣ thế nào 44
3.2.1. Nguyên tắc chung khi kiểm thử giao diện phần mềm 45
3.3.2. Chiến lƣợc kiểm thử giao diện 49
6



3.3. Danh mục kiểm thử giao diện 49
3.3.1. Kiểm thử sự tuân thủ chuẩn Windows 50
3.3.2. Danh mục kiểm tra sự hợp thức hóa màn hình 53
3.3.3. Các hoạt động chuẩn 61
3.4. Kiểm thử giao diện tự động 62
3.4.1. Tạo kế hoạch kiểm thử giao diện cho công cụ kiểm thử giao diện tự động 63
3.4.2. Sử dụng công cụ kiểm thử giao diện tự động 63
3.4.3. Mƣời điều cần nhớ khi kiểm thử giao diện tự động 64
3.4.4. Các thủ thuật khi kiểm thử giao diện tự động 64
3.4.5. Một số vấn đề thƣờng gặp với kiểm thử tự động 66
3.5. Đánh giá mức độ hài lòng ngƣời dùng 66
CHƢƠNG 4 – KIỂM THỬ GIAO DIỆN THEO PHÂN LOẠI PHẦN MỀM 67
4.1. Phân loại phần mềm 67
4.2. Kiểm thử giao diện phần mềm nghiệp vụ 67
4.3. Kiểm thử giao diện đối với phần mềm nhúng 68
4.3.1. Hệ thống nhúng và các đặc điểm cơ bản 68
4.3.2. Kiểm thử giao diện hệ thống nhúng 69
4.4. Kiểm thử giao diện đối với các ứng dụng Windows 70
4.5. Kiểm thử giao diện với các ứng dụng Web 72
4.5.1. Ứng dụng Web (Web Application) 72
4.5.2. Kiểm thử ứng dụng Web 73
4.5.3. Các công cụ kiểm thử giao diện tự động 74
CHƢƠNG 5 – ÁP DỤNG CÁC KỸ THUẬT KIỂM THỬ TRONG KIỂM THỬ
GIAO DIỆN ỨNG DỤNG “PHẦN MỀM QUẢN LÝ BÁN HÀNG” 85
5.1. Giới thiệu ứng dụng “Phần mềm quản lý bán hàng” 85
5.1.1. Thành phần và chức năng 85
5.1.2. Mô-đun tiến hành kiểm thử giao diện 87
5.2. Lựa chọn phƣơng pháp và kỹ thuật kiểm thử 88
5.2.1. Kiểm thử giao diện màn hình chính 89

7


5.2.2. Kiểm thử giao diện màn hình “Phiếu nhập hàng” 89
5.3. Tiến hành kiểm thử giao diện ứng dụng 91
KẾT LUẬN 108
TÀI LIỆU THAM KHẢO 109

2


MỞ ĐẦU
Kiểm thử là một trong những giai đoạn của quá trình
phát triển phần mềm. Trước khi sản phẩm được phát hành tất
cả các chức năng cũng như giao diện của phần mềm đều cần
qua kiểm thử. Giao diện tuy được thiết kế tốt nhưng cũng
không thể tránh khỏi các sai sót. Kiểm thử giao diện hiệu quả
sẽ phát hiện ra được các sai sót này, tránh các lỗi về giao diện
khi phát hành sản phẩm. Kiểm thử giao diện đứng dưới vai trò
của người sử dụng, sẽ giúp phần mềm có sự thích ứng phù hợp
hơn với thị hiếu và nhu cầu của người dùng. Chính vì lẽ đó,
kiểm thử giao diện phần mềm là việc hết sức cần thiết, cần
nghiên cứu về kiểm thử giao diện để tìm ra phương pháp kiểm
thử hiệu quả phù hợp với ứng dụng phần mềm.
Luận văn bao gồm năm chương. Chương 1 trình bày
các lý thuyết tổng quan về kiểm thử phần mềm: các khái niệm
cơ bản, tiến trình kiểm thử phần mềm, các phương pháp, kỹ
thuật kiểm thử phần mềm. Chương 2 trình bày các kiến thức
về giao diện và các vấn đề cần lưu ý khi thiết kế và kiểm thử
giao diện phần mềm. Chương 3 tập trung vào kiểm thử giao

diện phần mềm, nêu các hướng giải quyết và các vấn đề cần
kiểm thử giao diện. Chương 4 cũng nói về kiểm thử giao diện
nhưng đi sâu vào từng loại ứng dụng phần mềm. Chương 5
đưa ra ví dụ áp dụng các kiến thức đã được nêu trong bốn
chương đầu để kiểm thử giao diện phần mềm “Quản lý bán
hàng”.
3


CHƢƠNG I – TỔNG QUAN VỀ KIỂM THỬ PHẦN
MỀM
1.1. Các khái niệm cơ bản
1.1.1. Lỗi phần mềm
1.2.2. Chi phí cho việc sửa lỗi
Chi phí tăng theo hàm mũ như Hình 1.1:

Hình 1.1 - Chi phí sửa lỗi theo thời gian
1.1.3. Kiểm thử phần mềm
1.2. Tiến trình kiểm thử phần mềm
Các giai đoạn kiểm thử tương ứng với các giai đoạn
khác nhau trong tiến trình phát triển phần mềm và được khái
quát hóa qua mô hình chữ V – Hình 1.2 [7].
4



Hình 1.2 – Các giai đoạn phát triển và kiểm thử trong mô hình
chữ V
1.2.1. Kiểm thử đơn vị
1.2.2. Kiểm thử tích hợp

1.2.3. Kiểm thử hệ thống
1.2.4. Kiểm thử hồi quy

Hình 1.3 – Kiểm thử hồi quy tại các mức kiểm thử phần mềm
khác
5


1.2.5. Kiểm thử chấp nhận
1.3. Các phƣơng pháp kiểm thử phần mềm
1.3.1. Kiểm thử hộp trắng
Trong kiểm thử hộp trắng, tập trung vào kiểm thử
luồng điều khiển và kiểm thử luồng dữ liệu.

Hình 1.4 – Kiểm thử hộp trắng
1.3.2. Kiểm thử hộp đen – Black box testing

Hình 1.5 – Kiểm thử hộp đen
6


1.3.3. Kiểm thử hộp xám
1.4. Các kỹ thuật kiểm thử cơ bản
1.4.1. Kiểm thử luồng điều khiển
Chu trình tạo dữ liệu đầu vào kiểm thử cho kiểm thử
luồng điều khiển được mô tả trong lưu đồ dưới đây – Hình 1.6.

Hình 1.6 – Chu trình sinh dữ liệu đầu vào kiểm thử cho kiểm
thử luồng điều khiển


Hình 1.7 – Các ký hiệu trong CFG
7


1.4.2. Kiểm thử luồng dữ liệu
1.4.3. Kỹ thuật phân lớp tương đương
1.4.4. Kỹ thuật phân tích giá trị biên
1.4.5. Kỹ thuật đồ thị - nhân quả
1.5. Kiểm thử tự động
1.5.1. Kiến trúc kiểm thử tự động
Mỗi framework KTTĐ bao gồm 6 thành phần như
trong Hình 1.8 dưới đây:

Hình 1.8 – Các thành phần của một kiến trúc KTTĐ

8


1.5.2. Ưu và nhược điểm của kiểm thử tự động
1.5.2. Lựa chọn công cụ kiểm thử tự động
1.5.1.1. Tiêu chí 1: Mục tiêu nhóm kiểm thử
1.5.1.2. Tiêu chí 2: Nền tảng và ứng dụng hỗ trợ
1.5.1.3. Tiêu chí 3: Các kiểu kiểm thử
1.6.1.4. Tiêu chí 4: Khả năng lập trình
1.6.1.5. Tiêu chí 5: Khả năng ghi sự kiện
1.6.1.6. Tiêu chí 6: Công nghệ ứng dụng
1.6.1.7. Tiêu chí 7: Nguồn dữ liệu kiểm thử
1.6.1.8. Tiêu chí 8: Thực thi kiểm thử tự động
1.6.1.9. Tiêu chí 9: Khả năng phân tích dữ liệu đầu ra
1.6.1.10. Tiêu chí 10: Đầu ra các công cụ kiểm thử

1.6.1.11. Tiêu chí 11: Khả năng mở rộng
1.6.1.12. Tiêu chí 12: Hỗ trợ công nghệ
1.6.1.13. Tiêu chí 13: Chính sách giá cả
1.6.1.14. Tiêu chí 14: Dùng thử và đánh giá
9


CHƢƠNG II – GIAO DIỆN VÀ CÁC VẤN ĐỀ CẦN
QUAN TÂM KHI THIẾT KẾ GIAO DIỆN
2.1. Khái niệm giao diện ngƣời dùng

Hình 2.1 – Mô hình cấu trúc UI
2.2. Tại sao cần thiết kế giao diện
2.3. Các dạng giao tiếp ngƣời dùng - máy tính
2.3.1. Giao tiếp dòng lệnh

Hình 2.2 – Mô hình giao tiếp dòng lệnh trong window
10


2.3.2. Giao tiếp bảng chọn

Hình 2.3 – Mô hình giao tiếp Menu
2.3.3. Giao tiếp bằng ngôn ngữ tự nhiên
2.3.4. Giao tiếp dạng hỏi đáp truy vấn
2.3.5. Giao tiếp dạng form-fill

Hình 2.4 – Giao tiếp form-fill
Điển hình nhất của loại giao diện này chính là bảng
tính trong MSExcel như trong Hình 2.5.

11



Hình 2.5 – Bảng tính
2.3.6. Giao tiếp dạng WIMP
2.4. Tính tiện lợi của hệ thống tƣơng tác
Nielsel đã mô hình hóa sự chấp nhận được của toàn bộ
hệ thống như Hình 2.6 dưới đây [7].

Hình 2.6 - Mô hình sự chấp nhận được của hệ thống
12


2.5. Nguyên lý thiết kế hệ thống có tính tiện lợi
2.5.1. Sự rõ ràng
2.5.2. Sự phản hồi
2.5.3. Tính ràng buộc
2.5.4. Tính ánh xạ
2.5.5. Tính nhất quán
2.5.6. Tính gợi ý
2.6. Các lỗi giao diện ngƣời dùng
2.6.1. Lỗi chức năng
2.6.2. Lỗi giao tiếp truyền thông
2.6.3. Lỗi cấu trúc lệnh
2.6.4. Thiếu lệnh
2.6.5. Lỗi thi hành
2.6.6. Đầu ra
13



CHƢƠNG 3 – KIỂM THỬ GIAO DIỆN PHẦN MỀM
3.1. Khái niệm kiểm thử giao diện phần mềm
3.2. Kiểm thử nhƣ thế nào
3.2.1. Nguyên tắc chung khi kiểm thử giao diện phần mềm
3.3. Danh mục kiểm thử giao diện
3.3.1. Kiểm thử sự tuân thủ chuẩn Windows
3.3.1.1. Ứng dụng
3.3.1.2. Đối với mỗi cửa sổ của ứng dụng
3.3.1.3.Text Boxes
3.3.1.4. Option (Radio Buttons)
3.3.1.5. Check Boxes
3.3.1.6. Command Buttons
3.3.1.7. Drop Down List Boxes
3.3.1.8. Combo Boxes

14


3.3.1.9. List Boxes
3.3.2. Danh mục kiểm tra sự hợp thức hóa màn hình
3.3.2.1. Các yêu cầu về tính thẩm mỹ
3.3.2.2. Các điều kiện hợp lệ
3.3.2.3. Kiểm tra sự điều hướng
3.3.2.4. Các điệu kiện về tính tiện dụng
3.3.2.5. Điều kiện toàn vẹn dữ liệu
3.3.2.6. Điều kiện khi ở chế độ chỉ đọc
3.3.2.7. Các điều kiện tổng quát
3.3.2.8. Kiểm thử các trường đặc biệt
3.3.3. Các hoạt động chuẩn

3.3.3.1. Các hoạt động chuẩn
3.3.3.2. Phím tắt / phím nóng
3.3.3.3. Phím tắt lệnh điều khiển
3.4. Kiểm thử giao diện tự động
3.4.1. Tạo kế hoạch kiểm thử giao diện cho công cụ kiểm
thử giao diện tự động
3.4.2. Sử dụng công cụ kiểm thử giao diện tự động
15


3.4.3. Mười điều cần nhớ khi kiểm thử giao diện tự động
3.4.4. Các thủ thuật khi kiểm thử giao diện tự động
3.4.5. Một số vấn đề thường gặp với kiểm thử tự động
3.5. Đánh giá mức độ hài lòng ngƣời dùng
16


CHƢƠNG 4 – KIỂM THỬ GIAO DIỆNTHEO
PHÂN LOẠI PHẦN MỀM
4.1. Phân loại phần mềm
4.2. Kiểm thử giao diện phần mềm nghiệp vụ
4.3. Kiểm thử giao diện đối với phần mềm nhúng
4.3.1. Hệ thống nhúng và các đặc điểm cơ bản
4.3.2. Kiểm thử giao diện hệ thống nhúng
4.4. Kiểm thử giao diện đối với các ứng dụng Windows
4.5. Kiểm thử giao diện với các ứng dụng Web
4.5.1. Ứng dụng Web (Web Application)
4.5.2. Kiểm thử ứng dụng Web
4.5.3. Các công cụ kiểm thử giao diện tự động
4.5.3.1. Quick Test Professional (QTP)

4.6.3.2. AppPerfect Web Test
17


CHƢƠNG 5 – ÁP DỤNG CÁC KỸ THUẬT KIỂM THỬ
TRONG KIỂM THỬ GIAO DIỆN ỨNG DỤNG “PHẦN MỀM
QUẢN LÝ BÁN HÀNG”
5.1. Giới thiệu ứng dụng “Phần mềm quản lý bán hàng”
5.1.1. Thành phần và chức năng
5.1.2. Mô-đun tiến hành kiểm thử giao diện
5.2. Lựa chọn phƣơng pháp và kỹ thuật kiểm thử
5.2.1. Kiểm thử giao diện màn hình chính
5.2.2. Kiểm thử giao diện màn hình “Phiếu nhập hàng”
5.3. Tiến hành kiểm thử giao diện ứng dụng
18


KẾT LUẬN
Luận văn có bố cục rõ ràng, phân làm 5 chương.
Chương đầu tiên tổng hợp các kiến thức về lĩnh vực kiểm thử
phần mềm, từ các khái niệm cơ bản, tới các phương pháp, kỹ
thuật kiểm thử. Chương thứ hai đề cập tới giao diện và các vấn
đề về giao diện. Chương Ba tập trung vào nội dung chính, đó
là kiểm thử giao diện. Đặc biệt, việc kiểm thử giao diện theo
phân loại các nhóm phần mềm được trình bày trong chương
Bốn, nêu rõ các vấn đề cần lưu ý khi kiểm thử từng nhóm
phần mềm. Dựa trên các kiến thức được tổng hợp ở cả bốn
chương luận văn, chương cuối cùng đưa ra ví dụ về việc áp
dụng lý thuyết để kiểm thử giao diện của một phần mềm cụ
thể “Phần mềm quản lý hàng hóa”.

Luận văn cũng đề cập tới phương pháp kiểm thử giao
diện tự động. Đây là một trong những chủ đề nóng bỏng trên
các diễn đàn mạng về kiểm thử phần mềm hiện nay. Đặc biệt
khi công nghệ càng phát triển, yêu cầu việc tự động hóa ngày
càng cao, việc áp dụng kiểm thử tự động là một hướng phát
triển tất yếu. Luận văn đã nêu được tầm quan trọng của kiểm
thử tự động trong kiểm thử phần mềm, nêu ra các tiêu chí để
lựa chọn công cụ kiểm thử phù hợp. Đặc biệt trong Mục 3.4
Chương 3 đưa ra các thủ thuật và các vấn đề cần lưu ý khi
kiểm thử giao diện tự động.
Tuy nhiên, luận văn chưa đưa ra được các kết quả thực
nghiệm khi áp dụng kiểm thử tự động vào kiểm thử giao diện
phần mềm thực tế. Để hoàn thiện thêm nội dung đề tài, đây sẽ
là một hướng tốt để nghiên cứu bổ sung. Đối với mỗi dạng
phần mềm đặc trưng (theo phân loại phần mềm ở Chương 4),
tùy theo đặc trưng của phần mềm và dựa trên các tiêu chí lựa
chọn công cụ phần mềm đã được trình bày, lựa chọn một vài
công cụ tiêu biểu để áp dụng kiểm thử giao diện tự động. Từ
19


kết quả kiểm thử thực tế, đưa ra những đánh giá nhận xét về
việc áp dụng kiểm thử tự động vào kiểm thử giao diện với
từng loại phần mềm đã phân loại.
Trong khoảng thời gian ngắn, với khối lượng công
việc lớn, luận văn vẫn còn nhiều thiếu sót. Tuy nhiên, có thể
sử dụng nó như một tài liệu tham khảo và hỗ trợ các kiểm thử
viên lựa chọn các phương pháp hay công cụ kiểm thử phù hợp
với ứng dụng cần kiểm thử.
20



TÀI LIỆU THAM KHẢO
Tiếng Việt
[1]. Nguyễn Thanh Bình, Kiểm thử (9), Bài giảng môn Công
nghệ phần mềm, Khoa Công nghệ thông tin, trường ĐH Bách
Khoa, ĐH Đà Nẵng.
[2]. Nguyễn Văn Vỵ, Đảm bảo chất lượng phần mềm và kiểm
thử, Bài giảng Bộ môn Công nghệ phần mềm, trường ĐH
Công Nghệ, ĐH Quốc gia Hà Nội, phần II – Kiểm thử phần
mềm.
[3]. Cao Thị Bích Liên (2009), Một số kỹ thuật kiểm thử phần
mềm, Luận văn thạc sỹ Khoa học máy tính, trường ĐH Thái
Nguyên.
[4]. Lương Mạnh Bá, Tương tác Người – Máy, Nhà xuất bản
khoa học và kỹ thuật Hà Nội, tr.47-59, 68-74.
[5]. Bùi Thế Duy (2004), Tương tác người – máy, Bộ môn
Mạng và TTMT, ĐH Công Nghệ.
Tiếng Anh
[6]. Cem Kaner, Jack Falk, Hung Quoc Nguyen, Testing
Computer Software, pp.32-33.
[7]. Kshirasagar Naik, Priyadarshi Tripathy (2008), Software
testing and quality assurance theory and practice, pp.16-19,
88-108,
21


[8]. Kanglin, Mengqi Wu (2005), Developing and Automated
GUI automatic testing tool, Sybex Inc.
[9]. Trương Anh Hoang (2011), Software testing and quality

assurance theory, Lecture Soffware testing and quality
assurance, Software Engineering Dept., EUT-VNU.
[10]. Jeff Tian (2005), Software quality engineering - Testing,
Quality Assurance, and Quantifiable Improvement,
Department of Computer Science and Engineering Southern
Methodist University.
[11]. Software QA Testing and Test Tool Resources, website
[12]. Alan Page, Ken Johnston, Bj Rollison (2009), How We
Test Software at Microsoft, Microsoft Corporation.
[13]. Scott Barber (2006), Test Automation for Embedded
Devices, Chief Technologist PerfTestPlus, Inc.

×