Tải bản đầy đủ (.pdf) (58 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 (1.84 MB, 58 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 Web ............ 16
2.3 Biểu diễn mô hình đặc tả dưới dạng các tệp tin MS Excel..................................... 19
Chương 3: Sinh và thực thi các ca kiểm thử tự động ....................................................... 26
3.1 Sinh các ca kiểm thử từ mô hình đặc tả hình thức ................................................. 26
3.1.1 Đường dẫn kiểm thử ...................................................................................... 26
3.1.2 Thuật toán sinh tự động các đường dẫn kiểm thử ........................................... 27
3.2 Thực hiện các ca kiểm thử .................................................................................... 32
3.4 Đánh giá phương pháp .......................................................................................... 33
Chương 4: Công cụ và thực nghiệm ................................................................................ 35
4.1 Giới thiệu các công cụ bổ trợ ................................................................................ 35
4.1.1 Giới thiệu Selenium và một số API WebDriver được sử dụng ....................... 35
4.1.2 Giới thiệu Jsoup............................................................................................. 37
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 Web . 38
4.2.1 Kiến trúc của công cụ .................................................................................... 39
4.2.2 Đầu vào của công cụ...................................................................................... 40
4.2.3 Đầu ra của công cụ ........................................................................................ 42
4.3 Thực nghiệm ........................................................................................................ 44
4.4 Kết quả cải tiến công cụ ........................................................................................ 51
4.5 Ý nghĩa của công cụ thực nghiệm ......................................................................... 53


ii
Chương 5: KẾT LUẬN .................................................................................................. 55
TÀI LIỆU THAM KHẢO .............................................................................................. 57


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

1

API

Application
Interface

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

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 >,
trong đó:


11

-

S là tập
ập hữu hạn khác rỗng các trạng thái của trang Web,
s0 S là trạng
ạng thái đầu tiên
ti được tải lên của
ủa trang Web,
∑ ứng với tập sự kiện có dạng [điều kiện]sự kiện,
δ là hàm chuyển
chuy trạng thái: δ: S × ∑→ S, và
là tập
ập các trạng thái kết thúc, ttương ứng với các giao diện
di xuất
hiện cuối cùng
ùng sau một
m chuỗi các sự kiện liên tiếp.

Chú ý 2.1: Dạng <[điều

ều kiện]sự kiện>
kiện có nghĩa là <sự kiện> ch
chỉ xảy ra khi
<điều kiện> được
ợc thỏa mãn.
m
Ôtômát hữu hạn trạng
ạng thái rỗng, ký hiệu llà M = ∏
là ôtômát hữu hạn trạng thái và có tập các trạng thái S = ∅ [5].
Sau đây là một
ột số khái niệm căn bản giúp chúng ta đặc tả một trang Web
như là một ôtômát hữu
ữu hạn trạng thái.
Phần
ần tử Web (Web Element). Phần tử Web là các thành phần
ần cơ
c bản cấu tạo
nên một trang Web. Mỗi
ỗi phần tử Web có nhiều thành phần nhưng
ưng để đặc tả một
trang Web chúng ta cần
ần mô tả một số các thành phần cơ bản như: th
thẻ mở để khai
báo bắt
ắt đầu một phần tử Web; các thuộc tính,
tính trong đó thuộc tính id, class, name
thường được
ợc sử dụng để xác định vị trí của phần tử Web ttrên
rên trang Web; nội
n

dung của
ủa phần tử Web th
thường được
ợc sử dụng để xác định trạng thái của phần tử
Web và thẻẻ đóng nằm ở vị trí cuối ccùng của phần tử Web.
Trạng thái trang Web. Trạng thái trang Web là giao diện
ện của trang Web tại
một
ột thời điểm, mỗi trạng thái Web llà một
ột tập hợp các trạng thái của từng phần
tử trong một trang Web.
Ví dụ 2.1: Ví dụ
ụ về trạng thái trang Web tìm kiếm
ếm thông tin cán bộ
bộ. Giao diện
trong hình 2.1 là một trạng
ạng thái của trang We
Web (trạng thái index).. Sau khi ngư
người
dùng nhập thông tin tìm
ìm kiếm
ki
vào các ô tìm kiếm
ếm (phần tử Web textbox hoặc
dropdownlist) thì hệệ thống sẽ chuyển từ trạng thái bắt đầu sang trạng thái tiếp
theo, như trong hình 2.2 là trạng thái người dùng đã nhập họ tên
ên ccần tìm kiếm
(trạng thái TEN).



12

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

Sự kiện. Sự kiện bao gồm các hành động (action) tác động lên các phần tử Web
tại một thời điểm, làm thay đổi trạng thái của trang Web đó. Có nhiều sự kiện
tương tác người dùng trên giao diện Web, trong đó có 4 sự kiện chính được
chúng tôi sử dụng để đặc tả hành vi Web như sau: sự kiện addtext dùng để nhập
một đoạn ký tự vào ô textbox, sự kiện deltext dùng để xóa đoạn ký tự ở ô
textbox, sự kiện click là sự kiện nhấp chuột vào một nút (button) hoặc một
đường dẫn, sự kiện select dùng để chọn một hoặc nhiều, được sử dụng cho các
phần tử combobox, checkbox, listbox, dropdown list, radio list. Như trong ví dụ


13

2.1 chúng ta thấy có một sự kiện người dùng nhập thông tin tìm kiếm (addtext)
lên ô tìm kiếm theo họ tên cán bộ (ô textbox).
Ví dụ 2.2: Ví dụ minh họa về đặc tả hình thức tương tác giao diện của trang
Web tìm kiếm cán bộ và trang cập nhật thông tin cán bộ bằng ôtômát hữu hạn
trạng thái.
Hình 2.1 trên là giao diện đầu tiên được tải lên của trang Web tìm kiếm
thông tin cán bộ. Giao diện này gồm 2 phần chính: phần thứ nhất là các chỉ tiêu
tìm kiếm, phần thứ hai là kết quả tìm kiếm.
Để xây dựng được mô hình cho trang Web này, chúng ta cần xác định
chính xác các trạng thái và sự kiện của nó. Các trạng thái của trang tìm kiếm cán
bộ (bảng 2.1) được xác định dựa trên các trạng thái của các phần tử Web sau:
tiêu đề trang Web (Lable), ô nhập họ tên (TextBox) và ô nhập số hiệu (TextBox),

ô chọn đơn vị (DropDownList), Nút tìm kiếm (Button) và Bảng kết quả tìm kiếm
(DataGrid).
Bảng 2.1. Các trạng thái Web của trang tìm kiếm cán bộ
Stt
1
2
3
4
5
6
7
8
9

Tên trạng thái
Index
TEN
SOHIEU
DONVI
TEN+SO
TEN+DONVI
SO+DONVI
TEN+SO+DON
KETQUA_TK

Ý nghĩa
Trạng thái ban đầu của trang Web
Khi người dùng nhập họ tên cán bộ cần tìm
Khi người dùng nhập số hiệu
Khi người dùng chọn đơn vị

Khi người dùng nhập cả tên và số hiệu
Khi người dùng nhập tên và chọn đơn vị
Khi người dùng nhập số hiệu và chọn đơn vị
Khi người dùng chọn cả 3 chỉ tiêu tìm kiếm
Trạng thái trang Web khi trả về kết quả tìm kiếm, cũng
là trạng thái kết thúc của trang Web

Các sự kiện người dùng tương tác lên trang Web tìm kiếm cán bộ như bảng 2.2
Bảng 2.2. Các sự kiện của trang tìm kiếm cán bộ
Stt
1
2
3
4
5

Tên sự kiện
add_hoten
del_hoten
add_sohieu
del_sohieu
sel_donvi

Ý nghĩa
Nhập họ tên tìm kiếm
Xóa họ tên tìm kiếm
Nhập số hiệu
Xóa số hiệu
Chọn đơn vị



14
6
7

del_donvi
Timkiem

Không chọn đơn vị
Chọn tìm kiếm

Trang tìm kiếm cán bộ được đặc tả bằng ôtômát hữu hạn trạng thái M1 = < S1,
s01, ∑1, δ1, F1 > (hình 2.3), dựa trên tập trạng thái và tập sự kiện đã được nêu
trên.

Hình 2.3. Ôtômát hữu hạn trạng thái M1

Trong đó:
S1= {index, TEN, SOHIEU, DONVI, TEN+SO, TEN+DONVI,
SO+DONVI, TEN+SO+DONVI, KETQUA_TK} là tập các trạng thái của trang
tìm kiếm cán bộ.
s01=index là trạng thái bắt đầu của trang Web.
∑1= {add_hoten, del_hoten, add_sohieu, del_sohieu, sel_donvi, del_donvi,
Timkiem} là tập các sự kiện.
Hàm chuyển trạng thái δ1 gồm các đường chuyển trạng thái như trong hình
2.3.
F1 = {KETQUA_TK} là tập các trạng thái kết thúc.
Sau khi người dùng tìm kiếm cán bộ thành công. Giao diện của trang Web
tìm kiếm (search) sẽ chuyển sang trạng thái kết quả tìm kiếm (KETQUA_TK).



15

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ộ

Từ trạng thái này, người dùng lựa chọn nút sửa trên bản ghi kết quả cần
sửa (như hình 2.4), thì trang Web tìm kiếm sẽ chuyển sang giao diện của trang
Cập nhật thông tin cán bộ (trang update) như hình 2.5.

Hình 2.5. Giao diện trang Web cập nhật thông tin cán bộ (update)

Trang update được đặc tả bằng ôtômát hữu hạn trạng thái M2 = < S2, s02,
∑2, δ2, F2 > như trong hình 2.6. Tại giao diện của trang Web
(CAPNHAT_TTCB), khi người dùng thực hiện thay đổi một số thông tin liên


16

quan đến cán bộ cần cập nhật (thực hiện sự kiện do_Something), hệ thống sẽ
chuyển sang trạng thái TT_CAPNHAT. Tại trạng thái TT_CAPNHAT người dùng
thực hiện sự kiện (capnhat) bằng cách chọn nút Cập nhật, hệ thống sẽ chuyển
tới trạng thái cập nhật thành công (CN_THANHCONG).

Hình 2.6. Ôtômát hữu hạn trạng M2

Trong M2 có:
S2=
{KETQUA_TK,
CAPNHAT_TTCB,
TT_CAPNHAT,

CN_THANHCONG} là tập các trạng thái của trang cập nhật thông tin cán bộ.
Trạng thái KETQUA_TK là trạng thái của trang Web như hình 2.4, trạng thái
CAPNHAT_TTCB là giao diện của trang cập nhật thông tin cán bộ như hình 2.5,
trạng thái TT_CAPNHAT là trạng thái khi người dùng chỉnh sửa một số thông tin
của cán bộ, trạng thái CN_THANHCONG là trạng thái trang Web sau khi người
dùng chọn nút Cập nhật.
s02= KETQUA_TK là trạng thái bắt đầu của trang Web.
∑2= {sel_sua, do_Something, capnhat } là tập các sự kiện. Sự kiện sel_sua
là sự kiện người dùng chọn nút sửa trên danh sách cán bộ, sự kiện do_something
là sự kiện người dùng thực hiện sửa thông tin cán bộ, sự kiện capnhat là sự kiện
người dùng chọn nút cập nhật để lưu thông tin chỉnh sửa.
Hàm chuyển trạng thái δ2 gồm các đường chuyển trạng thái như trong hình
2.6.
F1 = { CN_THANHCONG } là tập các trạng thái kết thúc.

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 Web
Các hệ thống ứng dụng Web ngày càng lớn và phức tạp. Vì vậy, việc xây
dựng mô hình đặc tả cho toàn bộ ứng dụng Web là một công việc rất vất vả.
Người xây dựng mô hình rất dễ mắc sai lầm khi xây dựng một mô hình quá lớn


17

như vậy. Trong giới
ới hạn của luận văn n
này, một ứng dụng Web đư
được đặc tả hình
thức bằng
ằng cách xây dựng ôtômát hữu hạn trạng thái cho từng

ừng trang Web nhỏ, sau
đó ghép nối lần lượt
ợt từng ôtômát hữu
ữu hạn trạng thái nhỏ lại với nhau thành một
ôtômát hữu
ữu hạn trạng thái lớn cho cả ứng dụng Web.
Trang Web mốc. M
Một trang Web Mi = < Si, s0i, ∑i, δi, Fi > được gọi là
trang Web mốc, nếu
ếu trang Web đ
được dùng làm mốc
ốc để các trang Web khác ghép
nối vào, hay nó là trang Web kh
khởi đầu của ứng dụng Web. M = < S, s0, ∑, δ, F
> là trang Web sau khi ghép nối,
n với s0= s0i.
Mô hình của toàn
àn b
bộ ứng dụng Web được
ợc xây dựng bằng cách ghép nối
mô hình của
ủa tất cả các trang Web lại với nhau bằng
ằng phép toán ghép nối được
đ
định nghĩa [5] như sau:
Định nghĩa 2.2: Giảả sử M1 = < S1, s01, ∑1, δ1, F1 > và M2 = < S2, s02, ∑2,
δ2, F2 > lần lượt là các ôtômát hữu
ữu hạn trạng thái của 2 trang Web. Phép ghép
nối của M1 và M2 là ôtômát M = < S, s0, ∑, δ, F >, kí hiệu là M = M1║M2 (M1 là
trang Web mốc). Nếu M1 = ∏, M2 = ∏, hoặc s01  F2 và s02  F1 thì M =

M1║M2 = ∏. Các trường
ờng hợp khác M = M1║M2, với S = S1 S2, ∑ = ∑1 ∑2, δ
= δ1 δ2 và F = F1 F2 và các trạng
tr
thái bắt đầu được
ợc xác định theo quy tắc:
- Nếu s01  F2 và s02  F1 thì M   ,
- Nếu s02 F1 thì M1 được đặt làm trang Web mốc và s0 = s01.
- Các trường
ờng hợp còn
c lại thì s0 = s02.
Chú ý 2.2: M =∏ làà ký hi
hiệu
ệu ôtômát hữu hạn trạng thái rỗng, tức nó có tập các
trạng thái là rỗng.
Ví dụ 2.3: Đểể minh họa cụ thể cho phép
p
toán ghép nối, chúng ta ti
tiến hành ghép
nối hai ôtômát hữu
ữu hạn trạng thái của trang tìm kiếm cán bộ (search
search) và trang
cập
ập nhật thông tin cán bộ (update), như ở ví dụ 2.2 lại thành ôtômát hữu hạn
trạng thái M = M1 ║M2 = < S, s0, ∑, δ, F >, trong đó:
M1 = < S1, s01, ∑1, δ1, F1 > với S1= {index,
index, TEN, SOHIEU, DONVI, TEN+SO,
TEN+DONVI, SO+DONVI, TEN+SO+DONVI, KETQUA_TK};
KETQUA_TK s01 = index ; F1
= { KETQUA_TK } là mô hình ccủa trang search.

M2 = < S2, s02, ∑2, δ2, F2 > với S2= {KETQUA_TK,
KETQUA_TK, CAPNHAT_TTCB,
TT_CAPNHAT, CN_THANHCONG
CN_THANHCONG}, s02 = KETQUA_TK
KETQUA_TK; F2 =
{CN_THANHCONG } là mô hình của
c trang update.
Thuật
ật toán thực hiện các b
bước sau:


18

-

Thuật
ật toán tiến h
hành kiểm tra xem s01 F2 và s02 F1 hay không?
Kết
ết quả cho thấy s02 = KETQUA_TK F1 suy ra s0 = s01 = index
- Tập trạng
ạng thái kết thúc F = F1
F2 ={ KETQUA_TK,
CN_THANHCONG } và S = S1
S2={ index, TEN, SOHIEU,
DONVI, TEN+SO, TEN+DONVI, SO+DONVI, TEN+SO+DONVI,
KETQUA_TK
KETQUA_TK,
CAPNHAT_TTCB,

TT_CAPNHAT,
CN_THANHCONG }, ∑ = ∑1 ∑2, δ = δ1 δ2 .
del_sohieu
sel
_d

TEN+SO

sel_donvi
m

TEN+SO+DONVI

vi
on
_d

n
do
l_
vi

d_h
ote
n

l
se
de


del_sohieu

Tim
kie
m

del_d
on vi

de
l_h
ote
n

Timkiem

sel_d
on vi

DONVI

m
kie
Tim

_so
hie
u

ad


SOHIEU

KETQUA_TK

add

on
vi

eu
hi
so
l_
de

Timkiem
de
ad
l
_so
d_s
hie
oh
u
ieu
iem
Timk

index


TEN+DONVI

T im
kie
m

de
l_h

Tim
kie

Ti
m
kie
m

ote
n

del_donvi

i
nv
do
l_
de

ad

d_h
ote
n

add_sohieu
TEN

SO+DONVI

add_sohieu

sel_sua

KETQUA_TK

CAPNHAT_TTCB

do_S

omet
hin g

TT_CAPNHAT
TT

capnhat

CN_THANHCONG
THANHCONG


Hình 2.7. Mô hình M sau khi thực
ực hiện thuật toán ghép nối giữa M1 và M2

Ta có M1 = < S1, s01, ∑1, δ1, F1 >, M2 = < S_2, s02, ∑2, δ2, F2 >,..., Mn = <
Sn, s0n, ∑n, δn, Fn > lần lư
ượt là các ôtômát hữu hạn của n trang Web với
v M1 là
trang Web mốc. Đầu tiên,
ên, M1 ghép nối với Mi (2 <= i <= n) thành M1i, thuật
j) Thuật toán
toán sau đó sẽ tiến hành
ành ghép n
nối M1i với Mj (2 <= j <= n và i ≠ j).
ghép nối
ối kết thúc sau khi duyệt qua tất cả các ôtômát hữu
ữu hạn trạng thái.
Nhận xét: Phép ghép nối
ối nh
như định nghĩa trên có tính kết
ết hợp nh
nhưng không có
tính giao hoán [5].


19

2.3 Biểu diễn mô hình đặc tả dưới dạng các tệp tin MS
Excel
Phần này, chúng tôi sẽ trình bày cụ thể về cách biểu diễn các ôtômát hữu
hạn trạng thái dưới dạng bảng chuyển trạng thái và được lưu bằng các tệp tin

Excel. Mỗi tệp tin Excel tương ứng với một ôtômát hữu hạn trạng thái đặc tả cho
một trang Web. Trong một tệp tin Excel có 4 phần: Phần 1 là bảng
Element_html, mô tả các phần tử Web của trang Web. Phần 2 là bảng State, mô
tả các trạng thái, mỗi trạng thái là tập hợp tất cả các trạng thái của các phần tử
Web trong bảng Element_html. Phần 3 là bảng Event, mô tả các sự kiện, mỗi sự
kiện là một hành vi tương tác của người dùng lên một phần tử Web. Phần 4 là
bảng Transition, mô tả các hàm chuyển trạng thái giữa các trạng thái trong bảng
State.
Mỗi bảng đều gồm nhiều dòng, dòng đầu tiên chứa số các phần tử của
bảng (giá trị này được ghi ở ô đầu tiên), dòng tiếp theo là tên các cột và các
dòng sau đó là các phần tử của bảng.
Sau đây, chúng tôi sẽ mô tả chi tiết từng bảng trong tệp tin Excel của trang
tìm kiếm cán bộ (search Excel).
Bảng Element_html (bảng các phần tử Web): Bảng này được thiết kế để đặc
tả các phần tử Web của trang Web cần kiểm thử.
Bảng 2.3. Bảng các phần tử Web của trang tìm kiếm cán bộ.
7
id

html

type

Value
Danh sách cán bộ chiến sỹ công
0 Labtitle
texthtml
an Hà Nội
1 txtHoTen
textbox

Son
2 txtSoHieu
textbox
535
3 ddlDonVi
dropdown quận Cầu Giấy, TP. Hà Nội
4 btnTimkiem
btn
5 id:grdCBCS|tag:tr|head:1|end:1|1 grid
Son
6 id:grdCBCS|tag:tr|head:1|end:1|1 grid
535

Bảng 2.3 là bảng mô tả các phần tử Web của trang tìm kiếm cán bộ. Cấu
trúc của bảng này gồm có 4 cột chính: cột id, html, type và value.
Mỗi cột của bảng mang ý nghĩa sau:
- Cột id: là cột định danh phần tử Web, được đánh số thứ tự tăng dần.


20

- Cột html: là cột lưu các thuộc tính của phần tử Web. Các thuộc tính này
được lấy từ các thẻ HTML của trang Web. Nếu phần tử Web được đặc
tả có thuộc tính định danh là id, classname, name thì cột này ghi giá trị
định danh của phần tử Web đó. Ngược lại, chúng ta sẽ đặc tả một số
thông tin của phần tử Web để có thể xác định được vị trí của nó. Các
thông tin xác định phần tử Web được phân cách bởi ký tự “|”. Tùy vào
từng loại phần tử Web mà chúng ta sẽ đặc tả các giá trị tương ứng để
xác định được vị trí của nó trên trang Web.
- Cột type: là cột lưu kiểu của phần tử Web, công cụ có thể tiến hành

kiểm thử thành công với đa số các kiểu phần tử Web như: textarea,
textbox, checkbox, combobox, radiobox (radio), listbox, button (btn),
texthtml, datagrid (grid), v.v. Giá trị của cột này được công cụ sử dụng
để lấy nội dung của phần tử Web tương ứng.
- Cột value: là cột lưu nội dung đầu ra mong muốn của phần tử Web hoặc
nội dung cần đưa vào đối với phần tử Web kiểu nhập thông tin vào,
chẳng hạn như phần tử Web dạng textbox.
Bảng State (bảng trạng thái): là bảng mô tả các trạng thái của trang Web
Bảng 2.4. Bảng các trạng thái của trang tìm kiếm cán bộ
9
State
0
5
5
5
5
5
5
5
1

name
Index
TEN
SOHIEU
DONVI
TEN+SO
TEN+DONVI
SO+DONVI
TEN+SO+DON

KETQUA_TK

0
o
o
o
o
o
o
o
o
o

1
null
o
null
null
o
o
null
o
o

2
null
null
o
null
o

null
o
o

3
null

4

5

6

o
o
o
o
o

Bảng State có số cột phụ thuộc vào số các phần tử Web được đặc tả trong
bảng Element_html. Ý nghĩa các cột của bảng như sau:


Cột đầu tiên chứa các số để phân loại trạng thái: số 0 nếu trạng thái đó là
trạng thái bắt đầu, số 1 nếu đó là trạng thái kết thúc và số 5 biểu diễn các
trạng thái bình thường.



Cột thứ 2 chứa tên trạng thái (cột name).



21



Số cột còn lại là số các phần tử Web (bằng số phần tử Web của bảng
Element_html). Ở mỗi cột này, ô đầu mỗi cột là các id định danh được
đánh như bảng Element_html, các ô tiếp theo của mỗi cột này là trạng thái
của phần tử Web tương ứng với từng trạng thái của trang Web. Chúng tôi
đặc tả 3 trạng thái của một phần tử Web như sau:
o Ký hiệu "o": Phần tử Web có một giá trị bất kỳ khác rỗng. Ví dụ:
giá trị của tiêu đề (lblTitle) trang tìm kiếm thông tin cán bộ là
"Danh sách cán bộ chiến sỹ công an Hà Nội".
o Ký hiệu "null": Phần tử Web có một giá trị rỗng. Ví dụ: giá trị của
một ô textbox là rỗng.
o Ký hiệu " ": Phần tử Web không nhận giá trị nào cả. Ví dụ: một nút
(button) thì không cần lấy giá trị.

Như trong bảng 2.4, trạng thái index là trạng thái đầu tiên của trang Web
tìm kiếm cán bộ (cột đầu tiên có giá trị 0). Trạng thái này được xác định thông
qua các trạng thái của tất cả các phần tử Web. Với, phần tử Web có id 0 nhận
một giá trị khác rỗng, giá trị này được lưu ở bảng Element_html (chính là tiêu đề
Danh sách cán bộ chiến sỹ công an Hà Nội), 2 phần tử Web tiếp theo có giá trị
rỗng, các phần tử còn lại không cần nhận một giá trị nào.
Bảng Event (Sự kiện): Bảng liệt kê tất cả các sự kiện diễn ra trên trang Web.
Mỗi sự kiện là một tương tác người dùng lên một phần tử Web.
Bảng 2.5. Bảng các sự kiện của trang tìm kiếm cán bộ

7

Event
1
2
3
4
5

name
add_hoten
del_hoten
add_sohieu
del_sohieu
sel_donvi

html
txtHoTen
txtHoTen
txtSoHieu
txtSoHieu
ddlDonVi

action
addtext
deltext
addtext
deltext

select
6
del_donvi

ddlDonVi
select
click
7
Timkiem
btnTimkiem
Bảng 2.5 liệt kê các hành động của người dùng lên trang tìm kiếm cán bộ,
trong đó:
o Cột name: là tên của sự kiện.


22

o Cột html: là cột lưu các thuộc tính của phần tử Web cần tương
tác. (cách thức đặc tả giống như cột html của bảng
Element_html)
o Cột action: Hành vi của sự kiện, bao gồm: click (nhấn), addtext
(thêm một chuỗi ký tự), deltext (xóa một chuỗi ký tự), select
(chọn).
Như bảng 2.5, đặc tả 7 sự kiện người dùng tương tác lên trang Web tìm
kiếm cán bộ. Sự kiện add_hoten xảy ra khi người dùng nhập họ tên cần tìm,
hành vi của sự kiện là (addtext) thêm chuỗi tên cán bộ tìm kiếm vào phần tử
Web có html là txtHoTen. Chuỗi ký tự tên cán bộ nhập vào được lấy từ bảng
Element_html, nó là giá trị ở cột value thuộc dòng có html là txtHoTen (Son).
Các sự kiện del_hoten, add_sohieu, del_sohieu, sel_donvi, del_donvi được thực
hiện tương tự. Sự kiện còn lại là sự kiện người dùng chọn button tìm kiếm
(timkiem), ứng với việc người dùng chọn click lên phần tử Web btnTimKiem.
Bảng Transition (Sự chuyển trạng thái): Bảng này chứa toàn bộ các transition
của trang Web.
Bảng 2.6. Bảng các transition của trang tìm kiếm cán bộ

9
name

index

ten

sohieu

donvi

ten+so

ten+donvi so+donvi

add_hoten add_sohieu sel_donvi
index
del_hoten
add_sohieu sel_donvi
ten
del_sohieu
sohieu
del_donvi
donvi
del_sohieu del_hoten
ten+so
del_donvi
del_hoten
ten+donvi
del_donvi del_sohieu

so+donvi
ten+so+
del_donvi del_sohieu del_hoten
don

ten+so+
donvi

ketqua_t
k
Timkiem
Timkiem
Timkiem
Timkiem
sel_donvi Timkiem
add_sohieu Timkiem
add_hoten Timkiem
Timkiem

ketqua_tk

Số cột trong bảng transition tương ứng với số các trạng thái ở bảng State.
Ở đầu mỗi hàng của cột đầu tiên là tên các trạng thái bắt đầu và mỗi cột từ cột
thứ hai trở đi là tên các trạng thái kết thúc của mỗi transition, các ô ở giữa có
công thức [guard]event ([điều kiện] tên sự kiện). Có 3 kiểu giá trị của một ô
trong bảng Transition:
o Chỉ có tên sự kiện (event): tồn tại một transition.


23


o Gồm cả điều kiện và sự kiện ([guard]event): khi điều kiện là
đúng thì transition được thực hiện.
o Ô trống: Không có transition giữa hai trạng thái.
Bảng 2.6 đặc tả các hàm chuyển trạng thái của trang tìm cán bộ. Bảng này,
là một dạng đặc tả khác của ôtômát hữu hạn trạng thái (hình 2.4). Bảng
transition 2.6 gồm có 28 hàm chuyển trạng thái tương ứng với 28 đường chuyển
trạng thái của ôtômát. Trạng thái bắt đầu và trạng thái kết thúc của ôtômát hữu
hạn trạng thái được đặc tả tương ứng trong bảng State.
Mối liên kết giữa các bảng: Tệp tin Excel đặc tả trang Web tìm kiếm cán bộ
gồm 4 bảng trên, 4 bảng này được nối lại như bảng 2.7.
Bảng 2.7. tệp tin Excel đặc tả trang Web tìm kiếm cán bộ
Element_html
html
type
value
Danh sách cán bộ chiến sỹ công
0
labtitle
texthtml
an Hà Nội
1
txtHoTen
textbox
Son
2
txtSoHieu
textbox
535
3

ddlDonVi
dropdown quận Cầu Giấy, TP. Hà Nội
4
btnTimkiem
btn
5
id:grdCBCS|tag:tr|head:1|end:1|1 grid
Son
6
id:grdCBCS|tag:tr|head:1|end:1|1 grid
535
State
9
State
name
0
1
2
3
4
5
6
0
Index
o
null null null
5
TEN
o
o

null
5
SOHIEU
o
null
o
5
DONVI
o
null null
o
5
TEN+SO
o
o
o
5
TEN+DONVI
o
o
null
o
5
SO+DONVI
o
null
o
o
5
TEN+SO+DON

o
o
o
o
1
KETQUA_TK
o
o
o
7
id

7
Event
name
1
add_hoten
2
del_hoten

Event
html
txtHoTen
txtHoTen

action
addtext
deltext



24
3
4
5

add_sohieu
del_sohieu
sel_donvi

txtSoHieu
txtSoHieu
ddlDonVi

6

del_donvi

ddlDonVi

7
9

Timkiem

btnTimkiem
Transition

name

index


ten

sohieu

donvi

addtext
deltext

ten+so

select
select
click
ten+donvi so+donvi

add_hoten add_sohieu sel_donvi
index
del_hoten
add_sohieu sel_donvi
ten
del_sohieu
sohieu
del_donvi
donvi
del_sohieu del_hoten
ten+so
del_donvi
del_hoten

ten+donvi
del_donvi del_sohieu
so+donvi
ten+so+
del_donvi del_sohieu del_hoten
don

ten+so+
donvi

ketqua_
tk
Timkiem
Timkiem
Timkiem
Timkiem
sel_donvi Timkiem
add_sohieu Timkiem
add_hoten Timkiem
Timkiem

ketqua_tk

Từ các mô tả chi tiết về các bảng trong tệp tin Excel trên cho chúng ta thấy
mối liên kết giữa các bảng trong một tệp tin như sau: Bảng Element_html liên
kết với bảng State thông qua cột id (liên kết qua các phần tử Web). Bởi vì, mỗi
trạng thái trang Web được mô tả bằng tập hợp các trạng thái của tất cả các phần
tử Web. Bảng Event liên kết với bảng Element_html thông qua cột html (các sự
kiện được thực hiện trên các phần tử Web). Bảng Transition liên kết với bảng
Event thông qua các sự kiện, liên kết với bảng State thông qua các trạng thái.

Các mối liên kết này được sử dụng để xây dựng ôtômát hữu hạn trạng thái và
thực thi các sự kiện đối với trang Web tương ứng.
Ứng dụng Web được xây dựng gồm nhiều trang Web. Các trang Web này
được thực hiện theo thứ tự tương tác người dùng. Các tệp tin Excel được đánh
số lần lượt theo thứ tự đó. Chúng tôi dựa trên thứ tự các tệp tin Excel, các trạng
thái bắt đầu, trạng thái kết thúc của từng tệp tin, áp dụng thuật toán ghép nối
được đề xuất ở phần trước để nối các ôtômát hữu hạn trạng thái lại thành một
bản đặc tả cho toàn bộ ứng dụng Web.
Việc xây dựng các tệp tin đầu vào yêu cầu người thiết kế phải có kỹ năng
về phân tích, thiết kế hệ thống và phải hiểu rõ chi tiết hoạt động của hệ thống thì
mới xây dựng được các tệp tin tốt (có khả năng tìm được tối đa lỗi của ứng dụng
Web). Trong thực tế, các giao diện trang Web thường có quá nhiều các phần tử
Web cần đặc tả và số lượng các trạng thái Web là rất lớn, không thể biểu diễn
hết trong một trang Excel. Vì vậy, công việc này rất mất thời gian và tiềm ẩn


×