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

Nghiên cứu về kiểm thử dựa trên mô hình và ứng dụng

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

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

LÊ THỊ PHƢỢNG

NGHIÊN CỨU VỀ KIỂM THỬ DỰA TRÊN MÔ HÌNH
VÀ ỨNG DỤNG

Ngành: Công nghệ thông tin
Chuyên ngành: Kỹ thuật phần mềm
Mã Số: 60 48 01 03

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

NGƢỜI HƢỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN VIỆT HÀ

Hà Nội – 2015


i

MỤC LỤC
MỤC LỤC ............................................................................................................................. i
LỜI CẢM ƠN ..................................................................................................................... iii
LỜI CAM ĐOAN ................................................................................................................ iv
DANH MỤC THUẬT NGỮ VIẾT TẮT ............................................................................. v
DANH MỤC HÌNH VẼ ...................................................................................................... vi
DANH MỤC BẢNG ..........................................................................................................vii
Chương 1: Giới thiệu ............................................................................................................ 8
Chương 2: Phương pháp đặc tả tương tác giao diện cho các ứng dụng Web .................... 10
2.1 Đặc tả tương tác giao diện của từng trang Web bằng ôtômát hữu hạn trạng thái .... 10



2.2 Xây dựng mô hình đặc tả tương tác giao diện cho toàn bộ ứng dụng WebError! Bookmark
2.3 Biểu diễn mô hình đặc tả dưới dạng các tệp tin MS ExcelError! Bookmark not defined.
Chương 3: Sinh và thực thi các ca kiểm thử tự động ......... Error! Bookmark not defined.
3.1 Sinh các ca kiểm thử từ mô hình đặc tả hình thức ... Error! Bookmark not defined.
3.1.1 Đường dẫn kiểm thử ......................................... Error! Bookmark not defined.
3.1.2 Thuật toán sinh tự động các đường dẫn kiểm thửError! Bookmark not defined.
3.2 Thực hiện các ca kiểm thử ....................................... Error! Bookmark not defined.
3.4 Đánh giá phương pháp ............................................. Error! Bookmark not defined.
Chương 4: Công cụ và thực nghiệm ................................... Error! Bookmark not defined.
4.1 Giới thiệu các công cụ bổ trợ ................................... Error! Bookmark not defined.

4.1.1 Giới thiệu Selenium và một số API WebDriver được sử dụngError! Bookmark not de
4.1.2 Giới thiệu Jsoup ................................................ Error! Bookmark not defined.

4.2 Giới thiệu công cụ kiểm thử tự động tương tác giao diện cho các ứng dụng WebError! Boo
4.2.1 Kiến trúc của công cụ ....................................... Error! Bookmark not defined.
4.2.2 Đầu vào của công cụ ......................................... Error! Bookmark not defined.
4.2.3 Đầu ra của công cụ............................................ Error! Bookmark not defined.
4.3 Thực nghiệm ............................................................ Error! Bookmark not defined.
4.4 Kết quả cải tiến công cụ ........................................... Error! Bookmark not defined.
4.5 Ý nghĩa của công cụ thực nghiệm ............................ Error! Bookmark not defined.


ii
Chương 5: KẾT LUẬN ...................................................... Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO .................................................................................................. 11


iii


LỜI CẢM ƠN
Trước tiên tôi xin gửi lời cảm ơn chân thành và sâu sắc đến thầy giáo
PGS.TS Nguyễn Việt Hà và thầy giáo TS. Phạm Ngọc Hùng - người đã trực tiếp
hướng dẫn, khuyến khích, chỉ bảo và đóng góp những ý kiến quý báu trong suốt
quá trình tôi học tập, nghiên cứu cũng như từ khi tôi bắt đầu nghiên cứu đề tài
đến khi hoàn thành luận văn này.
Tôi xin chân thành cảm ơn các thầy cô giáo khoa Công nghệ thông tin,
trường Đại học Công nghệ, Đại học Quốc Gia Hà Nội đã tận tình đào tạo, cung
cấp cho tôi những kiến thức vô cùng quý giá, đã tạo điều kiện tốt nhất cho tôi
trong suốt quá trình học tập, nghiên cứu tại trường.
Đồng thời tôi xin chân thành cảm ơn những người thân trong gia đình cùng
toàn thể bạn bè, đồng nghiệp đã luôn giúp đỡ, động viên tôi trong những lúc gặp
phải khó khăn trong việc học tập và nghiên cứu.
Cuối cùng, tôi xin chân thành cảm ơn Lê Khánh Trình người đã giúp đỡ,
tạo điều kiện cho tôi nghiên cứu công cụ kiểm thử tự động ATWT và các đồng
nghiệp của tôi tại Cục Công nghệ thông tin - Tổng cục IV - Bộ Công an đã giúp
đỡ, tạo điều kiện thuận lợi cho tôi học tập và nghiên cứu chương trình thạc sĩ tại
Đại học Công nghệ, ĐH QGHN.


iv

LỜI CAM ĐOAN
Tôi xin cam đoan rằng luận văn thạc sĩ công nghệ thông tin “Nghiên cứu về
kiểm thử dựa trên mô hình và ứng dụng” là công trình nghiên cứu của riêng tôi
dưới sự hướng dẫn của thầy giáo PGS.TS Nguyễn Việt Hà và thầy giáo TS.
Phạm Ngọc Hùng, không sao chép lại của người khác. Trong toàn bộ nội dung
của luận văn, những điều đã được trình bày hoặc là của chính cá nhân tôi hoặc là
được tổng hợp từ nhiều nguồn tài liệu. Tất cả các nguồn tài liệu tham khảo đều

có xuất xứ rõ ràng và hợp pháp.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy
định cho lời cam đoan này.
Hà Nội, ngày 09 tháng 7 năm 2015

Lê Thị Phượng


v

DANH MỤC THUẬT NGỮ VIẾT TẮT
STT Từ viết tắt

Từ đầy đủ

Ý nghĩa

Programming Giao diện lập trình ứng
dụng

1

API

Application
Interface

2

FSA


Finite State Automaton

Ôtômát hữu hạn trạng thái

3

MBT

Model- base testing.

Kiểm thử dựa trên mô hình.


vi

DANH MỤC HÌNH VẼ
Hình 2.1. Trạng thái bắt đầu của trang tìm kiếm cán bộ
Hình 2.2. Trạng thái đã nhập họ tên tìm kiếm
Hình 2.3. Ôtômát hữu hạn trạng thái M1
Hình 2.4. Kết quả tìm kiếm cán bộ và nút sửa thông tin cán bộ
Hình 2.5. Giao diện trang Web cập nhật thông tin cán bộ (update)
Hình 2.6. Ôtômát hữu hạn trạng M2
Hình 2.7. Mô hình M sau khi thực hiện thuật toán ghép nối giữa M1 và M2
Hình 4.1. Kiến trúc của công cụ Auto Testing Web Application
Hình 4.2. Lưu trữ các tệp tin đầu vào
Hình 4.3. Cài đặt ôtômát hữu hạn trạng thái
Hình 4.4. Giao diện nhập dữ liệu đầu vào của công cụ
Hình 4.5. Kết quả kiểm thử.
Hình 4.6. Ứng dụng Web quản lý thông tin cán bộ.

Hình 4.7. Giao diện trang đăng nhập
Hình 4.8. Giao diện các chức năng của người quản trị hệ thống.
Hình 4.9. Trang quản lý người dùng
Hình 4.10. Giao diện trang tìm kiếm cán bộ
Hình 4.11. Trang thêm mới thông tin cán bộ
Hình 4.12. Trang cập nhật thông tin cán bộ
Hình 4.13. Thư mục các tệp tin đặc tả ứng dụng Quản lý thông tin cán bộ
Hình 4.14. Giao diện của công cụ
Hinh 4.15. Các đường dẫn kiểm thử được sinh tự động
Hình 4.16. Kết quả thực hiện đường dẫn kiểm thử hiển thị trong tệp tin đầu ra
Hình 4.17. Giao diện chức năng tạo menu động
Hình 4.18. Giao diện pop-up


vii

DANH MỤC BẢNG
Bảng 2.1. Các trạng thái Web của trang tìm kiếm cán bộ
Bảng 2.2. Các sự kiện của trang tìm kiếm cán bộ
Bảng 2.3. Bảng các phần tử Web của trang tìm kiếm cán bộ.
Bảng 2.4. Bảng các trạng thái của trang tìm kiếm cán bộ
Bảng 2.5. Bảng các sự kiện của trang tìm kiếm cán bộ
Bảng 2.6. Bảng các transition của trang tìm kiếm cán bộ
Bảng 2.7. tệp tin Excel đặc tả trang Web tìm kiếm cán bộ
Bảng 3.1. Các transition của trang tìm kiếm thông tin cán bộ
Bảng 3.2. Các testparth được sinh ra từ mô hình trang tìm kiếm thông tin cán bộ


8


Chƣơng 1: Giới thiệu
Trong ngành công nghiệp phát triển phần mềm ngày nay, hầu hết các phần
mềm ứng dụng đều được phát triển trên nền Web. Do đó, việc kiểm thử đảm bảo
chất lượng các ứng dụng Web là một vấn đề rất quan trọng. Tuy nhiên, các ứng
dụng Web ngày càng trở nên phức tạp, việc kiểm thử thủ công bao gồm cả tạo
các ca kiểm thử và thực thi chúng trên các trang Web, là công việc rất tốn kém
về thời gian và công sức. Hơn nữa, mỗi khi có sự cập nhật lại phiên bản của
phần mềm, để tránh rủi ro phát sinh lỗi trong khi thay đổi mã nguồn thì các kiểm
thử viên phải kiểm thử lại toàn bộ phần mềm, kể cả các tính năng đã được kiểm
thử tốt. Vì vậy, để hoàn thành công việc kiểm thử đúng tín độ, các công ty phần
mềm cần phải áp dụng các phương pháp và công cụ nhằm tự động hóa các hoạt
động kiểm thử. Kiểm thử tự động là một giải pháp hữu hiệu nhằm nâng cao tính
chính xác và hiệu quả, cũng như giảm kinh phí và rút ngắn thời gian trong quá
trình kiểm thử các sản phẩm phần mềm nói chung và các ứng dụng Web nói
riêng [1]. Kiểm thử dựa trên mô hình đang được xem như là một phương pháp
kiểm thử có khả năng tự động hóa cao.
Kiểm thử dựa trên mô hình là một phương pháp kiểm thử, trong đó các ca
kiểm thử được sinh ra từ mô hình đặc tả hành vi của hệ thống đang được kiểm
thử [1]. Vì vậy, kiểm thử dựa trên mô hình được ứng dụng để giải quyết một số
vấn đề khó khăn trong hoạt động kiểm thử các sản phẩm phần mềm. Một trong
những ứng dụng của nó là kiểm thử tương tác giao diện người dùng cho các ứng
dụng Web. Để ứng dụng phương pháp kiểm thử này, trước tiên chúng ta cần xây
dựng mô hình đặc tả hành vi tương tác giao diện của ứng dụng Web. Mô hình
này thường được biểu diễn bằng máy hữu hạn trạng thái hoặc ôtômát hữu hạn
trạng thái. Tiếp đến, các ca kiểm thử được tự động sinh ra từ mô hình. Cuối
cùng, các ca kiểm thử này được thực thi trên ứng dụng nhằm phát hiện các lỗi
lập trình liên quan đến tương tác giao diện người dùng.
Trong thực tế, có rất nhiều hướng nghiên cứu về kiểm thử dựa trên mô
hình cho ứng dụng Web như kiểm thử khả năng chịu tải, tính bảo mật, hiệu
năng, kiểm thử chức năng, v.v. [2,3,5,6]. Tuy nhiên, việc kiểm thử chức năng

(theo luồng tương tác giao diện người dùng) vẫn chưa có giải pháp thỏa đáng.
Một số nghiên cứu trước đã đề xuất các phương pháp và công cụ thực hiện việc
kiểm thử chức năng ứng dụng Web [4,5,9]. Mặc dù vậy, các nghiên cứu này mới
chỉ thực hiện kiểm thử tự động cho từng trang Web, hoặc cho các Website tĩnh
[5] mà chưa có nhiều nghiên cứu hỗ trợ cho kiểm thử luồng tương tác người
dùng. Trong số đó, phương pháp và công cụ kiểm thử tự động cho các ứng dụng
Web được đề xuất bởi [5] đã giải quyết được một phần vấn đề nêu trên. Tuy


9

nhiên, phương pháp này chỉ thực hiện kiểm thử được cho một số phần tử Web
cơ bản và chúng phải có thuộc tính id định danh. Trong khi, các hệ thống ứng
dụng Web thực tế cần một công cụ kiểm thử tự động, có khả năng kiểm thử
được cho nhiều loại phần tử Web và các phần tử Web đó được thiết kế một cách
linh động.
Nghiên cứu này được đưa ra nhằm giải quyết vấn đề trên. Đề tài đưa ra
phương pháp đặc tả hình thức giao diện cho các ứng dụng Web. Từ đó, chúng
tôi xây dựng thuật toán sinh tự động các ca kiểm thử từ bản đặc tả trên. Cuối
cùng, đề tài dùng phương pháp đã được đề xuất trong [5] làm cơ sở để xây dựng
một công cụ kiểm thử tự động tương tác giao diện các ứng dụng Web. Công cụ
này kiểm thử được cho các ứng dụng Web có nhiều loại phần tử Web như:
DropDownList, CheckBoxList, RadioList, DataGrid, v.v.; kể cả với các phần tử
Web không có thuộc tính định danh (id) và các giao diện pop-up.
Phần còn lại của luận văn được cấu trúc như sau. Chương 2 trình bày về
phương pháp đặc tả giao diện cho các ứng dụng Web như là một ôtômát hữu hạn
trạng thái và được biểu diễn dưới dạng các tệp tin MS Excel. Ở chương 3, luận
văn này trình bày phương pháp sinh tự động các ca kiểm thử từ ôtômát hữu hạn
trạng thái và thực thi chúng trên trên ứng dụng Web. Tiếp đến, chương 4 trình
bày công cụ và kết quả thực nghiệm. Cuối cùng, kết luận của luận văn và định

hướng nghiên cứu tiếp theo được trình bày trong chương 5.


10

Chƣơng 2: Phƣơng pháp đặc tả tƣơng tác giao diện
cho các ứng dụng Web
Để áp dụng phương pháp kiểm thử dựa trên mô hình, chúng ta cần xây
dựng mô hình đặc tả chính xác hành vi của hệ thống cần kiểm thử. Mô hình là
một sự biểu đồ hóa, mô tả chi tiết hệ thống, đồng thời mô tả chi tiết các khía
cạnh, các đặc tính của hệ thống. Mô hình cần phải đủ chi tiết để giúp ta hiểu và
đoán nhận được hành vi của hệ thống. Có nhiều phương pháp đặc tả mô hình
như: máy hữu hạn trạng thái, ôtômát trạng thái, máy trạng thái UML, chuỗi
Markov, văn phạm, bảng quyết định, v.v. [1]. Phụ thuộc vào phương pháp và
công cụ kiểm thử, chúng ta sẽ lựa chọn phương pháp đặc tả hệ thống tương ứng.
Trong chương 2, chúng tôi chỉ trình bày một phương pháp đặc tả tương tác giao
diện ứng dụng Web được sử dụng cho nghiên cứu này.

2.1 Đặc tả tƣơng tác giao diện của từng trang Web bằng
ôtômát hữu hạn trạng thái
Theo quy trình kiểm thử dựa trên mô hình [1] thì việc đầu tiên chúng ta
phải làm trong số các hoạt động kiểm thử tự động ứng dụng Web đó là xây dựng
mô hình đặc tả hành vi của ứng dụng Web. Có nhiều hành vi có thể được sử
dụng để đặc tả nhưng trong luận văn này, chỉ đề cập đến hành vi tương tác của
người dùng đối với hệ thống ứng dụng Web, thông qua sự thay đổi trạng thái
(hay sự thay đổi giao diện) của ứng dụng Web [5]. Chúng tôi dùng ôtômát trạng
thái làm phương pháp đặc tả hình thức giao diện ứng dụng Web. Khi đó, mỗi
giao diện người dùng của một trang Web, tại một thời điểm được mô hình hóa
như là một trạng thái. Mỗi yêu cầu của người dùng được mô hình hóa như là
một hành động tạo ra hàm chuyển trạng thái. Vậy, để mô hình hóa các hành vi

tương tác giao diện người dùng ứng dụng Web như là một ôtômát trạng thái,
chúng tôi cần thực hiện các bước sau: (1) Chia nhỏ hệ thống thành các mô-đun;
(2) với mỗi mô-đun chúng ta cần xác định các giao diện người dùng; (3) với mỗi
giao diện người dùng được đặc tả bằng một ôtômát trạng thái; (4) nối các ôtômát
trạng thái đó lại thành một bản đặc tả hoàn chỉnh cho cả hệ thống. Phương pháp
coi mỗi giao diện người dùng là một trang Web và được biểu diễn bằng một
ôtômát trạng thái như định nghĩa 2.1 [5].
Định nghĩa 2.1: Hành vi tương tác giao diện của một trang Web được đặc tả
bằng ôtômát trạng thái (Finite State Automaton - FSA) M = < S, s0, ∑, δ, F >, tro


11

TÀI LIỆU THAM KHẢO
Tiếng Việt
[1] Phạm Ngọc Hùng, Trương Anh Hoàng, Đặng Văn Hưng (2014), Giáo trình
kiểm thử phần mềm, NXB Đại học Quốc gia Hà Nội.
Tiếng Anh
[2] A. Armando, R. Carbone, L. Compagna, K. Li, and G. Pellegrino (2010),
“Model-checking driven security testing of web-based applications”,
International Conference on Software Testing, Verification, and Validation
Workshops, ICSTW ’10, pp 361–370.
[3] A. Vernotte (2013), “Research questions for model-based vulnerability
testing of web applications”, International Conference on Software Testing,
Verification and Validation, ICST ’13, pp 505–506.
[4] J. Ernits, R. Roo, J. Jacky, and M. Veanes (2009), ”Modelbased testing of
web applications using nmodel”, The 21st IFIP WG 6.1 International
Conference on Testing of Software and Communication Systems and 9th
International FATES Workshop, TESTCOM ’09/FATES ’09, pp 211–216.
[5] Khanh Trinh Le, Hieu Dinh Vo and Pham Ngoc Hung, “A Method for

Automated User Interaction Testing of Web Applications”,Journal on
Information and Communications Technology (JoICT) (accepted 2015)
[6] M. Anisetti, C. A. Ardagna, E. Damiani, and F. Saonara (May. 2013), “A
test-based security certification scheme for web services”. ACM Transactions
on the Web (TWEB) 7(2), 5:1–5:41.
[7] M. Broy, B. Jonsson, J.-P. Katoen, M. Leucker, and A. Pretschner (2005),
“Model-Based Testing of Reactive Systems: Advanced Lectures (Lecture
Notes in Computer Science)”. Springer-Verlag New York, Inc.
[8] M. Utting and B. Legeard (2007), “Practical Model-Based Testing: A Tools
Approach”, Morgan Kaufmann Publishers Inc.
[9] P. Koopman, R. Plasmeijer, and P. Achten (2006), “Modelbased testing of
thin-client web applications”, The First Combined International Conference
on Formal Approaches to Software Testing and Runtime Verification,
FATES’06/RV’06, pp 115–132.



×