Tổng quan nghiên cứu

Trong bối cảnh công nghệ phần mềm phát triển thần tốc, việc đảm bảo chất lượng ứng dụng phục vụ hàng triệu người dùng trên đa nền tảng trở thành thách thức sống còn đối với các doanh nghiệp công nghệ. Phương thức kiểm thử tự động truyền thống bằng mã lệnh thường bộc lộ điểm nghẽn nghiêm trọng khi kịch bản kiểm thử rất dễ vỡ, đòi hỏi chi phí bảo trì chiếm từ 50% đến 70% tổng thời gian dự án mỗi khi giao diện người dùng có sự thay đổi. Luận văn thạc sĩ chuyên ngành Kỹ thuật phần mềm của tác giả Trần Thị Hoan, thực hiện năm 2020 tại Trường Đại học Công nghệ, Đại học Quốc gia Hà Nội dưới sự hướng dẫn của Phó Giáo sư Tiến sĩ Trương Anh Hoàng, tập trung giải quyết bài toán cốt lõi này thông qua đề tài nghiên cứu ứng dụng một số công cụ kiểm thử có ứng dụng trí tuệ nhân tạo.

Mục tiêu trọng tâm của công trình là phân tích sâu cơ chế học máy, thị giác máy tính và tiến hành thực nghiệm đối sánh hiệu năng giữa bốn công cụ kiểm thử thông minh tiêu biểu gồm Applitools, Testim.io, TestComplete, Mabl với công cụ tự động hóa tiêu chuẩn Selenium. Phạm vi nghiên cứu được triển khai trên hệ thống ứng dụng web thực nghiệm với 6 phân hệ giao diện hoàn chỉnh, trải qua 53 ca kiểm thử chuyên sâu nhằm đánh giá năng lực phát hiện biến đổi hình ảnh, nội dung, bố cục và màu sắc. Kết quả nghiên cứu mang lại ý nghĩa thực tiễn to lớn khi chứng minh các công cụ tích hợp trí tuệ nhân tạo có thể nâng tỷ lệ nhận diện lỗi giao diện từ 18,87% của phương pháp truyền thống lên mức 73,58% đến 77,36%, đồng thời rút ngắn thời gian thực thi xuống chỉ còn 9 giây mỗi ca kiểm thử, cung cấp cơ sở khoa học vững chắc cho quá trình chuyển đổi số trong kiểm thử phần mềm.

Cơ sở lý thuyết và phương pháp nghiên cứu

Khung lý thuyết áp dụng

Nghiên cứu được xây dựng dựa trên sự giao thoa giữa lý thuyết kiểm thử phần mềm tự động hiện đại và các kỹ thuật trí tuệ nhân tạo tiên tiến, bao gồm mô hình học máy có giám sát, học tăng cường và thị giác máy tính. Trọng tâm khung lý thuyết đi theo định hướng tiếp cận của chuyên gia Jason Arbon với mô hình huấn luyện kiểm thử giao diện gồm 4 giai đoạn logic chặt chẽ:

  1. Nhận dạng trạng thái ứng dụng: Thu thập hàng ngàn ảnh chụp màn hình kết hợp bóc tách cấu trúc mô hình đối tượng tài liệu để gán nhãn trạng thái giao diện, đánh giá độ chính xác thông qua ma trận nhầm lẫn.
  2. Áp dụng tập đầu vào: Dạy máy học tự động ánh xạ giữa trạng thái màn hình với các hành động tương tác phù hợp như nhấp chuột hoặc nhập dữ liệu văn bản.
  3. Thực thi tương tác thực tế: Trình điều khiển kết nối trực tiếp với ứng dụng để tự động thực hiện chuỗi hành vi khám phá thông minh mà không cần con người viết kịch bản chi tiết.
  4. Xác minh hành vi: Tự động phân tích và phát hiện sai lệch giao diện bằng cách so sánh ảnh cơ sở ban đầu với ảnh kiểm tra thực tế.

Bên cạnh đó, nghiên cứu hệ thống hóa 4 khái niệm cốt lõi: Thị giác máy tính trong phân tích điểm ảnh trực quan, Bộ định vị thông minh gán trọng số thuộc tính đa chiều, Nhận dạng ký tự quang học chuyển đổi hình ảnh thành văn bản máy học và Cơ chế tự phục hồi kịch bản kiểm thử khi giao diện biến đổi.

Phương pháp nghiên cứu

Nguồn dữ liệu của luận văn được thu thập từ quá trình thực nghiệm trực tiếp trên trang web chuyên dụng gồm 6 màn hình chức năng: Trang chủ, Portfolio, Book, Blog, Join Us và About. Cỡ mẫu nghiên cứu bao gồm 53 ca kiểm thử được thiết kế công phu trên 7 loại phần tử giao diện cơ bản: nội dung văn bản (6 ca), hình ảnh (2 ca), nút bấm tương tác (19 ca), hộp nhập văn bản (9 ca), thanh thực đơn (6 ca), hộp lựa chọn (10 ca) và biểu đồ dữ liệu (1 ca). Các phần tử này chịu tác động của 4 nhóm thay đổi thực tế gồm thay đổi nội dung (17 ca), thay đổi vị trí (9 ca), thay đổi màu sắc (3 ca) và thay đổi cấu trúc phần tử (24 ca).

Phương pháp chọn mẫu có chủ đích được áp dụng nhằm tái hiện chính xác các trường hợp lỗi giao diện phổ biến nhất trong các dự án phát triển phần mềm thực tế. Phương pháp phân tích dữ liệu kết hợp giữa phân tích định lượng đo lường tỷ lệ phát hiện lỗi thất bại, tỷ lệ phát hiện thay đổi có cảnh báo, thời gian thực thi và phân tích định tính thông qua bảng đối sánh 18 tiêu chí kỹ thuật. Dữ liệu thực nghiệm còn được củng cố bằng cuộc khảo sát đánh giá độ hài lòng của các kỹ sư kiểm thử phần mềm chuyên nghiệp, thực hiện hoàn tất trong năm 2020.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Quá trình thực nghiệm 53 ca kiểm thử trên các công cụ đã mang lại những phát hiện quan trọng có giá trị định lượng rõ ràng:

  1. Năng lực phát hiện thay đổi vượt trội: Applitools và TestComplete dẫn đầu về khả năng phát hiện biến đổi giao diện. Applitools phát hiện thành công 77,36% (tương đương 41 trên 53 ca, bao gồm 5 ca báo lỗi trực tiếp và 36 ca cảnh báo có biến đổi). TestComplete đạt tỷ lệ phát hiện lỗi tuyệt đối 73,58% (39 trên 53 ca trực tiếp phát hiện thất bại). Ngược lại, Selenium không có trí tuệ nhân tạo chỉ phát hiện được 18,87% (10 trên 53 ca) và bỏ qua tới 81,13% các lỗi giao diện thực tế.
  2. Sự phân hóa theo loại phần tử: Đối với phần tử văn bản và hình ảnh, Applitools và TestComplete đạt tỷ lệ nhận diện chính xác 100%. Riêng với phần tử biểu đồ dữ liệu phức tạp, TestComplete là công cụ duy nhất đạt tỷ lệ nhận diện 100% (1 trên 1 ca), trong khi tất cả các công cụ còn lại như Applitools, Testim.io, Mabl và Selenium đều đạt 0% do không thể bóc tách thuộc tính phần tử biểu đồ.
  3. Độ nhạy với các dạng thay đổi: Applitools và Mabl đạt độ chính xác 100% khi phát hiện các biến đổi về màu sắc (3 trên 3 ca) và đạt từ 88% đến 94% với thay đổi nội dung văn bản. Ngược lại, Testim.io và Selenium đạt 0% trong việc nhận biết thay đổi màu sắc. Về thay đổi vị trí phần tử, TestComplete đạt độ chính xác tuyệt đối 100% (9 trên 9 ca), vượt trội hơn mức 44% của Applitools, Testim.io và Mabl.
  4. Tối ưu hóa thời gian thực thi: Applitools ghi nhận tốc độ xử lý nhanh nhất với 9 giây cho mỗi ca kiểm thử, tiếp theo là Testim.io với 11 giây. TestComplete cần 60 giây và Mabl mất 90 giây cho mỗi lượt kiểm tra do quy trình phân tích mô hình đám mây chuyên sâu.

Thảo luận kết quả

Bản chất công nghệ nền tảng tạo nên sự khác biệt rõ rệt về hiệu năng giữa các công cụ. Applitools sử dụng công nghệ Visual AI và thị giác máy tính trên nền tảng đám mây, so sánh ma trận điểm ảnh giữa ảnh cơ sở và ảnh kiểm tra, từ đó nhận diện cực kỳ chuẩn xác các sai lệch về màu sắc, phông chữ và kích thước hiển thị. Testim.io ứng dụng bộ định vị thông minh dựa trên việc gán trọng số cho hàng trăm thuộc tính DOM, giúp kịch bản kiểm thử duy trì tính ổn định cao nhưng lại dễ bỏ sót các lỗi trực quan như sai lệch màu sắc hay thay đổi câu chữ nội dung.

TestComplete khai thác sức mạnh của công nghệ nhận dạng ký tự quang học tích hợp dịch vụ Google Cloud Vision API, cho phép khoanh vùng và dịch ảnh màn hình thành ký tự máy tính đọc được, giải thích lý do vì sao công cụ này xử lý xuất sắc các biểu đồ phức tạp và biến đổi vị trí không gian nhưng không nhận diện được mã màu giao diện. Mabl sử dụng công cụ Google Cloud Machine Learning Engine kết hợp Lighthouse để theo dõi chỉ số hiệu năng và học tăng cường qua từng lần chạy, giúp giảm thiểu cảnh báo sai theo thời gian.

Các dữ liệu thực nghiệm này khi biểu diễn qua biểu đồ cột phân bố tỷ lệ phát hiện theo phần tử và bảng ma trận đối sánh 18 tiêu chí kỹ thuật cho thấy một bức tranh toàn cảnh: không có một công cụ trí tuệ nhân tạo đơn lẻ nào hoàn hảo tuyệt đối cho mọi tình huống, mà mỗi giải pháp đều sở hữu thế mạnh chuyên biệt cần được phối hợp linh hoạt.

Đề xuất và khuyến nghị

Dựa trên kết quả nghiên cứu và thực nghiệm thực tế, bốn giải pháp chiến lược được đề xuất nhằm tối ưu hóa hoạt động kiểm thử tự động tại các tổ chức phát triển phần mềm:

  1. Tích hợp giải pháp thị giác máy tính Applitools vào luồng CI/CD: Doanh nghiệp nên áp dụng công nghệ Visual AI để tự động hóa 100% khâu kiểm tra hồi quy giao diện cho các sản phẩm web và ứng dụng di động có tần suất phát hành nhanh. Mục tiêu hướng tới là giảm 80% thời gian kiểm tra thủ công trong lộ trình 3 đến 6 tháng, do đội ngũ kỹ sư đảm bảo chất lượng phần mềm chủ trì triển khai.
  2. Triển khai cơ chế định vị thông minh Testim.io cho các ứng dụng web động: Các nhóm phát triển phần mềm cần áp dụng bộ định vị thông minh để khắc phục tình trạng kịch bản kiểm thử bị vỡ khi mã nguồn DOM liên tục cập nhật. Mục tiêu đặt ra là cắt giảm 70% chi phí và thời gian bảo trì mã kiểm thử trong vòng 6 tháng, do nhóm tự động hóa kiểm thử phụ trách.
  3. Ứng dụng công nghệ nhận dạng ký tự quang học TestComplete cho đồ họa phức tạp: Đối với các hệ thống báo cáo tài chính, bảng biểu phân tích hoặc tập tin tài liệu định dạng kỹ thuật số, doanh nghiệp nên sử dụng nhận dạng ký tự quang học để nâng cao độ chính xác kiểm thử lên trên 95% trong thời gian 4 tháng, do chuyên viên kiểm thử hệ thống chịu trách nhiệm.
  4. Thiết lập quy trình học tăng cường và cập nhật ảnh cơ sở định kỳ: Đội ngũ kỹ thuật cần xây dựng quy trình kết hợp giữa thuật toán học máy và sự phê duyệt của con người khi cập nhật ảnh chuẩn cơ sở trong Mabl và Applitools. Mục tiêu là kiểm soát tỷ lệ báo động giả xuống dưới 5% trong chu kỳ phát triển 6 tháng, dưới sự giám sát của Trưởng bộ phận Đảm bảo chất lượng.

Đối tượng nên tham khảo luận văn

Công trình nghiên cứu mang lại giá trị thực tiễn và học thuật phong phú cho 4 nhóm đối tượng trọng tâm:

  1. Kỹ sư kiểm thử tự động: Tiếp cận sâu sắc nguyên lý hoạt động của các thuật toán định vị thông minh, thị giác máy tính và nhận dạng ký tự quang học để xây dựng bộ khung kiểm thử tự phục hồi, hạn chế tối đa việc phải viết lại mã lệnh khi giao diện người dùng thay đổi.
  2. Trưởng nhóm công nghệ và Giám đốc kỹ thuật: Nắm bắt các số liệu thực nghiệm chuẩn xác từ 53 ca kiểm thử và bảng phân tích 18 tiêu chí kỹ thuật để lựa chọn giải pháp phần mềm tối ưu chi phí bản quyền, nâng cao năng suất của đường ống phân phối liên tục.
  3. Giảng viên và Nghiên cứu sinh ngành Công nghệ thông tin: Sử dụng công trình như một tài liệu tham khảo học thuật giá trị về ứng dụng của trí tuệ nhân tạo, học máy và thị giác máy tính trong kỹ thuật phần mềm hiện đại, mở ra các hướng nghiên cứu mở rộng về kiểm thử thông minh.
  4. Doanh nghiệp phát triển và gia công phần mềm: Ứng dụng các quy trình thực nghiệm chuẩn hóa để chuyển đổi mô hình từ kiểm thử thủ công truyền thống sang kiểm thử tự động thế hệ mới, gia tăng chất lượng sản phẩm bàn giao cho khách hàng toàn cầu.

Câu hỏi thường gặp

Công nghệ thị giác máy tính trong Applitools khác biệt như thế nào so với kiểm thử Selenium truyền thống? Selenium truyền thống chỉ kiểm tra các thuộc tính mã nguồn cố định dựa trên câu lệnh so sánh văn bản đơn thuần, dễ bị lỗi khi cấu trúc DOM thay đổi. Trong khi đó, Applitools sử dụng thuật toán thị giác máy tính trên đám mây để so sánh toàn diện hình ảnh thực tế với ảnh cơ sở chuẩn, phát hiện chính xác mọi sai lệch về bố cục, màu sắc và điểm ảnh với tỷ lệ nhận diện đạt 77,36% so với 18,87% của Selenium.

Tại sao Testim.io lại không phát hiện được sự thay đổi về màu sắc trong thực nghiệm? Testim.io tập trung vào công nghệ bộ định vị thông minh nhằm duy trì sự bền bỉ của kịch bản kiểm thử. Thuật toán phân tích và gán trọng số cho các thuộc tính liên kết của phần tử DOM để đảm bảo tìm thấy nút bấm hay ô nhập liệu ngay cả khi mã nguồn thay đổi. Do không phân tích dữ liệu điểm ảnh trực quan, Testim.io đạt 0% trong việc nhận diện biến đổi màu sắc giao diện.

Trong trường hợp nào dự án phần mềm nên ưu tiên sử dụng TestComplete? TestComplete là lựa chọn hàng đầu cho các ứng dụng có chứa nhiều biểu đồ dữ liệu phức tạp, báo cáo đồ họa hoặc tập tin văn bản số nhờ tích hợp công nghệ nhận dạng ký tự quang học kết nối Google Cloud Vision API. Thực nghiệm chứng minh đây là công cụ duy nhất đạt tỷ lệ phát hiện lỗi 100% đối với biểu đồ và đạt độ chính xác 100% khi phần tử thay đổi vị trí.

Cơ chế học tăng cường của Mabl hỗ trợ đội ngũ kiểm thử như thế nào? Mabl sử dụng bộ công cụ Google Cloud Machine Learning Engine để thu thập liên tục dữ liệu thời gian thực thi, tốc độ tải trang và ảnh chụp màn hình qua các lần chạy. Thông qua phản hồi phê duyệt hoặc từ chối của con người, mô hình sẽ tự động thích ứng với các khu vực động trên trang web, từ đó giảm thiểu tối đa các cảnh báo sai lệch trong các chu kỳ kiểm thử hồi quy tiếp theo.

Trí tuệ nhân tạo có thể thay thế hoàn toàn vai trò của kỹ sư kiểm thử thủ công không? Trí tuệ nhân tạo không thay thế hoàn toàn con người mà đóng vai trò trợ lực thông minh. Các công cụ học máy giải phóng kỹ sư khỏi các tác vụ lặp lại nhàm chán và nâng cao độ chính xác kiểm thử giao diện. Tuy nhiên, quyết định cuối cùng về việc một thay đổi trực quan là tính năng mới hay lỗi phần mềm vẫn đòi hỏi sự đánh giá, phê duyệt và tư duy thẩm định logic từ chuyên gia kiểm thử.

Kết luận

Luận văn thạc sĩ của tác giả Trần Thị Hoan đã đóng góp một công trình nghiên cứu thực nghiệm công phu, làm sáng tỏ tiềm năng to lớn của trí tuệ nhân tạo trong kiểm thử phần mềm tự động với 5 kết luận cốt lõi:

  • Khẳng định tính ưu việt vượt trội của trí tuệ nhân tạo trong việc giải quyết triệt để tính dễ vỡ và chi phí bảo trì tốn kém của kiểm thử giao diện truyền thống.
  • Xác lập bằng chứng thực nghiệm rõ ràng về năng lực phát hiện lỗi biến đổi giao diện của Applitools đạt 77,36% và TestComplete đạt 73,58%, vượt xa mức 18,87% của Selenium.
  • Chỉ rõ sự đánh đổi kỹ thuật giữa tốc độ thực thi siêu nhanh 9 giây của Applitools với khả năng xử lý biểu đồ chuyên sâu 60 giây của TestComplete.
  • Cung cấp bảng đối sánh 18 tiêu chí toàn diện giúp các tổ chức phần mềm định hình chiến lược lựa chọn công cụ kiểm thử tối ưu.
  • Xây dựng thành công phương pháp luận thực nghiệm khoa học từ khâu thiết kế mẫu thử, tạo lập lỗi giả lập đến phân tích dữ liệu đa chiều.

Trong lộ trình 12 tháng tiếp theo, nghiên cứu mở ra hướng phát triển mở rộng trên các ứng dụng di động đa nền tảng và kiểm thử giao diện lập trình ứng dụng thông minh. Các doanh nghiệp công nghệ nên nhanh chóng nắm bắt các phát hiện này để hiện đại hóa quy trình kiểm thử, bứt phá năng suất và nâng cao chất lượng sản phẩm phần mềm.