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

Mô hình hóa và kiểm thử máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn (FSM FINITE state machines testing)

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 (415.73 KB, 12 trang )

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

NGUYỄN THỊ MINH THÚY

MÔ HÌNH HÓA VÀ KIỂM THỬ MÁY RÚT TIỀN ATM BẰNG KỸ THUẬT
SINH CA KIỂM THỬ TỪ MÁY TRẠNG THÁI HỮU HẠN
(FSM – FINITE STATE MACHINES TESTING)

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

HÀ NỘI, 2015


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

NGUYỄN THỊ MINH THÚY

MÔ HÌNH HÓA VÀ KIỂM THỬ MÁY RÚT TIỀN ATM BẰNG KỸ THUẬT
SINH CA KIỂM THỬ TỪ MÁY TRẠNG THÁI HỮU HẠN
(FSM – FINITE STATE MACHINES TESTING)

Nghành

: Công nghệ thông tin

Chuyên nghà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: TS. ĐẶNG VĂN HƢNG

HÀ NỘI, 2015


LỜI CẢM ƠN
Đầu tiên tôi xin được bày tỏ sự trân trọng và lòng biết ơn sâu sắc và gửi lời
cảm ơn đặc biệt nhất tới TS. Đặng Văn Hưng, giảng viên Bộ môn Công nghệ phần
mềm – Khoa Công nghệ thông tin – Trường Đại học Công nghệ - ĐHQGHN. Trong
thời gian học và nhận đề tài, thầy đã định hướng đề tài, cung cấp cho tôi những kiến
thức, những tài liệu, để thực hiện đề tài luận văn cao học này, từ những ý tưởng trong
đề cương nghiên cứu, phương pháp nghiên cứu, phương pháp giải quyết vấn đề trong
luận văn cao học. Thầy đã dành nhiều thời gian quý giá và tận tình chỉ bảo, hướng
dẫn tôi trong suốt quá trình triển khai, việc nghiên cứu cho đến những lần kiểm tra
cuối cùng để hoàn thành đề tài: “Mô hình hóa và kiểm thử máy rút tiền ATM bằng kỹ
thuật sinh ca kiểm thử từ FSM”.
Tôi xin bày tỏ lòng biết ơn chân thành và sâu sắc tới Trường Đại học Công
nghệ - ĐHQGHN, phòng đào tạo sau đại học đã tạo điều kiện cho tôi được học tập và
hoàn thiện quá trình học tập được đào tạo tại nhà trường.
Tôi xin chân thành cảm ơn tới GS, TS là các Thầy, Cô giáo trong bộ môn Kỹ
thuật phần mềm, Khoa công nghệ thông tin, những người đã trực tiếp giảng dạy và
truyền đạt giúp tôi mở rộng những kiến thức khoa học về công nghệ thông tin nói
chung và Kỹ thuật phần mềm nói riêng. Các thầy đã giúp tôi hiểu thấu đáo hơn lĩnh
vực mà tôi nghiên cứu để có thể vận dụng các kiến thức đó trong thực tế và công việc
của mình. Đó là những kiến thức quý báu và rất có ích với tôi trong giai đoạn hiện tại
và trong tương lai.
Tôi xin gửi lời cảm ơn đến gia đình, bạn bè những người đã luôn động viên khuyến

khích tôi trong suốt quá trình học tập cũng như thực hiện đề tài luận văn của mình.

Tôi xin chân thành cảm ơn!
Tác giả

Nguyễn Thị Minh Thúy

1


LỜI CAM ĐOAN
Tôi xin cam đoan rằng, nội dung trình bày trong luận văn này là do tôi tự
nghiên cứu tìm hiểu dựa trên các tài liệu và tôi trình bày theo ý hiểu của bản thân dưới
sự hướng dẫn trực tiếp của Thầy TS. Đặng Văn Hưng. Các nội dung nghiên cứu, tìm
hiểu và kết quả trong đề tài này là hoàn toàn trung thực.
Luận văn này của tôi chưa từng được ai công bố trong bất cứ công trình nào.
Trong quá trình thực hiện luận văn này tôi đã tham khảo đến các tài liệu của
một số tác giả, tôi đã ghi rõ tên tài liệu, nguồn gốc tài liệu, tên tác giả và tôi đã liệt kê
trong mục “TÀI LIỆU THAM KHẢO” ở cuối luận văn.
Hà nội, tháng 11 năm 2015
Tác giả

Nguyễn Thị Minh Thúy

2


MỤC LỤC
LỜI CẢM ƠN ................................................................................................................1
LỜI CAM ĐOAN ..........................................................................................................2

MỤC LỤC ......................................................................................................................3
BẢNG CHỮ VIẾT TẮT VÀ THUẬT NGỮ ...............................................................5
DANH MỤC HÌNH VẼ.................................................................................................6
DANH MỤC BẢNG ......................................................................................................6
MỞ ĐẦU .........................................................................................................................7
1.

Đặt vấn đề ...........................................................................................................7

2.

Mục tiêu và nhiệm vụ nghiên cứu ....................................................................7

3.

Đối tƣợng và phạm vi nghiên cứu ....................................................................7

4.

Phƣơng pháp nghiên cứu ..................................................................................8

5.

Ý nghĩa khoa học và thực tiễn của luận văn. ..................................................8

6.

Bố cục luận văn. ................................................... Error! Bookmark not defined.

NỘI DUNG ....................................................................... Error! Bookmark not defined.

Chƣơng 1. TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM ......... Error! Bookmark not
defined.
1.1. Kiểm thử phần mềm là gì? ................................ Error! Bookmark not defined.
1.2. Chất lƣợng và độ tin cậy của phần mềm. ........ Error! Bookmark not defined.
1.3. Vai trò của kiểm thử phần mềm. ...................... Error! Bookmark not defined.
1.4. Các thuật ngữ trong kiểm thử phần mềm. ...... Error! Bookmark not defined.
1.5. Ca kiểm thử (test case) là gì? ............................ Error! Bookmark not defined.
1.6. Trƣờng hợp (Use case) kiểm thử trong phần mềm là gì? .. Error! Bookmark
not defined.
1.7. Các mức kiểm thử phần mềm. .......................... Error! Bookmark not defined.
1.8. Kỹ thuật kiểm thử tĩnh và tiến trình kiểm thử. ............ Error! Bookmark not
defined.

3


Chƣơng 2. MÔ HÌNH MÁY TRẠNG THÁI HỮU HẠN VÀ KỸ THUẬT SINH
CA KIỂM THỬ TỪ FSM ............................................... Error! Bookmark not defined.
2.1. Giới thiệu về mô hình hóa. ................................... Error! Bookmark not defined.
2.2. Mô hình định hƣớng trạng thái. .......................... Error! Bookmark not defined.
2.3. Máy trạng thái hữu hạn. ...................................... Error! Bookmark not defined.
2.4. Một số cách biểu diễn cho FSM........................... Error! Bookmark not defined.
2.5. Kiểm thử dựa trên mô hình. ................................ Error! Bookmark not defined.
2.6. Thuận lợi và khó khăn của kiểm thử dựa trên mô hình. Error! Bookmark not
defined.
2.7. Kiểm thử với trạng thái kiểm chứng. ................. Error! Bookmark not defined.
2.7.1. Chuỗi vào – ra duy nhất (Unique Input - Output sequence). ............ Error!
Bookmark not defined.
2.7.2. Chuỗi phân biệt (Distinguishing sequence) .. Error! Bookmark not defined.
2.7.3. Chuỗi đặc trưng (Characterizing sequence) . Error! Bookmark not defined.

2.8. Độ bao phủ mô hình máy hữu hạn trạng thái. .. Error! Bookmark not defined.
2.8.1. Một số đặc trưng của máy hữu hạn trạng thái. ..........Error! Bookmark not
defined.
2.8.2. Độ bao phủ của máy hữu hạn trạng thái. ..... Error! Bookmark not defined.
a.

Độ bao phủ trạng thái (State coverage). ... Error! Bookmark not defined.

b. Độ bao phủ chuyển trạng thái (transition coverage). ... Error! Bookmark
not defined.
2.9. Kỹ thuật sinh ca kiểm thử.................................... Error! Bookmark not defined.
2.9.1. Sinh cây kiểm thử và tìm tập bao phủ chuyển trạng thái. Error! Bookmark
not defined.
2.9.2. Sinh ca kiểm thử dựa trên hành vi chuyển đổi trạng thái của FSM. Error!
Bookmark not defined.
Chƣơng 3. KIỂM THỬ HỆ THỐNG ATM DỰA TRÊN MÔ HÌNH FSM. .... Error!
Bookmark not defined.
3.1. Mô tả hệ thống ATM. ........................................... Error! Bookmark not defined.
3.2. Đặc tả của ATM từ mô hình FSM. ..................... Error! Bookmark not defined.
4


3.2.1. Đặc tả yêu cầu hệ thống. ................................ Error! Bookmark not defined.
3.2.2. Xây dựng mô hình FSM của ATM. ............... Error! Bookmark not defined.
3.3. Thuận lợi và khó khăn của máy rút tiền ATM bằng kỹ thuật sinh ca kiểm
thử từ FSM. .................................................................. Error! Bookmark not defined.
KẾT LUẬN ...................................................................... Error! Bookmark not defined.
TÀI LIỆU THAM KHẢO.............................................................................................9

BẢNG CHỮ VIẾT TẮT VÀ THUẬT NGỮ


Tên đầy đủ

Viết tắt
ATM

Automated Teller Machine

FSM

Finite State Machines

CFG

Control Flow Graph

PV

Path Vector

IV

Initial Vector

B

State Block

VER


State Verification

RI

Reset sequence

UIO

Unique Input Output sequence

DS

Distinguishing sequence

W

Characterizing sequence

Seq

Sequence

5


DANH MỤC HÌNH VẼ
Hình 1.1. Qui trình phát triển và các mức kiểm thử trong mô hình chữ V. .......... Error!
Bookmark not defined.
Hình 2.1. Hình ảnh của hệ thống phần mềm. ................ Error! Bookmark not defined.
Hình 2.2. Tương tác giữa hệ thống và môi trường mô hình hóa như FSM. .......... Error!

Bookmark not defined.
Hình 2.3. Mô hình chuyển trạng thái của FSM. ............ Error! Bookmark not defined.
Hình 2.4. Mô hình nhận dạng mã PIN của ATM. ......... Error! Bookmark not defined.
Hình 2.5. FSM của ATM biểu diễn bằng đồ thị. ........... Error! Bookmark not defined.
Hình 2.6. Quy trình kiểm thử dựa trên mô hình. ........... Error! Bookmark not defined.
Hình 2.7. Mô hình kiểm thử với việc kiểm chứng trạng thái. ..... Error! Bookmark not
defined.
Hình 2.8. FSM quá trình chuyển đổi trạng thái cho ATM. ......... Error! Bookmark not
defined.
Hình 2.9. Một đường đi bao phủ tất cả các trạng thái của FSM ATM.................. Error!
Bookmark not defined.
Hình 3. 1. Mô hình hoạt động giao dịch hệ thống ATM.Error! Bookmark not defined.
Hình 3. 2. Mô hình FSM chuyển đổi trạng thái của ATM. ......... Error! Bookmark not
defined.
Hình 3. 3. Cây kiểm thử của máy trạng thái hữu hạn ATM. ....... Error! Bookmark not
defined.

DANH MỤC BẢNG
Bảng 1. 1. Mô tả nhập mã PIN của ATM. ..................... Error! Bookmark not defined.
Bảng 2. 1. Biểu diễn FSM bằng dạng bảng. .................. Error! Bookmark not defined.
Bảng 3. 1. Bảng biểu diễn trạng thái FSM của ATM. ... Error! Bookmark not defined.
Bảng 3. 2. Bảng gán nhãn cho các trạng thái. ............... Error! Bookmark not defined.
Bảng 3. 3. Bảng gán nhãn cho kết quả đầu vào/ đầu ra cho hệ thống ATM. ........ Error!
Bookmark not defined.
Bảng 3. 4. Bảng gán nhãn cho quá trình chuyển đổi. .... Error! Bookmark not defined.
6


Bảng 3. 5. Thông tin chi tiết của quá trình chuyển đổi cho hệ thống ATM. ......... Error!
Bookmark not defined.

Bảng 3. 6. Dãy chuyển đổi bao phủ tất cả các trạng thái trong hình 3.2 ............... Error!
Bookmark not defined.
Bảng 3. 7. Dãy chuyển đổi bao phủ tất cả các trạng thái chuyển đổi trong hình 3.2.
....................................................................................... Error! Bookmark not defined.
Bảng 3. 8. Chuỗi vào – ra duy nhất cho mỗi trạng thái của ATM. .... Error! Bookmark
not defined.
Bảng 3. 9. Các chuỗi kiểm thử cho mỗi trạng thái chuyển tiếp của ATM. ........... Error!
Bookmark not defined.
MỞ ĐẦU
1. Đặt vấn đề
Trong xã hội ngày nay phần mềm đóng vai trò rất quan trọng và có độ phức tạp
gia tăng. Vì thế con người ngày càng phụ thuộc chặt chẽ vào các sản phẩm phần mềm
và do vậy đòi hỏi về chất lượng của sản phẩm phần mềm ngày càng cao, tức là các
phần mềm phải được sản xuất với giá thành thấp, dễ dùng, an toàn và có độ tin cậy
cao. Do đó việc kiểm thử là một phần trọng yếu của quá trình phát triển và đảm bảo
chất lượng phần mềm.
Hiện nay việc kiểm thử phần mềm đang sử dụng một đặc tả hình thức đóng vai
trò như các mô hình ngữ nghĩa chẳng hạn như máy trạng thái hữu hạn, biểu đồ chuyển
trạng thái. Các mô hình đặc tả này được sử dụng làm mục đích để chứng minh tính
đúng đắn của hành vi đặc tả hệ thống phần mềm hay các đối tượng và cũng được dùng
để sinh các ca kiểm thử. Việc sinh ca kiểm thử từ đặc tả máy trạng thái hữu hạn (FSM
- Finite State Machines) được áp dụng trong lĩnh vực kiểm thử các hệ thống phần
mềm cho các hệ phản vệ (reactive system). Máy rút tiền ATM là một hệ phản vệ thông
dụng và đòi hỏi tính đúng đắn, độ tin cậy cao. Đặc tả trực quan nhất của máy ATM là
máy trạng thái hữu hạn, vì thế để kiểm thử máy ATM tôi sử dụng kỹ thuật sinh
ca kiểm thử từ máy trạng thái hữu hạn, trong luận văn này tôi chọn đề tài “Mô hình
hóa và kiểm thử máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng
thái hữu hạn (FSM-Finite State Machines Testing)”.
2. Mục tiêu và nhiệm vụ nghiên cứu
Luận văn này đề cập các vấn đề về kiểm thử máy trạng thái hữu hạn (Finite

State Machines Testing) và ứng dụng kiểm thử máy rút tiền ATM. Sau khi mô hình
hóa máy ATM bằng một máy trạng thái hữu hạn, luận văn cũng nghiên cứu các
7


phương pháp sinh ca kiểm thử từ máy trạng thái (FSM) đồng thời đưa ra những nhận
xét, đánh giá khi áp dụng vào mô hình của máy ATM.
3. Đối tƣợng và phạm vi nghiên cứu
Đối tƣợng nghiên cứu:
 Nghiên cứu cơ sở lý thuyết về kiểm thử mô hình máy trạng thái.
 Nghiên cứu về kỹ thuật mô hình hóa phần mềm phản vệ bằng máy hữu
hạn trạng thái hữu hạn (FSM).
Phạm vi nghiên cứu:
 Cơ sở lý thuyết về kiểm thử mô hình phần mềm cho hệ thống máy rút
tiền tự động.
 Giới thiệu kỹ thuật sinh ca kiểm thử, phân tích để lựa chọn kiểm thử để
xác minh mô hình.
 Nghiên cứu máy trạng thái hữu hạn FSM và đưa ra phương pháp tìm
chuỗi kiểm thử trạng thái.
 Kiểm thử dựa trên mô hình FSM.
 Thử nghiệm kiểm thử mô hình cho hệ thống máy rút tiền tự động ATM.
4. Phƣơng pháp nghiên cứu
 Đọc tài liệu, lựa chọn nội dung phù hợp từ tài liệu tham khảo và nhiều bài báo
khoa học có liên quan mật thiết về đề tài nghiên cứu.
 Phân tích, xác định trọng tâm và xây dựng cơ sở lý luận về vấn đề nghiên cứu
và trên cơ sở đó thực hiện giải quyết vấn đề thông qua việc thiết kế bộ kiểm thử
máy rút tiền ATM bằng kỹ thuật sinh ca kiểm thử từ máy trạng thái hữu hạn.
 Nghiên cứu, tìm hiểu các kỹ thuật, chiến lược kiểm thử phần mềm.
 Đưa ra tài liệu kế hoạch kiểm thử và đặc tả kiểm thử, xây dựng chương trình
thực thi kiểm thử.

 Đánh giá và rút ra bài học kinh nghiệm thực tiễn.
5. Ý nghĩa khoa học và thực tiễn của luận văn.
Ý nghĩa khoa học: Đứng trước sự gia tăng mức độ phức tạp của phần mềm,
việc trực quan hoá, mô hình hóa và kiểm thử phần mềm ngày càng trở nên chính yếu
trong cách tiếp cận xem xét về một hệ thống. Mô hình hóa là một dạng thức trừu tượng
của một hệ thống, được hình thành để hiểu hệ thống trước khi xây dựng hoặc thay đổi
hệ thống đó. Mô hình hóa cung cấp một phương tiện để quan niệm hóa vấn đề và giúp
chúng ta có thể trao đổi các ý tưởng trong một hình thức cụ thể, không mơ hồ. 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, còn là quá
8


trình khảo sát hệ thống hay phần mềm dưới những điều kiện xác định, để quan sát và
ghi lại kết quả, và đánh giá một khía cạnh nào đó của hệ thống. Mục đích chính của đề
tài là trình bày phương pháp mô hình hóa bằng FSM của ATM và sinh ca kiểm thử từ
đặc tả máy trạng thái FSM (Finite State Machines Testing) của ATM. Việc mô hình
hóa bằng FSM là làm sáng tỏ vấn đề để có thể đưa ra được các lỗi hoặc các thiếu sót
của hệ thống từ việc tiếp cận trực quan đồ họa hơn là các dạng trình bày như văn bản,
đoạn mã,…
Ý nghĩa thực tiễn: Luận văn trình bày phương pháp kiểm thử dựa trên mô hình
máy hữu hạn trạng thái và dùng khái niệm mô phỏng như là một tiêu chí để đánh giá
TÀI LIỆU THAM KHẢO.
[1]. Giáo trình kiểm thử phần mềm - Tác giả: Đặng Văn Hưng, Phạm Ngọc Hùng và
Trương Anh Hoàng – Tháng 1 năm 2014.
[2]. Đoàn Thị Thùy Linh (2012), Nghiên cứu phương pháp sinh ca kiểm thử từ mô
hình máy hữu hạn trạng thái. Luận văn Thạc sĩ, Trường Đại học Công Nghệ, Đại học
Quốc Gia Hà Nội, tr.18-29.
[3]. Kshirasagar Naik, Priyadarshi Tripathy (2008), Software Testing and Quality
Assurance Theory and Practice, John Wiley & Sons,inc.. page 265-318.
[4]. Incremental Model-based Test Suite Reduction with Formal Concept Analysis Pin

Ng*, Richard Y. K. Fung** and Ray W. M. Kong***.
[5]. Test ready UML statechart models CONFERENCE PAPER · JANUARY 2006
Available from: Rajesh Subramanyan Retrieved on: 08 October 2015.
[6]. Modeling Discretional Access Control in Automatic Teller Machine Using
Denotational Mathematics Machine Using Denotational Mathematics Rufai M. M.,
Adigun J. O. and Yekini N. A. Department of Computer Technology, Yaba College of
Technology.
[7]. State-Based Model Slicing: A Sur vey of KELLY ANDROUTSOPOULOS,
DAVID CLARK, MARK HARMAN, JENS KRINKE, University College London
LAURENCE TRATT, King’s College London.
[8]. EFSM-based Test Case Generation: Seq uence, Data, and Oracle Rui Yang State
Key Laboratory for Novel Software Technology, Nanjing University, Department of
Computer Science and Technology, Nanjing University Nanjing, 210046,

[9]. />[10]. .

9


[11]. />
10



×