Dữ liệu lớn, trí thông mình máy móc được dảo tạo giúp cho 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 điền, nên tâng trong thời gian ngắn, đưa ra các q
Trang 1NGHIÊN CUU UNG DUNG MOT SO CONG CU KIEM
THỬ CÓ ỨNG DỤNG TRÍ TUỆ NHÂN TẠO
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Trang 2LOI CAM ON Được sự phản công của Công Nghệ Thông Tim, trường Dại học Cổng nghệ, dưới sự Hướng dẫn của thấy PGS T8 Trương Anh Hoàng, tôi đã hoàn thành luận văn
Tổ hoàn thành luận văn nảy tôi xin cảm ơn cáo Thầy cô trong khoa Công kghệ Thông
Tin, trường Dại học Công nghệ đã nhiệt tình đạy đỗ, càng cắp phương pháp, kiến thúc
trong suốt thời gian học tập Tôi xin chân thành cam on PGS TS Truong Anh Hoàng đã
tận tinh hướng, dẫn và chí bảo tôi rất nhiều cả về kiến thức cũng như phương pháp làm việc trona quả trình thực hiện vá hoan thanh đồ án
Mac đủ đã cố gắng và tích cực trong việc thực hiện luận văn nhưng không thể tránh được nhữmg sai sót nhật định, tôi rất meng nhận được sự đóng góp của các thầy cô và các bạn đồng nghiệp để hoàn chỉnh luận văn và có hướng phát triển hơn nữa
Toi xan chân thành cầm ơn.
Trang 3LOI CAM DOAN
Tôi xin cam đoan số liệu vả kết quả nghiên cứu trong luận văn nảy là trung thực và chua hễ được sử dụng để bảo vệ học vị nào Mợi sự giúp đỡ trong luận văn này đã được cắm ơn vả các thông tin trích dẫn trong luận văn đã dược chỉ rõ nguồn gốc rõ ràng và dược phép công bỏ
Hà Nội, ngày tháng năm 2030 Người thực hiện
Trần Thị Hoan
Trang 4DANH MUC BANG
8
g
1.3.2 Huấn luyện học máy: Íp dụng tập đầu vào coi
1.3.4 Huấn luyện bạc máy: Xác mình hank vi - 10
Trang 5im tra hộp lựa chon
3.10 So sánh các công cụ The HH HH Hư Hi ng re gưe esses AO
Trang 6AI Artificial intelligence Trí tuệ nhân tạo
APL | Application Programming Giao diện lập trình ứng dung
Interface
cop Continuous Deployment Phát triển liên tục
css Cascading Style Sheet Định kigu theo Lang
DOM | Document Object Model Mô hình đối tượng Tài liệu
HIML — | Hypertext Markup Language Ngôn ngữ dành dấu siêu văn bán
IDE | Integrited Development Mỗi trường phải triển tích hợp
Enviroumert
P(D) | Pass(Different) Thông qua nhưng tìm thấy thay
đổi PDK | Portable Document Format Định dạng tải liệu di động
Trang 7DANH MUC BANG
Bang 3.4: Kiểm tra hộp nhập văn bản co c2 2t coi cư ¬—- Bang 3.5: Kiểm tra hộp hra chọn - - - 33 Bang 3.6: Kiểm tra thanh thực đơn
Bảng 3.7: Kiểm tra thanh biểu đỏ à cooccccencteeerterrrtrrrrrrrrrrrirrrrriic.38
Băng 3.11: Kết quả theo loại thay đổi - - 36 Bắng 3.11: Kết quả tổng số ca theo phần trăm - 38 Bằng 3.12: Kết quả loại thay đổi theo phần trăm nan 11s 38
DANH MUC BLiU DO
Tiểu để 3.1: Kết quả tổng số ca theo phần trăm - 37
Biểu đỗ 3.2: Kết quả loại phần tử theo phẩn trăm 22 0222111 rrer 39 Biểu đỗ 3.3: Kết quá loại thay đổi theo phần trăm seo 40
vi
Trang 8Xu thể trí tuệ nhân tạo trong kiểm thử tự động 5
Pham vi nghiên cứu của luận văn -
Huần luyện học máy trong kiểm thử tự động,
Hình 3.4: Trang giao diện “Blog”
Hình 3.5: Trang giao diện “Joim Uä”
Hình 3.6: lrang giao diện “Abơtt” àccceseeeeree
Tình 3.13: Applilools - Kết quả ca kiểm thử - - 26
Hình 3.15: Testcomplete - Kết quả ca kiểm thử - 28 Hình 3.16: Mabl - Kết quả ca kiểm thử o2 22tr cver
vũ
Trang 9LỜI MỞ ĐẦU
Công nghệ đang phát triển với tốc độ cực nhanh và gi vai trò quan trọng trang cuộc
sống, 'Trên phạm vi toán câu, các doanh nghiệm đang tụng ra các ứng dụng được sử dụng, bởi hàng ngàn, hàng triệu người trên nhiều nên tảng khác nhau Nó đổi hỏi các doanh nghiệp phải cung cấp sân phẩm nhanh và liên tụe Trước mỗi lần ra mắt sản phẩm những (mg dung do phải dược kiểm thử dé đâm bão sự lối ưu, dùng đẫn cho người dùng dẫu cuấi Kiểm thữ thủ công dang đơn giản dẫn không đáp ứng được nha cầu hiện lại Quả
trinh kiếm thử phân mém cần thông minh hơn, nhanh hơn và tốt hon
Các công nghệ hiện tại như trí tuệ nhân tạo, học máy dang ngảy cảng dược áp dụng đễ dây nhanh quả trình phát triển phản mẻm Việc phát triển phản mềm sứ dựng trí tuệ nhân tao dang ở giai doạn khởi dâu Các công cụ kiếm thử dựa vào trí tuệ nhân tạo từ phân tích
nã nguồn sinh ca kiểm thử đơn vị, đến các nên tâng kiểm th toàn bộ
Kiểm thủ hệ thống dựa vào giao điện đang là xu thế rong bối cảnh của kiêm thử tự động
và nó vẫn lả điểm nhức nhối lớn, bởi vị chứng có xu hưởng “để võ, tốn kém để viết, và tổn thời gian đề thực hiện” [1]
Với ơn kiểm thể thủ công, người kiểm thử thực hiện các ea kiểm thử lần lượt từng buớc
và đưa ra kết luận sau mỗi bước thực hiên Các ca kiểm thử cần được thực hiện trên tật cả các giao điện, nên tảng hễ trọ thủ cổng Trong hường hợp các bản vá được cập nhật liên
tục, người kiểm thử cần lặp di lặp lại ca kiểm thử liên tục
Với kiểm thử tự dộng, người kiểm thử tạo ra các lệnh để công cụ thực hiện ca kiểm thử và
so sảnh kết quả đầu ra thay vì chạy thủ công, Bài loán chạy cá kiểm thử lặp lại nhiều lồn
được giải quyết Khi giao điện thay đổi phẫu tử, người kiểm thú cân cập nhật lại cáo lệnh
Một vài cá kiển 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 hãng trầm, hàng nghỉn ca kiếm thử sẽ là bài toán vẻ thời gian và độ chính xác
Đẳng sự kết hợp trí tuệ nhân tạo và kiểm thử tự động các bài toán kiểm thử giao diễn dan
dược giải quyết Dữ liệu lớn, trí thông mình máy móc được dảo tạo giúp cho 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 điền, nên tâng trong thời
gian ngắn, đưa ra các quyết luận cuỗi cùng về ca kiểm Ihử một cách thông mình như cơn
người Các ca kiểm thử được sinh ra, cập nhật tự động phù hợp với hoàn cảnh ứng dụng
xả không cân người kiểm thử cập nhật các đông lệnh
‘tw đỏ, học viên muốn tìm hiểu yê ung dụng của trí tuệ nhân tạo trong kiểm thử tự động,
như thể rảo và tội vải công cụ có sử dụng trì tuệ nhận tạo: “Nghiên củu ứng dụng ruột số
công cụ kiểm thử có ứng đụng trí tuệ nhân lao”
1
Trang 10Phạm vi nghiên cứu: Trí tuệ nhân tạo và học máy được ứng dụng trong cáo lĩnh vực của
kiểm thi, vi dy như kiểm thứ xác mình giao diện, kiểm thir API, kiểm thứ báo mật Phạm
vi của luận văn lä đưa ra cái nhìn tổng quát về trí tuệ nhân tạo trong kiếm thử giao điện tư
động dựa vào học máy Bên cạnh đó, luận văn còn tìm hiểu trí tuệ nhân tạo dược sứ dụng, như thể nào trong một vài công cụ kiểm thử giao điện
Phương pháp nghiên cứu: Lý thuyết liên quan đến kiểm thử tự động trí tuệ nhân tạo và môi liên hệ được nghiên cúu Sau đó học viên lựa chon va tim hiểu về các công cụ kiểm
thử giao điên cỏ ứng đụng trí tuệ nhân tạo (Applitoels, Testim.io, Testcomplete, Mabl) và
thực hiện các ca kiểm thử trên các công cụ đó để đưa ta kết quả thực hiện Để kết quả đánh giá cô thêm phẩn khách quan, học viên dã thực hiện cuộc khảo sat quy mé nhỏ về các công cụ được sử đụng trong luận văn, đối tượng tham gia là déng nghiệp của học viên Cuối củng, đựa vào kết quả nghiên cứu lý thuyết, kết quả thực nghiệm và kết quả khảo sát, học viên đưa ra những phân tích và đánh giả và để xuất hướng phát triển
Câu trúc luận văn: Nội đung chính của luận văn được trình bảy qua bắn chương
Chương 1 Trí tuệ nhân tạo trong kiếm thử phần mắm tự động
Chương này trình bày về các khái niệm kiểm thử tự động, trí tuệ nhân tạo, học máy, xu
thể sử dụng học máy vào kiểm thứ phần mềm tự động nói chung và kiểm thứ giao diện tự
động nỏi riêng Việc huận luyện học máy trong kiểm thử giao diện tự dộng cũng dược chi
Ta trong chong nay
Chương 2 Một số công eụ kiểm thử giao điện tự động có ứng dụng tri tuệ nhân tạo
Chương này trình bảy vẻ một số công cụ kiểm thử giao điện có ứng dụng trí tuệ nhân tạo,
đó là Applilools, Testirm.io, Testeomplete, Mabl và cách trí Luệ rhân tạo được sử dụng
Trang 11
Sau phân lý thuyết và thực nghiệm ở ba chương trước, kết luận và dễ xuất hướng phát
triển của học viên được lrình bị
ở chương này
Trang 12'Trong kiểm thứ phần mềm, kiểm thử tự động là việc sử dụng phần mềm tách biệt với
phan mền đang được kiểm Ira để kiểm soát việc thực hiện oa kiểm thứ và so sánh kết quả thực tế với kết quả dự đoán [2] Nó được sử đụng nhiều lẳn cho kiểm thử hếi quy Người
kiểm thử lạo cáo tập lệnh và chạy tập lênh, về cơ bản nó là sự tự đồng hóa ơn kiểm thủ thả
công Kiếm thử tự động cũng được sử đụng đề kiếm tra khả năng tải và hiệu năng của ứng,
đụng Mục tiêu chính của kiếm thử tự động là giảm kiểm thử thủ công, tăng hiệu quả
kiểm thứ vả giá trị của phần mềm
Trí biệ nhân lạo là gi?
Trong khoa học máy tính, trí tuệ nhân tạo (tên tiếng anh là Artificial Intelligence - A1 ) là
trị thông minh được thể hiện bằng máy móc Nó xứ lý những phép tỉnh cấp cao, vẫn dé phức tạp và hỗ trợ hệ thống đưa ra những quyết định nhằm tăng cường độ chính xác, như hình 1.1 Thông thường, thuật ngữ trí tuệ nhân tạo được dùng để mô tả máy móc bắt
chước nhận thức cũa con người như học tập và giải quyi I3ll4| Ví dụ như các
ung, dụng dễ giúp tải xé tim các tuyển dường hiệu quả, đữ liệu thời gian thực của các
tuyển đường dược truyền vẻ và phân tích, học hỏi dễ ứng dụng đưa ra kết luận về tuyến
đường,
lọc máy là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiễn cửu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ đữ liệu đề giải quyết những vẫn đề cụ thể, Vì dụ như các máy có thể "học" cách phân loại thư điện tứ xem có phải thư rác hay không và tự dòng xếp thư vào thư mục tương ứng, Học máy rất gần với suy diễn thống
kê tuy có khác nhau về thưệt ngữ [3] Học máy nghiền cứu cách thức đẻ mô hình hóa bài
toán cho phép máy tỉnh tự động hiểu, xử lý và học từ đứ liệu để thực thú nhiệm vụ được
giao cũng như cách đánh giá giúp tăng tỉnh hiệu quả
1.3 Xu thế sử dụng học máy frong kiểm thử tự động
Việc sử đựng trí tuệ nhân tạo trong phát triển phần mềm vẫn còn ở mức độ tự chủ thập hon nhiều so với các lĩnh vực phát triển hơn như hệ thống tự lái hoặc điều khiến hỗ trợ giọng nói Ứng đựng của AI trong các công cụ kiếm thử phân mềm tập trung vào việc làm cho vòng đời phát triển phân mễm trở nên dễ dang hon [Enh 1.2 chi ra viée tri tuệ nhân
4
Trang 13tạo sẽ học việc quan sát và đưa ra quyết định của con người trong kiêm thử thủ công đề tự động đưa ra quyết Học máy có thể được sử dụng đề giúp tự động hóa và giảm số lượng,
các nhiệm vụ thủ công trong phát triển vả thử nghiệm [5]
Xử lý VẤN đề phức tạp
TTâng cường độ chỉnh xác Thực hiện phép tỉnh cấp cao
Hình 1.1: Tri tuệ nhân tạo"
se ¥ FEELS Ty ding chay ca kiém thử ‘i a
va so sánh kết qua thực tế với kết quả mong đợi
Hình 1.2: Xu thể trí tuệ nhân tạo trong kiểm thử tự động?
Người kiểm thử có sự thông minh và khả năng quan sát trạng thái kết quả, máy kiểm thử
có hiệu suất cao Đề nâng cao hiệu quả và giảm chi phí chất lượng, cân cải thiện kiểm thử phần mềm bằng cách đưa ra hành vi kiểm thử tự động thông mình thứ có khả năng bắt chước hình vi con người [6] Trong kiểm thử phần mềm, một vấn dé được phát hiện ra
'https:/Avww.edureka.co/blog/types-of-artificial-intelligence/
2https://viblo.asia/p/kiem-thu-tu-dong-ung-dung-tri-tue-nhan-tao-ai-ai-test-automation-maGK7WSOKj2
5
Trang 14sau quả trình áp dụng đầu vảo ứng dụng, so sảnh kết quả với mong đợi đầu ra Nó chính
xác với những gì học may làm Một tập đầu vao được cung cấp cho một thuật toán đảo
tao, Trong quá trình học tập có giám sát, câu trả lời đúng cho mỗi tập đầu vào cũng được
cung cấp cho thuật toán đảo tạo Công việc của hệ thông học máy lá lặp đi lặp lại sự cầu hình lại "nội bộ của bộ não”, ngây càng tốt hơn trong việc cung cấp các câu trả lời đúng dựa trên tập đầu vào đã được cung cấp [7] Do đó, những hệ thống ML đã và đang được
nghiên cửu phát triển đều cung cấp những lợi ích trực tiếp cho việc tự động hóa kiểm thử
phan mém
Với kiểm thử tự động thông thường, con người viết các dòng lệnh đề thực hiện ca kiểm
thử tự động, sau đó công cụ sẽ thực hiện chạy vả so sánh đưa ra kết quả dựa vào các dòng, lệnh đã được viết; với kiêm thử tự động có ứng dụng trí tuệ nhân tạo, việc tạo ca kiểm thử
và thực hiện so sánh kết quả đêu được công cụ thực hiện được mô tả ở hình 1.5 Ví dụ
với ca kiêm thử xác mình phân tử “VIEW MORE” Hình 1.3 là đoạn lệnh thực hiện với
công cu Selenium bình thường, khi ca kiểm thử được chạy, việc so sánh kết quả chỉ dừng,
ở thực hiện đúng nội dung “verify text” and “verify not text”; néu muén so sảnh cảng, chính xác, cảng nhiêu câu lệnh cần được viết Nhưng với công cụ có trí tuệ nhân tạo (ví
du Applitools, Testim.io, Testcomplete, Mabl ), dòng lệnh được rút gọn, nhưng sự so
sánh đưa ra kết quả lại dựa trên rất nhiều tiêu chỉ như so sánh mảu sắc, nội dung, sự sai
khác đền từng đơn vị điểm ảnh Hình 1.4 là ví dụ đỏng lệnh với Applitools Với những
trường hợp phức tạp như dữ liệu biểu đô bảng, với các công cụ kiểm thử tự động đơn thuần, việc viết ca kiêm thử cũng rát phức tạp, nhưng nó được giải quyết chỉ bằng một vài
dòng lệnh với công cụ có ứng dụng trí tuệ nhân tạo (vỉ dụ như Testcomplete)
Command | Target Value
5 vertynottext id=comp-ke3 NotVIEWER
adgmk-inner- MORE
Hình 1.3: Vi dụ bộ lệnh Selenium
Trang 15Command | Target Value
dụng trí tuệ nhân tạo cũng có thể tự sinh ca kiểm thử, con người chỉ cân trỏ cho công cụ
biết ứng dụng cân sinh ca kiểm thử ở đâu Khi một đoạn mã thay đổi ML cũng có khả
năng tính toán đẻ chỉ ra chính xác số lượng ca kiểm thử nhỏ nhất đề kiểm tra việc thay đổi đoạn mã ML cũng được sử dụng để tạo ca kiểm thử đảng tin cậy hơn, nó tìm hiểu và
quan sát cách ứng dụng thay đổi, sau đó tư đưa ra quyết định trong thời gian chạy vẻ việc
“Tạo ca kiêm thir et eens A
7
Trang 16
Phạm ví nghiên cửu của luận văn xoay quanh việc học táy dược sử dụng Irong kiểm thử
giao điện tự động dễ xác mình phần tử và việc một số sông cụ có ứng dụng trí tuệ nhân tao sit dung học máy như thê nào cfng được tìm hiểu ở chương 2
1.3 Huấn luyện học máy trong kiểm thử giao diện tự động
Hiện tại MU đã dang dược khám phá ap dụng, vào kiểm thử phản mềm và cách tiếp cận vấn để của để tải này di theo định hướng của Jasơn Arbon (giám đúc điều hành của công,
ty phan miểm tesLai, từng lam việc cho Google và Microsoft) về MT, được sử dung trong
kiểm thử giao điện [8]
1.3.1 Huấn luyện học máy: Nhận dạng trạng thái ứng dụng
Nhân dang trạng thái ứng dụng có thể dược thực hiện bằng cách cung cấp cho máy rất nhiều các mản hình và các nhãn được ghỉ như một kiểu của trang thái ứng dung Ví dư
ân hình đăng nhập và nhãn, màn lành kết quả tìm kiếm và nhấn .vv Nếu chang ta day cho may nhdn dang Wang thai img dung đang thuộc kiểu nào, giống như một người kiểm thử nhận dạng trạng thái ứng dụng họ đang kiểm tra, chúng cé thé chon kiếu tập đầu vào
để áp đựng vào ứng dụng tương ứng,
Đầu tiên, hàng ngàn ảnh chụp màu hình của ứng đựng thật được thu thập và phân loại theo nhóm trạng thái giao diệu người dùng Sau đó lả bước ghủ nhãn, thao tác ghú nhãn
cho mỗi màn hình như hình 1 6
Khi tất cả các nhẫn đã được hưu, một kho đữ Hệu đã ghỉ nhãn đã sẵn sảng để huấn huyện
ML, Hang ngàn trang được hiển thị rong chương trình ML, trong dé đầu vào là sự kết hop của các điểm ảnh trong ảnh chụp màn hình, củng với các phần tử DOM
Cập chối bệ thông học máy,
1ình 1.6: luận luyện học máy trong kiểm thứ tự động“
© _ Tập dầu vào lấn huyện học máy: Ảnh, thông tin phần thử DOM
© _ Tập dầu ra mong đợi huấn luyện học máy: nhãn chỉnh xác
“hfp:ffnplpads nmaạc.orgf2f1?/papers/AT-and-Machine-T.earning-ftor-Testers-Tason-Arbnn púf
§
Trang 17Quả trình đảo tạo có thé yéu cau hang gid de tinh toan Voi hé thong huan luyén hoc may
ảnh chup man hình, hoc may được quyết định là ghi nhãn thành công hay không cho từng
màn hình Mỗi lần ML nhận ra một màn hình bị ghỉ sai nhãn, nó sẽ thay đổi câu trúc bên trong và lặp lại đến khi ML ghi nhãn tốt nhất Nguồn dữ liệu đảo tạo thưa thớt, không chính xác hoặc không rõ ràng cỏ thể ngăn ML hoc tap
Khi quả trình này hoan tat, hé thong ML chap nhận ảnh chụp man hinh hoặc ảnh chụp nhanh của DOM của ứng dung ma khéng can nhãn chỉnh xác cho các mản hình, kẻ cả
man hinh đã huần luyện vả màn hình chưa từng thấy trước đỏ
Chất lượng ghi nhãn của ML thường được biểu thị thông qua biểu đỏ gọi là “Ma trận nhâm lẫn” Ma trận nhằm lẫn đơn giản là vẽ từng nhãn mản hình trên mỗi trục và chỉ ra
tân suất một màn hình bị nhằm với màn hình khác, hình 1.7 là ví dụ
Hình 1.7: Ma trận nhằm lân"
1.3.2 Huẩn luyện học may: Ap dung tap dau vao
Bước tiếp theo là dạy ML cách quyết định đâu là hành động chính xác dựa trên trạng thái
man hình ứng dụng Một hành động riêng lẻ là một tập “phản tử” vả “đầu vào” Ví dụ
phân tử là hộp tìm kiếm, đầu vào là hành động nhập đoạn văn bản tìm kiểm “Hà Nội” Dữ liêu huân luyện cần rất lớn, trong đó đầu vào ở đây là tập hợp tất cả các phân tử của màn
hình, nhãn, và đầu ra là tập của:
Shttp://uploads.pnsqe org/2017/papers/Al-and-Machine-Learning-for-Testers-Jason-Arbon pdf
9
Trang 18Việc học cách tạo ra các hành động trên các phân tủ giống con người cũng giống như đảo
tao phan loai nhãn Nội đưng màn hình và một phần tử eu thể được hiến thị trên mạng, mạng sẽ gợi ý một hành động cụ thế Nếu mạng gợi ý một hành động kì lạ, nó tự cấu hinh lại chính nó và cổ đến khi bắt đầu có những hành vị giống con người với ứng đụng,
1.3.3 Thực thẵML: Áp dụng thể giới thật
Ngày nay, ML co thế quyết định mét cach thang minh hanh déng nao duoc dua ra dia
trên trạng thái của ủng dụng ML thấy, bằng cách đơn giãn lá cỏ một chương trình khối chạy ứng dung trong trình giá lập hoặc trên thiết bị, chụp ảnh màn hình của ửng dụng va tai DOM hiện tại qua kết nổi gỡ lỗi đến ứng dụng Trình điều khiển ứng dụng thực hiện cuộc gợi dến trình điều khiển nên tang cụ thể để yêu cầu đữ liêu và chỉ cần chuyên thông, tin đến MU dễ quyết dịnh làm gì tiếp theo
Bay giờ ML đã quyết định làm gì tiếp theo, đầu ra của MT là một cặp phần tử vả tên hành động Trình điều khiển ứng đựng chỉ cần tìm phân tử vị trí hoặc xử lý trên màn hình và dựa trên hảnh động được đề xuất, gửi vòi phù hợp hoặc nhập văn ban Điều đảng chủ ý lả chỉ với hai phần ML được huấn luyện nay, chúng ta có một hệ thống có khá năng thông, minh khéam pha bat ky tng dung Không cần huấn luyện mới đề thực hiện các con đường,
suất mà trước day chi
giống con người và ur động khám phá cáo sự cổ hoặc vấn để
được thực hiện thông qua hướng dẫn sử dụng của con người thử nghiệm, hoặc con nguồi
viết hàng ngàn tập lệnh kiểm tra giao điện người đủng tự đêng Trên hết, cách tiếp cận
MML này là áp dựng cho tất cả các ứng dụng ngay lập tức - không cân con người sứ dụng
img dung theo cách thủ công hoặc viết tập lệnh kiếm tra
1.3.4 Huấn luyện học máy: Xác mình hành ví
Bay giờ, các người máy ML có thể điển khiến ứng dụng thông minh như con người, nhưng cèn về van để xác minh? Làm thế nào người máy MT biết ứng dung có hành vi dung hay sai Cé ba cach tiép cin cho phép nguéi may ML xác minh hành vi:
® Tự động kiểm tra chúc năng phổ biến, có thể phát hiện vẫn đẻ
œ_ TIuẫn hiện học máy dựa trên các ví dụ mẫu về lãi
Trang 19®_ Cơn người kiểm tra các luồng trước đó, sau đó các người máy sẽ thông bao bat ky
sự khác biệt nào trong lần chạy tiếp theo
Tự động kiểm tra chức năng pl có thể phát hiện ra lỗi là đông xác mình đầu liên
của một ứng dụng xác minh Ở mỗi bước, một trình điểu khiến ứng dụng kiểm tra bất kỳ
thoai chita ki tz “sory”, “try ngain”, “opps” ) của lỗi thường gặp trong Gng dung
Phương thức phát hiện lỗi, vẫn để mạnh nhất năm ở kha ming ghi lai mọi ánh chup man hình, DOM và chuối hành động thực hiện trong mọi bái thứ nghiệm trên ứng dụng Con người sau đó nhanh chóng xác mình hành ví vượt qua hay thất bại Trong các lần chạy về sau, so sánh dữ liệu giữa lần chạy cũ và mới tiết lộ:
ø_ Việc chạy giống hột nhau, ứng dụng vẫn hoại dộng chỉnh xác
© Lan chay không giống nhau và lỗi mới trong hoại đồng ứng dụng,
©_ Lần chạy không giống nhau nhưng phát hiện ra phần tứ hoặc dường dân mới trong,
ứng dụng Con người xem xét chúc rững chính xác, và/hoặc lỗi
Các mỗ hình ML tổng quát rất mạnh mế đổi với những thay đổi trong câu trúc ứng dụng, thiết kế và thậm chỉ chủng nhận ra chức năng mới ilệ thông kiểm thử dựa trên ML đã lâm giảm nhụ cầu đối với kiểm thứ hỗi quy thủ sông hoặc tự động cỗ điển Các kịch ban
và mã kiểm tra dược thay thế bằng huẳn luyện máy tương tác với các ứng dụng thông qua các API có khả năng kiểm thử
Trang 20CHUONG 2 GIỚI THIẾU VẺ CÁC CÔNG CỰ
Một số công cụ có ứng dụng trí tuệ nhân tạo được học viên tim hiểu và tiên hành thực
nghiệm dé la Applitools, Testim.io, Testeomplete va Mabl, Hoe vién Iva chon các công
cụ vì nó nằm trong danh sách các công cu xu thé vé img dung tri tué nhn tao trong cong
cụ kiếm thử tư động và nó hỗ trợ các bản đùng thử cho người đứng, Khi thời gián cho
phép, học viên sẽ tìm hiểu thêm œ
bộ mắn hìnhề
Trong quá trình thực thi kiểm thủ, mọi kiểm tra thông qua Appliteols API tạo ra một ảnh chụp màn hình và tãi lên một địch vụ chuyên dụng (máy chủ đôi raắt) để so sánh Tại đây, các thuật toán thị giác máy tính (CV) dược sử dụng, chỉ để bảo cáo sự khác biệt có thể nhan thay Sau do, quan ly kiểm thử dõi mắt có thê dược sử dụng đễ xem xét chỉ tiết kết quả kiêm thứ Các thay đổi dược phẻ duyệt, từ chối hoặc bỏ qua, trong dé các thay dỏi tương lự được nhóm lại với nhau để lãng tốc quá trình bảo trì
Applitools hoat dng nhu thé nao?
® Khung kiểm thủ tự động: cài đặt trên máy cục bộ của người dúng để tạo, chạy ca
© AI trực quan Apphtools (tên tiếng anh là Applteols Visual AI) hay còn gọi là
“Byes” năm trên đảm mây Appbtools, so sánh sự khác biệt về giao diện và thông, báo kết quả
“hữpe:⁄applitols.conihdorials/selenium-ide
Trang 21Phan tich nguyén nhan géc Applitools (tén tiéng anh la Applitools Root Cause
Analysis): nam trén dam mây Applitools, quản lý kết quả so sánh
Hình 2.1: Applitools - hoạt động như thể nào”
Khi ca kiểm thử được chạy lần đầu tiên trên ứng dụng, máy chủ AI chỉ lưu trữ ảnh chụp
man hinh dưới dang anh cơ sở (tên tiếng anh :baseline) Khi một ca kiểm thử tương tự
được chạy lần tiếp theo, tập ảnh chụp man hình mới được gọi là ảnh kiểm tra (tên tiếng
anh: checkpomt), Eyes sẽ so sảnh ảnh cơ sở vả ảnh kiểm tra đề đưa ra quyết định [9]
3.1.2 AI trong Applitools
Thị giác máy tính là công nghệ được sử dụng cho Eyes AI được xử lý trên đám mây Applitools Các thuật toán chỉ bảo cáo sự khách biệt về giao điện người dùng có ÿ nghĩa
và có thê cảm nhận được bằng mắt người
Công nghệ của Applitools cho phép xác nhận rằng câu trúc vân giỏng nhau, mặc đủ nội
dung đã thay đổi Thay vì có một liên kết tĩnh giữa mọi ảnh kiểm tra vả ảnh cơ sở tương
ứng, Eyes so sánh một chuỗi các hình ảnh kiểm tra với một chuối các hình ảnh cơ sở, cho
phép các điểm kiểm tra cỏ thẻ được thêm hoặc xỏa Sau đỏ, giống như một chương trinh
"khác biệt" bằng văn ban, Eyes tim thay hinh anh đã được thêm hoặc xóa cũng như hình
ảnh có hình ảnh đường cơ sở tương ứng và khớp hoặc không khớp Eyes sau đó cho phép
bạn xác minh cả hai điểm kiểm tra hiện có vả đảm bão rằng tập hợp các hình ảnh cơ sở
Jhttps://applitools, com/tutorials/selenium-java html
13
Trang 22được cập nhật Bởi vi AI không biết sự khác biệt lả do tính năng mới hay lỗi thực sự, do
do nó sẽ đợi con người đánh dau thủ công là thông qua hay thất bại
Các bước so sánh và kết quả kiểm tra: Khi ca kiểm thử được thực thi, Eyes xác minh toàn
bộ chuối ảnh kiểm tra đối với chuối ảnh cơ sở Kết quả kiểm tra bao gồm một chuối các
bước, mỗi bước biểu thị một điểm kiểm tra bị thiểu, một điểm kiểm tra mới, một điểm
kiểm tra phủ hợp với đối tác cơ sở của nó hoặc một điểm khác với nó
Ví dụ, chuỗi ảnh cơ sở bao gồm 5 ảnh:
bh le [SH me
Hình 2.2: Applitools - vi dụ ảnh cơ sở
Va chuỗi ảnh kiểm tra:
Hinh 2.3: Applitools - vi du anh kiểm tra
Sự thay đổi của chuối ảnh kiểm tra: anh B bị xóa, ảnh C bị thay bởi ảnh C1, anh F va G được thêm mới, ảnh A, D, E không thay đổi Eyes sẽ phát hiện sự giỏng khác giữa hai
chuỗi ảnh:
© Gidng: Eyes tim thấy ảnh cơ sở và ảnh kiểm tra giống nhau
e Khác: Eyes tim thay ảnh cơ sở và ảnh kiểm tra về cơ bản là khớp nhau nhưng cỏ một phân khác biệt
© Thiéu: Eyes khéng tim thay ảnh kiểm tra tương ứng với ảnh cơ sở
« Mới: Eyes phát hiện ra ảnh cơ sở mới
2.2 Testim.io
2.2.1 Testim.io la gì?
Testim.io là công cụ kiểm thử tự đông sử dụng học máy đề giúp các nhả phát triển thực
hiện việc soạn thảo, thực hiện vả bảo trì các ca kiểm thử tự động Nó được chạy trên đám
mây Amazon Người dùng cỏ thể tạo các bài kiểm tra trong vải phút, chạy song song hàng,
ngản ca kiểm thử trên các trình duyệt khác nhau, tích hợp với CƯCD và các công cụ cộng tác hiện cỏ của công cụ, v.v
Công cụ đã giới thiệu khái niệm vẻ định vị thông minh Trí tuệ nhân tạo bên đưới nên tảng trong thời gian thực, phân tích tất cả các đổi tượng DOM của một trang vả trích xuất
14
Trang 23các đối tượng và thuộc tỉnh của nó Cuối cùng, AT quyết định chiến lược tốt nhất đẻ xác đình vị trí một phân tử cụ thẻ dựa trên phân tích nàyŠ
Do đó, ngay cả khi nhà phát triên thay đổi thuộc tính của một yêu tố, thử nghiệm vẫn tiếp
tục chạy và điều này dân đền các thử nghiệm én định hơn Do đó, việc soạn thảo và thực hiện các bài kiểm tra tự động nhanh hơn và ôn định hơn nhiêu
2.2.2 Al trong Testim.io
Bộ định vị thông minh trong Testim.io là một ma trận bộ chọn có liên quan đến phần tử
cu thé Khi một phần tử được chọn trong khi ghi (nhấp, di chuột, nhập, v.v.) thuật toán của Testim.io sẽ phân tích hàng trăm thuộc tính được liên kết với phân tử Sau đó, nó gán trọng số cho các thuộc tính đẻ xác định duy nhát thành phân
Hình 2.4: Testim.io - bộ định vị thông minh
Và bộ định vị thông mình học hỏi với mỗi lần chạy thử Nều một số thuộc tỉnh thay đôi,
bộ định vị thông mình sẽ sử dụng các thuộc tính khác đẻ xác định thành phân Bằng cách nay, néu phan tt được thay đổi nhưng vẫn hoạt „ bộ định vị thông mình của Testim.io sé tim thay nó và giữ cho bai kiểm tra không bi 16i? 9 Ví dụ: khi phần tử
*VIEW MORE” được kich chuột, các thuộc tỉnh liên quan được đưa vào bộ định vị thông
minh: thuộc tỉnh của chỉnh phân tử “View More”, các thuộc tỉnh khác cỏ liên quan đến nỏ
Trang 24vao do, AT dua ra quyết định rằng ca kiểm thi kích vào phần Li “VIEW MORE? cf thanh
công hay không
2.3 TestComplete
2.3.3 TestComplete là gì”
TestComplete là công cụ kiểm thử tự động chức năng được phát triển bởi công ty phần mềm Smart3ear TestComplete cung cấp cho người kiểm tra khả năng tạo các bài kiểm
tra tự dộng cho các ứng dụng giao diện cục bộ, trình duyệt, hệ diều hành Sử dụng kỹ
thuật nhận dang đối tượng bằng AI giúp cho việc kiểm thử ồn định và có thẻ mở rộng khi
mã nguồn thay dỗi1
TestComplete hoạt động như thể nảo?
Khi ghi lại các bài kiểm tra, TestComplete tự động thêm các đối tượng vào kho lưu trữ
tại thời điểm thiết kế, Đải với
tản đồ lên Bạn cũng có thể thêm các đôi tượng bằng lay
mỗi đối lượng, TestComplete chi dinh các tiêu chí mô lä đối tượng này trong ứng dụng, Khi ánh xe cáo đối Lượng, TestCorplete so sánh chúng với các đối Lượng được lưu trữ
trong kho lưu trữ Bản đề tên và chỉ ánh xạ các đổi tượng không được ảnh xạ
Khi chạy thử nghiệm, TestComplcte sử dụng kho lưu trữ bản đỗ tên để tìm các đối tượng, trong ứng dụng dược thử nghiệm của bạn Nếu TestComplete khéng thé tim thay một dói tượng (ví dụ: nếu các thuộc tỉnh đổi tượng dã thay đổi hoặc có một số dối tượng cỏ các giá trị thuộc tính này), thử nghiệm thất bại Trong trường hợp này, bạn cần cập rhật các
Thông thưởng, Testcomplete rhận dạng các cửa số dua vào các thuộc tính của chúng (ví
dụ như tên lớp, chủ thích, định danh) Tuy nhiên, có những trường hợp Testcomplete
không thể truy cập vào các thuộc tính dé, hic nay Testcomplete kiêm tra bằng việc nắm tbắt các nội đung phân tử Dễ lam được điều đỏ, nhận dạng ký tự quang học (tên tiếng anh
là optical character reoognition) được sử dụng
Hinh ảnh dược chụp lại, sau đỏ dược dịch sang ký tự máy có thể dọc hiểu Công, cụ nay
có thể nhận dạng văn bản của phản tử giao điện người dùng cũng như văn băn từ các tập
tim được lãi lên
“hetps://smarthear com/prodnct:testcomplete/features/gui-nhject-recognition!
16
Trang 25Testeomplels giti dữ liệu cầu nhận dang ti dich vu web oredev.smaribear.com cia
SmartBpar Dịch vụ web này chuyển tiếp các yêu cầu dén “APT Google Vision” (dich vụ trên đám mây Google) và kết quả sau khi nhận đạng được chuyến lại trở về Testeomplete
2.4 Mabl
2.4.) Mabl la gi?
Mabl là công cụ kiểm thủ tự động phin mém, st dung hoc may dé gitp cdc nhom kỹ thuật kiểm tra hỏi quy Nó thu thập rất nhiều đữ liệu như thời gian chạy thứ, thời gian tái trang, ảnh chụp mản hình hiển thị các thay dỗi trực quan trong ứng dụng, v.v Dữ liệu đỏ dùng đễ đáo tạo cho các mô hình học máy giúp thông báo tốt xáu chơ người dùng khi ứng, dung có sự thay đối 12
Mabl hoạt động như thé nao?
Khi người dùng ghủ lại cá kiên thử với liệu ích “Trainer”, ảnh màn hình baselie sẽ được
chup lại Đối với những lần thực thí ca kiểm thử tương tự sau đó, ảnh chụp màn hình sẽ
được số gánh với ảnh Dạ: tác hay đối trực quan sẽ được gắn nhấn cảnh báo và đánh
đấu giúp người dùng để nhận biết
Al va ML được dùng đề học toàn bộ quá trình (hệ thông, mã lệnh, việc thực thị kiểm thủ,
và phát hiện lỗi trong hệ thống) Nhiéu ca kiểm thứ dược thực thị, Mabl học dược cảng, nhiều vẻ hệ thông và có thẻ tự động hóa mọi thử
Š thông báo lỗi cho người đúng bay mọi thứ vẫn hoạt động
trơn tru Học lập gia tăng dược áp dụng cho mô hình từ các lần cliay ca kiểm thử giúp giải quyết các vân để về biến thiên thời gian và chất lượng ban dau Bang cách từ chối hoặc chap nhan thông tin Miabl đưa ra, người đủng đang cung cập đữ liệu huấn luyện học máy
để cãi thiện chất lượng và cập nhật tăng cường mô hình
hetps:/wwrw mabl.comefeatnres
Trang 26Học máy được sử dụng để phát hiện lỗi trực quan và tăng hiệu năng ứng đụng Mỗi trang
ác ảnh
chụp màn hình, Mabl đưa ra quyết định về thâng báo đến người đùng sự thay đối và học
cách loại trừ các khu vực động là khu vực các thành phẩn thay đổi thường xuyên Mô hình thời gian chạy cũng được so sánh, cập nhật liên tục sau mỗi ca kiểm thứ
được truy cập trong ca thử nghiêm được chụp ảnh mmàn hình, bằng cách sơ sánh
Khi các thay dỗi dược dưa ra, các mô hình mỏi định kỳ kết hợp các thay déi moi dưới đụng thử nghiêm hoặc hánh trình, với những thay đổi đỏ tiếp tục chạy Nhưng đối với các
mô hình chỉnh xác hơn, có một nút khác có nhấn "Cập nhật đường cơ số", cho phép bạn cập nhật đường cơ sở tục quan của ứng dụng cho một bước cụ thể của hành trình hoặc
cho tất cả các bước của hành trình
Trang 27CHUONG 3 THUC NGHIEM
3.1 Phương thức thực nghiệm
3.1.1 Ý tưởng chung
Học viên sẽ mô phỏng lại các trường hợp lỗi giao diện hay gặp phải trên các phân tử, sau
đỏ chạy ca kiểm thử với các công cụ đã nói ở chương III đề xem các công cụ có phát hiện
ra lỗi hay không Đồng thời ca kiêm thử cũng được chạy trên một công cụ không ứng dụng trí tuệ nhân tạo là Selenium đề có sự so sánh
3.1.2 Môi trường thực hiện
Một trang web được học viên thiết kế đề thực nghiệm
«e_ Trang chủ: https://hoantrantb90.wixsite.com/food/ là trang blog về thức ăn
e_ Thảnh phân: Những thảnh phân quen thuộc của giao điện như mút, hộp văn bản, hộp lựa chọn, thanh thực đơn, biểu đồ được đưa vảo trang web
e Giao diễn trang web bao gồm: trang chủ như hình 3.1, trang *Portfolio” như hình
3.2, trang “Book” nhw hinh 3.3, trang *Bloek” như hình 3.4, trang *Join Us” như hinh 3.5, trang “About” nhu hinh 3.6