Tác nhân kiểm thử ứng dụng (Android)

Tác nhân Kiểm thử ứng dụng là một tác nhân tạo, quản lý và thực thi trường hợp kiểm thử dựa trên Gemini trong Firebase. Bạn xác định mục tiêu kiểm thử bằng ngôn ngữ tự nhiên, và tác nhân sử dụng AI để hiểu và điều hướng ứng dụng của bạn, mô phỏng tương tác của người dùng và cung cấp kết quả kiểm thử chi tiết.

Cách tác nhân Kiểm thử ứng dụng sử dụng dữ liệu của bạn

Tác nhân Kiểm thử ứng dụng do Gemini trong Firebase cung cấp và chịu sự điều chỉnh của cùng một bộ điều khoản. Xem bài viết Cách Gemini trong Firebase sử dụng dữ liệu của bạn để biết thêm thông tin về cách Gemini trong Firebase sử dụng dữ liệu của bạn.

Trước khi bắt đầu

Nếu bạn chưa thực hiện, hãy đăng ký ứng dụng của bạn với Firebase.

Nếu không sử dụng bất kỳ sản phẩm nào khác của Firebase, bạn chỉ cần tạo một dự án và đăng ký ứng dụng của mình. Bạn không cần thêm bất kỳ SDK nào vào ứng dụng. Tuy nhiên, nếu bạn quyết định sử dụng các sản phẩm khác trong tương lai, hãy nhớ hoàn tất tất cả các bước trong phần Thêm Firebase bằng bảng điều khiển Firebase.

Tạo trường hợp kiểm thử

Để chạy các bài kiểm thử do AI hướng dẫn, tác nhân Kiểm thử ứng dụng sẽ sử dụng các trường hợp kiểm thử bằng ngôn ngữ tự nhiên để thực thi các bài kiểm thử đối với ứng dụng của bạn.

Mỗi trường hợp kiểm thử được chia thành các bước và sẽ được thực thi theo trình tự. Các bước cho phép bạn chia trường hợp kiểm thử thành các giai đoạn, mỗi giai đoạn có câu nhận định riêng. Tác nhân có thể thực hiện nhiều hành động trong một bước bất kỳ.

Có hai cách để tạo trường hợp kiểm thử: sử dụng tệp YAML hoặc sử dụng bảng điều khiển của Firebase. Tệp YAML cho phép bạn tự quản lý các trường hợp kiểm thử, thường là trong kho lưu trữ mã nguồn có phiên bản. Ngoài ra, bảng điều khiển của Firebase có thể lưu trữ các trường hợp kiểm thử từ xa cùng với dữ liệu App Distribution của bạn.

Sử dụng tệp YAML

Ví dụ sau đây cho thấy một tệp YAML xác định hai trường hợp kiểm thử:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

Bạn có thể sắp xếp các nhóm kiểm thử trong một tệp và tách các bộ kiểm thử này thành nhiều tệp. Bạn có thể thêm một trường hợp kiểm thử tiên quyết bằng cách thêm mã nhận dạng vào hoạt động kiểm thử, sau đó tham chiếu mã nhận dạng đó bằng prerequisiteTestCaseId.

Sử dụng bảng điều khiển App Distribution

Ngoài ra, bạn có thể tạo và quản lý các trường hợp kiểm thử trong Bảng điều khiển của Firebase. Để tạo một trường hợp kiểm thử, hãy mở trang App Distribution của Firebase console rồi làm theo các bước sau:

  1. Trên thẻ Trường hợp kiểm thử, hãy nhấp vào Trường hợp kiểm thử mới. Nếu không muốn tạo trường hợp kiểm thử của riêng mình, bạn có thể sửa đổi hoặc sử dụng trường hợp kiểm thử mẫu được cung cấp.
  2. Trong hộp thoại Add test case (Thêm trường hợp kiểm thử), hãy đặt tên cho trường hợp kiểm thử. Thông tin này dùng để xác định bài kiểm thử, nhưng bị tác nhân bỏ qua.
  3. (Không bắt buộc) Chọn một Trường hợp kiểm thử tiên quyết chứa các bước thiết lập để chạy trước khi kiểm thử chính. Nếu kiểm thử điều kiện tiên quyết không thành công, thì toàn bộ kiểm thử sẽ được đánh dấu là không thành công. Các bước và kết quả của bài kiểm thử điều kiện tiên quyết và bài kiểm thử chính sẽ xuất hiện cùng nhau trong kết quả kiểm thử.
  4. Cân nhắc chia nhỏ thử nghiệm thành nhiều bước bằng cách nhấp vào nút Thêm bước khác.
  5. Đặt cho mỗi bước một Mục tiêu mô tả những việc mà tác nhân Kiểm thử ứng dụng nên làm trong bước đó.
  6. (Không bắt buộc) Thêm Gợi ý để cung cấp thêm thông tin giúp tác nhân Kiểm thử ứng dụng hiểu và thao tác trên ứng dụng của bạn trong bước đó.
  7. Thêm Xác nhận màn hình cuối cùng để giúp tác nhân Kiểm thử ứng dụng xác định thời điểm bước này hoàn tất thành công. Câu nhận định này chỉ nên đề cập đến những gì xuất hiện trên màn hình.
  8. Nhấp vào Lưu sau khi bạn tuỳ chỉnh xong thử nghiệm.

Trường hợp kiểm thử mẫu

Sau đây là ví dụ về cách tạo trường hợp kiểm thử bằng tác nhân Kiểm thử ứng dụng:

Tiêu đề thử nghiệm

Số lượt tải trang chủ

Mục tiêu

Tải trang chủ

Gợi ý

Chuyển qua mọi màn hình giới thiệu. Đóng mọi cửa sổ bật lên. Không đăng nhập.

Xác nhận màn hình cuối cùng

Trang chủ chính của ứng dụng xuất hiện trên màn hình, tất cả hình ảnh đã tải và không có lỗi nào xuất hiện.

Chạy thử nghiệm

Cách bạn chạy kiểm thử phụ thuộc vào cách bạn tạo và quản lý các trường hợp kiểm thử. Nếu xác định các trường hợp kiểm thử bằng tệp YAML, bạn sẽ chạy các kiểm thử đó bằng Firebase CLI. Nếu tạo các trường hợp kiểm thử trong bảng điều khiển App Distribution, bạn sẽ chạy các trường hợp đó từ bảng điều khiển hoặc thông qua một trong các công cụ CLI của App Distribution.

Sử dụng tệp YAML

Bạn có thể thực thi các trường hợp kiểm thử được xác định trong tệp YAML bằng Giao diện dòng lệnh (CLI) của Firebase.

  1. Cài đặt hoặc cập nhật lên phiên bản mới nhất của Firebase CLI. Bạn nên tải tệp nhị phân độc lập cho CLI dành riêng cho hệ điều hành của mình.
  2. Đăng nhập và kiểm tra để đảm bảo bạn có thể truy cập vào các dự án của mình. Xin lưu ý rằng nếu đang sử dụng Giao diện dòng lệnh (CLI) của Firebase trong môi trường CI, bạn cũng có thể xác thực bằng tài khoản dịch vụ hoặc bằng cách sử dụng login:ci.
  3. Chạy lệnh apptesting:execute. Ví dụ:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

Bắt buộc: Mã ứng dụng Firebase của ứng dụng. Bạn có thể tìm thấy Mã ứng dụng trong bảng điều khiển Firebase, trên trang Cài đặt chung.

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

Đường dẫn đến thư mục chứa các tệp YAML của trường hợp kiểm thử. Lệnh này sẽ tìm kiếm đệ quy trong thư mục này, vì vậy, bạn có thể sắp xếp các tệp vào thư mục con (không bắt buộc). Nếu bạn không đặt, "./tests" sẽ được dùng theo mặc định.

--test-devices hoặc
--test-devices-file

Thiết bị để thực thi các kiểm thử.

Bạn có thể chỉ định thiết bị thử nghiệm dưới dạng danh sách thông số kỹ thuật của thiết bị được phân tách bằng dấu chấm phẩy:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

Hoặc bạn có thể chỉ định đường dẫn đến một tệp văn bản thuần túy chứa danh sách thông số kỹ thuật của thiết bị được phân tách bằng dấu chấm phẩy:

--test-devices-file "/path/to/test-devices.txt"

Bạn có thể tra cứu các mẫu thiết bị hiện có bằng gcloud CLI.

--test-username

Tên người dùng để tự động đăng nhập trong quá trình kiểm thử.

--test-password hoặc
--test-password-file

Mật khẩu để tự động đăng nhập trong quá trình kiểm thử.

Hoặc bạn có thể chỉ định đường dẫn đến tệp văn bản thuần túy chứa mật khẩu:

--test-password-file: "/path/to/test-password.txt"
--test-non-blocking

Nếu được đặt, lệnh này sẽ bắt đầu kiểm thử rồi trả về ngay lập tức thay vì chờ kiểm thử hoàn tất. Để xem kết quả thử nghiệm, hãy truy cập vào bảng điều khiển của Firebase. Nếu bạn không đặt cờ này, lệnh sẽ chặn cho đến khi các kiểm thử hoàn tất và thoát bằng mã lỗi nếu có bất kỳ kiểm thử nào không thành công.

--results-bucket

Một bộ chứa Google Cloud Storage (GCS) tuỳ chỉnh, nơi lưu trữ kết quả kiểm thử. Nếu bạn để trống, hệ thống sẽ sử dụng bộ chứa mặc định. Bộ chứa phải thuộc sở hữu của một dự án đã bật tính năng thanh toán và việc chỉ định một bộ chứa sẽ dẫn đến phí thanh toán cho bộ nhớ được sử dụng.

--test-file-pattern

Một mẫu biểu thức chính quy. Chỉ những kiểm thử có trong các tệp khớp với mẫu này mới được thực thi.

--test-name-pattern

Một mẫu biểu thức chính quy. Chỉ những kiểm thử có tên hiển thị khớp với mẫu này mới được thực thi.

/path/to/app/binary

Không bắt buộc: Đường dẫn đến tệp nhị phân của ứng dụng. Nếu bạn bỏ qua, tác nhân sẽ sử dụng bản phát hành gần đây nhất được tải lên App Distribution cho ứng dụng được chỉ định.

Sử dụng bảng điều khiển App Distribution

Để chạy các trường hợp kiểm thử được lưu trữ trong App Distribution, bạn có thể sử dụng bảng điều khiển Firebase, Giao diện dòng lệnh (CLI) của Firebase hoặc trình bổ trợ Gradle hay fastlane của App Distribution.

Nhập và xuất trường hợp kiểm thử bằng tệp YAML

Việc nhập trường hợp kiểm thử từ tệp YAML sẽ hữu ích khi bạn muốn quản lý các trường hợp kiểm thử bên ngoài bảng điều khiển Firebase. Việc xuất các trường hợp kiểm thử cũng có thể hữu ích khi di chuyển các trường hợp kiểm thử giữa các dự án. Bạn có thể sử dụng LLM để tinh chỉnh các trường hợp kiểm thử hiện có hoặc tạo trường hợp kiểm thử mới. Bạn có thể nhập và xuất các trường hợp kiểm thử từ trang Trường hợp kiểm thử trong bảng điều khiển Firebase hoặc theo phương thức lập trình bằng Giao diện dòng lệnh (CLI) của Firebase. Để xem ví dụ về trường hợp kiểm thử YAML, hãy xem phần Tạo trường hợp kiểm thử YAML.

Xem kết quả kiểm tra

Bạn có thể xem kết quả kiểm thử trên trang Bản phát hành trong thẻ Tác nhân Kiểm thử ứng dụng của một bản phát hành. Nút Xem chi tiết sẽ mở hộp thoại Kết quả kiểm thử và cho bạn thấy mọi vấn đề, ảnh chụp màn hình của ứng dụng và các thao tác mà Gemini đã thực hiện trong quá trình kiểm thử.

Nếu một thử nghiệm có các hành động được phát lại, bạn có thể xem lần chạy thử nghiệm ban đầu do AI hướng dẫn hoặc xoá bộ nhớ đệm.

Để tìm hiểu thêm về kết quả kiểm tra, hãy tham khảo bảng sau:

Biểu tượng Tên Mô tả
spark Thao tác do AI thực hiện Cho biết tác nhân Kiểm thử ứng dụng đã sử dụng Gemini để quyết định thực hiện một hành động hoặc kết thúc bước.
replay Hành động được phát lại Cho biết tác nhân Kiểm thử ứng dụng đã phát lại một hành động từ lần chạy kiểm thử thành công trước đó.
spark Xác nhận AI Cho biết tác nhân Kiểm thử ứng dụng đã sử dụng Gemini để xác thực câu nhận định cuối cùng trên màn hình, sau khi phát lại các hành động từ một lần chạy thành công trước đó của cùng một quy trình kiểm thử.

Gỡ lỗi kết quả kiểm thử

Nếu kết quả kiểm thử khác với kết quả bạn mong đợi, bạn có thể gỡ lỗi cho bài kiểm thử bằng cách bật/tắt nút Hiện chế độ xem của nhân viên hỗ trợ trong phần Xem chi tiết trên trang Kết quả kiểm thử. Chế độ xem tác nhân cho bạn thấy các phần tử trên màn hình mà tác nhân Kiểm thử ứng dụng có thể phát hiện khi sử dụng thông tin hỗ trợ tiếp cận của ứng dụng. Nếu muốn xem kỹ hơn những gì nhân viên hỗ trợ đã thấy, bạn có thể tải thông tin đó xuống từ trình đơn mục bổ sung.

Bạn cũng có thể sử dụng nút View artifacts (Xem cấu phần phần mềm) trên trang Test Results (Kết quả kiểm thử) để xem tất cả video, nhật ký và các cấu phần phần mềm khác trên Cloud cho kết quả kiểm thử của bạn.

Các vấn đề và hạn chế đã biết

Bản xem trước của tác nhân Kiểm thử ứng dụng có một số hạn chế đã biết:

  • Các bài kiểm thử do AI hướng dẫn có thời gian chờ là 5 phút. Sau khi bắt đầu, một thử nghiệm phải thành công trong thời gian đó, nếu không, thử nghiệm sẽ kết thúc sớm và được tính là thử nghiệm không thành công.
  • Vì tác nhân Kiểm thử ứng dụng sử dụng AI tạo sinh để kiểm thử ứng dụng, nên đôi khi tác nhân này sẽ thực hiện các hành động khác nhau trong khi vẫn tuân theo cùng một hướng dẫn.
  • Tác nhân Kiểm thử ứng dụng chỉ hỗ trợ các thao tác sau: nhấn, nhập văn bản, vuốt lên/xuống/trái/phải, nhấn và giữ, kéo và thả, quay lại và chờ.
  • Tác nhân Kiểm thử ứng dụng gặp khó khăn khi thực thi các kiểm thử chỉ chứa một bước duy nhất nhưng cần nhiều hành động để hoàn tất. Mô hình này hoạt động hiệu quả hơn khi các nhiệm vụ phức tạp được chia thành nhiều bước ngắn hơn.
  • Đôi khi, tác nhân Kiểm thử ứng dụng sẽ không cuộn để hiển thị các phần tử khác ngoài màn hình. Điều này thường xảy ra khi không có dấu hiệu trực quan nào cho thấy khả năng cuộn. Để giải quyết vấn đề này, bạn có thể sử dụng trường "gợi ý" để đề xuất thao tác cuộn.
  • Tác nhân Kiểm thử ứng dụng đôi khi gặp khó khăn khi đếm, chẳng hạn như thực hiện một hành động với số lần cụ thể.
  • Tác nhân Kiểm thử ứng dụng không thể điều hướng ứng dụng của bạn nếu bạn bật FLAG_SECURE. Thay vì ảnh chụp màn hình của ứng dụng, hệ thống sẽ chỉ thấy một màn hình trống.

Hạn mức thử nghiệm

Trong giai đoạn xem trước, các bài kiểm thử có AI hướng dẫn sẽ được cung cấp miễn phí trong một hạn mức nhất định. Hạn mức mặc định là 200 thử nghiệm mỗi tháng, cho mỗi dự án Firebase.

Xin lưu ý rằng nếu bạn chọn chạy nhiều trường hợp kiểm thử hoặc chạy cùng một trường hợp kiểm thử trên nhiều thiết bị, thì việc này sẽ được tính là nhiều lần kiểm thử. Ví dụ: nếu bạn chạy 2 trường hợp kiểm thử trên 2 thiết bị, thì tổng số lượt kiểm thử sẽ là 4.

Để tăng hạn mức lên cao hơn giới hạn mặc định, hãy liên hệ với Nhóm hỗ trợ Firebase và nêu rõ trường hợp sử dụng của bạn.