Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
2,8 MB
Nội dung
ĐẠ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Ẽ 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 CHƯƠNG 1: GIỚI THIỆU VỀ KIỂM THỬ PHẦN MỀM 1.1 Giới thiệu kiểm thử phần mềm 1.2 Phát triển hướng kiểm thử TDD (Test Driven Development) 1.2.1 Khái niệm 1.2.2 Các cấp độ TDD 1.2.3 Các lỗi thường gặp áp dụng TDD 1.3 Phát triển hướng hành vi BDD (Behaviour Driven Development) 1.3.1 Khái niệm 1.3.2 Quy trình phát triển phần mềm truyền thống 1.3.3 Quy trình phát triển theo hướng BDD 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) 2.1 Công cụ kiểm thử tự động Cucumber 2.1.1 Khái niệm 2.1.2 Ngôn ngữ Gherkin 2.1.3 Cách chạy Cucumber Junit test 2.1.4 Chu trình 2.1.5 Sơ đồ chu trình làm việc xử lý bước cucumber 2.1.6 Cấu trúc dự án cài đặt Cucumber 2.1.7 Các thư viện sử dụng để chạy Cucumber 2.2 Selenium WebDriver 2.2.1 Khái niệm 2.2.2 Giới thiệu đối tượng UI (Locators) 2.2.2.1 Xác định phần tử Web theo ID 2.2.2.2 Xác định phần tử Web theo Name 2.2.2.3 Xác định phần tử Web theo LinkText 2.2.2.4.Xác định phần tử Web theo TagName 2.2.2.5 Xác định phần tử Web theo ClassName 2.2.2.6 Xác định phần tử Web theo CSS 2.2.2.7 Xác định phần tử Web theo Xpath 2.2.3 Các thư viện sử dụng để chạy Selenium WebDriver 2.2.4 Các hàm xử lý chung Selenium WebDriver 2.3 Giới thiệu mẫu thiết kế (Design pattern) 2.3.1 Khái niệm 2.3.2 Phân loại mẫu thiết kế (Design Pattern) 2.4 Mơ hình thiết kế Page Object Model (POM) 2.4.1 Lý chọn mơ hình thiết kế Page Object Model (POM) 2.4.2 Mơ hình thiết kế Page Object Model (POM) gì? 2.4.3 Ưu điểm mơ hình thiết kế Page Object Model (POM) 2.4.4 Ví dụ CHƯƠNG 3: HỆ THỐNG TÍCH HỢP LIÊN TỤC 3.1 Hệ thống tích hợp liên tục (CI) 3.1.1 Khái niệm 3.1.2 Áp dụng hệ thống tích hợp liên tục 3.1.3 Lợi ích việc tích hợp liên tục 3.1.4 Jenkins CHƯƠNG 4: THỰC NGHIỆM KIỂM THỬ TỰ ĐỘNG TẠI CÔNG TY VIVAS VÀ ĐÁNH GIÁ KẾT QUẢ 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 4.1.1 Tổng quan công ty, sản phẩm, môi trường kiểm thử 4.1.2 Quy trình kiểm thử trước VIVAS 4.2 Cài đặt áp dụng kiểm thử tự động vào dự án VIVAS 4.2.1 Cấu trúc dự án 4.2.2 Cấu trúc mã nguồn 4.2.3 Tích hợp Jenkins 4.2.4 Báo cáo kết chạy kiểm thử 4.3 Đánh giá kết sau áp dụng kiểm thử tự động vào dự án VIVAS 4.3.1 Tiết kiệm thời gian 4.3.2 Tiết kiệm nguồn nhân lực 4.4 Những khó khăn triển khai hệ thống kiểm thử tự động công ty VIVAS 4.5 Hướng phát triển framework KẾT LUẬN TÀI LIỆU THAM KHẢO DANH MỤC HÌNH VẼ Hình 1.1 Chu trình TDD qua màu sắc (từ trang 1minus1.com) Hình 1.2 Các bước thực TDD Từ trang http://agiledata.org/essays/tdd.html) Hình 1.3 TDD kết hợp với BDD Hình 1.4 Chu trình làm việc kết hợp TDD BDD Hình 1.5 Quy trình phát triển truyền thống Hình 1.6 Quy trình phát triển BDD Hình 2.1 Mã nguồn viết ngơn ngữ Gherkin Hình 2.2 Mã nguồn viết ngôn ngữ Gherkin Hình 2.3 Mã nguồn để chạy Cucumber Hình 2.4 Chương trình chạy kiểm thử với Cucumber Hình 2.5 Mã nguồn viết ngôn ngữ Gherkin Hình 2.6 Mã nguồn thực thi bước kịch kiểm thử Hình 2.7 Kết chạy kịch kiểm thử log có trường hợp sai Hình 2.8 Mã nguồn thực thi bước kịch kiểm thử Hình 2.9 Kết chạy kịch kiểm thử Hình 2.10 Chu trình làm việc Cucumber Hình 2.11 Cấu trúc dự án cài đặt Cucumber Hình 2.12 Thư viện Cucumber cần cài đặt Hình 2.13 Sử dụng Maven để cài đặt thư viện Hình 2.14 Các hệ điều hành phổ biến Hình 2.15 cách xác định phần tử Web Hình 2.16 Xác định phần tử Web ID Hình 2.17 Xác định phần tử Web Name Hình 2.18 Xác định phần tử Web Linktext Hình 2.19 Xác định phần tử Web Tagname Hình 2.20 Xác định phần tử Web Classname Hình 2.21 Xác định phần tử Web CSS Hình 2.22 Ví dụ minh họa cách xác định phần tử Hình 2.23 Thư viện cần thiết để chạy Selenium WebDriver Hình 2.24 Sử dụng Maven để cài đặt thư viện Hình 2.25 Mã nguồn minh họa cho Selenium Webdriver Hình 2.26 Mã nguồn ví dụ cho việc sử dụng Selenium Webdriver Hình 2.27 Cấu trúc POM Hình 2.28 Cấu trúc Page Object Model Hình 2.29 Mã nguồn trang Đăng nhập Hình 2.30 Mã nguồn PageObjects PageUIs trang Đăng nhập Hình 2.31 Mã nguồn chạy nhiều trình duyệt Hình 3.1 Vòng đời CI Hình 3.2 Quá trình tích hợp liên tục CI Hình 3.3 Hệ thống tích hợp liên tục Hình 3.4 10 hệ thống CI sử dụng với GitHub Hình 3.5 Giao diện Jenkins Hình 4.1 Quy trình kiểm thử trước VIVAS Hình 4.2 Cấu trúc dự án thực tế Hình 4.3 Quản lý mã nguồn Github Hình 4.4 Cấu trúc mã nguồn cài đặt thực tế Hình 4.5 Cấu hình thơng số cho Jenkins Hình 4.6 Báo cáo kết kiểm thử Jenkins Hình 4.7 Biểu đồ kết kiểm thử Jenkins Hình 4.8 Biểu đồ kết kiểm thử Jenkins Hình 4.9 Báo cáo kết kiểm thử Extent reports Hình 4.10 Báo cáo kết kiểm thử TestNG report Hình 4.11 Biểu đồ thống kê tỷ lệ thực kiểm thử tự động 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 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 Hình 4.14 Bảng so sánh nguồn lực thực kiểm thử thủ công tự động DANH MỤC BẢNG BIỂU Bảng 2.1 Bảng thích lệnh thư mục chạy Cucumber Bảng 2.2 Bảng so sánh Selenium WebDriver công cụ khác Bảng 2.3 Bảng phân loại Xpath Bảng 2.4 Một số cú pháp Xpath Bảng 2.5 Xác định phần tử sử dụng Webdriver Bảng 2.6 Các hàm hay sử dụng Selenium Webdriver Bảng 2.7 mẫu thiết kế mẫu thiết kế kiến tạo Bảng 2.8 Những mẫu thiết kế thuộc nhóm mẫu thiết kế kiến trúc Bảng 2.9 Những mẫu thiết kế thuộc nhóm mẫu thiết kế hành vi Bảng 4.1 Bảng thống kê số kịch kiểm thử vài dịch vụ Vivas 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 Bảng 4.3 Bảng thống kê thời gian thực thi kiểm thử thủ công tự động 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 { ((JavascriptExecut or) 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ử Kịch kiểm thử làm tự động Số kịch kiểm thử làm tự động Số kịch kiểm thử chưa làm tự động 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% 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 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ự 120 100 Ngày làm việc 80 60 40 20 0 Automation Manual Linear (Automation) Linear (Manual) 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 Kiểm thử tự động thủ cơng với ba trình duyệt 350 300 Ngày làm việc 250 200 150 100 50 0 Automation Linear (Automation) Manual Linear (Manual) 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ó toá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 cịn 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 toàn 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 q 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 -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 q 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 đó, 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 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 hồn tồn khả thi Do thời gian có hạn, đưa framework để áp dụng chạy thử nghiệm ln, framework 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... động kiểm thử phần mềm nâng cao chất lượng sản phẩm phần mềm Kiểm thử tự động giúp giảm bớt công sức thực hiện, tăng độ tin cậy rèn luyện kỹ lập trình cho kiểm thử viên Selenium kiểm thử tự động. .. sử dụng kiểm thử tự động e Chi phí thấp: Việc rút ngắn thời gian tiết kiệm nhân lực giúp cho việc kiểm thử tự động trở nên hiệu Nhược điểm kiểm thử tự động a Ban đầu chi phí cho kiểm thử tự động