Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,92 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HÒA BÌNH KHOA CNTT & ĐTVT KHÓA ḶN TỚT NGHIỆP Ứng dụng Selenium WebDriver vào kiểm thử phần mềm LMS Giảng viên hướng dẫn : Sinh viên thực : Lớp : MSSV : Ths.Nguyễn Thị Vân Phạm Thị Nhung 519CNT 519CNT023 Hà Nội, năm 2023 LỜI CẢM ƠN Lời đầu tiên, cho phép gửi lời cảm ơn chân thành đến thầy Nguyễn Thị Vân người hướng dẫn tận tình đưa dẫn hiệu q trình tơi làm khóa luận Thầy bảo em nhiệt tình nghiêm túc để hồn thành khóa luận tốt nghiệp cách tốt Tiếp theo em xin chân thành cảm ơn Khoa Công Nghệ thông tin & Điện tử viễn thông tạo môi trường học tập tốt, giúp tơi hồn thiện kỹ chun mơn kỹ mềm Những kiến thức thức, kỹ mềm khơng giúp tơi hồn thành khóa luận mà cịn áp dụng vào sống, công việc tương lai Cuối xin gửi lời cảm ơn tập thể 519CNT trao đổi, động viên khích lệ tơi học tập năm qua trình thực khóa luận Trong q trình thực khóa luận, bên cạnh cố gắng hồn thành tốt cịn có sai sót khơng thể tránh khỏi Vì vậy, tơi mong nhận góp ý thầy bạn để khóa luận tơi hồn thiện Tơi xin chân thành cảm ơn! Hà Nội, ngày tháng năm 2023 Sinh viên Phạm Thị Nhung i LỜI CAM ĐOAN Em xin cam đoan đề tài: "Ngiên cứu ứng dụng Selenium Webdriver kiểm thử phần mềm " cơng trình nghiên cứu độc lập hướng dẫn giáo viên hướng dẫn: Nguyễn Thị Vân Đề tài, nội dung báo cáo sản phẩm mà em nỗ lực nghiên cứu trình học tập trường Kết trình bày báo cáo hồn toàn trung thực Em xin chịu hoàn toàn trách nhiệm, kỷ luật môn nhà trường đề có vấn đề xảy Sinh viên Phạm Thị Nhung ii MỤC LỤC LỜI CẢM ƠN i LỜI CAM ĐOAN ii MỤC LỤC iii BẢNG BIỂU v HÌNH ẢNH vi LỜI MỞ ĐẦU x MỞ ĐẦU 1 Mục đích đề tài Phương pháp nghiên cứu Ý nghĩa đề tài .1 Bố cục khóa luận CHƯƠNG I TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Kiểm thử phần mềm 1.1.1 Khái niệm kiểm thử phần mềm 1.1.2 Mục tiêu kiểm thử phần mềm 1.1.3 Các cấp độ kiểm thử 1.2 Kiểm thử tự động kiểm thử thủ công 1.2.1 Khái niệm kiểm thử tự động .6 1.2.2 Quy trình kiểm thử tự động 1.2.3 Khái niệm kiểm thử thủ công 1.2.4 Sự khác biệt Kiểm thử tự động kiểm thử thủ công 1.2.5 Một số công cụ kiểm thử tự động phổ biến 12 1.3 Khái niệm kiểm thử tự động Selenium Selenium WebDriver 12 1.3.1 Khái niệm Selenium .12 1.3.2 Selenium WebDriver 14 1.3.3 Các câu lệnh sử dụng Selenium WebDriver 15 1.4 Giới thiệu Java Selenium WebDriver 16 iii 1.4.1 Ứng dụng Intellij IDE 17 1.4.2 Framework Maven .18 1.4.3 Framework Testng .20 CHƯƠNG II KỊCH BẢN KIỂM THỬ WEBSITE.NET 22 2.1 Thiết kế kịch cho chức website.net .22 2.1.1 Chức Đăng nhập .22 2.1.2 Chức Sửa hồ sơ cá nhân 24 2.1.3 Chức Chi tiết khóa học .26 2.2 Thực thi kiểm thử tự động .28 2.2.1 Các yêu cầu công nghệ 28 2.2.2 Hướng thực thi kiểm thử tự động .28 2.2.3 Báo cáo phân tích lỗi 30 CHƯƠNG III THỰC NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 33 3.1 Giới thiệu website LMS 33 3.2 Kiểm thử tự động chức với Selenium WebDriver 34 3.3.1 Chức đăng nhập 39 3.3.2 Chức Hồ sơ 43 3.3.3 Chức Quản lý khóa học 45 3.3 Đánh giá kết kiểm thử 53 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN 55 Thành đạt 55 a Lý thuyết 55 b Kỹ 55 c Công nghệ .55 Hạn chế tồn đọng 55 Kế hoạch phát triển 55 TÀI LIỆU THAM KHẢO 57 iv BẢNG BIỂU Bảng 1: Sự khác biệt kiểm thử tự động thủ công 12 Bảng 2: Kịch đăng nhập 22 Bảng 3: Test case chức Đăng nhập 24 Bảng 4: Kịch Sửa hồ sơ cá nhân 25 Bảng 5: Test case chức Sửa hồ sơ 26 Bảng 6: Kịch Chi tiết khóa học 26 Bảng 7: Test case chức Chi tiết khóa học 28 Bảng 9: Khởi tạo thư viện POM.xml 37 Bảng 10 : Mã code xử lý test case Login 42 Bảng 11 : Khởi chạy XML 43 Bảng 12 : Mã code xử lý testcase “Hồ sơ cá nhân”………………………………………… 45 Bảng 13: Khởi chạy file XML 45 Bảng 14 : Mã code xử lý testcase chức “ViewCouse” 47 Bảng 15 : Mã code xử lý testcase chức “View_Kehoachhoctap” 47 Bảng 16 : Mã code xử lý testcase chức view giới thiệu học phần 48 Bảng 17: Mã code xử lý testcase chức view diendanthaoluan 50 Bảng 18: Mã code xử lý testcase chức view helpdesk 51 Bảng 19 : Mã code xử lý testcase chức view slide 52 Bảng 20 : Khởi tạo XML 53 Bảng 22 : Kết kiểm thử chức 54 v HÌNH ẢNH Hình 1: Các cấp độ kiểm thử phần mềm Hình 2: Quy trình hoạt động maven 19 Hình 3: Quy trình kiểm thử tự động 30 Hình :Báo cáo kết 31 Hình : Phân tích kết báo lỗi 32 Hình : Tạo Maven project LMS TVU 34 Hình : Tạo thành công Maven project LMS TVU 35 Hình : Class BasePage 38 Hình : Class BaseTest 39 Hình 10 : Class GlobalContain 39 Hình 11 : Giao diện Log in hệ thống LMS 40 Hình 12 : Giao diện trang Sửa hồ sơ cá nhân 43 Hình 13 : Giao diện trang Chi tiết khóa học 46 Hình 14 : Giao diện hình Giới thiệu học phần 48 Hình 15 : Giao diện trang Diễn đàn thảo luận 49 Hình 16 : Giao diện trang Hepldesh 50 Hình 17 : Giao diện View slide giảng 52 vi DANH MỤC VIẾT TẮT Từ viết tắt Chi tiết Ý nghĩa Java cung cấp ngơn ngữ lập trình đa tảng, mạnh mẽ linh hoạt, cho phép lập trình viên phát triển ứng dụng chạy nhiều loại hệ thống khác nhau, bao gồm máy tính cá nhân, máy chủ, thiết Java Java Programming Language bị di động thiết bị nhúng Java cung cấp môi trường thực thi độc lập với tảng gọi "Java Virtual Machine" (Máy ảo Java), cho phép mã nguồn Java biên dịch thành mã byte Java (bytecode) chạy máy tính có máy ảo Java cài đặt QA người chịu trách nhiệm QA Quality Assurance đảm bảo chất lượng sản phẩm thông qua việc đưa quy trình làm việc bên liên quan Mô tả liệu đầu vào, hành động kiện kết Test case Test case truy vấn Nhằm kiểm tra chức ứng dụng, phần mềm vii Nhóm mã lệnh dạng đặc tả kịch Test script dùng để tự động hóa q trình kiểm thử Bộ cơng cụ cho phép nhận test script thu Selenium IDE Selenium RC Selenium Remote Control Nó cho phép chỉnh sửa, cải tiến linh động ngơn ngữ lập trình khác Framework đoạn code viết sẵn, cấu thành nên Framework khung thư viện lập trình đóng gói Ý nghĩa Maven cung cấp cách tiếp cận có cấu trúc tổ chức cho việc quản lý dự án phần mềm Nó tạo mơ hình Maven Apache Maven dự án tiêu chuẩn với quy tắc quy ước rõ ràng, giúp giảm thiểu phức tạp khó khăn quản lý mã nguồn, phụ thuộc quy trình xây dựng Ý nghĩa TestNG cung cấp mơ hình kiểm thử mạnh TestNG Test Next Generation mẽ linh hoạt cho việc thực kiểm thử tự động TestNG hỗ trợ tính kiểm thử đơn vị, kiểm thử tích hợp, kiểm viii thử chức kiểm thử hiệu Nó cung cấp cú pháp dễ đọc dễ viết để xác định phương thức kiểm thử xếp chúng thành nhóm kiểm thử ix Bảng 11 : Khởi chạy XML 3.3.2 Chức Hồ sơ ⮚ Giao diện Sửa hồ sơ cá nhân website: Hình 12 : Giao diện trang Sửa hồ sơ cá nhân ● Trang chạy test case xử lý bước để Sửa hồ sơ cá nhân kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_01_ViewProfile() { loginpage.clickDangNhap(); loginpage.enter_username(username,"username"); loginpage.enter_password(Password,"Password"); 43 loginpage.clickTologinButton(); Assert.assertTrue(loginpage.checkPageUrl("https://lmstmude v.onschool.edu.vn/my/")); HomePage.clickUser_LABEL(); profilepage.clickProfile(); profilepage.clickChiTietNguoiDung(); profilepage.clickSuaHoSoCaNhan(); Assert.assertTrue(profilepage.checkPageUrl("https://lmstmu dev.onschool.edu.vn/user/editadvanced.php?id=66386&course= 1&returnto=profile")); } @Test public void TC_02_EditProfile() { driver.get("https://lmstmudev.onschool.edu.vn/user/editadv anced.php?id=66386&course=1&returnto=profile"); profilepage.input_idusername("Nhungpt","id_name"); profilepage.clickEditpasswordButton(); profilepage.input_editpassword(Password, "Password"); profilepage.input_lastname("Phạm","Last_name"); profilepage.input_frirtname("Nhung","First_name"); profilepage.clickDropdown(); profilepage.enterToDropdown("Đức", "Country"); //sleepInSecond(3); profilepage.clickImageButton(); profilepage.clickUploadTheFileButton(); profilepage.uploadFileDragAndDrop(); profilepage.click_import_image(); sleepInSecond(3); //ProfilePage.clickSubmitButton(); 44 profilepage.click_Huy(); } Bảng 12: Mã code xử lý tetstcase “Hồ sơ cá nhân” - Code cho file chạy XML: Bảng 13: Khởi chạy file XML 3.3.3 Chức Quản lý khóa học ⮚ Giao diện View chi tiết khóa học website: 45 Hình 13 : Giao diện trang Chi tiết khóa học ● Trang chạy test case xử lý bước để ViewCourse kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_01_ViewCourse() { loginpage.clickDangNhap(); loginpage.enter_username(username, "username"); loginpage.enter_password(Password, "Password"); // loginPage.clickcheckboxButton(); loginpage.clickTologinButton(); Assert.assertTrue(loginpage.checkPageUrl("https://lmstmude v.onschool.edu.vn/my/")); sleepInSecond(3); coursepage.hoverOnElement(driver); sleepInSecond(2); 46 coursepage.click_view_course(); sleepInSecond(3); Assert.assertTrue(coursepage.checkPageUrl("https://lmstmud ev.onschool.edu.vn/course/view.php?id=1506")); } Bảng 14 : Mã code xử lý testcase chức “ViewCouse” ❖ Kế hoạch học tập - Trang chạy test case xử lý bước để View_ Kehoachhoctap kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_02_View_Kehoachhoctap(){ driver.get("https://lmstmudev.onschool.edu.vn/course/view.php? id=1506"); coursepage.click_Ke_hoach_hoc_tap(); Assert.assertTrue(coursepage.checkPageUrl("https://www.youtube com/watch?v=dwCRW5yFeOg")); } Bảng 15 : Mã code xử lý testcase chức “View_Kehoachhoctap” ❖ Giới thiệu học phần 47 Hình 14 : Giao diện hình Giới thiệu học phần - Trang chạy test case xử lý bước để View_Giới thiệu học phần kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_03_View_Gioithieuhocphan(){ driver.get("https://lmstvudev.onschool.edu.vn/course/view.php? id=3027"); coursepage.click_Gioi_thieu_hoc_phan(); Assert.assertTrue(coursepage.check_gthocphan("Giới thiệu học phần")); coursepage.click_video(); } Bảng 16 : Mã code xử lý testcase chức view giới thiệu học phần ❖ Diễn đàn thảo luận 48 Hình 15 : Giao diện trang Diễn đàn thảo luận Trang chạy test case xử lý bước để View_Dienanthoaluan kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_03_View_Dienanthoaluan(){ driver.get("https://lmstmudev.onschool.edu.vn/course/view php?id=1506"); coursepage.click_Dien_dan_thao_luan(); Assert.assertTrue(coursepage.checkPageUrl("https://lmstmu dev.onschool.edu.vn/mod/forum/view.php?id=21489")); coursepage.Click_Them_chu_de_dien_dan(); coursepage.input_tiede(Tieude,"Tieude"); coursepage.input_noidung(Noidung, "Noidung"); coursepage.Button_Guibaivietlendiendan(); Assert.assertTrue(coursepage.Thongbaoguidiendan("Bài đăng bạn thêm thành công.")); 49 } Bảng 17: Mã code xử lý testcase chức view diendanthaoluan ❖ Câu hỏi (HD72) Hình 16 : Giao diện trang Hepldesh - Trang chạy test case xử lý bước để View_Helpdesk kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_04_View_Helpdesk (){ driver.get("https://lmstmudev.onschool.edu.vn/cour se/view.php?id=1506"); coursepage.Button_Helpdesk(); Assert.assertTrue(coursepage.checkPageUrl("https://lmstmu dev.onschool.edu.vn/mod/helpdesk/view.php?course=1506")); //Thêm câu hỏi coursepage.Button_Datcauhoimoi(); 50 coursepage.input_tencauhoi("Câu 12 : Quy định đạt câu hỏi lms ?" , "Ten_cau_hoi"); coursepage.chonkhoahoc(); coursepage.enterToDropdown("test 0302","Khoa_hoc"); coursepage.input_noidungcauhoi("test0302","Noi_dung"); coursepage.click_import_image(); // sleepInSecond(3); coursepage.uploadFile(); sleepInSecond(3); coursepage.Button_Themcauhoi(); sleepInSecond(3); Assert.assertTrue(coursepage.Thongbaothanhcong("Bài đăng bạn thêm thành công.")); // Lọc tìm kiếm người đặt câu hỏi câu hỏi driver.get ("https://lmstmudev.onschool.edu.vn/mod/helpdesk/view.php ?course=1506") ; coursepage.input_Timkiemnguoidatcauhoi("287","Timkiemnguo idatcauhoi"); sleepInSecond(3); coursepage.button_Timkiem(); sleepInSecond(10); Assert.assertTrue(coursepage.isSearchProductTitleDisplaye dOnPageAsExpected("287")); driver.get("https://lmstmudev.onschool.edu.vn/course/view php?id=1506"); } Bảng 18: Mã code xử lý testcase chức view helpdesk ❖ Bài giảng slide 51 Hình 17 : Giao diện View slide giảng - Trang chạy test case xử lý bước để View_Slide giảng kế thừa lại class BaseTest để khởi tạo Browser : @Test public void TC_06_View_fileslide() { driver.get("https://lmstvudev.onschool.edu.vn/course/view.php? id=3027"); coursepage.Click_fileslide(); } Bảng 19 : Mã code xử lý testcase chức view slide - Code cho file chạy XML: 52 Bảng 20 : Khởi tạo XML 3.3 Đánh giá kết kiểm thử Đánh giá toàn trình kiểm thử tổng số 12 test case chức 53 hệ thống: Chức Tổng số test Đăng nhập 05 Số test tự động 05 05 Số test failure Tỉ lệ thành công 100% Sửa hồ sơ cá nhân View tổng quan khóa học 04 04 04 100% 06 06 06 100% Số test pass Bảng 21: Kết kiểm thử chức Trong đó: ✔ Với ba chức Đăng nhập, Chỉnh sửa hồ sơ, View khóa học thực thi đầy đủ test case Ngoài số lỗi tồn như: Selenium gặp hạn chế khơng tìm selector web để thực tự động; ✔ Với tính như: tính khả dụng, tính bảo mật khả tương thích hệ thống đáp ứng tốt ✔ Các báo cáo kiểm thử, gợi ý tìm sửa lỗi ghi lại đầy đủ dạng báo cáo hỗ trợ Intellij IDEA 54 KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN Thành đạt a Lý thuyết ⮚ Tích lũy lý thuyết q trình phát triển phần mềm kiến thức lập trình web ngôn ngữ Java thông qua việc nghiên cứu tài liệu đặc tả hệ thống ⮚ Học thêm kiến thức mơ hình hoạt động website, cách để tối ưu hệ thống hoạt động website để đáp ứng yêu cầu khách hàng b Kỹ ⮚ Khi thực dự án bên cạnh kiến thức học nhà trường, cịn địi hỏi có số kỹ định để hoàn thành dự án đảm bảo tiến độ ⮚ Kỹ đọc phân tích giải vấn đề Đây kỹ quan trọng trình làm việc ⮚ Kỹ lên kế hoạch giúp đảm bảo tiến độ làm việc, không để chậm trễ thời gian làm ảnh hưởng đến chất lượng sản phẩm ⮚ Cuối kỹ trình bày Nó giúp hệ thống kiến thức cách đầy đủ giúp người khác hiểu kiến thức điều thân trình bày c Cơng nghệ ⮚ Tiếp cận học hỏi nhiều kiến thức công nghệ mới, cách sử dụng ngôn ngữ lập trình framework Hạn chế tồn đọng ⮚ Hiện kiểm thử tự động hệ thống website cịn mức kiểm thử đơn vị Hồn thiện kịch bản, test case, test script cho số chức Đăng nhập, Sửa hồ sơ cá nhân , View thơng tin khóa học,… chưa thể áp dụng cho toàn hệ thống ⮚ Sử dụng framework chưa linh hoạt dẫn đến số test case chưa thể hồn thiện Cơng cụ sử dụng cịn hạn chế, chưa phát huy hết khả kiểm thử tự động Kế hoạch phát triển ⮚ Trong thời gian tới, tiếp tục phát triển thêm test case mới, bao quát cho tính để khắc phục nhược điểm, hạn chế 55 ⮚ Ngoài sử dụng framework tại, tìm hiểu framework khác để kiểm thử tự động phù hợp với dự án tương lai 56 TÀI LIỆU THAM KHẢO [1] Nguyễn Thị Thanh Huyền – Truyền thông thơng tin Phân tích thiết kế hệ thống-153 Kaner, Cem (1987) Testing Computer Software (ấn 1) N.p.: TAB Professional & Reference Books [2] David Burns Selenium Testing Tools: Beginner's Guide Paperback – October 19, 2012 published by Packt Publishing Ltd [3] Hans-Erik Eriksson, Magnus Penker, Brian Lyons, and David Fado, UML Toolkit, 2003, published by Wiley Publishing, pages 24-45 and 337-460 [4] Mike O'Docherty, Object Oriented Analysis & Design: Understanding System Development with UML 2.0, pages 123-147, 430-452, 2005 [5] Selenium Testing Tools Cookbook – Unmesh Gundecha [6] Giới thiệu Intellij IDEA : https://anhtester.com/blog/selenium-java [7] Tìm hiểu Automation test : https://anhtester.com [8] Testcase: https://viblo.asia/p/viet-test-case-tu-tai-lieu-dac-ta-yeu-cau-MVpvKBlakK 57