Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Xây Dựng Ứng Dụng Kiểm Thử Phần Mềm Tự Động Sử Dụng Selenium Và Webdriver
Nội dung xem thử
Mô tả chi tiết
ĐẠ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
1
LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của cá nhân tôi,
thực hiện dưới sự hướng dẫn của PGS. TS Hoàng Xuân Huấn. Trong toàn bộ nội dung
của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ
nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích
dẫn đúng quy định.
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định
cho lời cam đoan của mình.
Hà Nội, ngày …. tháng ... năm 2020
Học viên
Phạm Thị Hải Yến
2
LỜI CẢM ƠN
Để hoàn thành luận văn này tôi xin chân thành gửi lời cảm ơn đến PGS. TS. Hoàng
Xuân Huấn cùng các thầy cô trong 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 chỉ bảo và tạo cho tôi những điều kiện tốt nhất từ
khi bắt đầu cho tới khi hoàn thành luận văn của mình.
Đồng thời, tôi cũng xin gửi lời cảm ơn đến gia đình, bạn bè và đồng nghiệp đã
luôn quan tâm, chia sẻ, động viên và tạo mọi điều kiện để tôi có thể hoàn thành tốt mọi
công việc trong quá trình thực hiện luận văn.
Mặc dù đã rất cố gắng trong quá trình thực hiện nhưng luận văn không thể tránh
khỏi những thiếu sót, tôi rất mong nhận được sự góp ý của các thầy cô và bạn bè.
Học viên
Phạm Thị Hải Yến
3
MỤC LỤC
LỜI CAM ĐOAN ..........................................................................................................1
LỜI CẢM ƠN ................................................................................................................2
MỤC LỤC ......................................................................................................................3
DANH MỤC HÌNH VẼ.................................................................................................6
DANH MỤC BẢNG BIỂU ...........................................................................................8
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT VÀ CÁC THUẬT NGỮ..............9
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 về 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 khi á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 2. 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 một Cucumber Junit test.............................................................22
2.1.4. Chu trình.......................................................................................................23
2.1.5. Sơ đồ chu trình làm việc xử lý các bước trong 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 về đố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
4
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 trong 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ý do 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) là gì? .....................................43
2.4.3. Ưu điểm của 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 của 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ử tại công ty trước khi áp dụng kiểm thử tự
động.................................................................................................................................54
4.1.1. Tổng quan về 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 đây tại VIVAS ....................................................55
4.2. Cài đặt và áp dụng kiểm thử tự động vào các dự án của 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 quả chạy kiểm thử.....................................................................65
4.3. Đánh giá kết quả sau khi áp dụng kiểm thử tự động vào dự án của VIVAS....67
5
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 khi triển khai hệ thống kiểm thử tự động trong công ty VIVAS
71
4.5. Hướng phát triển tiếp theo của framework .........................................................72
KẾT LUẬN ..................................................................................................................73
TÀI LIỆU THAM KHẢO...........................................................................................74