Nghiên cứu một số kỹ thuật và công cụ kiểm thử ứng dụng trong kiểm thử tự động ứng dụng web

94 170 1
Nghiên cứu một số kỹ thuật và công cụ kiểm thử ứng dụng trong kiểm thử tự động ứng dụng web

Đ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 THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TRUYỀN THÔNG NGUYỄN THỊ KIM TUYẾN NGHIÊN CỨU MỘT SỐ KỸ THUẬT CÔNG CỤ KIỂM THỬ ỨNG DỤNG TRONG KIỂM THỬ TỰ ĐỘNG ỨNG DỤNG WEB Chuyên ngành: Khoa học máy tính Mã số: 848 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS Nguyễn Văn Núi THÁI NGUYÊN, 2018 I LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm riêng cá nhâ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 hợp pháp 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 Tác giả luận văn Nguyễn Thị Kim Tuyến II LỜI CẢM ƠN Luận văn Thạc sĩ thực Đại học Công Nghệ Thông Tin & Truyền Thông hướng dẫn TS Nguyễn Văn Núi Xin gửi lời cảm ơn sâu sắc đến thầy định hướng khoa học, liên tục quan tâm, tạo điều kiện thuận lợi suốt trình nghiên cứu hồn thành luận văn Tơi xin gửi lời cảm ơn đến các thầy giáo, cô giáo giảng dạy cung cấp cho kiến thức bổ ích thời gian học, giúp tơi có tảng tri thức để phục vụ nghiên cứu khoa học sau Tơi xin bày tỏ lòng cảm ơn đến gia đình bạn bè, người ln quan tâm, động viên khuyến khích tơi giúp tơi có thêm nghị lực, cố gắng để hồn thành luận văn Cuối cùng, xin gửi lời cảm ơn chân thành đến bạn học K15A, bạn đồng nghiệp giúp đỡ suốt năm học tập Tác giả luận văn Nguyễn Thị Kim Tuyến III DANH MỤC HÌNH ẢNH Hình 1 Minh họa sử dụng quy trình kiểm chứng thẩm định trình phát triển phần mềm Hình Các nguyên nhân gây lỗi phần mềm Hình Quy trình kiểm thử phần mềm Hình Cấu trúc Selenium i Hình Thao tác mở Selenium IDE cơng cụ iv Hình Giao diện Selenium IDE iv Hình 4 Download cài đặt JDK xiii Hình Download Eclipse IDE xiv Hình Download Selenium Java Client Driver xiv Hình Tạo project xv Hình Đặt tên chọn tạo phương thức xv Hình Tên Class Eclipse xvi Hình 10 Thêm Selenium Java Client Driver (.jar) vào project xvi Hình 11 Đăng nhập thành công Firefox 38 Hình 14 Giao diện báo cáo kết kiểm thử thất bại 38 Hình 15 Bảng tóm tắt trường hợp testcase chạy 39 IV MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN III DANH MỤC HÌNH ẢNH IV MỤC LỤC V CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VẤN ĐỀ ĐẢM BẢO CHẤT LƯỢNG PHẦN MỀM Sản phẩm phần mềm kiểm thử phần mềm 1.1 Sản phẩm phần mềm gì? 1.2 Khái niệm kiểm thử phần mềm Vấn đề đảm bảo chất lượng phần mềm 2.1 Lỗi phần mềm gì? 2.2 Tại lỗi phần mềm xuất 2.3 Chi phí cho việc sửa lỗi Quy trình kiểm thử phần mềm CHƯƠNG 2: MỘT SỐ KỸ THUẬT CÔNG CỤ KIỂM THỬ PHẦN MỀM 10 2.1 Nguyên tắc kiểm thử 10 2.1.1 Mục tiêu kiểm thử 10 2.1.2 Luồng thông tin kiểm thử 10 2.2 Một số kỹ thuật kiểm thử phần mềm 11 2.2.1 Kỹ thuật kiểm thử hộp trắng (White - Box Testng) 11 2.2.2 Kỹ thuật kiểm thử đường dẫn (Basic Path Testng) 12 2.3 Kỹ thuật kiểm thử hộp đen (Black – Box Tesing) 15 2.3.1 Phân hoạch tương đương 16 2.3.2 Phân tích giá trị biên (BVA - Boundary Value Analysis) 17 V 2.3.3 Kỹ thuật đồ thị nhân-quả (Cause-Effect Graph) 18 2.3.4 Kiểm thử so sánh 18 2.4 Kiểm thử tự động 19 VI 2.4.1 Kiểm thử hàm 21 2.4.2 Kiểm thử dòng điều khiển 22 CHƯƠNG 3: MỘT SỐ CÔNG CỤ KIỂM THỬ PHẦN MỀM 25 3.1 Công cụ kiểm thử Jmeter 25 3.1.1 Giới thiệu chung Jmeter 25 3.1.2 Đặc trưng Jmeter 25 3.1.3 Các thành phần Jmeter 25 3.2 Công cụ kiểm thử QuickTest Pro 26 3.2.1 Giới thiệu chung QuickTest Pro 26 3.2.2 Đặc trưng QuickTest Pro 26 3.2.3 Các thành phần QuickTest Pro 27 3.3 Công cụ kiểm thử Katalon Studio 28 3.3.1 Giới thiệu chung Katalon Studio 28 3.3.2 Đặc trưng Katalon Studio 28 3.3.3 Các thành phần Katalon Studio 29 3.4 Công cụ kiểm thử Selenium Webdriver 30 CHƯƠNG 4: ỨNG DỤNG CÔNG CỤ HỖ TRỢ KIỂM THỬ SELENIUM WEBDRIVER TRONG KIỂM THỬ ỨNG DỤNG WEB 33 4.1 Lý chọn toán ứng dụng 33 4.2 Kiểm thử tự động ứng dụng Gmail 35 4.2.1 Giới thiệu toán 35 4.2.2 Chuẩn bị testcase cho toán 36 4.2.3 Xây dựng kịch kiểm thử tự động 37 KẾT LUẬN 40 PHỤ LỤC i Phụ lục - Giới thiệu Selenium i VI I Phụ lục - Selenium IDE iii VI II Giới thiệu Selenium IDE iii Hướng dẫn cài đặt Selenium IDE iii Các câu lệnh Selenium IDE v Locator (Xác định đối tượng UI) vii Phụ lục - Selenium WebDriver x Giới thiệu Selenium WebDriver x Cài đặt Selenium WebDriver xiii Các câu lệnh sử dụng Selenium WebDriver xx TÀI LIỆU THAM KHẢO i VII MỞ ĐẦU Chúng ta chứng kiến tăng trưởng đáng kinh ngạc ngành công nghiệp phần mềm vài thập kỷ qua Nếu trước phần mềm máy tnh sử dụng để tính tốn khoa học kỹ thuật xử lí liệu ngày ứng dụng vào mặt đời sống hàng ngày người, từ ứng dụng nhỏ để điều khiển thiết bị dùng gia đình thiết bị nghe nhìn, điện thoại, máy giặt, lò vi sóng, nồi cơm điện, đến ứng dụng lớn trợ giúp điều khiển phương tiện hệ thống giao thơng, trả tiền cho hố đơn, quản lí tốn tài chính, Vì người ngày phụ thuộc chặt chẽ vào sản phẩm phần mềm Do đòi hỏi chất lượng sản phẩm phần mềm ngày cao, tức phần mềm phải sản xuất với giá thành hạ, dễ dùng, an toàn tin cậy Kiểm thử có phương pháp hoạt động khơng thể thiếu quy trình sản xuất phần mềm để đảm bảo yếu tố chất lượng nêu sản phẩm phần mềm Bên cạnh đó, ứng dụng Web phát triển trở thành tảng kết nối thông tn thiết yếu doanh nghiệp, đóng vai trò định thương mại điện tử, trao đổi thông tn Để đạt điều này, ứng dụng Web cần phải có hiệu cao, đáng tn cậy,… Việc đưa ứng dụng Web tốt cho người dùng sử dụng ứng dụng trở thành thách thức vấn đề đảm bảo chất lượng Selenium WebDriver công cụ kiểm thử ứng dụng Web tiêu biểu Đây công cụ mã nguồn mở, mạnh mẽ hỗ trợ Web, nhiều platform trình duyệt phổ biến Selenium WebDriver có lẽ cơng cụ tốt thị trường cho ứng dụng Web Những lợi ích cơng cụ kiểm thử tự động mang lại lớn nên Phụ lục - Selenium WebDriver Giới thiệu Selenium WebDriver a Lịch sử Selenium Với ứng dụng web trở thành phương pháp defacto để phát triển ứng dụng người dùng cuối, cần giải pháp cho việc test Điều có nghĩa nhiều trọng vào framework tự động hóa trình duyệt để giúp kiểm tra trang web Nhiều năm qua, người sử dụng Selenium IDE Selenium RC để dẫn dắt nhiều loại trình duyệt khác Selenium tạo ban đầu Jason Huggins, giải vấn việc trình duyệt tương tác với người dùng Đây framework tự động hóa tốt, nhiên bị giới hạn JavaScript sandbox trình duyệt JavaScript sandbox thực thi sách bảo mật JavaScript thực để ngăn chặn mã độc máy khách hàng Chính sách bảo mật mà người thông qua Same Origin Policy Nếu bạn cần chuyển từ HTTP sang HTTPS, trình duyệt ngăn chặn hành động lúc khơng gốc Điều khiến người phát triển trung bình bạn phẫn nộ! Selenium API thiết kế để làm việc từ bên máy chủ Người phát triển hay tester viết test phải làm HTML cách sử dụng thiết kế cột dựa FIT Bạn thấy điều mở Selenium IDE có input box cần hồn thành cho dòng thực thi nhiên có nhiều vấn đề Patrick Lightbody Paul Hammant nghĩ cách tốt để điều khiển test họ với cách họ sử dụng ngơn ngữ phát triển mà họ thích Họ tạo Selenium Remote Contral sử dụng Java máy chủ x web Phần ta tìm hiểu kĩ thuật WebDriver xi b Kỹ thuật Cấu trúc WebDriver không theo phương pháp Selenium RC viết hoàn toàn JavaScript cho tất tự động hóa trình duyệt JavaScript Selenium RC mô hành dộng người dùng JavaScript tự động hóa trình duyệt từ trình duyệt WebDriver mặt khác cố gắng để kiểm sốt trình duyệt từ bên ngồi Nó sử dụng khả tếp cận API để điều khiển trình duyệt Khả tếp cận API sử dụng số lượng lớn ứng dụng truy cập kiểm soát ứng dụng chúng sử dụng người dùng bị chặn WebDriver sử dụng phương pháp thích hợp để truy cập khả tếp cận API Nếu bạn nhìn vào Firefox, sử dụng JavaScript để truy cập API Nếu bạn nhìn vào Internet Explorer, sử dụng C++ Phương pháp có nghĩa ta điều khiển trình duyệt cách tốt có nhược điểm với trình duyệt thị trường khơng hỗ trợ phương pháp với Selenium RC Những nơi phương pháp khơng làm việc, ta dùng JavaScript trang Ví dụ tìm thấy HTML5 WebDriver API WebDriver API phần hệ thống mà bạn tương tác suốt trình xii Nhiều thứ thay đổi từ API có độ dài 140 dòng mà Selenium RC API có Cái dễ quản lý thực phù hợp hình thơng thường Điều tạo thành từ WebDriver đối tượng WebElement driver.fndElement(By.name("q")) element.sendKeys("I love cheese"); Những lệnh sau dịch sang SPI Điều thấy phần tếp theo WebDriver SPI Khi mã code vào Stateless Programming Interface hay SPI, sau gọi đến chế phá vỡ nhân tố sử dụng ID sau gọi lệnh có liên quan Tất API gọi sau gọi dưới, ví dụ: findElement(using="name", value="q") sendKeys(element="webdriverID", value="I love cheese") Từ gọi đến giao thức JSON Wire Ta sử dụng HTTP chế vận chuyển Ta liên lạc tới trình duyệt kĩ thuật vận chuyển client server đơn giản mà người phát triển tạo JSON Wire Protocol JSON Wire protocol Những người phát triển WebDriver tạo chế vận chuyển gọi JSON Wire Protocol Giao thức vận chuyển tất yếu tố cần thiết tới code điều khiển Nó sử dụng REST giống API cách để giao tếp Sát nhập dự án Cả Simon Stewart Jason Huggins nghĩ việc sát nhập dự án với thực ý kiến tốt, sau gọi Selenium Các nhà phát triển cứng Selenium làm việc để đơn giản hóa xii sở mã code xóa bỏ nhiều trùng lặp tốt Ta tạo Selenium Atoms mà sau chia sẻ dự án xii Cài đặt Selenium WebDriver Để phát triển kịch webdriver, cần đảm bảo môi trường cài đặt hồn tất Thiết lập mơi trường bao gồm bước sau đây: Bước 1: Download cài đặt Java Development Kit (JDK) - Link download: http://www.oracle.com/technetwork/java/javase/downloads/index-jsp138363.html - Cài đặt bình thường, click Next, Install hồn tất Hình Download cài đặt JDK Bước 2: Download cài đặt Ecilpse IDE • Link download: http://www.eclipse.org/downloads/ • Tùy vào hệ thống máy tnh để lựa chọn phiên 32/64 bit cho phù hợp Trường hợp này, em lựa chọn để tải Elipse IDE for Java Developers để đáp ứng nhu cầu công việc xiii Hình Download Eclipse IDE Bước 3: Download Selenium Java Client Driver: • Link download: http://www.seleniumhq.org/download/ Hình Download Selenium Java Client Driver • Giải nén đặt vào thư mục cố định Nên đặt khác vị trí ổ C để sau cài đặt lại hệ thống, tái sử dụng lại đặt trực tiếp vào project (cài lại máy di chuyển qua máy khác chạy được) Bước 4: Tạo project với ngôn ngữ lập trình Java Eclipse • Click chuột phải vào package tạo Class hình sau: xiv Hình 10 Tạo project • Đặt tên cho class chọn tạo phương thức main -> Finish Hình 11 Đặt tên chọn tạo phương thức xv • Sau click finish, class vừa tạo hiển thị sau: Hình 12 Tên Class Eclipse Bước 5: Thêm Selenium Java Client Driver (.jar) vào project • Right click vào tên Project -> Properties -> Java Build Path -> Libraries -> Add External JARs • Chọn tất file có định dạng jar thư mục [selenium- java-2.43.1] -> OK Hình 13 Thêm Selenium Java Client Driver (.jar) vào project xvi Bước 6: Thêm TestNG plugin vào Eclipse • Chọn Help -> Install New Software • Nhập TestNG vào textbox Name http://beust.com/eclipse vào textbox Locaton -> Click OK xvii • Click vào TestNG nhấn Next button • Click “I accept the terms of the license agreement” nhấn Finish button: xviii • Nếu popup thơng báo Security Warning, nhấn OK để tếp tục • Hồn thành, click Yes để khởi động lại Eclipse • Sau khởi động xong, cần kiểm tra TestNG cài đặt thành công: Window -> Preferences xix • TestNG plugin tích hợp thành cơng vào Eclipse Các câu lệnh sử dụng Selenium WebDriver  Các câu lệnh trình duyệt Selenium webdrive có số câu lệnh thao tác với trình duyệt mở, đóng, lấy tiêu đề trang web đây: Câu lệnh [Get] Mục đích: Câu lệnh sử dụng để mở trang web trình duyệt pháp: drive.get(URL); URL: Là url để tải trang, nên sử dụng url đầy đủ; xx Ví dụ: driver.get("https://accounts.google.com"); Câu lệnh lấy têu đề [getTitle] Mục đích : Câu lệnh sử dụng để lấy têu đề trang web pháp: driver.getTitle(); Câu lệnh lấy URL [getCurrentUrl] Mục đích: Câu lệnh dùng để lấy URL trang tải trình duyệt pháp: driver.getCurrentUrl(); Câu lệnh lấy source trang web [getPageSource] Mục đích: Câu lệnh dùng để lấy source trang tải cuối pháp: driver.getPageSource(); Câu lệnh đóng trang web [close] Mục đích: Câu lệnh dùng để đóng cửa sổ trình duyệt pháp: driver.close(); Câu lệnh trình duyệt [quit] Mục đích: Câu lệnh dùng để khỏi trình duyệt tất cửa sổ mở pháp: drive.quit(); Câu lệnh làm [refresh] Mục đích: Câu lệnh dùng để làm trình duyệt pháp: driver.navigate().refresh(); xxi TÀI LIỆU THAM KHẢO Tiếng Việt [1.] Thạc Bình Cường, Bài giảng Kiểm thử đảm bảo chất lượng phần mềm, Nhà xuất Đại học Bách Khoa Hà Nội [2.] Phạm Ngọc Hùng, Trương Anh Hồng, Đặng Văn Hưng Giáo trình Kiểm thử phần mềm, 2013 [3.] RoGer S.Pressman, Kỹ nghệ phần mềm, Ngô Trung Việt dịch, Tập 3, NXB Giáo dục, 2000 [4.] Bài giảng đảm bảo chất lượng phần mềm, Học viện Bưu Viễn thơng [5.] Nguyễn Quốc Toản, Bài giảng nhập mơn Cơng trình học phần mềm, Khoa Công nghệ - Đại học Quốc gia Hà Nội, trang 59 - 63, 2000 Tiếng Anh [6.] Beier, B (1995), Black- box Testing, Wiley [7.] Cem Kaner, Jack Falk, Hung Ngoc Nguyen (1999), Testing Computer Software, John Wiley & Sons, Inc., p 27- 141 [8] Daniel Galin, Sofware Quality Assurance, Pearson Educaton, 2004 Website tham khảo [9.] http://imic.edu.vn/tin-tuc-cong-nghe/3122/kiem-thu-thu-congva- kiem-thu-tu-dong-giong-va-khac-nhau-nhu-the-nao.html [10.] https://viblo.asia/p/kiem-thu-tu-dong-va-cac-cong-cu-duocsu- dung-trong-kiem-thu-tu-dong-aWj531qbZ6m [11.] http://learntestng123.blogspot.com/2015/04/bat-au-voi-congcu- quick-test-pro.html [12.] http://www.testngvn.com/viewtopic.php? f=123&t=92573 [13.] https://techblog.vn/tim-hieu-quy-trinhkiem-tra-phan-mem i ... văn Nghiên cứu số kỹ thuật công cụ kiểm thử ứng dụng kiểm thử tự động ứng dụng Web mang lại cho người đọc tài liệu hỗ trợ hữu ích trước định sử dụng kiểm thử tự động cho ứng dụng Web Nội dung... Công cụ kiểm thử Selenium Webdriver 30 CHƯƠNG 4: ỨNG DỤNG CÔNG CỤ HỖ TRỢ KIỂM THỬ SELENIUM WEBDRIVER TRONG KIỂM THỬ ỨNG DỤNG WEB 33 4.1 Lý chọn toán ứng dụng 33 4.2 Kiểm thử. .. Tổng quan kiểm thử phần mềm vấn đề đảm bảo chất lượng mềm phần Chương 2: Một số công cụ kiểm thử phần mềm Chương 3: Một số cộng cụ kiểm thử phần mềm Chương 4: Ứng dụng công cụ hỗ trợ kiểm thử Selenium

Ngày đăng: 12/10/2018, 01:54

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