Nghiên cứu ứng dụng một số công cụ kiểm thử có ứng dụng trí tuệ nhân tạo​

74 19 0
Nghiên cứu ứng dụng một số công cụ kiểm thử có ứng dụng trí tuệ nhân tạo​

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ` Trần Thị Hoan NGHIÊN CỨU ỨNG DỤNG MỘT SỐ CƠNG CỤ KIỂM THỬ CĨ ỨNG DỤNG TRÍ TUỆ NHÂN TẠO LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN Chuyên ngành: Kỹ thuật phần mềm Mã số: 8480103.01 Cán hướng dẫn: PGS TS Trương Anh Hoàng HÀ NỘI, 2020 LỜI CẢM ƠN Được phân công Công Nghệ Thông Tin, trường Đại học Công nghệ, hướng dẫn thầy PGS TS Trương Anh Hoàng, tơi hồn thành luận văn Để hồn thành luận văn xin cảm ơn Thầy cô khoa Công Nghệ Thông Tin, trường Đại học Công nghệ nhiệt tình dạy dỗ, cung cấp phương pháp, kiến thức suốt thời gian học tập Tôi xin chân thành cảm ơn PGS TS Trương Anh Hoàng tận tình hướng dẫn bảo tơi nhiều kiến thức phương pháp làm việc q trình thực hồn thành đồ án Mặc dù cố gắng tích cực việc thực luận văn tránh sai sót định, tơi mong nhận đóng góp thầy bạn đồng nghiệp để hồn chỉnh luận văn có hướng phát triển Tôi xin chân thành cảm ơn i LỜI CAM ĐOAN Tôi xin cam đoan số liệu kết nghiên cứu luận văn trung thực chưa sử dụng để bảo vệ học vị Mọi giúp đỡ luận văn cảm ơn thơng tin trích dẫn luận văn rõ nguồn gốc rõ ràng phép công bố Hà Nội, ngày … tháng … năm 2020 Người thực Trần Thị Hoan ii MỤC LỤC LỜI CẢM ƠN MỤC LỤC THUẬT NGỮ VIẾT TẮT DANH MỤC BẢNG DANH MỤC BIỂU ĐỒ DANH MỤC SƠ ĐỒ, HÌNH VẼ LỜI MỞ ĐẦU CHƯƠNG TRÍ TUỆ NHÂN TẠO TRONG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG 1.1 Giới thiệu chung 1.2 Xu sử dụng học máy kiểm thử tự động 1.3 Huấn luyện học máy kiểm thử giao diện tự động 1.3.1 Huấn luyện học m 1.3.2 Huấn luyện học m 1.3.3 Thực thi ML: Áp 1.3.4 Huấn luyện học m CHƯƠNG GIỚI THIỆU VỀ CÁC CÔNG CỤ 2.1 Applitools 2.1.1 Applitools gì? 3.1.2 AI Applitools 2.2 Testim.io 2.2.1 Testim.io gì? 2.2.2 AI Testim.io 2.3 TestComplete 2.3.1 TestComplete g 2.3.2 AI Testcomp 2.4 Mabl 2.4.1 Mabl gì? 2.4.2 AI Mabl CHƯƠNG THỰC NGHIỆM 3.1 Phương thức thực nghiệm iii 3.1.1 Ý tưởng chung 19 3.1.2 Môi trường thực 19 3.1.3 Quá trình thực 22 3.1.4 Nhật ký ca kiểm thử mẫu 23 3.2 Kiểm tra văn 28 3.3 Kiểm tra ảnh 29 3.4 Kiểm tra nút 30 3.5 Kiểm tra hộp nhập văn 31 3.6 Kiểm tra hộp lựa chọn 33 3.7 Kiểm tra thực đơn 34 3.8 Kiểm tra biểu đồ 35 3.9 Đánh giá kết kiểm thử 35 3.10 So sánh công cụ 40 CHƯƠNG KẾT LUẬN 43 TÀI LIỆU THAM KHẢO 45 iv THUẬT NGỮ VIẾT TẮT Viết tắt AI API CD CI CSS CV DOM F HTML IDE ML NA P P(D) PDF STT v DANH MỤC BẢNG Bảng 3.1: Kiểm tra nội dung văn 29 Bảng 3.2: Kiểm tra ảnh 29 Bảng 3.3: Kiểm tra nút 30 Bảng 3.4: Kiểm tra hộp nhập văn 32 Bảng 3.5: Kiểm tra hộp lựa chọn 33 Bảng 3.6: Kiểm tra thực đơn 34 Bảng 3.7: Kiểm tra biểu đồ 35 Bảng 3.8: Kết tổng số ca 36 Bảng 3.9: Kết theo loại phần tử 36 Bảng 3.10: Kết theo loại thay đổi 36 Bảng 3.11: Kết tổng số ca theo phần trăm 38 Bảng 3.12: Kết loại thay đổi theo phần trăm 38 Bảng 3.13: So sánh công cụ 40 DANH MỤC BIỂU ĐỒ Biểu đồ 3.1: Kết tổng số ca theo phần trăm 37 Biểu đồ 3.2: Kết loại phần tử theo phần trăm 39 Biểu đồ 3.3: Kết loại thay đổi theo phần trăm 40 vi DANH MỤC SƠ ĐỒ, HÌNH VẼ Hình 1.1: Trí tuệ nhân tạo Hình 1.2: Xu trí tuệ nhân tạo kiểm thử tự động Hình 1.3: Ví dụ lệnh Selenium Hình 1.4: Ví dụ lệnh Applitools Hình 1.5: Phạm vi nghiên cứu luận văn Hình 1.6: Huấn luyện học máy kiểm thử tự động Hình 1.7: Ma trận nhầm lẫn Hình 2.1: Applitools - hoạt động 13 Hình 2.2: Applitools - ví dụ ảnh sở 14 Hình 2.3: Applitools - ví dụ ảnh kiểm tra 14 Hình 2.4: Testim.io - định vị thơng minh 15 Hình 3.1: Trang giao diện chủ 19 Hình 3.2: Trang giao diện “Portfolio” 20 Hình 3.3: Trang giao diện “Book” 20 Hình 3.4: Trang giao diện “Blog” 21 Hình 3.5: Trang giao diện “Join Us” 21 Hình 3.6: Trang giao diện “About” 22 Hình 3.7: Giao diện gốc 24 Hình 3.8: Applitools - Kịch ca kiểm thử 24 Hình 3.9: Testim.io - Kịch ca kiểm thử 24 Hình 3.10: Testcomplete -Kịch ca kiểm thử 25 Hình 3.11: Mabl -Kịch ca kiểm thử 25 Hình 3.12: Giao diện thay đổi 26 Hình 3.13: Applitools - Kết ca kiểm thử 26 Hình 3.14: Testim.io - Kết ca kiểm thử 27 Hình 3.15: Testcomplete - Kết ca kiểm thử 28 Hình 3.16: Mabl - Kết ca kiểm thử 28 vii LỜI MỞ ĐẦU Công nghệ phát triển với tốc độ cực nhanh giữ vai trò quan trọng sống Trên phạm vi toàn cầu, doanh nghiệm tung ứng dụng sử dụng hàng ngàn, hàng triệu người nhiều tảng khác Nó địi hỏi doanh nghiệp phải cung cấp sản phẩm nhanh liên tục Trước lần mắt sản phẩm, ứng dụng phải kiểm thử để đảm bảo tối ưu, đắn cho người dùng đầu cuối Kiểm thử thủ công đơn giản dần không đáp ứng nhu cầu Quá trình kiểm thử phần mềm cần thơng minh hơn, nhanh tốt Các công nghệ trí tuệ nhân tạo, học máy ngày áp dụng để đẩy nhanh trình phát triển phần mềm Việc phát triển phần mềm sử dụng trí tuệ nhân tạo giai đoạn khởi đầu Các công cụ kiểm thử dựa vào trí tuệ nhân tạo từ phân tích mã nguồn sinh ca kiểm thử đơn vị, đến tảng kiểm thử toàn Kiểm thử hệ thống dựa vào giao điện xu bối cảnh kiểm thử tự động điểm nhức nhối lớn, chúng có xu hướng “dễ vỡ, tốn để viết, tốn thời gian để thực hiện” [1] Với ca kiểm thử thủ công, người kiểm thử thực ca kiểm thử bước đưa kết luận sau bước thực Các ca kiểm thử cần thực tất giao diện, tảng hỗ trợ thủ công Trong hường hợp vá cập nhật liên tục, người kiểm thử cần lặp lặp lại ca kiểm thử liên tục Với kiểm thử tự động, người kiểm thử tạo lệnh để công cụ thực ca kiểm thử so sánh kết đầu thay chạy thủ cơng Bài tốn chạy ca kiểm thử lặp lại nhiều lần giải Khi giao diện thay đổi phần tử, người kiểm thử cần cập nhật lại lệnh Một vài ca kiểm thử cần thay đổi khơng làm khó người kiểm thử, cần cập nhật hàng trăm, hàng nghìn ca kiểm thử tốn thời gian độ xác Bằng kết hợp trí tuệ nhân tạo kiểm thử tự động toán kiểm thử giao diện dần giải Dữ liệu lớn, trí thơng minh máy móc đào tạo giúp cho cơng cụ kiểm thử tự động thực ca kiểm thử hàng nghìn giao diện, tảng thời gian ngắn, đưa luận cuối ca kiểm thử cách thông minh người Các ca kiểm thử sinh ra, cập nhật tự động phù hợp với hồn cảnh ứng dụng mà khơng cần người kiểm thử cập nhật dịng lệnh Từ đó, học viên muốn tìm hiểu ứng dụng trí tuệ nhân tạo kiểm thử tự động vài cơng cụ có sử dụng trí tuệ nhân tạo: “Nghiên cứu ứng dụng số công cụ kiểm thử có ứng dụng trí tuệ nhân tạo” 100% 100% 100% 94% 88% 79% 76% 71% 50% 44%44% 54% 44% 24% Văn Biểu đồ 3.3: Kết loại thay đổi theo phần trăm 3.10 So sánh công cụ Sau thời gian nghiên cứu, trải nghiệm cơng cụ(bản dùng thử), thân học viên có đưa so sánh 3.13 công cụ dựa kết kiểm thử, kết thống kê nói mục 4.9 Bảng 3.13: So sánh cơng cụ STT Hạng mục Mục đích kiểm thử Platform Cài đặt Trường hợp sử dụng tốt AI Phương thức Bảo trì ca kiểm thử Thời gian chạy ca kiểm thử Chạy ca kiểm thử môi trường cục 10 11 12 13 14 Chạy ca kiểm thử môi trường lưới giao diện Lưới giao diện web Gỡ lỗi Đưa định Số đánh giá Garter- trang đánh giá công nghệ 15 Đánh giá theo Garter- trang đánh giá công nghệ 16 Số đánh giá đồng nghiệp học viên Đánh giá theo 17 đồng nghiệp học viên 18 Đánh giá học viên Kết đánh giá theo đồng nghiệm học viên đính kèm cuối mục tài liệu tham khảo 42 CHƯƠNG KẾT LUẬN Luận văn tập trung vào việc giới thiệu ứng dụng trí tuệ nhân tạo kiểm thử tự động, cơng cụ kiểm thử tự động liên quan, từ đưa đánh giá Chương I giới thiệu khái niệm trí tuệ nhân tạo, kiểm thử phần mềm tự động, Chương II trình bày học máy áp dụng kiểm thử phần mềm tự động Chương III trình bày cơng cụ kiểm thử phần mềm có sử dụng trí tuệ nhân tạo Chương IV đưa kịch kiểm thử, kết đánh giá hiệu Như trình bày Chương II Chương III, ca kiểm thử thực trình đào tạo thực thi học máy Càng nhiều ca kiểm thử chạy, trí tuệ nhân tạo công cụ thông minh việc đưa định kết luận cho ca kiểm thử Tuy nhiên, cơng cụ có phương thức riêng riêng mình, Applitools sử dụng thị giác máy tính, Testim.io sử dụng định vị thơng minh, Testcomplete sử dụng nhận dạng đối tượng, Mabl sử dụng học máy Sau trình tìm hiểu, thực nghiệm thu thập đánh giá, học viên rút kết luận sau: Thứ nhất, việc sử dụng công cụ có ứng dụng trí tuệ nhân tạo thực rút ngắn thời gian, công sức cho kiểm thử Thay viết hàng trăm dịng lệnh so sánh, người kiểm thử cần ghi lại kịch thao tác đơn giản (kích vào nút, chọn lựa chọn…), sau trí tuệ nhân tạo so sánh đưa khác biệt có Việc trí tuệ nhân tạo tự sinh ca kiểm thử không nằm phạm vi tìm hiểu đề tài Thứ hai, báo trì ca kiểm thử trở nên dễ dàng Khi giao diện thay đổi, người kiểm thử không cần chỉnh sửa lại tập dịng lệnh, mà cần ích cú kích chuột đồng ý Sau đó, ảnh chụp hình sở ca kiểm thử cập nhật mà khơng cần thao tác dịng lệnh Thứ ba, ứng dụng cơng cụ có ứng dụng trí tuệ nhân tạo tìm hiểu phạm vi đề tài Applitools thích hợp cho ca kiểm thử giao diện yêu cầu xác đến đơn vị điểm ảnh Testcomplete hoàn hảo cho ca kiểm thử biểu đồ bảng tập tin pdf Testim.io Mabl thích hợp cho ca kiểm thử giao diện người dùng đầu cuối đơn Thứ tư, cơng cụ có ứng dụng trí tuệ nhân tạo có điểm hạn chế: Applitools chưa tự đưa định ca kiểm thử (thông qua thất bại), Testim.io chưa phát nhiều thay đổi (theo kết kiểm thử), Testcomplete Mabl có tốc độ xác minh phần tử lâu 43 Thứ năm, học viên có đề xuất cho cơng cụ có ứng dụng trí tuệ nhân tạo phạm vi đề tài: hạn chế mục thứ tư nên khắc phục Ngoài ra, Applitools, Testim.io, Mabl nên tăng cường chức liên quan đến biểu đồ bảng Cuối cùng, phạm vi thực nghiệm luận văn hạn chế kiểm thử giao diện, chưa thực nghiệm với công cụ tự sinh ca kiểm thử giao diện Về tương lai, học viên tiếp tục tìm hiểu cơng cụ kiểm thử giao diện khác có ứng dụng trí tuệ nhân tạo khác cho sinh ca kiểm thử mở rộng phạm vi nhánh khác kiểm thử API, bảo mật, hiệu Ngày nay, trí tuệ nhân tạo có bước tiến kiểm thử giao diện phần mềm tự động Có nhiều cơng cụ sử dụng trí tuệ nhân tạo giới thiệu đến người dùng, cơng cụ tìm hiểu đề tài số Mục đích cuối cơng cụ giúp giảm tối thiểu thao tác, sức lực người để hồn thành cơng đoạn kiểm thử, nhằm rút ngắn vịng đời phát triển phần mềm Theo quan điểm cá nhân học viên, trí tuệ nhân tạo phát triển mạnh mẽ kiểm thử giao diện phần mềm tự động dần thay hoàn toàn vị trí kiểm thử thủ cơng 44 TÀI LIỆU THAM KHẢO [1] D Kraus, "AI in GUI-Based Software Testing," 2017 [2] Kolawa, Adam, Huizinga, Dorota, Automated Defect Prevention: Best Practices in Software Management, Wiley-IEEE Computer Society Press, 2007 [3] M Maloof, "Artificial Intelligence: An Introduction," 2017 [4] Stuart J Russell and Peter Norvig, Artificial Intelligence: A Modern Approach, 2020 [5] P Merrill, "Top trends: ways AI will change software testing" [6] Dionny Santiago, Tariq M King, Peter J Clarke, "AI-Driven Test Generation: Machines Learning from Human Testers," 2018 [7] J Arbon, "Testing AI: Supervised Learning," 2018 [8] J Arbon, "AI for Software Testing," 2017 [9] R Nathanie, Interviewee, Interview with Ram Nathaniel, Head of Computer Vision Algorithms at Applitools [Interview] 2020 45 PHIẾU KHẢO SÁT 46 47 48 49 50 51 ... trí tuệ nhân tạo kiểm thử tự động vài cơng cụ có sử dụng trí tuệ nhân tạo: ? ?Nghiên cứu ứng dụng số công cụ kiểm thử có ứng dụng trí tuệ nhân tạo” Phạm vi nghiên cứu: Trí tuệ nhân tạo học máy ứng. .. học máy kiểm thử giao diện tự động chương Chương Một số công cụ kiểm thử giao diện tự động có ứng dụng trí tuệ nhân tạo Chương trình bày số cơng cụ kiểm thử giao diện có ứng dụng trí tuệ nhân tạo,... Applitools Trí tuệ nhân tạo học máy ứng dụng lĩnh vực kiểm thử, ví dụ kiểm thử xác minh giao diện, kiểm thử API, kiểm thử bảo mật… Các cơng cụ có ứng dụng trí tuệ nhân tạo tự sinh ca kiểm thử, người

Ngày đăng: 10/02/2021, 13:29

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan