Android Hướng dẫn kiểm thử ứng dụng với khung tự động hóa
⚡ Tóm tắt thông minh
Android Kiểm thử ứng dụng xác minh bản dựng trên nhiều thiết bị khác nhau, kết hợp kiểm tra đơn vị, tích hợp, vận hành và hệ thống với các khung tự động hóa chạy trên thiết bị hoặc trực tiếp trên JVM.
Tại sao Android Kiểm tra?
Android là hệ điều hành lớn nhất thế giới. Đồng thời, Android nó bị phân mảnh: có rất nhiều thiết bị và Android phiên bản mà ứng dụng của bạn phải tương thích.
Dù bạn đầu tư bao nhiêu thời gian vào thiết kế và triển khai, sai sót là điều không thể tránh khỏi và lỗi vẫn sẽ xuất hiện.
Android Chiến lược thử nghiệm
Một sự đúng đắn Android Chiến lược kiểm thử nên bao gồm những điều sau:
- Kiểm tra đơn vị
- Bài kiểm tra tích hợp
- Operakiểm tra quốc tế
- Kiểm tra hệ thống
Bài kiểm tra đơn vị
Kiểm thử đơn vị là một tập hợp các chương trình được thiết kế để xác minh một đơn vị mã nguồn cơ bản, chẳng hạn như một phương thức hoặc một lớp.
Android Nền tảng này được tích hợp sẵn với... JUnit Khung phần mềm 3.0. Đây là một khung phần mềm mã nguồn mở để tự động hóa. Kiểm tra đơn vịvà nó cho phép các nhà phát triển viết các chương trình kiểm thử đơn vị hiệu quả.
Bên cạnh kiểm thử đơn vị, kiểm thử giao diện người dùng (UI) cũng là một hình thức kiểm thử bổ sung. Chúng bao gồm các thành phần giao diện người dùng của ứng dụng mục tiêu và đảm bảo ứng dụng trả về kết quả chính xác cho một chuỗi các thao tác của người dùng trên thiết bị.
Cách phổ biến để thực hiện kiểm thử giao diện người dùng trên thiết bị là Android Instrumentation. Nhưng điều này có vấn đề về hiệu suất. Một trong những công cụ tốt nhất để tiến hành kiểm tra giao diện người dùng trên Android is Robotium.
⚠️ Ghi chú phiên bản: JUnit 3 lớp như Trường hợp kiểm tra thiết bị đo đạc đã bị loại bỏ ở API 24; các dự án hiện tại sử dụng AndroidKiểm tra X, Espresso và UI Automator. Robotium Không có bản phát hành nào kể từ năm 2016.
Kiểm tra tích hợp
In Thử nghiệm hội nhậpTất cả các mô-đun đã được kiểm thử đơn vị đều được kết hợp và xác minh. Trong Android Điều này thường bao gồm việc kiểm tra sự tích hợp với các thành phần như Service, Activity và Content Provider.
Nhiều framework kiểm thử được sử dụng để thực hiện các bài kiểm thử tích hợp cho Androidchẳng hạn như Troyd, Robolectric và Robotium.
Operabài kiểm tra quốc tế
OperaCác bài kiểm thử chức năng, còn được gọi là Kiểm thử chấp nhận hoặc Kiểm thử chức năng, là các bài kiểm thử cấp cao nhằm kiểm tra tính đầy đủ và chính xác của ứng dụng.
In Android, FitNesse Đây là một framework mã nguồn mở giúp dễ dàng chạy các bài kiểm tra vận hành đối với ứng dụng mục tiêu.
kiểm tra hệ thống
In Thử nghiệm hệ thống hệ thống được kiểm tra tổng thể và sự tương tác giữa các thành phần, phần mềm và phần cứng được kiểm tra.
In Android, Kiểm tra hệ thống thường bao gồm
- kiểm tra GUI
- Kiểm tra khả năng sử dụng
- Kiểm tra hiệu năng
- Kiểm tra căng thẳng
Trong danh sách trên, Kiểm tra năng suất được chú trọng hơn. Bạn có thể sử dụng các công cụ như Tracxem trước tiến hành kiểm tra hiệu năng trên AndroidCông cụ này có thể giúp bạn gỡ lỗi ứng dụng và phân tích hiệu năng của nó. Traceview hiện đã lỗi thời và được thay thế bằng... Hồ sơ CPU.
Tự động Android Kiểm tra
As Android Dữ liệu bị phân mảnh, việc thử nghiệm trên nhiều thiết bị là cần thiết, và điều đó tốn kém. Tự động hóa Android Việc xét nghiệm giúp giảm bớt những chi phí đó.
Lợi ích của tự động hóa Android thử nghiệm
- Giảm thời gian thực hiện các trường hợp thử nghiệm
- Tăng năng suất của quá trình phát triển của bạn
- Phát hiện lỗi sớm, tiết kiệm chi phí bảo trì phần mềm
- Nhanh chóng tìm và sửa các lỗi trong quá trình triển khai
- Đảm bảo chất lượng phần mềm
Chúng ta sẽ nghiên cứu 2 khuôn khổ sau
- Android Khung kiểm tra
- Khung thử nghiệm điện tự động
Android khung thử nghiệm
Một trong những khung thử nghiệm tiêu chuẩn cho Android ứng dụng là Android khung kiểm thử. Nó được tích hợp tốt với Android Bộ công cụ SDK và kiến trúc của nó gồm ba phần.
- Gói ứng dụng là ứng dụng mục tiêu cần được kiểm thử.
- InstrumentationTestRunner là Trường hợp thử nghiệm Công cụ chạy (runner) thực thi các trường hợp kiểm thử trên ứng dụng mục tiêu. Nó bao gồm:
- Công cụ kiểm tra: Các công cụ SDK dùng để xây dựng các bài kiểm tra. Chúng được tích hợp trong IDE hoặc chạy từ dòng lệnh.
- Người chạy khỉ: Một công cụ cung cấp API để viết các chương trình điều khiển một... Android thiết bị hoặc trình mô phỏng bên ngoài Android Mã.
- Gói kiểm thử được tổ chức thành các dự án kiểm thử và tuân theo một quy ước đặt tên. Nếu ứng dụng cần kiểm thử có tên gói là “com.mydomain.myapp” thì gói kiểm thử phải là “com.mydomain.myapp.test”. Gói kiểm thử bao gồm 2 đối tượng:
- Các lớp trường hợp kiểm thử: Bao gồm các phương pháp kiểm thử sẽ được thực thi trên ứng dụng mục tiêu.
- Các đối tượng giả lập: Bao gồm dữ liệu giả lập sẽ được sử dụng làm dữ liệu đầu vào mẫu cho các trường hợp kiểm thử.
Android Các lớp trường hợp thử nghiệm
- TestCase bao gồm JUnit các phương pháp chạy JUnit thử nghiệm
- TestSuite được sử dụng để chạy một tập hợp các trường hợp kiểm thử.
- InstrumentationTestSuite là một TestSuite dùng để chèn mã đo lường vào InstrumentationTestCase trước khi chạy chúng.
- InstrumentationTestRunner chạy các trường hợp kiểm thử trên ứng dụng mục tiêu.
- AndroidTestCase mở rộng JUnit TestCase với các phương thức truy cập tài nguyên như Activity Context.
- ApplicationTestCase kiểm tra các lớp của ứng dụng trong một môi trường được kiểm soát.
- InstrumentationTestCase xác minh một tính năng hoặc hành vi cụ thể, ví dụ như đầu ra giao diện người dùng của ứng dụng.
- ActivityTestCase là lớp cơ sở hỗ trợ việc kiểm thử các Activity của ứng dụng.
- ProviderTestCase là lớp dùng để kiểm thử một ContentProvider duy nhất.
- ServiceTestCase kiểm thử các lớp Service trong môi trường kiểm thử và hỗ trợ vòng đời của Service.
- SingleLaunchActivityTestCase được sử dụng để kiểm tra một Activity duy nhất với InstrumentationTestCase.
- Trường hợp kiểm thử đơn vị hoạt động Được sử dụng để kiểm tra hoạt động riêng lẻ, biệt lập.
- Trường hợp thử nghiệm thiết bị hoạt động 2 mở rộng JUnit Lớp TestCase kết nối bạn với ứng dụng mục tiêu bằng công cụ theo dõi, cho phép bạn truy cập các thành phần giao diện người dùng và gửi các sự kiện giao diện người dùng như nhấn phím hoặc chạm.
Dưới đây là một ví dụ về ActivityInstrumentationTestCase. Nó xác minh hoạt động giao diện người dùng của ứng dụng Máy tính và kiểm tra tính chính xác của các kết quả đầu ra trên giao diện người dùng.
Khung thử nghiệm điện tự động
Thử nghiệm bằng cách sử dụng Android Việc kiểm thử khung phần mềm với thiết bị hoặc trình giả lập rất khó khăn. Quá trình xây dựng và chạy thử nghiệm diễn ra chậm và tốn nhiều công sức phát triển. Để khắc phục vấn đề này, có một lựa chọn khác: khung phần mềm kiểm thử Robolectric.
Robolectric cho phép bạn chạy Android Kiểm tra trực tiếp trên JVM mà không cần thiết bị hoặc trình giả lập.
Các lớp trường hợp thử nghiệm điện tự động
Robolectric có thể thực hiện các hành động sau:
- Đăng ký và tạo lớp Shadow
- Chặn tải của Android tốt nghiệp lớp XNUMX
- Sử dụng Javahỗ trợ ghi đè lên phần thân phương thức của Android tốt nghiệp lớp XNUMX
- Liên kết đối tượng Shadow với Android tốt nghiệp lớp XNUMX
Điều này cho phép mã cần kiểm thử được thực thi mà không cần... Android môi trường.
Các khung kiểm thử khác
Bên cạnh các framework kiểm thử đã đề cập ở trên, còn có nhiều framework khác, chẳng hạn như:
- Android Báo cáo Junit, một trình chạy thử nghiệm thiết bị tùy chỉnh dành cho Android tạo ra các báo cáo XML để tích hợp với các công cụ khác.
- Espresso
- Appium
Huyền thoại về Android Kiểm tra
Nhiều doanh nghiệp phát triển Android Kiểm tra chiến lược dựa trên những quan niệm sai lầm phổ biến. Phần này xem xét một vài huyền thoại phổ biến và thực tế của Android thử nghiệm.
Quan niệm sai lầm số 1: Tất cả Android Các thiết bị đều giống nhau, vì vậy việc thử nghiệm trên trình giả lập là đủ.
Một ứng dụng có thể hoạt động hoàn hảo trên trình giả lập, nhưng lại bị lỗi khi thực thi trên một số thiết bị thực.
Trình giả lập không đủ để kiểm thử ứng dụng trên thiết bị di động. Bạn phải kiểm thử ứng dụng trên các thiết bị thực.
Quan niệm sai lầm số 2: Chỉ cần thử nghiệm trên một số thiết bị thông dụng là đủ.
Ứng dụng của bạn hiển thị khác nhau trên các thiết bị khác nhau vì phần cứng, kích thước màn hình và bộ nhớ khác nhau. Hãy kiểm tra trên nhiều thiết bị, phiên bản hệ điều hành, nhà mạng và địa điểm khác nhau.
Quan niệm sai lầm số 3: Thử nghiệm thăm dò ngay trước khi ra mắt là đủ.
- Trong hầu hết các phương pháp kiểm thử, chúng ta thiết kế các trường hợp kiểm thử rồi mới thực hiện chúng; còn trong kiểm thử khám phá, thiết kế và thực hiện diễn ra đồng thời.
- Không có kế hoạch hay sự chuẩn bị nào, vì vậy người kiểm thử sẽ chạy bất kỳ bài kiểm thử nào mà họ muốn. Một số chức năng được kiểm thử nhiều lần, trong khi những chức năng khác thì không bao giờ được kiểm thử.
Quan niệm sai lầm số 4: Nếu ứng dụng có lỗi, người dùng sẽ hiểu.
- Nếu ứng dụng không hoạt động và có lỗi, người dùng sẽ gỡ cài đặt ứng dụng của bạn.
- Các vấn đề về chất lượng là nguyên nhân hàng đầu dẫn đến những đánh giá tiêu cực. Google Việc chơi đùa có thể làm tổn hại danh tiếng và đánh mất lòng tin của khách hàng.
Do đó, việc có một hệ thống phù hợp là điều cần thiết. Android Chiến lược thử nghiệm đã được thiết lập.
Các phương pháp hay nhất trong Android Kiểm tra
- Các nhà phát triển ứng dụng nên tạo các trường hợp thử nghiệm cùng lúc khi họ viết mã
- Tất cả các trường hợp kiểm thử nên được lưu trữ trong hệ thống quản lý phiên bản, cùng với mã nguồn.
- Sử dụng tích hợp liên tục và chạy thử nghiệm mỗi khi thay đổi mã
- Tránh chỉ dựa vào trình giả lập và thiết bị đã root; hãy xác nhận kết quả trên phần cứng thực tế bằng một công cụ kiểm tra như... uiautomatorviewer





