Nghiên cứu ứng dụng phương pháp và công cụ kiểm thử phần mềm tự động Nghiên cứu ứng dụng phương pháp và công cụ kiểm thử phần mềm tự động Nghiên cứu ứng dụng phương pháp và công cụ kiểm thử phần mềm tự động luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - TÔ THỊ NGA NGHIÊN CỨU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ KIỂM THỬ PHẦN MỀM TỰ ĐỘNG Chuyên ngành : Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT NGÀNH CÔNG NGHỆ THÔNG TIN NGƯỜI HƯỚNG DẪN KHOA HỌC TS NGUYỄN THANH HÙNG Hà Nội – 2017 LỜI CAM ĐOAN Tôi tên là: Tô Thị Nga, học viên lớp 2015B CNTT – Trường Đại học Bách Khoa Hà Nội Tôi xin cam đoan tồn nội dung luận văn tơi tự học tập, nghiên cứu Internet, sách báo, tài liệu ngồi nước có liên quan Khơng chép hay sử dụng làm khác, tài liệu trích dẫn cụ thể Tơi xin chịu hồn tồn trách nhiệm lời cam đoan trước Q Thầy Cơ, Khoa Nhà trường Hà Nội, ngày 22 tháng 11 năm 2017 Người cam đoan Tô Thị Nga LỜI CẢM ƠN Lời xin chân thành cảm ơn TS Nguyễn Thanh Hùng – Bộ môn Công nghệ phần mềm - Viện Công nghệ thông tin truyền thông - Đại học Bách khoa Hà Nội người hướng dẫn vô tận tình, tâm huyết để tơi hồn thành luận văn Tôi chân thành cảm ơn thầy cô môn Công nghệ thông tin tận tình bảo giúp đỡ tơi suốt thời gian học trình thực luận văn Và cuối xin cảm ơn tất gia đình, bạn bè, người sát cánh chia sẻ với tơi lúc khó khăn giúp tơi có động lực để hồn thành tốt luận văn Học viên Tô Thị Nga MỤC LỤC LỜI CAM ĐOAN .2 LỜI CẢM ƠN .3 DANH MỤC KÝ HIỆU CHỮ VIẾT TẮT DANH MỤC BẢNG VẼ DANH MỤC HÌNH VẼ 10 PHẦN MỞ ĐẦU .10 PHẦN NỘI DUNG 12 CHƯƠNG I : TÌM HIỂU TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ CÔNG CỤ TỰ ĐỘNG 12 Ý nghĩa, khái niệm kiểm thử tự động phần mềm .12 1.1 Kiểm thử tự động phần mềm 12 1.2 Tại cần phải kiểm thử tự động phần mềm 12 Quy trình kiểm thử tự động phần mềm 13 2.1 Mơ hình chung kiểm thử tự động phần mềm 13 Một số công cụ kiểm thử phần mềm tự động 15 3.1 Nghiên cứu công cụ kiểm thử tự động QuickTest Professional 15 3.1.1 Loại phần mềm hỗ trợ 15 3.1.2 Các thành phần quan trọng QTP 15 3.1.3 Ưu , nhược điểm QTP 16 3.2 Nghiên cứu công cụ kiểm thử hiệu 17 3.2.1 Khái quát kiểm thử hiệu .17 3.2.2 Nghiên cứu công cụ Load Runner .17 4 Nghiên cứu công cụ Selenium 18 4.1 Tóm tắt lịch sử Selenium 18 4.2 Đặc điểm Selenium 18 4.3 Cấu trúc Selenium 19 4.3.1 Selenium IDE (Integrated Development Environment) 19 4.3.2 Selenium Gird 20 4.3.3 Selenium RC 21 4.3.4 Selenium WebDriver 22 4.4 Ưu, nhược điểm Selenium 23 4.4.1 Ưu điểm 23 4.4.2 Nhược điểm 24 Chi tiết Selenium Webdriver 24 5.1 Tổng quan đối tượng UI (Locators) 24 5.2 Cơ chế script viết Selenium Webdriver .27 5.3 Các thư viện cần thiết để chạy SeleniumWebDriver 28 5.3.3 Các hàm xử lý chung SeleniumWebDriver 29 6.Kết luận chương 30 CHƯƠNG II TỰ ĐỘNG HÓA KỊCH BẢN KIỂM THỬ SỬ DỤNG SELENIUM …………………………………………………………………………….31 BÀI TOÁN ĐẶT RA .31 Ý tưởng toán: 31 Phân tích yêu cầu 32 2.1 Yêu cầu đặc tả .32 2.2 Biểu đồ Usecace 33 2.2.1 Đặc tả Usecase Import file Test Case 34 2.2.2 Đặc tả Usecase Import file Config 35 2.2.3 Đặc tả Usecase Chạy kịch kiểm thử 35 2.2.4 Đặc tả Usecase Dừng chạy kịch kiểm thử 36 2.2.5 Đặc tả Usecase Quản lý Test Case import .37 2.2.6 Đặc tả Usecase Xóa TestCase 38 2.2.7 Đặc tả Usecase Quản lý Test Result .38 2.3.Biểu đồ hoạt động .39 Triển khai vấn đề 40 3.1 Tạo Project sử dụng thư viện Maven .40 3.2 Tạo Page Object Model (POM) .41 3.2.1 Page Object làgì? 41 3.3 Cấu trúc project 42 4.Chuẩn bị môi trường kiểm thử 42 5.Chuẩn bị liệu kiểm thử .44 6.Tạo file Cấu hình .46 Kết luận chương 47 CHƯƠNG III: TRIỂN KHAI VÀ KIỂM THỬ HỆ THỐNG 48 Cài đặt triển khai hệ thống .48 Kết 52 2.1 Giao diện công cụ kiểm thử 52 2.2 Các tính hiển thị cơng cụ .53 2.3 Xuất kết kiểm tra 54 Kiểm thử phần mềm .55 3.1 Lên kế hoạch kiểm thử .55 3.2 Thiết kế kịch kiểm thử công cụ 56 3.2.1 Kiểm thử giao diện 56 3.2.2 Kiểm thử chức 56 Áp dụng kiểm thử 59 Kết luận chương .60 CHƯƠNG IV: ĐÁNH GIÁ KẾT QUẢ 62 Đánh giá kết .62 Hướng phát triển .63 KẾT LUẬN .64 TÀI LIỆU THAM KHẢO 65 DANH MỤC KÝ HIỆU CHỮ VIẾT TẮT Chữ viết tắt Chữ viết đầy đủ Công nghệ thông tin CNTT QuickTest Professional QTP OR Object Repository Integrated Development Environment IDE RC Remote Control UI User Interface WAUT Web Application Under Test HTML (Hyper Text Markup Ngôn ngữ đánh dấu siêu văn Language) TDD Test-Driven Development ATDD Acceptance Test-Driven Development BDD Behaviour DrivenDevelopment POM Page Object Model DANH MỤC BẢNG VẼ Tên bảng Bảng : Mơ hình chung kiểm thử tự động phần mềm Trang Bảng : Các bước thực kiểm thử tự động 11 Bảng : Các thành phần Load Runner 15 Bảng : Thư viện cần thiết để chạy Selenium WebDriver 34 Bảng : Locate element sử dụng WebDriver 34 Bảng : Các hàm thường sử dụng Selenium Webdriver 35 Bảng : Đặc tả Usecase Import file Test Case 40 Bảng : Đặc tả Usecase Import file Config 41 Bảng : Đặc tả Usecase Chạy kịch kiểm thử 42 Bảng 10 : Đặc tả Usecase Dừng chạy kịch kiểm thử 42 Bảng 11 : Đặc tả Usecase Quản lý Test Case import 44 Bảng 12 : Đặc tả Usecase Xóa TestCase 44 Bảng 13 : Đặc tả Usecase Quản lý Test Result 51 Bảng 14 : Test case chức Login 51 Bảng 15 : Test case chức Đăng ký 52 Bảng 16 : Test case chức Mua hàng online 57 Bảng 17 : Kết chạy kiểm thử export excel 53 Bảng 18 : Test Case kiểm thử chức phần mềm 55 Bảng 19 : Test Case kiểm thử chức phần mềm 57 Bảng 20 : Bảng kết kiểm thử phần mềm 58 DANH MỤC HÌNH Hình 1.4.1 Sơ đồ cầu trúc Selenium 18 Hình 1.4.2 : Kiến trúc Selenium IDE 19 Hình 1.4.3 Tương tác Selenium RC đến máy chủ 21 Hình 1.4.4 Tương tác Selenium Webdriver 22 Hình 1.4.5 Xác định phần tử Web theo ID 24 Hình 1.4.6 Xác định phần tử Web theo Name 24 Hình 1.4.7 Xác định phần tử Web theo LinkText 25 Hình 1.4.8 Xác định phần tử Web theo TagName 25 Hình 1.4.9 Xác định phần tử Web theo ClassName 26 Hình 1.4.10 Xác định phần tử Web theo CSS 26 Hình 2.1 Mơ hình ý tưởng phần mềm 30 Hình 2.2.1 Usecase tổng quan cho hệ thống 32 Hình 2.2.2 Biểu đồ hoạt động cho flow kiểm thử website dựa theo kịch 38 Hình 2.3.1 Cấu trúc POM 39 Hình 2.3.3 Cấu trúc Project 42 Hình 2.4.1 Màn hình đăng ký 42 Hình 2.4.2 Màn hình Login tài khoản học viên 43 Hình 2.4.3 Luồng kiểm thử nghiệp vụ đặt hàng website tiki 43 Hình 2.5.1 File cấu hình 45 Hình 3.2.1 Giao diện phần mềm 51 Hình 3.2.2 Kết export html 54 10 3) Hoàn thành trinh import project 1.3 Thực thi phần mềm Mơ tả q trình thực thi phần mềm 1) Chạy phần mềm 2) Chọn vào button Import XLSX File để import file TestCase chứa kịch cần kiểm thử 3) Chọn vào button Import Config File để import file Config 4) Sau import thành công file chọn button Run 51 5) Hệ thống thực q trình kiểm thử tự động thơng qua việc gọi đến trình duyệt cấu hình Trình duyệt hiển thị chạy theo bước viết file kịch kiểm thử 6) Sau đợi xác nhận kết kiểm thử Kết Dưới số giao diện hệ thống kiểm thử phần mềm tự động 2.1 Giao diện công cụ kiểm thử Giao diện công cụ mở lần Hình 3.2.1 Giao diện phần mềm Nhìn vào hình trên, ta phân tích , phần mềm gồm chức : Chứcnăng chọn upload file Test Case file cấu hình (1) : hiển thị danh sách chức cần kiểm tra, chỉnh tên nhóm Test Case (2) : hiển thị danh sách Test Case sau import (3) : hiển thị nội dung file cấu hình import, ứng với chức kiểm tra có file cấu hình khác nhau, điều mơ tả cho kịch kiểm thử (4) : hiển thị biểu đồ thống kê kết kiểm thử 52 Giao diện sau import file TCs file Config Giao diện q trình chạy TestCase 2.2 Các tính hiển thị cơng cụ File import Ngồi chức import file TestCase, thiết kế chức import file Config.xml File config dễ dàng sử dụng để thiết lập thông số cho hạng mục cần kiểm tra Các nút chức điều hướng o Menu 53 o Test o Help o Import file o Run o Stop Summary Result Biểu đồ thống kê kết q trình chạy Testcase Trong đó, hiển thị số TestCase Pass , Fail Untest giúp dễ dàng thống kê số bug tiến độ hồn thành chức 2.3 Xuất kết kiểm tra Xuất kết qua file excel Kết xuất file excel lưu thư mục config Bảng 17 : Kết chạy kiểm thử export excel Xuất kết thống kê website Sau kết thúc trình kiểm tra theo kịch bản, hệ thống export kết dạng html Người dùng dễ dàng mở kết xem trình duyệt 54 Hình 3.2.2 Kết export html Kiểm thử phần mềm 3.1 Lên kế hoạch kiểm thử Tiến hành thử nghiệm theo khía cạnh: Test giao diện Test chức Các tiêu chí đánh giá giao diện: Màu sắc Hình ảnh Chữ viết Bố cục Sự thân thiện 55 Các tiêu chí đánh giá chức năng: Đầy đủ Thực chức Khơng có lỗi Được tối ưu Quản trị dễ dàng 3.2 Thiết kế kịch kiểm thử công cụ 3.2.1 Kiểm thử giao diện Dưới bảng Test View point kiểm tra giao diện phần mềm , giao diện hình kết kiểm tra với 18 trường hợp kiểm thử Bảng 18 : Test Case kiểm thử giao diện phần mềm 3.2.2 Kiểm thử chức Xây dựng kiểm thử cho chức sau: 56 Chức upload file Chức Run Chức Stop Chức Menu Chức Logout Chức Export file Chức hình quản lý TestResult Kiểm thử tự động với chức hệ thống Dưới bảng Test View point cho chức phần mềm , kiểm tra phần mềm trước sau hoạt động , với 11 trường hợp kiểm thử FUN Test case name Import file TestCase Test case ID Precondition Steps to reproduce Expected result FUN_001 TH Tồn data TH khơng tồn data TH file có dung lượng lớn Mở ứng dụng Import file TestCase (exception : TH file khơng định dạng, file có nội dung chứa kí tự đặc biệt) - Import thành cơng - Data upload đủ FUN_002 TH Tồn data TH không tồn data TH file có dung lượng lớn Mở ứng dụng Import file TestCase Import file Config - Import thành công - Data upload đủ FUN_003 Mở ứng dụng Import file TestCase Bỏ tích testcase A Run testcase Xác nhận hệ thống không chạy kiểm thử ứng với testcase A FUN_004 Mở ứng dụng Thao tác với button menu Xác nhận button menu active Chức import file Import file Config Chức xóa Testcas e Chức menu Check xử lý không run Testcase bị xóa Check xử lý button menu 57 Chức Stop Check xử lý button stop Chức Stop Check chọn run testcase sau stop Chức get kết sau kiểm thử Chức export kết Check update kết list testcase Check update kết summary Result Check kết export file excel Check kết export html Chức hình Quản lý Test Result Check hình Quản lý Test Result Kiểm thử tự động với chức Thực kiểm thử tự động theo kịch TH chưa run testcase TH run testcase TH hoàn thành run testcase Mở ứng dụng Chọn button Stop Xác nhận dùng chương trình FUN_006 Mở ứng dụng Run testcase Chọn button Stop Chọn run Xác nhận chương trình chạy tiếp testcase lại FUN_007 Mở ứng dụng Run testcase Hoàn thành excute testcase theo kịch Xác nhận update kết testcase : Pass/Fail FUN_008 Mở ứng dụng Run testcase Hoàn thành excute testcase theo kịch Xác nhận count số testcase : Pass/Fail/Unt est FUN_005 Run testcase Hoàn thành excute testcase theo kịch Chọn button xem kết menu FUN_009 Xác nhận hiển thị đủ nội dung file export result FUN_010 Run testcase Hoàn thành excute testcase theo kịch Chọn button xem kết menu Xác nhận export html FUN_011 - Check data hiển thị - Check kết testcase hiển thị - Check chức button, flow di chuyển Xác nhận hiển thị đủ nội dung, data, flow di chuyển FUN_012 - Check kiểm thự tự động với kịch nghiệp vụ hệ thống Kiểm thử tự động thành công với chức hệ thống dựa quy 58 hệ thống Áp dụng phần mềm kiểm thử website nhiều trình duyệt trình nghiệp vụ ( Functional testing ) Thực kiểm thử tự động website nhiều trình duyệt - Check kiểm thử tự động website trình duyệt Chrome , IE, Safari FUN_013 Xác nhận kiểm thử tự động thành cơng trình duyệt Bảng 19 : Test Case kiểm thử chức phần mềm Áp dụng kiểm thử Mục tiêu: thu kết đánh giá hệ thống, hoàn thiện sửa lỗi (nếu có) Đầu vào: tài liệu kiểm thử Đầu ra: kết đánh giá Sau tiến hành kiểm thử, thu kết tổng kết sau: STT Số case Nội dung kiểm thử Đánh giá kiểm thử Đạt Giao diện công cụ kiểm thử Giao diện hình quản lý test Result Chưa đạt Chức import file 12 Chức xóa Testcase Chức menu Chức Stop 59 Chức get kết sau kiểm thử Chức export kết Chức hình Quản lý Test Result Có điểm chưa đạt Bảng 20: Bảng kết kiểm thử phần mềm Đánh giá kết kiểm thử Kết thử nghiệm thu sau tơi tiến hành quy trình kiểm thử phần mềm Với kết đánh giá này, hệ thống hồn tồn đưa vào vận hành thực tế Tuy nhiên, phạm vi đồ án, thực kiểm thử với số lượng testcase nhỏ Để đánh giá khách quan hệ thống, ta cần phải tuân thủ nghiêm ngặt theo quy trình kiểm thử, xây dựng kế hoạch kiểm thử lớn để kết thu xác Tơi cố gắng hồn thiện kế hoạch kiểm thử sớm để hệ thống trở thành công cụ kiểm thử thân thiện, ổn định, không lỗi, sản phẩm hoàn thiện, tin cậy cho người dùng Kết luận chương Chương này, tơi trình bày q trình cài đặt kiểm thử hệ thống Tôi tiến hành kiểm thử với khía cạnh hệ thống: Giao diện Chức Kết kiểm thử sở để test hệ thống xem có phù hợp Với kết trên, hệ thống đủ điều kiện để đưa vào triển khai hệ thống thật phục vụ cho người kiểm thử phần mềm, người khơng có chun mơn lập trình Những tính năng, ưu điểm hệ thống : 60 Có chức import file Testcase file config Việc mang lại ý nghĩa tích cực người khơng có kỹ lập trình Chỉ cần tạo testcase, test data config kiện hành động đối tượng kiểm tra Có chức thống kê kết Có chức export kết html Giao diện công cụ phù hợp , giao diện kết thân thiện, dễ nhận thức kết kịch kiểm tra Hỗ trợ nhiều project Công cụ dễ sử dụng Test chức hệ thống ( Functional) : Áp dụng sử dụng phần mềm để kiểm thử tự động chức dựa quy trình nghiệp vụ hệ thống Tuy nhiên, phần mềm không áp dụng cho việc kiểm thử yêu cầu chất lượng hệ thống ( Non-functional ) : Đây bao gồm kiểm thử hiệu ( performance), kiểm thử khả sử dụng ( Usability) , kiểm thử bảo mật ( sercurity)… ứng với loại u cầu có cơng cụ kiểm thử tự động tương ứng khác Có thể sử dụng phần mềm để kiểm thử tự động website trình duyệt như: Chrome, FireFox, IE 61 CHƯƠNG IV: ĐÁNH GIÁ KẾT QUẢ Đánh giá kết Qua thời gian nghiên cứu, xây dựng chương trình kiểm thử ứng dụng, đề tài tơi đạt số kết việc xây dựng công cụ hỗ trợ kiểm thử phần mềm tự động Ưu điểm Về bản, hệ thống kiểm thử đạt mục tiêu đề đạt số kết định sau: Hỗ trợ q trình kiểm thử : cover kiểm thử tất tính website Người dùng truy cập vào hệ thống lúc nào: sử dụng giao diện Web, kiểm thử, developer, projectmanager, quản trị dự án tham gia đóng góp vào q trình kiểm thử Dễ dàng thao tác nhập xuất kết file excel, để dễ dàng quản lý, đỡ tốn thời gian cho người dùng Đáp ứng nhu cầu dùng nhân viên kiểm thử dự án kiểm tra quản lý chất lượng website Ngoài ra, việc tạo báo cáo đồ thị cho project giúp người quản lý nắm bắt rõ tình trạng ứng dụng quản lý phân bố nguồn lực, giảm thiểu chi phí cho dự án Nhược điểm Do thời gian có hạn hiểu biết hạn chế thân, nên hệ thống mà tơi xây dựng cịn nhiều thiếu sót việc quản lý kiểm thử tập trung: Phạm vi sử dụng hệ thống hạn chế Ngồi , hệ thống này, khơng thể thực kiểm thử trường hợp check mã OTP Lý nó là mô ̣t dãy các ký tự hoă ̣c chữ số ta ̣o ngẫu nhiên đươ ̣c gửi đế n số điê ̣n thoa ̣i email cá nhân để xác nhâ ̣n bổ sung thực hiê ̣n giao dich ̣ qua ma ̣ng.Do đó, ứng dụng cơng cụ này, chưa thể lấy mã OTP để kiểm tra theo kịch 62 Tích lũy thân Trong q trình làm đồ án, thu nhiều học kinh nghiệm cách giải vấn đề, quy trình xây dựng thiết kế hệ thống, nghiệp vụ quản lý thơng tin, quy trình kiểm thử phần mềm…Đây kiến thức hữu ích cho tơi Hướng phát triển Để phần mềm hồn thiện hơn, tơi đề xuất mốt số định hướng đề sau: Phát triển tính import kịch kiểm thử trực tiếp phần mềm việc sử dụng file config xml Xây dụng phát triển thêm module quản lý kết kiểm thử chi tiết 63 KẾT LUẬN 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 Webdriver 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, thấy việc ứng dụng selenium Webdriver công cụ liên quan dự án phần mềm hoàn toàn khả thi Mặc dù đạt số kết môi trường thử nghiệm, nhiên, luận văn cần khắc phục số vấn đề phát triển giai sau Đó là: phần mềm đưa ứng dụng để áp dụng chạy thử nghiệm ln, phần mềm cịn nhiều tính 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ử, tích hợp thành cloud test, ứng dụng khác ) Việc cải tiến phần mềm nghiên cứu cập nhật thời gian tới Trong trình thực đề tài, có giới hạn thời gian, khả làm việc thân hạn chế, nên luận văn khơng tránh khỏi thiếu sót Rất mong góp ý thầy bạn bè 64 TÀI LIỆU THAM KHẢO Alan Richardson (2013), Java for Tester , Albans, United Kingdom David Burns (2010) , Selenium 1.0 Testing Tool , 32 Lincoln Road Olton Birmingham, B27 6PA, UK Kanglin Li and Menqi Wu (2004), Effective Software Test Automation: Developing an Automated Software Testing Tool, Sybex, San Francisco Mark Fewster andDorothy Graham (1994), Software Test Automation Effective use of test execution tools, Copyright @ by ACM Press, Great Britain Myers and Glenford (1979), The Art of Software Testing, Willey, New York Ron Patton (2005), Software Testing, Sams Publishing, the United States of America Satya Avasarala (2014), Selenium WebDriver Practical Guide, Livery Place 35 Livery Street Birmingham B3 2PB, UK Automation FC , Selenium Webdriver , https://daominhdam.wordpress.com/category/selenium/selenium-webdriver Selenium HQ Browser Automation , Mave Information, http://docs.seleniumhq.org/download/maven.jsp 10 Selenium Easy , Selenium Tutorials , http://www.seleniumeasy.com 65 ... HIỂU TỔNG QUAN VỀ KIỂM THỬ TỰ ĐỘNG VÀ CÔNG CỤ TỰ ĐỘNG Ý nghĩa, khái niệm kiểm thử tự động phần mềm 1.1 Kiểm thử tự động phần mềm Kiểm thử tự động phần mềm thực kiểm thử phần mềm chương trình đặc... Kiểm thử tự động phần mềm 12 1.2 Tại cần phải kiểm thử tự động phần mềm 12 Quy trình kiểm thử tự động phần mềm 13 2.1 Mơ hình chung kiểm thử tự động phần mềm 13 Một số công. .. người kiểm thử phải có khả lập trình Đề tài “NGHIÊN CỨU - ỨNG DỤNG PHƯƠNG PHÁP VÀ CÔNG CỤ KIỂM THỬ PHẦN MỀM TỰ ĐỘNG” nhằm đưa nhìn tổng quan lĩnh vực kiểm thử tự động, giới thiệu số loại công cụ kiểm