Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,84 MB
Nội dung
ĐẠ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 Chương 2: Phương pháp đặc tả tương tác giao diện cho ứng dụng Web 10 2.1 Đặc tả tương tác giao diện trang Web ô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 ứng dụng Web 16 2.3 Biểu diễn mô hình đặc tả dạng tệp tin MS Excel 19 Chương 3: Sinh thực thi ca kiểm thử tự động 26 3.1 Sinh 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 đường dẫn kiểm thử 27 3.2 Thực ca kiểm thử 32 3.4 Đánh giá phương pháp 33 Chương 4: Công cụ thực nghiệm 35 4.1 Giới thiệu công cụ bổ trợ 35 4.1.1 Giới thiệu Selenium số API WebDriver 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 ứng dụng Web 38 4.2.1 Kiến trúc công cụ 39 4.2.2 Đầu vào công cụ 40 4.2.3 Đầu công cụ 42 4.3 Thực nghiệm 44 4.4 Kết cải tiến công cụ 51 4.5 Ý nghĩ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 xin gửi lời cảm ơn chân thành sâu sắc đến thầy giáo PGS.TS Nguyễn Việt Hà 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, bảo đóng góp ý kiến quý báu suốt trình học tập, nghiên cứu từ bắt đầu nghiên cứu đề tài đến hoàn thành luận văn Tôi xin chân thành cảm ơn 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 kiến thức vô quý giá, tạo điều kiện tốt cho suốt trình học tập, nghiên cứu trường Đồng thời xin chân thành cảm ơn người thân gia đình toàn thể bạn bè, đồng nghiệp giúp đỡ, động viên lúc gặp phải khó khăn việc học tập nghiên cứu Cuối cùng, xin chân thành cảm ơn Lê Khánh Trình người giúp đỡ, tạo điều kiện cho nghiên cứu công cụ kiểm thử tự động ATWT đồng nghiệp 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 học tập nghiên cứu chương trình thạc sĩ Đại học Công nghệ, ĐH QGHN iv LỜI CAM ĐOAN Tôi xin cam đoan luận văn thạc sĩ công nghệ thông tin “Nghiên cứu kiểm thử dựa mô hình ứng dụng” công trình nghiên cứu riêng hướng dẫn thầy giáo PGS.TS Nguyễn Việt Hà thầy giáo TS Phạm Ngọc Hùng, không chép lại người khác Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất nguồn tài liệu tham khảo có xuất xứ rõ ràng hợp pháp Tôi xin hoàn toàn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 09 tháng 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 API Application Interface Programming Giao diện lập trình ứng dụng FSA Finite State Automaton Ôtômát hữu hạn trạng thái MBT Model- base testing Kiểm thử dựa mô hình vi DANH MỤC HÌNH VẼ Hình 2.1 Trạng thái bắt đầu trang tìm kiếm cán 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 tìm kiếm cán nút sửa thông tin cán Hình 2.5 Giao diện trang Web cập nhật thông tin cán (update) Hình 2.6 Ôtômát hữu hạn trạng M2 Hình 2.7 Mô hình M sau thực thuật toán ghép nối M1 M2 Hình 4.1 Kiến trúc công cụ Auto Testing Web Application Hình 4.2 Lưu trữ 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 liệu đầu vào công cụ Hình 4.5 Kết kiểm thử Hình 4.6 Ứng dụng Web quản lý thông tin cán Hình 4.7 Giao diện trang đăng nhập Hình 4.8 Giao diện chức 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 Hình 4.11 Trang thêm thông tin cán Hình 4.12 Trang cập nhật thông tin cán Hình 4.13 Thư mục tệp tin đặc tả ứng dụng Quản lý thông tin cán Hình 4.14 Giao diện công cụ Hinh 4.15 Các đường dẫn kiểm thử sinh tự động Hình 4.16 Kết thực đường dẫn kiểm thử hiển thị tệp tin đầu Hình 4.17 Giao diện chức 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 trang tìm kiếm cán Bảng 2.2 Các kiện trang tìm kiếm cán Bảng 2.3 Bảng phần tử Web trang tìm kiếm cán Bảng 2.4 Bảng trạng thái trang tìm kiếm cán Bảng 2.5 Bảng kiện trang tìm kiếm cán Bảng 2.6 Bảng transition trang tìm kiếm cán Bảng 2.7 tệp tin Excel đặc tả trang Web tìm kiếm cán Bảng 3.1 Các transition trang tìm kiếm thông tin cán Bảng 3.2 Các testparth sinh từ mô hình trang tìm kiếm thông tin cán 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 phần mềm ứng dụng phát triển Web Do đó, việc kiểm thử đảm bảo chất lượng ứng dụng Web vấn đề quan trọng Tuy nhiên, ứng dụng Web ngày trở nên phức tạp, việc kiểm thử thủ công bao gồm tạo ca kiểm thử thực thi chúng trang Web, công việc tốn thời gian công sức Hơn nữa, có cập nhật lại phiên phần mềm, để tránh rủi ro phát sinh lỗi thay đổi mã nguồn kiểm thử viên phải kiểm thử lại toàn phần mềm, kể tính kiểm thử tốt Vì vậy, để hoàn thành công việc kiểm thử tín độ, công ty phần mềm cần phải áp dụng phương pháp công cụ nhằm tự động hóa hoạt động kiểm thử Kiểm thử tự động giải pháp hữu hiệu nhằm nâng cao tính xác hiệu quả, giảm kinh phí rút ngắn thời gian trình kiểm thử sản phẩm phần mềm nói chung ứng dụng Web nói riêng [1] Kiểm thử dựa mô hình xem phương pháp kiểm thử có khả tự động hóa cao Kiểm thử dựa mô hình phương pháp kiểm thử, ca kiểm thử sinh từ mô hình đặc tả hành vi hệ thống kiểm thử [1] Vì vậy, kiểm thử dựa mô hình ứng dụng để giải số vấn đề khó khăn hoạt động kiểm thử sản phẩm phần mềm Một ứng dụng kiểm thử tương tác giao diện người dùng cho ứng dụng Web Để ứng dụng phương pháp kiểm thử này, trước tiên cần xây dựng mô hình đặc tả hành vi tương tác giao diện ứng dụng Web Mô hình thường biểu diễn máy hữu hạn trạng thái ôtômát hữu hạn trạng thái Tiếp đến, ca kiểm thử tự động sinh từ mô hình Cuối cùng, ca kiểm thử thực thi ứng dụng nhằm phát 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ó nhiều hướng nghiên cứu kiểm thử dựa mô hình cho ứng dụng Web kiểm thử khả 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 (theo luồng tương tác giao diện người dùng) chưa có giải pháp thỏa đáng Một số nghiên cứu trước đề xuất phương pháp công cụ thực việc kiểm thử chức ứng dụng Web [4,5,9] Mặc dù vậy, nghiên cứu thực kiểm thử tự động cho trang Web, cho 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 công cụ kiểm thử tự động cho ứng dụng Web đề xuất [5] giải phần vấn đề nêu Tuy nhiên, phương pháp thực kiểm thử cho số phần tử Web chúng phải có thuộc tính id định danh Trong khi, hệ thống ứng dụng Web thực tế cần công cụ kiểm thử tự động, có khả kiểm thử cho nhiều loại phần tử Web phần tử Web thiết kế cách linh động Nghiên cứu đưa nhằm giải vấn đề Đề tài đưa phương pháp đặc tả hình thức giao diện cho ứng dụng Web Từ đó, xây dựng thuật toán sinh tự động ca kiểm thử từ đặc tả Cuối cùng, đề tài dùng phương pháp đề xuất [5] làm sở để xây dựng công cụ kiểm thử tự động tương tác giao diện ứng dụng Web Công cụ kiểm thử cho ứng dụng Web có nhiều loại phần tử Web như: DropDownList, CheckBoxList, RadioList, DataGrid, v.v.; kể với phần tử Web thuộc tính định danh (id) giao diện pop-up Phần lại luận văn cấu trúc sau Chương trình bày phương pháp đặc tả giao diện cho ứng dụng Web ôtômát hữu hạn trạng thái biểu diễn dạng tệp tin MS Excel Ở chương 3, luận văn trình bày phương pháp sinh tự động ca kiểm thử từ ôtômát hữu hạn trạng thái thực thi chúng trên ứng dụng Web Tiếp đến, chương trình bày công cụ kết thực nghiệm Cuối cùng, kết luận luận văn định hướng nghiên cứu trình bày chương 43 bảng Element_html mà có giá trị html với bảng Event) Cuối cùng, công cụ dùng hỗ trợ Selenium Jsoup để xác định vị trí phần tử html trang Web thực hành động lên phần tử html Nếu không thực thành công dừng thực đường dẫn đưa thông báo Nếu thực thành công kiện, công cụ dựa vào bảng State để lấy phần tử html định nghĩa trạng thái username Công cụ lấy giá trị phần tử html giao diện trang Web thực kiện so sánh với giá trị định nghĩa bảng Element_html Nếu không so sánh thành công dừng thực đường dẫn đưa thông báo thất bại (FAIL) lý thất bại Nếu so sánh thành công tiếp tục thực transition hết đường dẫn kiểm thử Khi thực hết đường dẫn kiểm thử kết luận kiểm thử thành công (PASS) Cấu trúc tệp tin đầu sau: Đầu công cụ tệp tin Excel gồm cột, mô tả chi tiết kết trình chạy đường dẫn kiểm thử trình duyệt Web Hình 4.5 Kết kiểm thử - Cột 1: Bao gồm test path trang Web - Cột 2: Kết chạy test path: test path chạy thành công hay tương tác giao diện trang Web mô tả ôtômát hữu hạn trạng thái kết trả PASS Ngược lại, kết trả FAIL - Cột 3: Nếu kết trả FAIL ô tương ứng cột đưa chi tiết kết 44 4.3 Thực nghiệm Sau đây, áp dụng công cụ kiểm thử tự động cho ứng dụng Web Quản lý thông tin cán Đây ứng dụng quản lý thông tin cán chiến sĩ công an Hà Nội Ứng dụng Web có cấu trúc trang Web Hình 4.6: Hình 4.6 Ứng dụng Web quản lý thông tin cán Theo Hình 4.6 ứng dụng Web bao gồm trang: - Đăng nhập: Trang thực việc đăng nhập vào ứng dụng Web Ứng dụng xây dựng cho hai loại người dùng, với loại dẫn đến giao diện chức tương ứng Hình 4.7 giao diện đăng nhập hệ thống 45 Hình 4.7 Giao diện trang đăng nhập - Quản trị: Trang Web với chức người dùng người quản trị hệ thống Trên thực tế, người quản trị có nhiều chức như: quản trị người dùng, quản trị danh mục, thiết lập hệ thống, v.v Bởi vậy, luận văn giả sử người quản trị thực chức quản lý người dùng (trang Danh sách User) Hình 4.8 giao diện trang Web với người dùng người quản trị hệ thống Hình 4.8 Giao diện chức người quản trị hệ thống - Danh sách User: Trang Web hiển thị danh sách người sử dụng hệ thống, cho phép người quản trị hệ thống thực chức như: thêm người dùng, sửa xóa người dùng Hình 4.9 giao diện quản lý người dùng Hình 4.9 Trang quản lý người dùng - Quản lý TTCB (Quản lý thông tin cán bộ): Trang Web với chức người quản lý thông tin cán 46 - Tìm kiếm TTCB (Tìm kiếm thông tin cán bộ): Trang Web cho phép người dùng tìm kiếm cán Hình 4.10 giao diện cho phép người dùng tìm kiếm thông tin cán Hình 4.10 Giao diện trang tìm kiếm cán - Thêm TTCB (thêm thông tin cán bộ): Trang Web có chức thêm cán Hình 4.11 giao diện trang thêm thông tin cán 47 Hình 4.11 Trang thêm thông tin cán - Cập nhật TTCB (Cập nhật thông tin cán bộ): Trang Web cho phép người dùng cập nhật thông tin cán Hình 4.12 giao diện trang Web 48 Hình 4.12 Trang cập nhật thông tin cán Từ giao diện trang Web trên, xác định phần tử Web, hành vi tương tác giao diện người dùng lên trang Web Tiếp theo, xây dựng trạng thái hàm chuyển trạng thái thông qua phần tử Web, hành vi tương tác giao diện Cuối cùng, xây dựng ôtômát hữu hạn trạng thái cho trang Web biểu diễn chúng dạng tệp tin Excel Hình 4.13 thư mục chứa đặc tả tương tác giao diện ứng dụng Web quản lý thông tin cán Thư mục gồm tệp tin Excel đặc tả tương tác giao diện trang Web: (1) Trang đăng nhập - trang Web chọn làm mốc 1-login.xls, (2) Trang giao diện chức người quản lý cán 2-canbo.xls, (3) Trang tìm kiếm cán 3-canbo_timkiem.xls, (4) Trang thêm cán 4-canbo_themmoi.xls, (5) Trang cập nhật thông tin cán 5canbo_sua.xls, (6) Trang xóa thông tin cán 6-canbo_xoa.xls 49 Hình 4.13 Thư mục tệp tin đặc tả ứng dụng Quản lý thông tin cán Để kiểm thử tự động ứng dụng Web Quản lý thông tin cán bộ, chọn đầu vào cho công cụ kiểm thử tự động tương tác giao diện Web gồm: địa ứng dụng Web thư mục chứa tệp tin đặc tả Hình 4.14 giao diện công cụ chọn đầu vào Trong giao diện này, đường dẫn ứng dụng Web Quản lý thông tin cán http://localhost:8086 thư mục tệp tin đặc tả chọn thư mục hình 4.13 Hình 4.14 Giao diện công cụ Sau nhập liệu đầu vào, công cụ thực đọc tệp tin đầu vào tiến hành mô hình hóa hệ thống để tạo ôtômát hữu hạn trạng thái tương ứng Tiếp theo, công cụ thực thuật toán ghép nối trình bày chương để tạo ôtômát hữu hạn trạng thái cho toàn ứng dụng Từ mô hình này, thực thuật toán sinh đường dẫn kiểm thử để sinh ca kiểm thử cách tự động Kết công cụ sinh 62 đường dẫn kiểm thử Các đường dẫn đảm bảo bao phủ hết trường hợp tương tác giao diện người dùng mô tả tệp tin đặc tả Hình 4.15 liệt kê số đường dẫn kiểm thử sinh sau thực kiểm thử hệ thống Quản lý thông tin cán (6/62) 50 Hinh 4.15 Các đường dẫn kiểm thử sinh tự động Với đường dẫn kiểm thử sinh ra, công cụ sử dụng Selenium WebDriver để kết nối với trình duyệt Web tiến hành chạy đường dẫn kiểm thử Quá trình thực kiểm thử thực thông qua đường dẫn kiểm thử Các đường dẫn kiểm thử coi kịch đầu vào cho công cụ Selenium Với kịch có, công cụ Selenium sử dụng API trình bày phần trước để tiến hành kết nối đến trình duyệt Cùng với hỗ trợ Jsoup việc phân tích mã nguồn nhằm giúp Selenium tìm kiếm phần tử Web thông qua định danh, tên thuộc tính khác để xác định phần tử Web Sau thực kiểm thử ứng dụng Web công cụ kiểm thử tự động tương tác giao diện Web, kết thực xuất tệp tin Excel Nội dung tệp tin cho người dùng biết chi tiết ca kiểm thử bao gồm: đường dẫn kiểm thử, kết đường dẫn kiểm thử đường dẫn không thực thành công nguyên nhân Hình 4.16 số kết sau thực đường dẫn kiểm thử tệp tin đầu Sau thực 62 đường dẫn kiểm thử ứng dụng Web Quản lý thông tin cán bộ, tìm lỗi lập trình liên quan đến tương tác giao diện người dùng 51 Hình 4.16 Kết thực đường dẫn kiểm thử hiển thị tệp tin đầu 4.4 Kết cải tiến công cụ Phương pháp tốt phương pháp đề xuất trước phương pháp có khả kiểm thử cho hầu hết loại phần tử Web Sau số loại phần tử Web quan trọng mà phương pháp làm thêm Phần tử Web động: Các phần tử Web động phần tử Web người dùng tạo trình sử dụng hệ thống Nên phần tử Web có id tự động sinh không xác định xác giá trị id Chúng đề xuất cách thức đặc tả cho phần tử Web động sau: Các phần tử Web đặc tả gồm nhiều thuộc tính thuộc tính cách ký tự “|” Trong ứng dụng Web Quản lý thông tin cán có số loại phần tử Web động, đặc tả sau: (1) Phần tử menu động: Hình 4.17 sau giao diện chức cho phép người dùng tạo menu tùy chọn chức (trang Web) ứng với menu vừa tạo Các menu tạo có id động Vì thế, đặc tả việc xác định menu động sau: html = “menu:2|Tổ Chức|Hồ sơ tổ chức cán bộ” Như vậy, để xác định menu Hồ sơ tổ chức cán bộ, phải xác định thêm Menu chứa (Tổ Chức) kiểu menu (menu:2 có nghĩa menu cấp) (2) Phần tử động DataGrid: Như hình 4.17, chức DataGrid Danh sách chức phần tử động Ví dụ, để chọn chức (phần tử) Định nghĩa cán cao cấp, đặc tả phần tử Web sau: “id:DataGrid|tag:tr|Định nghĩa cán cao cấp|value:Chọn” Phần tử này, xác định thông qua phần tử chứa nó: phần tử DataGrid, phần tử thẻ chứa 52 tag:tr phần tử Chọn.Tương tự, cho việc đặc tả phần tử Caption sinh tự động DataGrid “id:DataGrid2|tag:caption|head:0|end:0|1” Hình 4.17 Giao diện chức tạo menu động Giao diện pop-up: Để kiểm thử giao diện pop-up, trước tiên phải đặc tả trạng thái giao diện pop-up thông qua chuỗi ký tự popup Hình 4.18 giao diện pop-up cảnh báo việc xóa ghi với chuỗi ký tự “Bạn có muốn xóa mục:: Phượng:: không?” Trạng thái pop-up đặc tả phần tử Web có html = “alert:text” value = “Bạn có chắn muốn xoá mục:: Phượng ::này không?” Sau đặc tả trạng thái giao diện pop-up, thực kiện lên pop-up theo đặc tả “id:grdCBCS|tag:tr|Phượng|id:imbXoa|alert-exist:yes” Đặc tả này, cho phép thực kiện đồng ý xóa ghi có nội dung “Phượng” 53 Hình 4.18 Giao diện pop-up Các phần tử Web thuộc tính định danh id: Các phần tử Web xác định thông qua thuộc tính xác định khác name class Để thực kiểm thử cho phần tử Web này, xây dựng tệp tin đặc tả, cần thay giá trị id giá trị name class phần tử Web Ngoài ra, Công cụ kiểm thử tự động tương tác giao diện ứng dụng Web bổ sung thêm số tính nhằm thực kiểm thử cho loại phần tử Web: DropDownList, CheckBoxList, RadioList, v.v Để kiểm thử loại phần tử Web này, cần khai báo kiểu (type) phần tử Web bảng Element_html theo quy định sau: Phần tử Web DropDownList dropdown, CheckBoxList chk, RadioList radiolist, v.v Chúng tiến hành cấy số lỗi liên quan đến phần tử Web vào ứng dụng Web Quản lý thông tin cán Hình 4.16 kết sau thực kiểm thử ứng dụng với lỗi tìm thấy Công cụ đề xuất [5] chưa thực kiểm thử với phần tử Web nên không tìm lỗi 4.5 Ý nghĩa công cụ thực nghiệm Công cụ kiểm thử tự động ứng dụng Web giải pháp cho việc kiểm thử tự động tương tác giao diện cho ứng dụng Web Thực nghiệm cho thấy hướng phát triển tiềm phương pháp kiểm thử tương tác giao diện ứng dụng Web Tuy phương pháp công cụ số hạn chế Nhưng, công cụ có ý nghĩa quan trọng việc kiểm thử tự động tương tác giao diện ứng dụng Web Công cụ tự động sinh thực thi ca kiểm thử hầu hết loại phần tử Web ứng dụng 54 Web Đây giải pháp nhằm nâng cao tính xác hiệu quả, giảm kinh phí rút ngắn thời gian trình kiểm thử ứng dụng Web Để áp dụng phương pháp công cụ chúng tôi, kiểm thử viên cần tạo đặc tả cho trang Web theo phương pháp trình bày chương Sau đó, công cụ tự động ghép nối đặc tả lại với nhau, từ sinh ca kiểm thử thực thi chúng tự động toàn ứng dụng Web cho mô-đun cụ thể Khi có cập nhật phiên ứng dụng Web, thay việc thực lại toàn quy trình kiểm thử, việc thay đổi lại tệp tin đặc tả chạy lại công cụ để thực thi lại việc kiểm thử ứng dụng Việc giúp giảm thiểu rủi ro, thời gian, công sức chi phí thực Thực nghiệm cho thấy, sau giây kể từ chọn liệu đầu vào, công cụ trả kết 45 đường dẫn kiểm thử, đường dẫn kiểm thử chứa gần 30 đường chuyển trạng thái Các đường dẫn kiểm thử này, thực thi tự động nhanh chóng hầu hết phần tử Web ứng dụng Do đó, việc áp dụng công cụ để kiểm thử tự động mang lại nhiều lợi ích Với lợi ưu điểm nêu, tương lai công cụ có khả áp dụng hiệu cho ứng dụng Web lớn thực tế Hiện tại, công cụ triển khai thử nghiệm với số hệ thống ứng dụng Web Cục Công nghệ Thông tin - Bộ Công an nhận kết tích cực 55 Chương 5: KẾT LUẬN Kiểm thử tự động xem giải pháp chủ yếu nhằm đảm bảo chất lượng cho sản phẩm phần mềm [1] Đã có nhiều giải pháp công cụ đề xuất nhằm thực hóa mục tiêu Hầu hết phương pháp tập trung cho kiểm thử đơn vị kiểm thử số yêu cầu phi chức tính an toàn, bảo mật, khả chịu tải, v.v [2, 3, 5, 6] Tuy nhiên, việc kiểm thử tương tác giao diện cho ứng dụng Web chưa có giải pháp thỏa đáng Chúng nghiên cứu phương pháp công cụ kiểm thử tự động tương tác giao diện ứng dụng Web đề xuất [5] Phương pháp [5] thực kiểm thử luồng tương tác giao diện người dùng ứng dụng Web Nhưng, phương pháp kiểm thử cho số phần tử Web chúng phải có thuộc tính định danh id, nên khó áp dụng cho ứng dụng Web thực tế Dựa sở phương pháp [5], đề xuất phương pháp cải tiến nhằm khắc phục hạn chế Thay vì, việc đặc tả phần tử Web thuộc tính định danh id Phương pháp cải tiến cho phép đặc tả phần tử Web theo nhiều thuộc tính cách linh động Sau áp dụng phương pháp cải tiến, công cụ cải tiến thực kiểm thử cho hầu hết phần tử Web có ứng dụng Web như: phần tử Web động, giao diện pop-up, phần tử Web id có thuộc tính name class số phần tử Web khác mà công cụ trước chưa hỗ trợ Phương pháp kiểm thử tự động dựa vào hành vi tương tác giao diện ứng dụng Web trình bày có ưu điểm bật như: phụ thuộc vào phần hiển thị HTML mà không phụ thuộc vào ngôn ngữ lập trình Web, kiểm thử cho hầu hết loại phần tử Web dễ dàng tạo tệp tin đầu vào giúp giảm chi phí công sức thực Với ưu điểm trên, phương pháp hứa hẹn sớm áp dụng rộng rãi thực tế, trở thành công cụ hữu hiệu cho việc kiểm thử ứng dụng Web Về thực nghiệm, áp dụng công cụ kiểm thử tự động tương tác giao diện ứng dụng Web cho số hệ thống Cục Công nghệ thông tin Bộ Công an Kết thực nghiệm cho thấy, công cụ cải tiến tìm nhiều lỗi lập trình liên quan đến tương tác giao diện ứng dụng Web mà công cụ trước không tìm thấy Dựa vào kết thực nghiệm, công cụ cho thấy tính khả dụng khả tạo đường dẫn kiểm thử bao phủ hầu hết trường hợp xảy hệ thống 56 Trong tương lai, áp dụng công cụ cho hệ thống phức tạp nhằm chứng minh tính hiệu phương pháp Đồng thời, tiếp tục so sánh công cụ với công cụ khác có chức tương tự nhằm nâng cấp thêm tính mới, đảm bảo cho việc kiểm thử trở nên dễ dàng, thuận tiện hiệu 57 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 [...]... đường dẫn kiểm thử là trạng thái kết thúc của đồ thị Tiếp theo là trình bày về việc thực thi các đường dẫn kiểm thử đó trên ứng dụng Web để tìm ra lỗi lập trình liên quan đến tương tác giao diện người dùng Cuối chương là đánh giá về phương pháp đặc tả và sinh các ca kiểm thử 3.1 Sinh các ca kiểm thử từ mô hình đặc tả hình thức 3.1.1 Đường dẫn kiểm thử Trong nghiên cứu này, các đường dẫn kiểm thử được... 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ư:... kế, kiểm thử phần mềm nói riêng và các hệ thống nói chung [1] Phương pháp đặc tả này đã được chứng minh là một phương pháp hữu ích dùng để đặc tả các hành vi của phần mềm và kiểm thử phần mềm Đã có nhiều nhà nghiên cứu tập trung vào hướng đặc tả phần mềm bằng phương pháp này nhằm áp dụng cho phương pháp kiểm thử dựa trên mô hình cho các ứng dụng Web Tuy nhiên, đối với các ứng dụng Web lớn, việc áp dụng. .. cuối của đường dẫn kiểm thử đó (dòng 6) và thêm đỉnh cuối của cạnh vào đường dẫn kiểm thử (dòng 7) Như vậy, bằng cách áp dụng 2 thuật toán được trình bày ở trên, chúng ta có thể sinh ra tất cả các đường dẫn kiểm thử từ mô hình tương tác của người dùng trên giao diện Web Chất lượng của các đường dẫn kiểm thử này phụ thuộc vào mô hình được đặc tả trước đó Ví dụ 3.1: Áp dụng thuật toán 1 và thuật toán 2... phủ tốt các trường hợp cần kiểm thử và tương đối dễ dàng cài đặt Nhưng có một vấn đề trong việc tìm kiếm các ca kiểm thử ở phương pháp này Đó là, số lượng các đường dẫn kiểm thử được sinh ra là rất lớn, trong khi đó chỉ thực sự cần những đường dẫn kiểm thử có thể tìm được lỗi của ứng dụng Web Như vậy, để vận dụng và thực hiện một cách hiệu quả phương pháp kiểm thử dựa trên mô hình này thì chúng ta cần... thiệu về hai công cụ bổ trợ chính Một là, giới thiệu về Selenium, một số API WebDriver chính của Selenium được sử dụng để thực hiện tương tác với các phần tử Web Hai là, giới thiệu Jsoup và các hàm chính được sử dụng Tiếp theo, chúng tôi sẽ trình bày về công cụ kiểm thử tự động tương tác giao diện ứng dụng Web Cuối chương sẽ đưa ra một ứng dụng Web và kết quả kiểm thử ứng dụng này bằng công cụ kiểm thử. .. dẫn kiểm thử từ mô hình ôtômát hữu hạn trạng thái của trang tìm kiếm thông tin cán bộ 3.2 Thực hiện các ca kiểm thử Chúng ta sẽ thực thi các ca kiểm thử được sinh ra từ thuật toán trên nhằm phát hiện các lỗi lập trình so với đặc tả (mô hình hệ thống) Đầu tiên, chúng ta phải cài đặt hệ thống dựa trên mô hình đã được đặc tả Khi đã cài đặt xong chương trình, chúng ta sẽ tiến hành thực thi các ca kiểm thử. .. 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... độ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. .. giao diện Web 4.1.1 Giới thiệu Selenium và một số API WebDriver được sử dụng Về cơ bản, Selenium WebDriver không phải là một công cụ kiểm thử tự động Selenium WebDriver là một bộ thư viện (API) hỗ trợ cho việc thiết kế các kịch bản kiểm thử cho các ứng dụng Web dựa trên các ngôn ngữ lập trình như Python, C# hay Java [5] Để thực thi một kịch bản kiểm thử ứng dụng Web, vấn đề đầu tiên chúng ta phải quan ... dựa mô hình xem phương pháp kiểm thử có khả tự động hóa cao Kiểm thử dựa mô hình phương pháp kiểm thử, ca kiểm thử sinh từ mô hình đặc tả hành vi hệ thống kiểm thử [1] Vì vậy, kiểm thử dựa mô hình. .. phần mềm kiểm thử phần mềm Đã có nhiều nhà nghiên cứu tập trung vào hướng đặc tả phần mềm phương pháp nhằm áp dụng cho phương pháp kiểm thử dựa mô hình cho ứng dụng Web Tuy nhiên, ứng dụng Web... ca kiểm thử thực thi ứng dụng nhằm phát 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ó nhiều hướng nghiên cứu kiểm thử dựa mô hình cho ứng dụng Web kiểm thử khả