1
Nghiên cứu và đề xuất các phương pháp
kiểm thử giao diện phần mềm
Research and promote software interface testing methods
NXB H. : ĐHCN, 2012 Số trang 90 tr. +
Trần Thị Long
Trường Đại học Công nghệ
Luận văn ThS ngành: Công nghệ phần mềm; Mã số: 60 48 10
Người hướng dẫn: PGS, TS. Bùi Thế Duy
Năm bảo vệ: 2012
Abstract: 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. 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. 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, đi sâu vào từng loại ứng dụng phần mềm. Đư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”.
Keywords: Công nghệ phần mềm; Kiểm thử phần mềm; Phát triển phần mềm
Content
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”.
2
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].
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
3
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
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
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
4
Hình 1.7 – Các ký hiệu trong CFG
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Đ
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.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
5
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ả
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
2.3.2. Giao tiếp bảng chọn
Hình 2.3 – Mô hình giao tiếp Menu
6
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.
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
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
7
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
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
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.3.2. Phím tắt / phím nóng
3.3.3.3. Phím tắt lệnh điều khiển
8
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
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
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
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
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ử.
9
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ừ 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ử.
References
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.
10
[7]. Kshirasagar Naik, Priyadarshi Tripathy (2008), Software testing and quality assurance theory
and practice, pp.16-19, 88-108,
[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.