Nội dung bài học Tổng quan về kiểm thử giao diện Quy trình sử dụng kiểm thử uiautomator Phân tích giao diện của ứng dụng Cấu hình môi trường kiểm thử Tạo kịch bản kiểm thử uiaut
Trang 1KIỂM THỬ VÀ TRIỂN KHAI ỨNGDỤNG ANDROID
Bài 3: Kiểm thử giao diện
Trang 2Nội dung bài học
Tổng quan về kiểm thử giao diện
Quy trình sử dụng kiểm thử uiautomator
Phân tích giao diện của ứng dụng
Cấu hình môi trường kiểm thử
Tạo kịch bản kiểm thử uiautomator
Biên dịch và chạy kiểm thử
2
Trang 3Kiểm thử giao diện
Bên cạnh kiểm thử các thành phần độc lập của ứng dụng
(như activity, service, content provider), cần kiểm thử hành vi của giao diện người dùng khi chạy trên thiết bị thật
Kiểm thử giao diện đảm bảo ứng dụng trả lại kết quả UI
chính xác tương ứng với hành động của người dùng trênthiết bị như chọn menu, dialog, image hoặc các điều khiểnkhác
Trang 4Kiểm thử giao diện
Cách kiểm thử thông thường là chạy kiểm thử một cách thủcông và kiểm tra hành vi của ứng dụng, tuy nhiên cách nàytốn thời gian và công sức
Có thể sử dụng testing framework để tự động hóa kiểm thửgiao diện Tạo chương trình thực hiện các tác vụ kiểm thử(test case) và testing framework sẽ tự động chạy các test case
Trang 5Android SDK cho kiểm thử giao diện
Android SDK cung cấp các công cụ sau hỗ trợ kiểm thử giaodiện một cách tự động
uiautomatorviewer: công cụ GUI hỗ trợ quét và phân
tích các thành phần UI của một ứng dụng Android
Trang 6Android SDK cho kiểm thử giao diện
Android SDK cung cấp các công cụ sau hỗ trợ kiểm thử giaodiện một cách tự động
uiautomator: thư viện java chứa các API tạo các kiểm
thử UI tùy biến và một engine hỗ trợ chạy các kiểm thử
tự động
Điều kiện sử dụng các công cụ này:
Android SDK Tools, Revision 21 hoặc cao hơn
Android SDK Platform, API 16 or higher
Trang 7Uiautomator testing framework
Các bước để tự động hóa kiểm thử UI
Chuẩn bị các test case cho ứng dụng trên thiết bị thật, phân tích các thành phần UI của ứng dụng và đảm bảorằng ứng dụng cho phép test automation framework can thiệp
Tạo test case tự động mô phỏng tương tác người dùngtrên ứng dụng
Biên dịch các test case thành file JAR và cài đặt trên thiếtbị
Chạy kiểm thử và kiểm tra kết quả
Sửa lỗi trong quá trình kiểm thử
Trang 8Phân tích giao diện của ứng dụng
Trước khi viết các kiểm thử, bạn phải làm quen với các thànhphần UI của ứng dụng (view, control)
Sử dụng công cụ uiautomatorview để lấy thông tin màn
hình nền của thiết bị đang kết nối với máy tính
Công cụ uiautomatorviewer cung cấp giao diện trực quan
để kiểm tra phân cấp layout và xem các thuộc tính của cácthành phần UI độc lập được hiển thị trên thiết bị
Sử dụng thông tin này để xây dựng các kiểm thử
uiautomator cho các đối tượng selector tương ứng với cácphần tử UI cụ thể
Trang 9Phân tích giao diện của ứng dụng
Trang 10Các bước phân tích thành phần UI
Bước 1: Kết nối thiết bị Android với máy tính
Bước 2: Mở Explorer và di chuyển tới <android-sdk>/tools/
Bước 3: Chạy file uiautomatorviewer.bat
Bước 4: Để phân tích thông tin màn hình, click Device
Screenshot trên giao diện GUI của công cụ
uiautomatorviewer
Bước 5: Xem các thuộc tính UI của ứng dụng
Trang 11DEM O
Sử dụng uiautomatorviewer
Trang 12Chuẩn bị kiểm thử
Cài đặt ứng dụng vào thiết bị
Xác định các thành phần UI của ứng dụng
Đảm bảo ứng dụng có thể truy cập
Trang 14 Cung cấp thuộc tính android:hint cho EditText
Kết hợp thuộc tính android:hint với các icon đồ họa chocác điều khiển cung cấp phản hồi cho người dùng
Trang 15Đảm bảo ứng dụng có thể truy cập
Bạn nên bổ sung các tối ưu tối thiểu sau để hỗ trợ công cụuiautomator
Đảm bảo các phím điều khiển như trackball hoặc D-pad
có thể truy cập đến các phần tử giao diện
Sử dụng công cụ uiautomaticviewer để kiểm tra các
thành phần UI có thể được truy cập bởi testing
framework
Trang 16Đảm bảo ứng dụng có thể truy cập
Bạn nên bổ sung các tối ưu tối thiểu sau để hỗ trợ công cụuiautomator
Để tìm các thành phần UI không thể truy cập trên UI,
click vào Toogle NAF Nodes trên công cụ
uiautomatorviewer
Trang 17Cấu hình môi trường phát triển
Tạo mới Java Project
Bổ sung thư viện JUnit3 hoặc JUnit4
Bổ sung file jar uiautomator.jar và android.jar
Trang 19 Thể hiện trạng thái của thiết bị
Được sử dụng để kiểm tra các thuộc tính khác nhau của
thiết bị như hướng hiện tại hoặc cỡ hiển thị
Có thể được sử dụng để thực hiện các hành động như thayđổi hướng của thiết bị, nhấp nút Home hoặc Menu trực tiếp
từ code
Để nhận thể hiện của UiDevice và mô phỏng click nút Home
sử dụng lệnh getUiDevice().pressHome()
Trang 21 Ví dụ tìm kiếm ListView trên giao diện, sau đó tìm kiếmphần tử UI thuộc ListView có thuộc tính text là Apps
Trang 22 Thể hiện một phần tử UI, tạo một thể hiện UiObject, sử
dụng UiSelector miêu tả cách tìm kiếm và chọn phần tử UI
Ví dụ: khởi tạo thể hiện của UiObject để thể hiện nút Cancel
và nút Button trong ứng dụng
Ví dụ: tìm kiếm phần tử UI với thuộc tính text là OK Nếu tìmthấy phần tử đó được enable sẽ mô phỏng hành động click trên phần tử
Trang 23 Có thể hạn chế tìm kiếm phần tử trong một lớp cụ thể Ví
dụ, tìm kiếm các Button hợp lệ
Trang 25 Tập hợp các phần tử UI có thể cuộn được
Có thể sử dụng UiScrollable để mô phỏng cuộn ngang và
dọc trên màn hình Kỹ thuật này có ích khi các phần tử UI không nằm trên màn hình nên phải cuộn trái hoặc phải đểtìm phần tử đó
Ví dụ, mô phỏng cuộn xuống tìm ứng dụng Setting và click vào chức năng About tablet
Trang 26Ví dụ ứng dụng tự động mở phần mềm Setting
Trang 27Biên dịch và chạy kiểm thử tự động
Bước 1: Tạo file cấu hình để biên dịch file JAR Để sinh ra file JAR, mở cmd và chạy lệnh sau
Bước 2: thiết lập biến ANDROID_HOME
Bước 3: sử dụng công cụ Ant (tải trên trang
http://ant.apache.org/bindownload.cgi) để build bằng lệnh
ant build
Trang 28Biên dịch và chạy kiểm thử tự động
Bước 4: Cài đặt file JAR vào thiết bị muốn kiểm thử
Bước 5: chạy kiểm thử
Trang 29DEM O
Xây dựng ứng dụng mô phỏng người
dùng sử dụng ứng dụng Settings trong
thiết bị Android
Trang 30Các kinh nghiệm cần lưu ý khi kiểm thử giao diện
Kiểm tra tính hợp lý của các chức năng UI của ứng dụng
trên các loại thiết bị khác nhau
Bạn nên kiểm thử UI trên các kịch bản như khi có cuộc gọiđến, ngắt kết nối mạng và chuyển đổi giữa các ứng dụngkhác nhau trong ứng dụng
Trang 31 Tổng quan về kiểm thử giao diện
Quy trình sử dụng kiểm thử uiautomator
Phân tích giao diện của ứng dụng
Cấu hình môi trường kiểm thử
Tạo kịch bản kiểm thử uiautomator
Biên dịch và chạy kiểm thử
Tổng kết nội dung bài học