Tự động hoá quy trình kiểm thử giao diện người dùng

Việc kiểm thử hoạt động tương tác của người dùng giúp đảm bảo rằng người dùng không gặp phải kết quả không mong muốn hoặc có trải nghiệm không tốt khi tương tác với ứng dụng của bạn. Bạn nên tạo thói quen tạo kiểm thử giao diện người dùng (UI) nếu cần xác minh rằng giao diện người dùng của ứng dụng đang hoạt động chính xác.

Một phương pháp kiểm thử giao diện người dùng là yêu cầu người kiểm thử thực hiện một loạt thao tác của người dùng trên ứng dụng mục tiêu và xác minh rằng ứng dụng đó hoạt động đúng cách. Tuy nhiên, phương pháp thủ công này có thể tốn nhiều thời gian và dễ xảy ra lỗi. Một phương pháp hiệu quả hơn là viết các chương trình kiểm thử giao diện người dùng để các thao tác của người dùng được thực hiện theo cách tự động. Phương pháp tự động cho phép bạn chạy các chương trình kiểm thử một cách nhanh chóng và đáng tin cậy theo cách có thể lặp lại.

Kiểm thử giao diện người dùng sẽ khởi chạy một ứng dụng (hoặc một phần của ứng dụng), sau đó mô phỏng các hoạt động tương tác của người dùng và cuối cùng kiểm tra xem ứng dụng có phản ứng đúng cách hay không. Đây là các kiểm thử tích hợp có thể trải dài từ việc xác minh hành vi của một thành phần nhỏ đến kiểm thử điều hướng lớn xuyên suốt toàn bộ luồng người dùng. Các API này rất hữu ích để kiểm tra sự hồi quy và xác minh khả năng tương thích với nhiều cấp độ API và thiết bị thực.

Chạy kiểm thử giao diện người dùng

  • Để chạy kiểm thử giao diện người dùng được đo lường bằng Android Studio, bạn triển khai mã kiểm thử trong một thư mục kiểm thử Android riêng – src/androidTest/java. Trình bổ trợ Android cho Gradle sẽ tạo một ứng dụng kiểm thử dựa trên mã kiểm thử của bạn, sau đó tải ứng dụng kiểm thử trên cùng một thiết bị với ứng dụng mục tiêu. Trong mã kiểm thử, bạn có thể sử dụng các khung kiểm thử giao diện người dùng để mô phỏng hoạt động tương tác của người dùng trên ứng dụng mục tiêu, nhằm thực hiện các nhiệm vụ kiểm thử bao gồm các trường hợp sử dụng cụ thể.
  • Bạn cũng có thể sử dụng Robolectric để chạy các chương trình kiểm thử giao diện người dùng trên JVM.

Cấu trúc và thiết lập kiểm thử

Cấu trúc của ứng dụng phải cho phép các chương trình kiểm thử thay thế một số phần của ứng dụng để kiểm thử gấp đôi và bạn nên sử dụng các thư viện cung cấp tiện ích để hỗ trợ kiểm thử. Ví dụ: bạn có thể thay thế mô-đun kho lưu trữ dữ liệu bằng phiên bản trong bộ nhớ của mô-đun đó để cung cấp dữ liệu giả, có tính xác định cho quá trình kiểm thử.

Sơ đồ cấu trúc sản xuất và kiểm thử. Sơ đồ sản xuất cho thấy các nguồn dữ liệu cục bộ và từ xa cung cấp dữ liệu cho kho lưu trữ, từ đó cung cấp dữ liệu đó cho giao diện người dùng một cách không đồng bộ. Sơ đồ kiểm thử cho thấy một kho lưu trữ Fake (Giả mạo) cung cấp dữ liệu đồng bộ cho giao diện người dùng.
Hình 3: Kiểm thử giao diện người dùng bằng cách thay thế các phần phụ thuộc bằng phần phụ thuộc giả.

Bạn nên sử dụng phương pháp chèn phần phụ thuộc để thay thế các phần phụ thuộc. Bạn có thể tạo hệ thống của riêng mình theo cách thủ công, nhưng bạn nên sử dụng khung DI như Hilt cho việc này.

Tại sao nên kiểm thử giao diện người dùng một cách tự động?

Một ứng dụng Android có thể nhắm đến hàng nghìn thiết bị khác nhau trên nhiều cấp độ API và kiểu dáng. Ngoài ra, mức độ tuỳ chỉnh cao mà hệ điều hành mang lại cho người dùng có nghĩa là ứng dụng của bạn có thể hiển thị không chính xác hoặc thậm chí gặp sự cố trên một số thiết bị.

Tính năng kiểm thử giao diện người dùng cho phép bạn kiểm thử khả năng tương thích, xác minh hành vi của ứng dụng trong nhiều ngữ cảnh. Bạn nên chạy kiểm thử giao diện người dùng trên các thiết bị khác nhau theo những cách sau:

  • Cấp độ API: 21, 25 và 30.
  • Ngôn ngữ: Tiếng Anh, tiếng Ả Rập và tiếng Trung.
  • Hướng: Dọc, ngang.

Hơn nữa, ứng dụng nên kiểm tra hành vi ngoài điện thoại. Bạn nên kiểm thử trên máy tính bảng, thiết bị có thể gập lại và các thiết bị khác. Đọc thêm về kiểm thử nhiều kích thước màn hình.

Các loại kiểm thử giao diện người dùng

Phần này trình bày hai loại kiểm thử giao diện người dùng:

  • Kiểm thử hành vi phân tích hệ phân cấp giao diện người dùng để đưa ra các câu nhận định về các thuộc tính của phần tử giao diện người dùng.
  • Kiểm thử ảnh chụp màn hình chụp ảnh màn hình giao diện người dùng và so sánh ảnh chụp màn hình đó với hình ảnh đã được phê duyệt trước đó.