1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl

104 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Ứng dụng học máy trong kiểm thử tự động sử dụng công cụ Mabl
Tác giả Nguyễn Thái Bảo
Người hướng dẫn PGS.TS Nguyễn Hữu Quỳnh
Trường học Trường Đại Học Thủy Lợi
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2021
Thành phố Hà Nội
Định dạng
Số trang 104
Dung lượng 7,87 MB

Nội dung

3 - NỘI DUNG CÁC PHẦN THUYẾT MINH VÀ TÍNH TOÁN: Chương 1: Tổng quan về kiểm thử phần mềm và kiểm thử tự động 20%Chương 2: Ứng dụng học máy trong trong kiểm thử tự động• Giới thiệu về Mac

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT

TRƯỜNG ĐẠI HỌC THỦY LỢI

NGUYỄN THÁI BẢO

ỨNG DỤNG HỌC MÁY TRONG KIỂM THỬ TỰ ĐỘNG SỬ

DỤNG CÔNG CỤ MABL

ĐỒ ÁN TỐT NGHIỆP

HÀ NỘI, NĂM 2021

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ NÔNG NGHIỆP VÀ PTNT

TRƯỜNG ĐẠI HỌC THỦY LỢI

NGUYỄN THÁI BẢO

ỨNG DỤNG HỌC MÁY TRONG KIỂM THỬ TỰ ĐỘNG SỬ

Trang 3

ĐỒ ÁN TỐT NGHIỆP

HỌ VÀ

TÊN ĐỒ ÁN

TỐT NGHI ỆP

HÀ NỘI, NĂM 2021

Trang 4

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc

-« -

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Họ tên sinh viên: NGUYỄN THÁI BẢO Hệ đào tạo: Đại học chính quy

Khoa: Công nghệ thông tin

1- TÊN ĐỀ TÀI:

ỨNG DỤNG HỌC MÁY TRONG KIỂM THỬ TỰ ĐỘNG SỬ DỤNG CÔNG CỤ MABL

2- CÁC TÀI LIỆU CƠ BẢN:

[1] Ron Patton , Sách giáo trình Software Testing, 2000

[2] D G Rex Black, Sách giáo trình Foundation of Software Testing_ISTQB Certification

[3] Thomas Hamilton, "Automation Testing Tutorial | What is Automated Testing? ",

2021

[4] V H Tiệp, "Machine Learning cơ bản"

[5] Maxim Chernyak, "Machine Learning for GUI Test Automation"

[6] Gary Messiana, "Machine Learning in Software Testing", 2021

[7] Jason Arbon, "AI for Software Testing", 2017

[8] "Mabl Guides", 2021

[9] Alisha Sheikh, "Mabl AI Machine Learning Test Automation", 2018

[10] Yotam Sharan, Honghao Wang and Sovan Rath, "GUI Testing Powered by Deep Learning", 2018

[11] Saif Sadiq, "Machine Learning for Automation Testing", 2017

Trang 5

3 - NỘI DUNG CÁC PHẦN THUYẾT MINH VÀ TÍNH TOÁN:

Chương 1: Tổng quan về kiểm thử phần mềm và kiểm thử tự động 20%Chương 2: Ứng dụng học máy trong trong kiểm thử tự động

• Giới thiệu về Machine Leaning

• Ứng dụng học máy trong kiểm thử phần mềm

• Một số mô hình huấn luyện học máy trong kiểm thử tự động

4- GIÁO VIÊN HƯỚNG DẪN TỪNG PHẦN

Chương 1: Tổng quan về kiểm thử phần mềm và

Chương 2: Ứng dụng học máy trong trong kiểm

thử tự động

PGS.TS Nguyễn Hữu Quỳnh

Chương 3: Kiểm thử giao diện website với công

cụ kiểm thử tự động ứng dụng học máy Mabl

PGS.TS Nguyễn Hữu Quỳnh

Trang 6

Kết luận PGS.TS Nguyễn Hữu Quỳnh

5- NGÀY GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Ngày tháng năm 2021

Trưởng Bộ môn Giáo viên hướng dẫn chính (Ký và ghi rõ Họ tên) (Ký và ghi rõ Họ tên)

Trang 7

Nhiệm vụ Đồ án tốt nghiệp đã được Hội đồng thi tốt nghiệp của Khoa thông qua

Trang 8

TRƯỜNG ĐẠI HỌC THUỶ LỢI

KHOA CÔNG NGHỆ THÔNG TIN

Giáo viên hướng dẫn: PGS.TS Nguyễn Hữu Quỳnh

Thời gian thực hiện: 14 tuần từ ngày: 27/09/2021 đến ngày: 02/01/2022

TÓM TẮT ĐỀ TÀI

Công nghệ đang phát triển với tốc độ cực nhanh và giữ vai trò quan trọng trong cuộcsống Vì vậy việc sử dụng các phần mềm để kinh doanh càng trở nên cần thiết Nó đòihỏi các công ty phần mềm phải cung cấp sản phẩm nhanh và liên tục Những ứng dụngtrước khi ra mắt phải được kiểm thử để đảm bảo sự tối ưu nhất cho người dùng Kiểmthử thủ công đang đơn giản dần không đáp ứng được nhu cầu hiện tại Quá trình kiểmthử phần mềm cần thông minh hơn, nhanh hơn và tốt hơn

Với kiểm thử thủ công, người kiểm thử thực hiện các ca kiểm thử lần lượt từng bước

và đưa ra kết luận Trong trường hợp giao diện được cập nhật liên tục, người kiểm thửcần lặp đi lặp lại ca kiểm thử đó rất mất thời gian và chi phí Sự xuất hiển của kiểm thử

tự động đã khắc phục điều này, người kiểm thử tạo ra các lệnh để công cụ thực hiện cakiểm thử và so sánh kết quả đầu ra Khi giao diện thay đổi phần tử, chỉ cần cập nhật lạicác lệnh Một vài ca kiểm thử cần thay đổi có thể không làm khó người kiểm thử,nhưng khi cần cập nhật nhiều ca kiểm thử sẽ là bài toán về thời gian và độ chính xác.Bằng việc áp dụng học máy vào kiểm thử tự động, các hạn chế của bài toán kiểm thửgiao diện dần được giải quyết Dữ liệu lớn, trí thông minh máy móc được đào tạo giúpcho các công cụ kiểm thử tự động thực hiện các ca kiểm thử trên hàng nghìn giao diện

Trang 9

trong thời gian ngắn, đưa ra các kết luận cuối cùng về ca kiểm thử một cách thôngminh như con người Các ca kiểm thử được sinh ra, cập nhật tự động phù hợp với hoàncảnh ứng dụng mà không cần người kiểm thử cập nhật các dòng lệnh.

Mong muốn tìm hiểu việc ứng dụng học máy vào kiểm thử tự động như thế, em lựachọn đề tài: “ỨNG DỤNG HỌC MÁY TRONG KIỂM THỬ TỰ ĐỘNG SỬ DỤNGCÔNG CỤ MABL”

CÁC MỤC TIÊU CHÍNH

Kiến thức

• Tìm hiểu về kiểm thử phần mềm và kiểm thử tự động

• Tìm hiểu về học máy trong kiểm thử tự động

• Tìm hiểu về công cụ Mabl

• Sinh viên hiểu được về kiểm thử phần mềm và kiểm thử tự động

• Sinh viên tìm hiểu được phương pháp học máy phù hợp với bài toán kiểm thử

• Sinh viên nắm ứng dụng được phương pháp học máy vào bài toán kiểm thử tựđộng

Kỹ năng

• Sinh viên sử dụng được công cụ Mabl để kiểm thử giao diện cho website, từ đóphân tích được ưu điểm của việc áp dụng các phương pháp máy học

Trang 10

LỜI CAM ĐOAN

Tác giả xin cam đoan đây là Đồ án tốt nghiệp của bản thân tác giả Các kết quả trong

Đồ án tốt nghiệp này là trung thực và không sao chép từ bất kỳ một nguồn nào và dướibất kỳ hình thức nào.Việc tham khảo các nguồn tài liệu (nếu có) đã được thực hiệntrích dẫn và ghi nguồn tài liệu tham khảo đúng quy định

Tác giả ĐATN/KLTN

Nguyễn Thái Bảo

i

Trang 11

Cuối cùng, em cũng xin chân thành cảm ơn các anh, các chị và các bạn học lớp 59TH2trường Đại học Thủy Lợi đã luôn động viên, giúp đỡ và nhiệt tình chia sẻ với emnhững kinh nghiệm học tập, thực hành trong suốt khoá học

Hà Nội, ngày … tháng … năm 2021

Sinh viên thực hiện

Nguyễn Thái Bảo

ii

Trang 12

MỤC LỤC

DANH MỤC CÁC HÌNH ẢNH v

DANH MỤC BẢNG BIỂU viii

DANH MỤC CÁC TỪ VIẾT TẮT VÀ GIẢI THÍCH CÁC THUẬT NGỮ ix

MỞ ĐẦU x

CHƯƠNG 1 : TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM VÀ KIỂM THỬ TỰ ĐỘNG 1

1.1.1 Kiểm thử phần mềm là gì ? 1

1.1.2 Tầm quan trọng của kiểm thử phần mềm 2

1.1.3 Các nguyên tắc cơ bản về kiểm thử 4

1.1.4 Kĩ thuật trong thiết kế kiểm thử 6

1.2 Kiểm thử tự động 10

1.2.1 Khái niệm kiểm thử tự động 10

1.2.2 Sự khác biệt giữa kiểm thử thủ công và kiểm thử tự động 12

1.2.3 Ưu, nhược điểm của kiểm thử tự động 13

Tiểu kết chương 1: 15

CHƯƠNG 2 ỨNG DỤNG HỌC MÁY TRONG TRONG KIỂM THỬ TỰ ĐỘNG 16

2.1 Học máy (Machine Learning) 16

2.1.1 Tổng quan về học máy 16

2.1.2 Các bài toán đặc trưng trong học máy 18

2.2 Ứng dụng học máy trong kiểm thử phần mềm 21

2.2.1 Giới thiệu chung về bài toán học máy trong kiểm thử tự động 21

2.2.2 Các thuật toán sử dụng trong kiểm thử tự động 23

2.2.3 Lĩnh vực áp dụng học máy để kiểm thử phần mềm 27

2.3 Một số mô hình huấn luyện học máy trong kiểm thử tự động 30

2.3.1 Huấn luyện học máy : Nhận biết trạng thái ứng dụng 31

2.3.2 Huấn luyện học máy: Áp dụng tập dữ liệu đầu vào kiểm tra 32

2.3.3 Thực thi máy học : Áp dụng thế giới thật 33

2.3.4 Huấn luyện học máy: Xác minh hành vi 34

Tiểu kết chương 2: 37

CHƯƠNG 3 KIỂM THỬ GIAO DIỆN WEBSITE VỚI CÔNG CỤ KIỂM THỬ TỰ ĐỘNG ỨNG DỤNG HỌC MÁY MABL 38

iii

Trang 13

3.1 Giới thiệu về công cụ 38

3.1.1 Khái quát 38

3.1.2 Điểm khác biệt của công cụ kiểm thử tự động Mabl 38

3.1.3 Lý do nên lựa chọn công cụ kiểm thử tự động Mabl 39

3.2 Cách hoạt động 40

3.3 Mô hình học máy trong Mabl 41

3.3.1 Tổng quan về hệ thống 41

3.3.2 Mô tả tập dữ liệu các phần tử 42

3.4 Xây dựng kịch bản kiểm thử 45

3.4.1 Phương thức thực nghiệm 45

3.4.2 Quá trình thực hiện 48

3.5 Mô tả quá trình thực nghiệm 49

3.5.1 Phương pháp tìm phần tử chính xác 49

3.5.2 Phương pháp sử dụng một nhận định 64

3.5.3 Phương pháp sử dụng các biến mặc định 68

3.5.4 Sử dụng kết hợp luồng và vòng lặp 72

3.5.5 Cách Mabl đánh giá các kết quả kiểm thử 76

3.6 Đánh giá kết quả kiểm thử 78

Tiểu kết chương 3: 80

KẾT LUẬN 81

TÀI LIỆU THAM KHẢO 83

DANH MỤC CÁC HÌNH Ả Hình 1 1 Tầm quan trọng của kiểm thử phần mềm 3

Hình 1 2 Quá trình của kiểm thử phần mềm 4

iv

Trang 14

Hình 1 3 Mức độ của kiểm thử phần mềm 5

Hình 1 4 Các loại kiểm thử phần mềm 6

Hình 1 5 Ví dụ về kĩ thuật phân vùng tương đương 7

Hình 1 6 Ví dụ về kĩ thuật phân tích giá trị biên 7

Hình 1 7 Ví dụ về kĩ thuật bảng quyết định 8

Hình 1 8 Ví dụ về sơ đồ chuyển trạng thái 9

Hình 1 9 Ví dụ bảng chuyển đổi trạng thái 9

Hình 1 10 Kĩ thuật kiểm thử phần mềm dựa trên kinh nghiệm 10

Hình 1 11 Quy trình kiểm thử tự động 12

Y Hình 2 1 Các phương pháp học máy 17 Hình 2 2 Mô hình chung cho các bài toán học máy 19 Hình 2 4 Mô hình vòng trong phát triển của kiểm thử tự động 22 Hình 2 5 Mô hình bài toán SVM 24 Hình 2 6 Mối quan hệ của Học sâu , Học máy và Trí tuệ nhân tạo 25 Hình 2 7 CNN trong mô hình kiểm thử giao diện website 27 Hình 2 8 Huấn luyện học máy trong kiểm thử tự động 32 Hình 2 9 Huấn luyện học máy : Nhận biết trạng thái ứng dụng 33 Hình 2 10 Huấn luyện học máy : Áp dụng đầu vào kiểm tra 34 Hình 2 11 Thực thi máy học : Áp dụng thế giới thật 35 Hình 2 12 Huấn luyện học máy : Xác minh hành vi 36 Hình 3 1 Giao diện Mabl Trainer 40

Hình 3 2 Mô hình học máy và hoạt động của Mabl Trainer 42

Hình 3 3 Tập dữ liệu Nút 43

Hình 3 4 Tập dữ liệu Văn bản 43

Hình 3 5 Tập dữ liệu Thanh lựa chọn 44

Hình 3 6 Tập dữ liệu Phần tử tương tự 44

Hình 3 7 Tập dữ liệu Hộp nhập văn bản 45

Hình 3 8 Giao diện trang chủ 46

Hình 3 9 Giao diện trang Shop 46

v

Trang 15

Hình 3 10 Giao diện trang chi tiết sản phẩm 47

Hình 3 11 Giao diện trang Contact 47

Hình 3 12 Giao diện trang Book Online 48

Hình 3 13 Giao diện nút “EXPLORE NOW” ban đầu 50

Hình 3 14 Kịch bản ca kiểm thử nút 51

Hình 3 15 Giao diện nút “EXPLORE NOW” sau khi thay đổi 52

Hình 3 16 Mabl tìm phần tử nút 52

Hình 3 17 Giao diện đoạn văn bản đầu 53

Hình 3 18 Tùy chọn định cấu hình More Actions 54

Hình 3 19 Lựa chọn thuộc tính định cấu hình 55

Hình 3 20 Màn hình màn định cấu hình tìm kiếm 56

Hình 3 21 Kịch bản ca kiểm thử text 56

Hình 3 22 Giao diện đoạn văn bản phần giới thiệu sau khi chỉnh sửa 57

Hình 3 23 Mabl tìm kiếm định cấu hình trả kết quả như thiết lập 57

Hình 3 24 Mabl tìm kiếm văn bản được định cấu hình áp dụng tự chữa bệnh 58

Hình 3 25 Giao diện của màn Shop 59

Hình 3 26 Mabl Trainer yêu cầu cung cấp ngữ cảnh 60

Hình 3 27 Bảng thuộc tính khi tìm kiếm các phần tử giống nhau 61

Hình 3 28 Chi tiết thuộc tính xác định đúng phần tử tương tự 62

Hình 3 29 Kịch bản ca kiểm thử tương tự 62

Hình 3 30 Giao diện của màn Shop sau khi thay đổi vị trí phần tử 63

Hình 3 31 Mabl tìm kiếm cho các phần tử tương tự 63

Hình 3 32 Giao diện của thanh công cụ ban đầu 64

Hình 3 33 Giao diện màn chi tiết sản phẩm ban đầu 64

Hình 3 34 Mabl đưa khẳng định các phần tử 65

Hình 3 35 Kịch bản ca kiểm thử khẳng định phần tử 66

Hình 3 36 Giao diện của thanh công cụ sau khi thay đổi 66

Hình 3 37 Giao diện của chi tiết sản phẩm sau khi thay đổi 67

Hình 3 38 Mabl phát hiện khi có sự thay đổi phần tử thanh công cụ 67

Hình 3 39 Mabl sử dụng phương pháp đưa ra nhận định 68

Hình 3 40 Giao diện màn Contact ban đầu 69

vi

Trang 28

tắc, các trường hợp kiểm thử được thiết kế để bao phủ mỗi phân vùng ít nhất mộtlần.

+ Phân tích giá trị biên (Boundary Value Analysis) : Mở rộng phân vùng tươngđương, kiểm tra các cạnh của các lớp tương đương (các phần tử lớn nhất vànhỏ nhất)

+ Kĩ thuật bảng quyết định (Decision Table) : Để kiểm tra hành vi của hệ thống chocác kết hợp đầu vào khác nhau; Một cách tiếp cận có hệ thống trong đó các kết hợpđầu vào khác nhau và hành vi hệ thống tương ứng của chúng (Output) được ghi lạidưới dạng bảng

xixHình 1 5 Ví dụ về kĩ thuật phân vùng tương đương

Hình 1 6 Ví dụ về kĩ thuật phân tích giá trị biên

Trang 29

+ Kĩ thuật chuyển đổi trạng thái (State Transition Testing) :

Hai cách chính của quá trình chuyển đổi trạng thái: Sơ đồ chuyển đổi trạng thái vàbảng chuyển đổi trạng thái

xxHình 1 7 Ví dụ về kĩ thuật bảng quyết định

Trang 30

- Các kỹ thuật kiểm thử dựa trên kinh nghiệm (Experience-based test techniques).Định nghĩa: Các kỹ thuật kiểm thử dựa trên kinh nghiệm tận dụng kinh nghiệmcủa các nhà phát triển, người kiểm tra và người dùng để thiết kế, triển khai và thựchiện các bài kiểm tra.[ CITATION Ron00 \l 1033 ]

Các loại kỹ thuật kiểm thử dựa vào kinh nghiệm (Type of Experience-based testdesign techniques) :

xxiHình 1 9 Ví dụ bảng chuyển đổi trạng thái

Hình 1 10 Kỹ thuật kiểm thử phần mềm dựa trên kinh nghiệm

Trang 31

1.2 Kiểm thử tự động

1.2.1 Khái niệm kiểm thử tự động

Khái niệm : Kiểm thử tự động hoặc tự động hóa kiểm thử là một kỹ thuật kiểm thửphần mềm thực hiện bằng cách sử dụng các công cụ phần mềm kiểm thử tự động

để thực thi một bộ trường hợp kiểm thử Ngược lại, kiểm thử thủ công được thựchiện bởi một người ngồi trước máy tính thực hiện các bước kiểm tra một cách cẩnthận

- Phần mềm kiểm thử tự động cũng có thể nhập dữ liệu kiểm thử vào hệ thống đangkiểm thử, so sánh kết quả dự kiến và thực tế và tạo báo cáo kiểm thử chi tiết Tựđộng hóa kiểm thử phần mềm đòi hỏi đầu tư đáng kể về tiền bạc và nguồn nhânlực

- Các chu kỳ phát triển kế tiếp sẽ yêu cầu thực hiện lặp lại cùng một bộ thử nghiệm

Sử dụng công cụ tự động hóa kiểm thử, có thể ghi lại bộ kiểm thử này và phát lạitheo yêu cầu Khi bộ thử nghiệm được tự động hóa, không cần sự can thiệp của conngười [CITATION Tho21 \l 1033 ]

Mục tiêu của kiểm thử tự động là giảm số lượng các trường hợp kiểm thử đượcchạy theo cách thủ công và không loại bỏ hoàn toàn kiểm thử thủ công

Tự động hóa kiểm thử là cách tốt nhất để tăng hiệu quả, phạm vi kiểm tra và tốc độthực thi trong kiểm thử phần mềm Kiểm thử phần mềm tự động rất quan trọng vìnhững lý do sau:

- Kiểm thử thủ công tất cả các quy trình công việc, tất cả các lĩnh vực, tất cả các kịchbản tiêu cực sẽ rất tiêu tốn thời gian và tiền bạc

- Rất khó để kiểm tra các trang website đa ngôn ngữ theo cách thủ công

- Tự động hóa kiểm thử trong kiểm thử phần mềm không cần đến sự can thiệp củacon người Bạn có thể chạy thử nghiệm tự động mà không cần giám sát , kéo dàikhoảng thời gian (qua đêm)

- Tự động hóa kiểm thử cũng tăng tốc độ thực hiện kiểm tra

xxii

Trang 32

- Tự động hóa còn giúp tăng phạm vi kiểm tra.

- Kiểm tra thủ công có thể trở nên nhàm chán và do đó dễ xảy ra lỗi

⮚ Quy trình kiểm thử tự động:

Các bước sau được thực hiện trong Quy trình tự động hóa

• Bước 1) Lựa chọn công cụ kiểm tra

• Bước 2) Xác định phạm vi tự động hóa

• Bước 3) Lập kế hoạch, thiết kế và phát triển

• Bước 4) Thực hiện kiểm tra

• Bước 5) Bảo trì

1.2.2 Sự khác biệt giữa kiểm thử thủ công và kiểm thử tự động

Được thể hiện qua 5 đặc điểm sau đây:

- Độ tin cậy: Thông thường, kiểm thử tự động chạy với sự trợ giúp của công cụ,phần mềm nên độ tin cậy và độ chính xác cao hơn so với kiểm thử thủ công, đượcthực hiện hoàn toàn do con người

- Chi phí: Kiểm thử tự động phụ thuộc vào các công cụ được triển khai để thực hiệntest Trong khi đó, vì thực hiện bởi con người nên kiểm thử thủ công sẽ phụ thuộcvào nguồn nhân lực được sử dụng khi kiểm thử

xxiiiHình 1 11 Quy trình kiểm thử tự động

Trang 33

- Testcase: Kiểm thử tự động phù hợp với các Testcase chạy liên tục trong một thờigian dài, kiểm thử thủ công lại phù hợp với các testcase được chạy một hoặc hailần Vì vậy, khi thực hiện kiểm thử thủ công không có sự lặp lại của các testcase.

- Thời gian: Thời gian cần thiết để kiểm thử của kiểm thử thủ công nhiều hơn so với

số lượng nhân sự tham gia vào kiểm thử Kiểm thử tự động lại cần ít thời gian hơn

so với các công cụ phần mềm cần thiết để thực hiện kiểm thử

- Đảm bảo sự thân thiện của phần mềm, ứng dụng đối với con người: Khi thực hiệnkiểm thử thủ công, các chuyên viên kiểm thử đã quan sát và tìm ra những điểm bất

ổn, tăng trải nghiệm của người dùng cho từng ứng dụng Kiểm thử tự động dokhông có sự quan sát của con người nên không có sự đảm bảo về trải nghiệm chokhách hàng

Tuy nhiên, để tạo ra sản phẩm phần mềm hay ứng dụng tốt nhất đến cho ngườidùng, các tester cần linh hoạt kết hợp giữa hai loại kiểm thử: Manual Testing vàkiểm thử tự động

1.2.3 Ưu, nhược điểm của kiểm thử tự động

Ưu điểm:

- Độ tin cậy: Công cụ kiểm thử tự động mang tính ổn định cao hơn so với con người.Đặc biệt, trong những trường hợp nhiều test case thì độ tin cậy của kiểm thử tựđộng sẽ càng đạt mức tối ưu hơn so với kiểm thử thủ công

- Khả năng lặp lại: Với sự ra đời của những công cụ kiểm thử tự động sẽ hỗ trợ cáctester không phải trải qua quá trình lặp lại nhiều thao tác, điều này giúp giảm được

sự nhàm chán cũng như đạt độ tin cậy cao và ổn định

- Khả năng tái sử dụng: Đối với một bộ kiểm thử tự động sẽ được nhiều người sửdụng với nhiều những phiên bản khác nhau điều này giúp cho việc tái tính sử dụng

- Tốc độ cao: Tốc độ kiểm thử tự động nhanh so hơn nhiều với tốc độ của conngười.Khi thực hiện kiểm thử hoàn toàn test case một cách tự động luôn mất ít thờigian hơn so với việc kiểm thử test case đó một cách thủ công

xxiv

Trang 34

- Chi phí thấp: Đặc biệt, chi phí sử dụng kiểm thử tự động khá hấp dẫn và phù hợp,

có thể tiết kiệm được nhiều chi phí, thời gian cũng như nhân lực Do quá trình kiểmthử nhanh hơn thử thủ công nên nhân lực khi thực thi và bảo trì không nhiều

Nhược điểm:

- Khó bảo trì và mở rộng: Trong một dự án, để có thể mở rộng được phạm vi kiểmthử tự động sẽ khá khó so với những kiểm thử thủ công vì quá trình cập nhật vàchỉnh sử theo những yêu cầu của debug, thay đổi dữ liệu, cập nhật code mới

- Khả năng bao phủ kém: Do mở rộng nên sự đòi hỏi kỹ năng lập trình là rất cầnthiết và khá cầu kỳ để bao quát được việc kiểm thử tự động từ cơ bản đến việc xéttrên nhiều góc nhìn toàn diện

- Vấn đề công cụ và nhân lực: Hiện nay có nhiều công cụ hỗ trợ kiểm thử tự độngcũng khá tốt nhưng đem lại nhiều hạn chế và nhân lực chưa đạt yêu cầu dẫn đếnviệc có thể sử dụng một cách thành thạo sẽ gặp nhiều khó khăn và thách thức

Tầm quan trọng của kiểm thử tự động trong thời kỳ công nghiệp 4.0 : Với sự

bùng nổ của công nghệ thông tin như hiện nay thì automation test là một trong nhữngphần mềm ứng dụng đang chiếm xu thế và được ưa chuộng nhất Kéo theo đó nhữngnhu cầu về nhân lực trong lĩnh vực này đòi hỏi khác cao về chuyên môn, cần phải cónhững kỹ năng để lập trình và những kỹ năng để thao tác các phần mềm Bởi vậy,automation test khá cần thiết và thực tế trong thời đại hiện nay.[CITATION Tho21 \l

1033 ]

xxv

Trang 35

Tiểu kết chương 1:

Ở chương 1 đồ án đã trình bày được về:

Các kiến thức cơ bản về kiểm thử phần mềm

Sự khác nhau giữa kiểm thử thủ công và kiểm thử tự động

Ưu nhược điểm của kiểm thử tự động

Tầm quan trọng của kiểm thử tự động trong tương lai

Mặc dù kiểm thử tự động mang lại nhiều tiện ích, tuy nhiên vẫn gặp khó khăn khi cácphần tử về giao diện có sự thay đổi Để giải quyết được điều này, ở chương tiếp theo

em sẽ trình bày về học máy và ứng dụng học máy trong kiểm thử tự động

xxvi

Trang 36

CHƯƠNG 2 ỨNG DỤNG HỌC MÁY TRONG TRONG KIỂM THỬ TỰ ĐỘNG

2.1 Học máy (Machine Learning)

2.1.1 Tổng quan về học máy

Machine Learning gây nên cơn sốt công nghệ trên toàn thế giới trong vài năm nay Hàng loạt các ứng dụng sử dụng machine learning ra đời trên mọi lĩnh vực của cuộcsống, từ khoa học máy tính đến những ngành ít liên quan hơn như vật lý, hóa học, yhọc, chính trị Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnhcủa Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thốnggợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, ….Alphago, cỗ máy đánh cờ vây với khả năng tính toán trong một không gian có sốlượng phần tử còn nhiều hơn số lượng hạt trong vũ trụ, tối ưu hơn bất kì đại kì thủ nào,

là một trong rất nhiều ví dụ hùng hồn cho sự vượt trội của machine learning so với cácphương pháp cổ điển

Machine Learning là một tập con của AI Theo định nghĩa của Wikipedia, Machinelearning is the subfield of computer science that “gives computers the ability to learnwithout being explicitly programmed” Nói đơn giản, Machine Learning là một lĩnhvực nhỏ của Khoa Học Máy Tính, nó có khả năng tự học hỏi dựa trên dữ liệu đưa vào

mà không cần phải được lập trình cụ thể Với mục tiêu làm cho máy tính có những khảnăng nhận thức cơ bản của con người như nghe, nhìn, hiểu được ngôn ngữ, giải toán,lập trình, …và hỗ trợ con người trong việc xử lý một khối lượng thông tin khổng lồ màchúng ta phải đối mặt hàng ngày, hay còn gọi là Big Data.[CITATION VHT \l 1033 ]Trên thực tế có 4 dạng học máy cơ bản:

xxvii

Trang 37

Học có giám sát (supervised learning - SL)

Máy tính được học một số mẫu gồm đầu vào (Input) và đầu ra (Output) tương ứngtrước Đối với loại học này sẽ có hai pha là pha huấn luyện (training) và pha kiểm thử(testing) SL sẽ xem xét các tập huấn luyện này để từ đó có thể đưa ra dự đoán đầu racho 1 đầu vào mới chưa gặp bao giờ SL thường được sử dụng cho các bài toán phânlớp (classification) Ví dụ một “email” có thể được gán nhãn “thư rác” hoặc “khôngphải thư rác” và đưa vào mô hình SL để phân loại

Học không giám sát (Unsupervised learning - UL)

Đây là một kĩ thuật của máy học nhằm tìm ra một mô hình hay cấu trúc bị ẩn bởi tập

dữ liệu không được gán nhãn cho trước UL khác với SL là không thể xác định trướcoutput từ tập dữ liệu huấn luyện được Tùy thuộc vào tập huấn luyện kết quả output sẽkhác nhau Trái ngược lại với SL, tạp dữ liệu huấn luyện của UL không do con ngườigán nhãn, máy tính sẽ phải tự học hoàn toàn Ứng dụng phổ biến nhất của học khônggiám sát là gom cụm (cluster) Ví dụ, Facebook có thể gợi ý kết bạn có nhiều bạnchung cho bạn, Google có thể gom các bài báo có nội dung gần nhau

Học bán giám sát (Semi-supervised learning - SSL)

Các bài toán khi chúng ta có một lượng lớn dữ liệu nhưng chỉ một phần trong số chúngđược gán nhãn được gọi là SSL Những bài toán thuộc nhóm này nằm giữa SL và UL

Ví dụ, một phần ảnh hoặc văn bản được gán nhãn (ví dụ bức ảnh về người, động vật

xxviiiHình 2 1 Các phương pháp học máy

Trang 38

hoặc các văn bản khoa học, chính trị) và phần lớn các bức ảnh/văn bản khác chưa đượcgán nhãn được thu thập từ internet

Học tăng cường (Reinforcement learning - RL)

Là các bài toán giúp cho hệ thống tự xác định hành vi dựa trên hoàn cảnh để đạt đượclợi ích cao nhất (maximizing the performance) Ví dụ, AlphaGo tự chơi với chính mìnhhàng trăm triệu ván chơi để tìm ra các nước đi mới tối ưu trong hàng tỉ tỉ lựa chọn.Một vài ứng dụng khác nữa của RL: Robot tự học, xe tự hành, hệ thống gợi ý(recommender systems), tự đặt lệnh mua chứng khoán,

2.1.2 Các bài toán đặc trưng trong học máy

Trong học máy có ba bài toán đặc trưng:

• Bài toán phân cụm

• Bài toán phân lớp

• Bài toán hồi quy

Phần lớn các bài toán Machine Learning có thể được thể hiện trong hình vẽ dưới đây:

xxix

Trang 39

Có hai phases lớn là giai đoạn đào tạo (training phase) và giai đoạn thử nghiệm(testing phase) Với các bài toán thuộc học có giám sát (Supervised learning), các cặp

dữ liệu (input, output), với các bài toán học không giám sát (Unsupervised learning),chỉ có input Hiểu đơn giản training là tập dữ liệu đưa vào huấn luyện sau dùng tậptesting để kiểm tra lại kết quả thông qua các bài toán hồi quy, phân lớp, …

Bài toán phân cụm

Bài toán phân cụm là 1 trong những bài toán của lĩnh vực học không giám sát(Unsupervised Learning), dữ liệu được mô tả trong bài toán không được dán nhãn haynói cách khác thì bài toán này không có đầu ra Trong trường hợp này, thuật toán sẽtìm cách phân cụm - chia dữ liệu thành từng nhóm có đặc điểm tương tự nhau, nhưngđồng thời đặc tính giữa các nhóm đó lại phải càng khác biệt càng tốt

Bài toán phân lớp

xxxHình 2 2 Mô hình chung cho các bài toán học máy

Trang 40

Bài toán phân lớp thuộc một nhánh ứng dụng chính của lĩnh vực học có giám sát(Supervised Learning) Và bài toán là quá trình phân lớp một đối tượng dữ liệu vàohay nhiều lớp đã cho trước nhờ một mô hình phân lớp (model) Mô hình này được xâydựng dựa trên một tập dữ liệu được xây dựng trước đó có gán nhãn (hay còn gọi làhuấn luyện) Quá trình phân lớp là quá trình gán nhãn cho đối tượng dữ liệu.

Như vậy, nhiệm vụ của bài toán phân lớp là cần tìm một mô hình phân lớp để khi có

dữ liệu mới thì xác định được dữ liệu đó thuộc vào lớp nào

Bài toán hồi quy

Đây là một phương pháp thống kê mà giá trị kỳ vọng của một hay nhiều biến ngẫunhiên được dự đoán dựa vào điều kiện của các biến ngẫu nhiên (đã tính toán khác) Cụthể có Linear Regression, Logistic Regression, Poisson Regression và học có giám sát.Phân tích hồi quy không chỉ là lựa chọn một đường cong phù hợp với tập dữ liệu mà

nó còn phải trùng khớp với một mô hình với các thành phần ngẫu nhiên (được gọi là

bộ dự đoán – predictor).[CITATION VHT \l 1033 ]

xxxiHình 2 3 Ví dụ về bài toán phân lớp

Ngày đăng: 15/05/2024, 18:45

HÌNH ẢNH LIÊN QUAN

Hình 3. 4 Tập dữ liệu Văn bản - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 4 Tập dữ liệu Văn bản (Trang 65)
Hình 3. 5 Tập dữ liệu Thanh lựa chọn - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 5 Tập dữ liệu Thanh lựa chọn (Trang 65)
Hình 3. 8 Giao diện trang chủ - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 8 Giao diện trang chủ (Trang 67)
Hình 3. 24 Mabl tìm kiếm văn bản được định cấu hình áp dụng tự chữa bệnh - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 24 Mabl tìm kiếm văn bản được định cấu hình áp dụng tự chữa bệnh (Trang 79)
Hình 3. 28 Chi tiết thuộc tính xác định đúng phần tử tương tự - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 28 Chi tiết thuộc tính xác định đúng phần tử tương tự (Trang 83)
Hình 3. 29 Kịch bản ca kiểm thử tương tự - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 29 Kịch bản ca kiểm thử tương tự (Trang 83)
Hình 3. 33 Giao diện màn chi tiết sản phẩm ban đầu - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 33 Giao diện màn chi tiết sản phẩm ban đầu (Trang 85)
Hình 3.   Giao diện của thanh công cụ ban đầu 32 - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. Giao diện của thanh công cụ ban đầu 32 (Trang 85)
Hình 3. 34 Mabl đưa khẳng định các phần tử - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 34 Mabl đưa khẳng định các phần tử (Trang 86)
Hình 3. 35 Kịch bản ca kiểm thử khẳng định phần tử - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 35 Kịch bản ca kiểm thử khẳng định phần tử (Trang 87)
Hình 3. 36 Giao diện của thanh công cụ sau khi thay đổi - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 36 Giao diện của thanh công cụ sau khi thay đổi (Trang 87)
Hình 3. 37 Giao diện của chi tiết sản phẩm sau khi thay đổi - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 37 Giao diện của chi tiết sản phẩm sau khi thay đổi (Trang 88)
Hình 3.   Mabl phát hiện khi có sự thay đổi phần tử thanh công cụ 38 - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. Mabl phát hiện khi có sự thay đổi phần tử thanh công cụ 38 (Trang 88)
Hình 3. 39 Mabl sử dụng phương pháp đưa ra nhận định - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 39 Mabl sử dụng phương pháp đưa ra nhận định (Trang 89)
Hình 3. 40 Giao diện màn Contact ban đầu - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
Hình 3. 40 Giao diện màn Contact ban đầu (Trang 90)
Bảng   Đánh giá kết quả thử nghiệm 2 - đồ án tốt nghiệp ứng dụng học máy trong kiểm thử tự động sử dụng công cụ mabl
ng Đánh giá kết quả thử nghiệm 2 (Trang 100)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w