Luận án Thạc sĩ Công nghệ thông tin: Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng selenium và webdriver

76 12 0
Luận án Thạc sĩ Công nghệ thông tin: Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng selenium và webdriver

Đ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

Mục tiêu chính của đề tài bao gồm: Đưa ra những khái niệm cơ bản về quy trình phát triển hiện nay cũng như việc áp dụng kiểm thử tự động trong quy trình phát triển phần mềm (TDD, BDD). Đưa ra một framework nhỏ (kết hợp Cucumber và Selenium) và cách chạy các kịch bản kiểm thử này bằng Jenkins. Mời các bạn tham khảo!

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ HẢI YẾN XÂY DỰNG ỨNG DỤNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG SỬ DỤNG SELENIUM VÀ WEBDRIVER LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN HÀ NỘI - 2020 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ PHẠM THỊ HẢI YẾN XÂY DỰNG ỨNG DỤNG KIỂM THỬ PHẦN MỀM TỰ ĐỘNG SỬ DỤNG SELENIUM VÀ WEBDRIVER Ngành: Khoa học máy tính Chuyên ngành: Khoa học máy tính Mã số: 08480101.01 LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS HOÀNG XUÂN HUẤN HÀ NỘI - 2020 LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm cá nhân tôi, thực hướng dẫn PGS TS Hoàng Xuân Huấn 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 tài liệu tham khảo có xuất xứ rõ ràng trích dẫn quy định Tơi xin hồn tồ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 … tháng năm 2020 Học viên Phạm Thị Hải Yến LỜI CẢM ƠN Để hồn thành luận văn tơi xin chân thành gửi lời cảm ơn đến PGS TS Hoàng Xuân Huấn thầy cô khoa Công nghệ thông tin – Đại học Quốc Gia Hà Nội đóng góp ý kiến, nhận xét, quan tâm bảo tạo cho điều kiện tốt từ bắt đầu hồn thành luận văn Đồng thời, xin gửi lời cảm ơn đến gia đình, bạn bè đồng nghiệp ln quan tâm, chia sẻ, động viên tạo điều kiện để tơi hồn thành tốt cơng việc trình thực luận văn Mặc dù cố gắng trình thực luận văn khơng thể tránh khỏi thiếu sót, tơi mong nhận góp ý thầy bạn bè Học viên Phạm Thị Hải Yến MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC HÌNH VẼ .6 DANH MỤC BẢNG BIỂU DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT VÀ CÁC THUẬT NGỮ LỜI MỞ ĐẦU 10 CHƯƠNG 1: GIỚI THIỆU VỀ KIỂM THỬ PHẦN MỀM 12 1.1 Giới thiệu kiểm thử phần mềm 12 1.2 Phát triển hướng kiểm thử TDD (Test Driven Development) 13 1.2.1 Khái niệm 13 1.2.2 Các cấp độ TDD 16 1.2.3 Các lỗi thường gặp áp dụng TDD 16 1.3 Phát triển hướng hành vi BDD (Behaviour Driven Development) 16 1.3.1 Khái niệm 16 1.3.2 Quy trình phát triển phần mềm truyền thống 18 1.3.3 Quy trình phát triển theo hướng BDD 18 CHƯƠNG GIỚI THIỆU VỀ CÔNG CỤ KIỂM THỬ TỰ ĐỘNG VÀ MƠ HÌNH THIẾT KẾ PAGE OBJECT MODEL (POM) 20 2.1 Công cụ kiểm thử tự động Cucumber 20 2.1.1 Khái niệm 20 2.1.2 Ngôn ngữ Gherkin 20 2.1.3 Cách chạy Cucumber Junit test 22 2.1.4 Chu trình 23 2.1.5 Sơ đồ chu trình làm việc xử lý bước cucumber 27 2.1.6 Cấu trúc dự án cài đặt Cucumber 28 2.1.7 Các thư viện sử dụng để chạy Cucumber 28 2.2 Selenium WebDriver 29 2.2.1 Khái niệm 29 2.2.2 Giới thiệu đối tượng UI (Locators) 31 2.2.2.1 Xác định phần tử Web theo ID 31 2.2.2.2 Xác định phần tử Web theo Name 32 2.2.2.3 Xác định phần tử Web theo LinkText 32 2.2.2.4.Xác định phần tử Web theo TagName .33 2.2.2.5 Xác định phần tử Web theo ClassName 33 2.2.2.6 Xác định phần tử Web theo CSS .34 2.2.2.7 Xác định phần tử Web theo Xpath 34 2.2.3 Các thư viện sử dụng để chạy Selenium WebDriver 36 2.2.4 Các hàm xử lý chung Selenium WebDriver 36 2.3 Giới thiệu mẫu thiết kế (Design pattern) 38 2.3.1 Khái niệm 38 2.3.2 Phân loại mẫu thiết kế (Design Pattern) 39 2.4 Mơ hình thiết kế Page Object Model (POM) 41 2.4.1 Lý chọn mơ hình thiết kế Page Object Model (POM) 41 2.4.2 Mô hình thiết kế Page Object Model (POM) gì? 43 2.4.3 Ưu điểm mô hình thiết kế Page Object Model (POM) 43 2.4.4 Ví dụ 44 CHƯƠNG 3: HỆ THỐNG TÍCH HỢP LIÊN TỤC .48 3.1 Hệ thống tích hợp liên tục (CI) 48 3.1.1 Khái niệm 48 3.1.2 Áp dụng hệ thống tích hợp liên tục 50 3.1.3 Lợi ích việc tích hợp liên tục 50 3.1.4 Jenkins 52 CHƯƠNG 4: THỰC NGHIỆM KIỂM THỬ TỰ ĐỘNG TẠI CÔNG TY VIVAS VÀ ĐÁNH GIÁ KẾT QUẢ 54 4.1 Phân tích hoạt động kiểm thử công ty trước áp dụng kiểm thử tự động 54 4.1.1 Tổng quan công ty, sản phẩm, môi trường kiểm thử 54 4.1.2 Quy trình kiểm thử trước VIVAS 55 4.2 Cài đặt áp dụng kiểm thử tự động vào dự án VIVAS 58 4.2.1 Cấu trúc dự án 58 4.2.2 Cấu trúc mã nguồn 60 4.2.3 Tích hợp Jenkins 64 4.2.4 Báo cáo kết chạy kiểm thử 65 4.3 Đánh giá kết sau áp dụng kiểm thử tự động vào dự án VIVAS 67 4.3.1 Tiết kiệm thời gian 68 4.3.2 Tiết kiệm nguồn nhân lực 70 4.4 Những khó khăn triển khai hệ thống kiểm thử tự động công ty VIVAS 71 4.5 Hướng phát triển framework 72 KẾT LUẬN 73 TÀI LIỆU THAM KHẢO 74 DANH MỤC HÌNH VẼ Hình 1.1 Chu trình TDD qua màu sắc (từ trang 1minus1.com) 14 Hình 1.2 Các bước thực TDD Từ trang http://agiledata.org/essays/tdd.html) 15 Hình 1.3 TDD kết hợp với BDD 17 Hình 1.4 Chu trình làm việc kết hợp TDD BDD .17 Hình 1.5 Quy trình phát triển truyền thống 18 Hình 1.6 Quy trình phát triển BDD 19 Hình 2.1 Mã nguồn viết ngôn ngữ Gherkin 21 Hình 2.2 Mã nguồn viết ngơn ngữ Gherkin 21 Hình 2.3 Mã nguồn để chạy Cucumber 22 Hình 2.4 Chương trình chạy kiểm thử với Cucumber 23 Hình 2.5 Mã nguồn viết ngơn ngữ Gherkin 24 Hình 2.6 Mã nguồn thực thi bước kịch kiểm thử 24 Hình 2.7 Kết chạy kịch kiểm thử log có trường hợp sai 25 Hình 2.8 Mã nguồn thực thi bước kịch kiểm thử 25 Hình 2.9 Kết chạy kịch kiểm thử 26 Hình 2.10 Chu trình làm việc Cucumber 27 Hình 2.11 Cấu trúc dự án cài đặt Cucumber 28 Hình 2.12 Thư viện Cucumber cần cài đặt 28 Hình 2.13 Sử dụng Maven để cài đặt thư viện .29 Hình 2.14 Các hệ điều hành phổ biến 30 Hình 2.15 cách xác định phần tử Web 31 Hình 2.16 Xác định phần tử Web ID 32 Hình 2.17 Xác định phần tử Web Name 32 Hình 2.18 Xác định phần tử Web Linktext 33 Hình 2.19 Xác định phần tử Web Tagname 33 Hình 2.20 Xác định phần tử Web Classname 33 Hình 2.21 Xác định phần tử Web CSS 34 Hình 2.22 Ví dụ minh họa cách xác định phần tử 34 Hình 2.23 Thư viện cần thiết để chạy Selenium WebDriver 36 Hình 2.24 Sử dụng Maven để cài đặt thư viện .36 Hình 2.25 Mã nguồn minh họa cho Selenium Webdriver 38 Hình 2.26 Mã nguồn ví dụ cho việc sử dụng Selenium Webdriver 42 Hình 2.27 Cấu trúc POM 43 Hình 2.28 Cấu trúc Page Object Model .44 Hình 2.29 Mã nguồn trang Đăng nhập 45 Hình 2.30 Mã nguồn PageObjects PageUIs trang Đăng nhập 46 Hình 2.31 Mã nguồn chạy nhiều trình duyệt 47 Hình 3.1 Vịng đời CI .48 Hình 3.2 Q trình tích hợp liên tục CI .49 Hình 3.3 Hệ thống tích hợp liên tục .49 Hình 3.4 10 hệ thống CI sử dụng với GitHub 52 Hình 3.5 Giao diện Jenkins 53 Hình 4.1 Quy trình kiểm thử trước VIVAS .56 Hình 4.2 Cấu trúc dự án thực tế 58 Hình 4.3 Quản lý mã nguồn Github 59 Hình 4.4 Cấu trúc mã nguồn cài đặt thực tế 60 Hình 4.5 Cấu hình thơng số cho Jenkins 65 Hình 4.6 Báo cáo kết kiểm thử Jenkins 65 Hình 4.7 Biểu đồ kết kiểm thử Jenkins 65 Hình 4.8 Biểu đồ kết kiểm thử Jenkins 66 Hình 4.9 Báo cáo kết kiểm thử Extent reports .66 Hình 4.10 Báo cáo kết kiểm thử TestNG report .67 Hình 4.11 Biểu đồ thống kê tỷ lệ thực kiểm thử tự động 68 Hình 4.12 Biểu đồ so sánh thời gian thực thi kiểm thử thủ cơng tự động trình duyệt 69 Hình 4.13 Biểu đồ so sánh thời gian thực thi kiểm thử thủ cơng tự động ba trình duyệt 70 Hình 4.14 Bảng so sánh nguồn lực thực kiểm thử thủ công tự động 71 DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng thích lệnh thư mục chạy Cucumber 23 Bảng 2.2 Bảng so sánh Selenium WebDriver công cụ khác 30 Bảng 2.3 Bảng phân loại Xpath 35 Bảng 2.4 Một số cú pháp Xpath 35 Bảng 2.5 Xác định phần tử sử dụng Webdriver 37 Bảng 2.6 Các hàm hay sử dụng Selenium Webdriver 37 Bảng 2.7 mẫu thiết kế mẫu thiết kế kiến tạo 39 Bảng 2.8 Những mẫu thiết kế thuộc nhóm mẫu thiết kế kiến trúc 39 Bảng 2.9 Những mẫu thiết kế thuộc nhóm mẫu thiết kế hành vi 40 Bảng 4.1 Bảng thống kê số kịch kiểm thử vài dịch vụ Vivas 57 Bảng 4.2 Bảng thống kế số kịch kiểm thử áp dụng thực tế kiểm thử tự động 67 Bảng 4.3 Bảng thống kê thời gian thực thi kiểm thử thủ công tự động 68 60 4.2.2 Cấu trúc mã nguồn Hình 4.4 Cấu trúc mã nguồn cài đặt thực tế  src/main/java: Xây dựng thư viện chung bao gồm pageObjects, page UIs, thư viện hàm xử lý hành động chung  src/main/resources: Chứa thư mục cấu hình cho dự án dùng cucumber  src/test/java: Chứa kịch kiểm thử để chạy  src/test/resources: Chứa feature file, file chạy  Mã nguồn dự án: https://github.com/phamthihaiyen/maven_TVOD_SP  Xây dựng framework từ Selenium webdriver Cốt lõi framework xây dựng hàm dùng chung cho toàn dự án Ta cần tương tác với ứng dụng cách sử dụng số hành động chí số hành động người dùng nâng cao cách tạo hàm người dùng định nghĩa mà khơng có lệnh xác định trước Dưới loại hành động khác nhau: - Tương tác Text Box - Tương tác Radio Button - Tương tác Drop Down 61 - Tương tác CheckBox Kéo thả, Thao tác với bàn phím Thao tác chuột Chọn nhiều hạng mục Một số hàm dùng chung framework  Nhấn vào phần tử web public void clickToElement(WebDriver driver, String locator) { element = driver.findElement(By.xpath(locator)); element.click(); }  Nhập giá trị cho phần tử web public void sendkeyToElement(WebDriver driver, String locator, String value) { element = driver.findElement(By.xpath(locator)); element.sendKeys(value); }  Chọn giá trị danh sách với mã nguồn public void selectItemInDropdown(WebDriver driver, String locator, String itemText) { element = driver.findElement(By.xpath(locator)); select = new Select(element); select.selectByVisibleText(itemText); }  Chọn giá trị danh sách với mã nguồn tùy chỉnh public void selectItemInCustomDropdown(WebDriver driver, String parentdropdownlocator, String allItemDropdown, String ExpectedText) throws Exception { element = driver.findElement(By.xpath(parentdropdownlocator)); ((JavascriptExecutor) driver).executeScript("arguments[0].click();", element); Thread.sleep(1000); WebDriverWait driverwait = new WebDriverWait(driver, 3000); driverwait.until(ExpectedConditions.presenceOfAllElementsLocatedBy(B y.xpath(allItemDropdown))); elements = driver.findElements(By.xpath(allItemDropdown)); for (int i = 0; i < elements.size(); i++) { String ItemText = elements.get(i).getText(); 62 if (ItemText.equals(ExpectedText)) { ((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", elements.get(i)); Thread.sleep(1000); if (elements.get(i).isDisplayed()) { elements.get(i).click(); } else { ((JavascriptExecutor) driver).executeScript("arguments[0].click();", elements.get(i)); } break; } } }  Một số hoạt động trỏ chuột public void hoverMouseToElement(WebDriver driver, String locator) { element = driver.findElement(By.xpath(locator)); action = new Actions(driver); action.moveToElement(element).perform(); } public void doubleClickToElement(WebDriver driver, String locator) { element = driver.findElement(By.xpath(locator)); action = new Actions(driver); action.doubleClick(element).perform(); } public void rightClick(WebDriver driver, String locator) { element = driver.findElement(By.xpath(locator)); action = new Actions(driver); action.contextClick(element).perform(); }  Một số hàm hỗ trợ giao diện framework public void highlightElement(WebDriver driver, String locator) { element = driver.findElement(By.xpath(locator)); javascriptExecutor = (JavascriptExecutor) driver; String originalStyle = element.getAttribute("style"); 63 javascriptExecutor.executeScript("arguments[0].setAttribute(arguments[1] , arguments[2])", element, "style", "border: 5px solid yellow; border-style: dashed;"); try { Thread.sleep(500); } catch (InterruptedException e) { e.printStackTrace(); } javascriptExecutor.executeScript("arguments[0].setAttribute(arguments[1] , arguments[2])", element, "style", originalStyle); }  Sử dụng framework xây dựng để kiểm thử Sau xây dựng hàm dùng chung, tồn kiểm thử viên sử dụng hàm lớp pageObject Tất lớp pageObject dùng tính kế thừa từ AbstractPage ngôn ngữ Java public class AccountInformationPageObject extends AbstractPage { } Ví dụ: Trong hàm nhấn vào nút thay đổi mật cần sử dụng hàm chung clickToElement() xây dựng bên sau: public void clickToChangePasswordButton() { waitForElementVisible(driver, AccountInformationPageUI.CHANGE_PASSWORD_BUTTON); clickToElement(driver, AccountInformationPageUI.CHANGE_PASSWORD_BUTTON); } Trong hàm điền giá trị vào ô nhập mật cũ cần sử dụng hàm chung inputToOldPasswordTextbox () xây dựng bên sau: public void inputToOldPasswordTextbox(String value) { waitForElementVisible(driver, AccountInformationPageUI.OLD_PASSWORD_TEXTBOX); sendkeyToElement(driver, AccountInformationPageUI.OLD_PASSWORD_TEXTBOX, value); } 64 4.2.3 Tích hợp Jenkins Dự án có sử dụng Maven để chạy kiểm thử tích hợp Selenium/Cucumber Jenkins 65 Hình 4.5 Cấu hình thơng số cho Jenkins Trong phẩn quản lý mã nguồn cần điển đầy đủ thông tin đường dẫn lưu trữ mã nguồn tài khoản đăng nhập vào nơi lưu trữ mã nguồn Tiếp theo cần điền cú pháp chạy mã nguồn command gồm cú pháp mvn clean mvn test 4.2.4 Báo cáo kết chạy kiểm thử  Báo cáo Jenkins Hình 4.6 Báo cáo kết kiểm thử Jenkins Báo cáo kết kiểm thử Jenkins: Cho biết kết kiểm thử hay sai kịch kiểm thử vịng kiểm thử Hình 4.7 Biểu đồ kết kiểm thử Jenkins 66 Hình 4.8 Biểu đồ kết kiểm thử Jenkins  Báo cáo mở rộng Hình 4.9 Báo cáo kết kiểm thử Extent reports Ngoài báo cáo Jenkins có sẵn, kiểm thử viên tích hợp thêm báo cáo mở rộng để nhìn kết kiểm thử dạng biểu đồ hình trịn trực quan Đồng thời báo cáo lấy thông tin thiết bị dùng để kiểm thử  Báo cáo TestNG 67 Hình 4.10 Báo cáo kết kiểm thử TestNG report Đây báo cáo đơn giản dễ hiểu báo cáo Nhìn vào báo cáo TestNG, đội phát triển dễ dạng biết kiểm thử viên kiểm thử trình duyệt với thời gian kết kiểm thử đúng/sai phần trăm 4.3 Đánh giá kết sau áp dụng kiểm thử tự động vào dự án VIVAS Hiện viết kịch kiểm thử cho khoảng 72% số lượng kịch kiểm thử áp dụng thực tế cho vài dịch vụ VIVAS gồm: TVOD, SMSBRN, SMSMKT, VasDealer Sau số thống kê cho dịch vụ TVOD: Bảng 4.2 Bảng thống kế số kịch kiểm thử áp dụng thực tế kiểm thử tự động Tổng số Kịch kiểm thử 1092 Kịch kiểm thử làm tự động 774 Số kịch kiểm thử làm tự động 446 Số kịch kiểm thử chưa làm tự động 328 Từ thống kê trên, ta dễ dàng nhận thấy tỷ lệ phần trăm số kịch kiểm thử kiểm thử thủ cơng hồn tồn thay kiểm thử tự động lên đến 71% 29% cịn lại buộc phải có yếu tố người kiểm thử giao diện, thói quen người dùng, … 68 KỊCH BẢN KIỂM THỬ Kịch kiểm thử không làm tự động; 318; 29% Kịch kiểm thử làm tự động; 774; 71% Hình 4.11 Biểu đồ thống kê tỷ lệ thực kiểm thử tự động Thống kê thực tế thời gian (tính theo manday) thực kiểm thử thủ công kiểm thử tự động trình duyệt mơi trường kiểm thử tồn trình dự án Bảng 4.3 Bảng thống kê thời gian thực thi kiểm thử thủ công tự động 4.3.1 Tiết kiệm thời gian Như vậy, kiểm thử trình duyệt với mẫu thống kê 446 kịch kiểm thử kiểm thử thủ cơng ban đầu tốn thời gian cần ngày làm việc, kiểm thử tự động cần 58,5 ngày làm việc Tuy nhiên số mơi trường kiểm thử số vịng kiểm thử tăng thời gian dành cho kiểm thử thủ cơng tăng lên nhanh 69 chóng kiểm thử tự động lại không cần nhiều thời gian cho việc chạy lại TestScript Kiểm thử tự động thủ cơng với trình duyệt 120 Ngày làm việc 100 75 80 58,50 60 61,50 40 20 0 10 Vòng chạy kiểm thử Manual Linear (Manual) 15 20 Automation Linear (Automation) Hình 4.12 Biểu đồ so sánh thời gian thực thi kiểm thử thủ cơng tự động trình duyệt Vậy tốn hồn hảo cho kiểm thử phần mềm ta phải kiểm thử trình duyệt, mơi trường, hệ điều hành Như thời gian mà kiểm thử tự động tiết kiệm so với kiểm thử thủ công đáng kể Biểu đồ bên thể thời gian dành cho kiểm thử tự động kiểm thử thủ công thực thi kiểm thử ba trình duyệt khác 70 Kiểm thử tự động thủ công với ba trình duyệt 350 300 225 Ngày làm việc 250 200 150 100 67,5 58,50 50 27 0 10 Vòng chạy kiểm thử Manual Linear (Manual) 15 20 Automation Linear (Automation) Hình 4.13 Biểu đồ so sánh thời gian thực thi kiểm thử thủ công tự động ba trình duyệt 4.3.2 Tiết kiệm nguồn nhân lực Kiểm thử tự động không giúp doanh nghiệp tiết kiệm thời gian, mà giúp tiết kiệm nguồn lực vào giai đoạn kiểm thử Với mẫu thống kê 446 kịch kiểm thử giao cho đội gồm kiểm thử viên Ta có tốn so sánh biểu đồ bên Nếu có nhân viên kiểm thử làm 446 kịch kiểm thử bốn mơi trường, ba trình duyệt, mơi trường kiểm thử bốn vịng kiểm thử thủ cơng 191 ngày làm việc kiểm thử tự động 63 ngày làm việc Bài toán tiết kiệm nguồn lực thể có tham gia từ hai tester trở lên Trong kiểm thử thủ công số nguồn lực tham gia vào dự án phải làm việc song song tồn q trình kiểm thử Tuy nhiên, với kiểm thử tự động số nguồn lực phải tham gia song song trình viết TestScript Sau đội kiểm thử viên rút nguồn lực người thực chạy TestScript bảo trì cho TestScript 71 Nguồn lực cho Kiểm thử tự động thủ công Nguồn lực -1 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200 -2 -3 -4 -5 -6 Ngày làm việc Hình 4.14 Bảng so sánh nguồn lực thực kiểm thử thủ công tự động Với việc triển khai kiểm thử tự động, kịch kiểm thử chạy qua đêm (ngồi làm việc) chạy nhiều server khác nhau, thời gian để kiểm thử viên kiểm tra kết các kịch khoảng 2-3 ngày làm việc cho môi trường kiểm thử Đặc thù dự án VIVAS thường xuyên phải nâng cấp dự án vào ban đêm nhằm đảm bảo độ ảnh hưởng người dùng thật Như kiểm thử tự động, đặc biết Jenkins đem lại hiệu cao với VIVAS 4.4 Những khó khăn triển khai hệ thống kiểm thử tự động cơng ty VIVAS  Việc tìm nhân lực vừa có kỹ kiểm thử vừa có kỹ lập trình gặp khó khăn nhiều bạn nhân viên kiểm thử có kỹ kiểm thử tốt tư lập trình khơng tốt, bạn có kỹ lập trình tốt khơng muốn làm kiểm thử  Khi tính có nhiều thay đổi cách tổ chức UI nhiều thời gian để bảo trì mã nguồn framework  Kiểm thử tự động có hiệu cao dự án dài, cần kiểm thử hồi quy nhiều Các dự án ngắn, địi hỏi hồn thành dự án sớm việc triển khai kiểm thử tự động không hiệu 72 4.5 Hướng phát triển framework  Xây dựng thêm phần DataDriven framework DataDriven giúp cho hệ thống đọc liệu đầu vào từ hệ thống quản lý thư mục từ hệ quản trị sở liệu  Cải tiến framework để hỗ trợ cho bạn kiểm thử khơng có kỹ lập trình sử dụng dễ dàng  Hiện framework hỗ trợ kiểm thử Web Mục tiêu nghiên cứu tác giả tìm hiểu ứng dụng để kiểm thử API testing, App Mobile testing cho công ty VIVAS 73 KẾT LUẬN Cách mạng công nghiệp lần thứ tư đánh dấu kỷ nguyên vạn vật kết nối Internet Nó xảy dựa hội tụ nhiều cơng nghệ có cơng nghệ cốt lõi có cơng nghệ thơng tin với phát triển không ngừng công nghệ Internet từ thời kỳ kết nối nội dung email đến mạng xã hội, Internet vạn vật, Internet kết nối thiết bị máy móc kết nối trình vận hành nhà máy Hiện nay, công nghiệp 4.0 phát triển mạnh mẽ, kéo theo phát triển nhiều ngành nghề, đặc biệt ngành công nghệ thông tin Do đó, yêu cầu nhân lực mảng địi hỏi ứng viên cần phải có kỹ tốt lập trình, kỹ tự động hóa Từ đây, thấy nhu cầu nhân lực có kiến thức kinh nghiệm kiểm thử tự động lớn Do đó, đề tài kiểm thử tự động tiềm lớn cho tương lai mảng kiểm thử nói riêng cơng nghệ thơng tin nói chung Trong q trình tìm hiểu nghiên cứu, luận văn đưa khái niệm hướng áp dụng Selenium công cụ liên quan khác kiểm thử phần mềm Dựa vào kết nghiên cứu áp dụng kiểm thử tự động công ty VIVAS, thấy việc ứng dụng selenium công cụ liên quan dự án phần mềm hoàn toàn khả thi Do thời gian có hạn, tơi đưa framework để áp dụng chạy thử nghiệm ln, framework cịn nhiều phần cần phải cải tiến cập nhật thêm (ví dụ: DataDriven, Dynamic Locator, tốc độ chạy kịch kiểm thử) Việc cải tiến framework nghiên cứu cập nhật thời gian tới 74 TÀI LIỆU THAM KHẢO Tiếng Anh John Ferguson Smart (2014), BDD in action (Behavior-Driven Development for the whole software lifecycle), Manning Publications Dima Kovalenko (2014), Selenium Design Patterns and Best Practices book, Publication City/Country Birmingham, United Kingdom Mr Navneesh Garg (2014), Test Automation using Selenium WebDriver with Java Mark Collin (2015), Mastering Selenium WebDriver, Packt Publishing Mr Pinakin Ashok Chaubal (2018), Page Object Model using Selenium WebDriver & Java book, Independently published David Burns (2012), Selenium Testing tools Beginner’s Guide book Website http://www.guru99.com/ http://www.softwaretestinghelp.com/ http://en.wikipedia.org/wiki/Test-driven_development http://agiledata.org/essays/tdd.html https://viblo.asia/newest ... chọn đề tài ? ?Xây dựng ứng dụng kiểm thử phần mềm tự động sử dụng selenium webdriver? ?? Đề tài tìm hiểu sở lý thuyết kinh nghiệm thực tế kiểm thử xây dựng ứng dụng kiểm thử phần mềm tự động để giảm... chiếm tỷ trọng lớn công sức thời gian dự án Do vậy, nhu cầu tự động hoá kiểm thử phần mềm đặt Việc áp dụng kiểm thử tự động hợp lý mang lại thành công cho hoạt động kiểm thử phần mềm nâng cao chất... kiểm thử tự động mơ hồ chưa xây dựng framework chuẩn áp dụng cho dự án công ty Dựa vào lý với kinh nghiệm năm tơi có lĩnh vực kiểm thử Tôi muốn xây dựng framework kiểm thử tự động hỗ trợ kiểm thử

Ngày đăng: 10/06/2021, 10:33

Từ khóa liên quan

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

Tài liệu liên quan