Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 13 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
13
Dung lượng
794,56 KB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN XUÂN TRƢỜNG KIỂMCHỨNGGIAODIỆNPHẦNMỀMBẰNG PHƢƠNG PHÁPMƠHÌNH HĨA EVENT – B LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI, 2016 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN XUÂN TRƢỜNG KIỂMCHỨNGGIAODIỆNPHẦNMỀMBẰNG PHƢƠNG PHÁPMƠHÌNH HĨA EVENT – B Ngành: Công nghệ thông tin Chuyên ngành: Kỹ thuật phầnmề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 TRƢƠNG NINH THUẬN HÀ NỘI, 2016 LỜI CAM ĐOAN Tôi xin cam đoan tồn nội dung luận văn tơi tìm hiểu, nghiên cứu, tham khảo tổng hợp từ nguồn tài liệu khác làm theo hướng dẫn người hướng dẫn khoa học Các nguồn tài liệu tham khảo, tổng hợp có nguồn gốc rõ ràng trích dẫn theo quy định Tơi xin chịu hoàn toàn trách nhiệm lời cam đoan Nếu có điều sai trái, tơi xin chịu hình thức kỷ luật theo quy định Hà Nội, tháng 06 năm 2016 Ngƣời cam đoan Nguyễn Xuân Trường LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành đến thầy, cô 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 dạy dỗ, truyền đạt cho chúng em nhiều kiến thức, kinh nghiệm quý báu suốt thời gian học tập trường Em xin gửi lời cảm ơn sâu sắc tới thầy PGS.TS Trương Ninh Thuận – Phó chủ nhiệm khoa cơng nghệ thông tin – Trường Đại học Công nghệ – ĐHQGHN tận tình bảo, hướng dẫn, định hướng cho em để em hoàn thành luận văn tốt nghiệp Cuối em xin cảm ơn gia đình, bạn bè, đồng nghiệp động viên ủng hộ tạo điều kiện tốt suốt trình học tập hoàn thành luận văn Với việc tìm hiểu nghiên cứu lĩnh vực, cơng cụ tương đối mẻ với kiến thức nhiều hạn chế, nên khơng tránh khỏi thiếu sót Em mong nhận ý kiến đóng góp quý báu thầy cô bạn để luận văn hoàn thiện Hà Nội, tháng 06 năm 2016 Học viên Nguyễn Xuân Trường MỤC LỤC MỤC LỤC DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ Chƣơng GIỚI THIỆU 1.1 Sự cần thiết đề tài 1.2 Nội dung nghiên cứu 1.3 Đóng góp đề tài 1.4 Cấu trúc luận văn Chƣơng TỔNG QUAN VỀ KIỂMCHỨNGGIAODIỆNPHẦNMỀM VÀ PHƢƠNG PHÁPMƠHÌNH HĨA EVENT-B 11 2.1 Giaodiện người dùng 11 2.2 Các phươngphápkiểmchứnggiaodiện 12 2.2.1 Phươngpháp tĩnh 14 2.2.2 Phươngpháp động 14 2.3 Tổng quan Event-B 16 2.3.1 Context 17 2.3.2 Machine 18 2.3.3 Ký hiệu toán học Event-B 21 2.3.4 Tinh chỉnh 22 2.3.5 Mệnh đề chứng minh 23 2.3.6 Công cụ Rodin 24 Chƣơng KIỂMCHỨNGGIAODIỆNPHẦNMỀMBẰNG PHƢƠNG PHÁPMƠHÌNH HĨA EVENT-B 27 3.1 Phươngphápchung 27 3.2 Phươngpháp chi tiết 28 3.3 Mơhìnhhóagiaodiệnphầnmềm 31 3.4 Mệnh đề chứng minh 32 Chƣơng ÁP DỤNG PHƢƠNG PHÁPKIỂMCHỨNGGIAODIỆN ỨNG DỤNG TRÊN THIẾT BỊ DI ĐỘNG VỚI EVENT-B 34 4.1 Tổng quan ứng dụng điện thoại di động 34 4.1.1 Các thành phần ứng dụng Android 35 4.1.2 Cơ chế quản lý Activity 35 4.2 Ứng dụng Note 38 4.2.1 Giới thiệu chung 38 4.2.2 Ứng dụng Note 38 4.3 Mơhìnhhóakiểmchứnggiaodiện ứng dụng Note 44 KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 56 Kết luận 56 Hướng phát triển 57 PHỤ LỤC 58 A Đặc tả context Note_C ứng dụng Note 58 B Đặc tả machine Note_M ứng dụng Note 58 TÀI LIỆU THAM KHẢO 62 DANH MỤC KÝ HIỆU VÀ CHỮ VIẾT TẮT IDE Integrated Development Environment GUI Graphical User Interface POS Proof Obligations INV Invariant DLF Deadlock Freeness VAR Variant WD well-definedness DANH MỤC CÁC BẢNGBảng 2.1 Các phép toán logic 21 Bảng 2.2 Luật chứng minh INV với kiện evt 24 Bảng 3.1 Chuyển đổi từ GUI tới Event-B 32 Bảng 4.1 Bảng CSDL ghi Note 38 Bảng 4.2 Mô tả cửa sổ giaodiện MainActivity 39 Bảng 4.3 Mô tả sơ đối tượng cửa sổ giaodiện CreateActivity 40 Bảng 4.4 Mô tả sơ đối tượng cửa sổ giaodiện EditActivity 41 Bảng 4.5 Mô tả sơ đối tượng cửa sổ giaodiện ViewActivity 43 DANH MỤC CÁC HÌNH VẼ Hình 2.1 Giaodiện đồ họa người dùng 11 Hình 2.2 Giaodiện dòng lệnh 12 Hình 2.3 Cấu trúc mối quan hệ thành phầnmơhình EventB 17 Hình 2.4 Cấu trúc context 18 Hình 2.5 Ví dụ context Event-B 18 Hình 2.6 Cấu trúc machine Event-B 20 Hình 2.7 Cấu trúc Event Event-B 20 Hình 2.8 Ví dụ machine Event-B 20 Hình 2.9 Ví dụ Event Event-B 21 Hình 2.10 Ví dụ mối quan hệ Refinement Event-B 22 Hình 2.11 Sơ đồ định nghĩa kiện 23 Hình 2.12 Định nghĩa kiện evt 24 Hình 2.13 Giaodiện đồ họa công cụ Rodin 25 Hình 2.14 Symbols View 36 Hình 2.15 Event-B Explorer 36 Hình 2.16 Menu bar 36 Hình 3.1 Quy trình kiểmchứng tổng quát 27 Hình 3.2 Quy trình kiểmchứng chi tiết 30 Hình 4.1 Cơ chế Back Stack 36 Hình 4.2 Activity State 37 Hình 4.3 MainActivity.XML 40 Hình 4.4 CreateActivit.XML 41 Hình 4.5 EditActivit.XML 42 Hình 4.6 ViewActivity.XML 43 Hình 4.7 Quy trình xây dựng Activity Diagram 44 Hình 4.8 Sơ đồ Activity Diagram 45 Hình 4.9 Q trình mơhìnhhóa từ đặc tả vào Event-B 46 Hình 4.10 Context Note_C 47 Hình 4.11 Một phần machine Note_M 49 Hình 4.12 Event ứng dụng 50 Hình 4.13 Event chọn chức Create 50 Hình 4.14 Event chọn chức Edit 50 Hình 4.15 Event chọn chức View 51 Hình 4.16 Event chọn chức Delete 51 Hình 4.17 Các Event đối tượng cửa sổ 51 Hình 4.18 Cửa sổ sinh kiểmchứng tự động 53 Hình 4.19 Bảng kết Statistics 53 Hình 4.20 Thơng báo mệnh đề chưa chứng minh tự động 54 Hình 4.21 Cửa sổ Goal 54 Hình 4.22 Cửa sổ Statistics trường hợp lỗi 55 Hình 4.23 Cửa sổ Statistics trường hợp lỗi 55 Chƣơng GIỚI THIỆU 1.1 Sự cần thiết đề tài Ngày phầnmềm có mặt hầu hết lĩnh vực: Giáo dục, truyền thông, ngân hàng, sản xuất chế tạo, quản trị, y tế, khoa học kỹ thuật, hàng khơng vũ trụ, giải trí, … Giúp người giải hầu hết công việc dần thay người Đại đa số phầnmềm xây dựng với giaodiện đồ họa người dùng Graphical User Interface (GUI) thân thiện người sử dụng việc tương tác với giaodiệnphầnmềm Việc phát triển phầnmềm dần hướng tới đưa sản phẩm có giaodiện dễ sử dụng, có tính thẩm mỹ cao đảm bảo chức cần thiết Tuy nhiên lúc GUI phầnmềm xây dựng điều đảm bảo tính dễ dùng, bố cục hợp lý, chức hoạt động cách xác mong muốn Lỗi phầnmềm chủ yếu xuất trình tương tác như: Các phần tử GUI hiển thị bất thường khó quan sát thao tác, chức thực không dự định, thông báo hiển thị sai, thứ tự xuất cửa sổ khơng xác,…, dẫn tới thực sai, gây mát liệu, gây an tồn thiệt hại kinh tế nguy hại tới tính mạng người sử dụng, Vì vậy, Cần phải thực kiểm thử giaodiệnphầnmềm để kiểm tra chức năng, qn, khả tầm nhìn, khả tương thích đảm bảo phù hợp với thông số đặc tả thiết kế, phát lỗi sửa chữa kịp thời vấn đề bất thường có giaodiện vơ quan trọng thách thức lớn trình xây dựng phầnmềmKiểmchứnggiaodiệnphầnmềm quy trình gồm nhiều cơng việc khác nhiều đối tượng giaodiện Trong việc kiểmchứng thứ tự hiển thị cửa sổ giaodiện yếu tố quan trọng cần thiết, thấy người sử dụng làm việc với phầnmềm chủ yếu thông qua cửa sổ giaodiện qua người dùng giao tiếp, tương tác, trao đổi nhập xuất thông tin với phầnmềm Từ chức cửa sổ gọi tới nhiều cửa sổ khác, thời điểm có cửa sổ làm việc Các trạng thái thứ tự xuất giaodiện cần đảm bảo xác với lời gọi tới Khi cửa sổ hiển thị khơng với thứ tự ứng chức định sẵn đưa tới người dùng thông tin hành động sai điều gây hậu khó lường Từ trước tới có nhiều phươngphápkiểm chứng, kiểm thử áp dụng để kiểm chứng, kiểm thử đặc tả thiết kế giaodiệnphầnmềmkiểmchứng tĩnh, kiểmchứng động, kiểm thử hộp đen, Tuy nhiên phươngpháp lại bộc lộ ưu nhược điểm riêng Với kiểmchứng tĩnh lại phụ thuộc chủ yếu vào kiến thức với kinh nghiệm khả phân tích người kiểm thử thường tốn nhiều thời gian Trong kiểmchứng động lại áp dụng trình thực phầnmềm sử dụng kỹ thuật kiểm thử tùy theo cấp độ kiểm thử modul hay kiểm thử đơn vị, phươngpháp tốt cho việc tìm lỗi lại đòi hỏi thực chương trình tức việc kiểmchứng thực sau có mã nguồn Phươngpháp Event-B phươngphápmôhìnhhóa cho phép mơhìnhhóa thành phần, đối tượng hệ thống phầnmềm dựa ký hiệu toán học, logic mệnh đề lý thuyết tập hợp kết hợp với công cụ mã nguồn mở Rodin cho phép sinh kiểmchứng cách tự động Nhận thấy tầm quan trọng việc kiểmchứnggiaodiện người dùng phầnmềm mà cụ thể kiểmchứng thứ tự xuất cửa sổ giaodiện với ưu điểm phươngpháp Event-B công cụ Rodin, nên tác giả mạnh dạn đề xuất đề tài “Kiểm chứnggiaodiệnphầnmềm phƣơng phápmơhìnhhóaEvent – B” nhằm nghiên cứu phươngphápkiểmchứnggiaodiệnchung tập trung vào xây dựng phươngphápkiểmchứng thứ tự xuất cửa sổ giaodiệnphầnmềm cho ứng dụng thiết bị di động 62 TÀI LIỆU THAM KHẢO [1] GUI Testing Techniques: A Survey Imran Ali Qureshi an AamerNadeem, International Journal of Future Computer and Communication, Vol 2, No 2, April 2013 [2] Cem Kaner, James Bach, Bret Pettichord, Lessons Learned in Software Testing A Context-Driven Approach, John Wiley & Sons, 2001 [3] [BEI90] Beizer, B., Software Testing Techniques, 2d ed., Van Nostrand Reinhold, 1990 [4] J.-R Abrial, Modeling in Event-B: System and Software Engi-neering Cambridge University Press, 2010 [5] A.F Memon, GUI testing pitfalls and process, Computer, University of Maryland, 2002 [6] D Jackson Software Abstractions: Logic, Language, and Analysis MIT Press, 2006 [7] Christophe M´etayer, Laurent Voisin, the Event-B Mathematical Language, 2007 [8] http://code.google.com/events/io/ [9] http://www.Event-B.org/ [10] http://www.android.com/ [11] http://o7planning.org/web/fe/default/vi/document/1283892/huong-danlap-trinh-android-voi-database-sqlite [12] http://android.vn/forums/ ... giao diện phần mềm phƣơng pháp mơ hình hóa Event – B” nhằm nghiên cứu phương pháp kiểm chứng giao diện chung tập trung vào xây dựng phương pháp kiểm chứng thứ tự xuất cửa sổ giao diện phần mềm. .. QUAN VỀ KIỂM CHỨNG GIAO DIỆN PHẦN MỀM VÀ PHƢƠNG PHÁP MƠ HÌNH HĨA EVENT-B 11 2.1 Giao diện người dùng 11 2.2 Các phương pháp kiểm chứng giao diện 12 2.2.1 Phương pháp tĩnh... có nhiều phương pháp kiểm chứng, kiểm thử áp dụng để kiểm chứng, kiểm thử đặc tả thiết kế giao diện phần mềm kiểm chứng tĩnh, kiểm chứng động, kiểm thử hộp đen, Tuy nhiên phương pháp lại bộc lộ