Phương pháp ứng dụng học máy cho kiểm thử ứng dụng di động

Một phần của tài liệu NGHIÊN CỨU PHÁT TRIỂN KỸ THUẬT VÀ GIẢI PHÁP KIỂM THỬ ỨNG DỤNG DI ĐỘNG (Trang 107 - 109)

DI ĐỘNG VÀ PHƯƠNG PHÁP PHÁT TRIỂN LINH HOẠT

3.3. Phương pháp ứng dụng học máy và đồ thị hóa kết quả kiểm thử

3.3.2. Phương pháp ứng dụng học máy cho kiểm thử ứng dụng di động

3.3.2.1. Đề xuất cách tiếp cận

Luận án đề xuất một phương pháp tiếp cận cho kiểm thử hướng ngữ cảnh bằng cách sử dụng heuristic và học máy (ML) và xây dựng công cụ Shinobi framework để kiểm thử ứng dụng web và ứng dụng web di động (sau đây gọi là Shinobi). Shinobi sử dụng ML để làm cho hoạt động kiểm thử thông minh hơn từ việc học hỏi kinh nghiệm từ những người kiểm thử theo thời gian trên cùng một ứng dụng. Shinobi cung cấp một tập hợp nhiều tính năng có thể được phân loại thành ba nhóm: (i) sử dụng ML để phát hiện các điều khiển và kiểu của chúng, sử dụng thư viện heuristic để đề xuất ý tưởng kiểm thử cho người kiểm thử. (ii) Sử dụng ML để nắm bắt và tìm hiểu tất cả các lần thực hiện kiểm thử và đề xuất ý tưởng kiểm thử cho việc thực hiện kiểm thử hiện tại. (iii) Báo cáo kết quả thực hiện kiểm thử kết hợp với chẩn đoán học được từ tất cả các lần thực hiện kiểm thử trước đó dưới dạng sơ đồ tư duy. Trong phạm vi của luận án này, công cụ Shinobi bước đầu thực hiện ở mức chứng minh ý tưởng (Proof of Concept- PoC) và khả năng ứng dụng của phương pháp. Nghiên cứu tập trung giải quyết 3 vấn đề, cụ thể: (1) nhận diện các điều khiển web bằng cách sử

dụng Tensorflow, Faster R-CNN [87] và gợi ý một tập hợp các giá trị heuristic cho các điều khiển (controls) kiểu số và DateTime; (2) nhận diện dữ liệu được nhập vào có ý nghĩa hay không; (3) thay đổi giữa các phiên bản ứng dụng thông qua ML để đề xuất ý tưởng kiểm thử. Shinobi có thể được coi là “Trợ lý kiểm thử” cho những kỹ sư kiểm thử, giúp cải thiện chất lượng kiểm thử và hỗ trợ huấn luyện kỹ sư mới.

Vấn đề cần giải quyết khi triển khai hoạt động kiểm thử ứng dụng web là nhận biết các điều khiển web (web controls như textbox, button …) và kiểu của chúng. Việc phân tích mã HTML, CSS, JavaScript để nhận diện các đối tượng là khơng khả thi vì q phức tạp. Hơn nữa, công nghệ ngày càng thay đổi quá nhanh, các công cụ, công nghệ phát triển ứng dụng web ra đời ngày càng nhiều và đặc biệt là cấu trúc của các điều khiển do người dùng tự tạo ra. Khơng có chuẩn chung nào cho các kỹ sư phát triển có thể tạo ra các đối tượng/điều khiển bằng bất kỳ cấu trúc CSS nào. Ví dụ như cơng nghệ mới React JS yêu cầu người dùng có thể triển khai lại hay thêm nhiều điều khiển mới vào ứng dụng. Do đó, sử dụng cách tiếp cận máy học có thể giải quyết được vấn đề này bởi cách thực hiện giống với cách mà con người thực hiện.

Trên thực tế, tất cả các điều kiển web có thể được phân loại thành Textbox, Dropdown Listbox, Checkbox, Radio button, Image, Label, Panel, Listbox, Datetime, Hyperlink. Quan sát cho thấy rằng, dù cơng nghệ thay đổi nhưng hình dạng của các đối tượng này vẫn khơng thay đổi và nó có thể giống với các điều khiển chuẩn. Do đó, phương pháp học có giám sát được áp dụng để phát hiện các đối tượng web từ ứng dụng. Hình 3.12 trình bày khung kiến trúc (framework) của cách tiếp cận được đề xuất cho kiểm thử ứng dụng web và thể hiện cách thức hoạt động của Shinobi. Shinobi đã được tích hợp kiểm thử với các dự án thương mại điện tử và mang lại giá trị gia tăng cho hoạt động kiểm thử web.

Một phần của tài liệu NGHIÊN CỨU PHÁT TRIỂN KỸ THUẬT VÀ GIẢI PHÁP KIỂM THỬ ỨNG DỤNG DI ĐỘNG (Trang 107 - 109)