ĐẠ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 S
Trang 1ĐẠ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
Trang 2ĐẠ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
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
Trang 31
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
Trang 42
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
Trang 53
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
Trang 64
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.
Trang 75
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Ữ
ATM Automated Teller Machine
FSM Finite State Machines
VER State Verification
UIO Unique Input Output sequence
DS Distinguishing sequence
Trang 86
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.
Trang 97
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
Trang 108
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á
Trang 119
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, Chinaruizi2000@gmail.com
[9] http://www.testingvn.com/
[10] http://istqbexamcertification.com
Trang 1210 [11].http://www.softwaretestingclass.com/design-test-cases-using-state-transition-testing-technique/