Hướng dẫn kiểm tra ứng dụng Android với Khung tự động hóa

Mục lục:

Anonim

Tại sao nên thử nghiệm Android?

Android là hệ điều hành lớn nhất trên thế giới. Đồng thời, Android bị phân mảnh. có rất nhiều thiết bị và phiên bản Android mà ứng dụng của bạn phải tương thích.

Không quan trọng bạn đầu tư bao nhiêu thời gian vào thiết kế và thực hiện, sai lầm là điều không thể tránh khỏi và lỗi sẽ xuất hiện.

Trong hướng dẫn này, bạn sẽ học-

  • Tại sao nên thử nghiệm Android?
  • Chiến lược thử nghiệm Android
    • Bài kiểm tra đơn vị
    • Kiểm tra tích hợp
    • Kiểm tra hoạt động
    • Kiểm tra hệ thống
  • KIỂM TRA ANDROID tự động
    • Khung thử nghiệm Android
    • Khung thử nghiệm rô bốt
  • Huyền thoại về thử nghiệm Android
  • Các phương pháp hay nhất trong Thử nghiệm Android

Chiến lược thử nghiệm Android

Một chiến lược kiểm tra Android đúng phải bao gồm những điều sau

  1. Kiểm tra đơn vị
  2. Bài kiểm tra tích hợp
  3. Kiểm tra hoạt động
  4. Kiểm tra hệ thống

Bài kiểm tra đơn vị

Unit Test bao gồm các tập hợp của một hoặc nhiều chương trình được thiết kế để xác minh một đơn vị nguyên tử của mã nguồn, chẳng hạn như một phương thức hoặc một lớp.

Nền tảng Android được tích hợp sẵn khung Junit 3.0. Đó là khung mã nguồn mở để tự động hóa Kiểm thử đơn vị. Android Testing Framework là công cụ mạnh mẽ dành cho nhà phát triển để viết chương trình kiểm thử đơn vị hiệu quả.

Sự tích hợp của khuôn khổ Android và JUnit

Một bổ sung cho Kiểm thử đơn vị là kiểm tra Giao diện người dùng (UI). Các thử nghiệm này liên quan đến các thành phần giao diện người dùng của ứng dụng mục tiêu của bạn. Kiểm tra giao diện người dùng đảm bảo rằng ứng dụng của bạn trả lại đầu ra giao diện người dùng chính xác theo chuỗi hành động của người dùng trên thiết bị.

Các hành động phổ biến trên giao diện người dùng của người dùng trên ứng dụng

Cách phổ biến để kiểm tra giao diện người dùng hiệu suất 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 là Robotium.

Kiểm tra tích hợp

Trong Kiểm tra tích hợp, tất cả các mô-đun được kiểm tra đơn vị, được kết hợp và xác minh. Trong Android, các bài kiểm tra tích hợp thường liên quan đến việc kiểm tra tích hợp với các thành phần Android như Kiểm tra dịch vụ, Kiểm tra hoạt động, Kiểm tra nhà cung cấp nội dung, v.v.

Các loại kiểm tra tích hợp trên Android

Có nhiều khung thử nghiệm được sử dụng để tiến hành kiểm tra tích hợp cho Android như Troyd, Robolectric, Robotium.

Kiểm tra hoạt động

  • Hoạt động còn được gọi là Kiểm tra chức năng hoặc Kiểm tra chấp nhận. Chúng là các bài kiểm tra cấp cao được thiết kế để kiểm tra tính đầy đủ và đúng đắn của ứng dụng.
  • Trong Android, FitNesse là khung mã nguồn mở giúp dễ dàng thực hiện các thử nghiệm hoạt động cho ứng dụng mục tiêu.

Kiểm tra hệ thống

Trong Kiểm thử hệ thống, hệ thống được kiểm tra tổng thể và kiểm tra sự tương tác giữa các thành phần, phần mềm và phần cứng.

Trong 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 hiệu suất được chú trọng nhiều hơn. Bạn có thể sử dụng các công cụ như Traceview để tiến hành kiểm tra hiệu suất trên Android. Công cụ này có thể giúp bạn gỡ lỗi ứng dụng của mình và định cấu hình hiệu suất của nó.

KIỂM TRA ANDROID tự động

Vì android bị phân mảnh nên việc thử nghiệm trên nhiều thiết bị là cần thiết. Nhưng điều này cũng sẽ khiến bạn mất tiền. Kiểm tra Android tự động có thể giúp giảm chi phí

Lợi ích của kiểm tra Android tự động

  • 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 thấy và sửa các lỗi khi triển khai
  • Đảm bảo chất lượng của phần mềm

Chúng ta sẽ nghiên cứu 2 khuôn khổ sau

  • Khung thử nghiệm Android
  • Khung thử nghiệm rô-bốt

Khung thử nghiệm Android

Một trong những khuôn khổ thử nghiệm tiêu chuẩn cho ứng dụng Androidkhuôn khổ thử nghiệm Android . Đây là một khung thử nghiệm mạnh mẽ và dễ sử dụng được tích hợp tốt với các công cụ SDK Android.

Kiến trúc khung thử nghiệm Android

  1. Gói ứng dụng là ứng dụng mục tiêu của bạn cần được kiểm tra
  2. InstrumentationTestRunner là trình chạy Test Case thực hiện test case trên ứng dụng đích. Nó bao gồm:

2a) Công cụ kiểm tra: Một công cụ SDK để xây dựng thử nghiệm. Chúng được tích hợp trong IDE Eclipse hoặc chạy dưới dạng dòng lệnh.

2b) MonkeyRunner: Một công cụ cung cấp các API để viết chương trình điều khiển thiết bị Android hoặc trình mô phỏng bên ngoài mã Android.

  1. Gói thử nghiệm được tổ chức thành các dự án thử nghiệm. Gói này tuân theo quy ước đặt tên. Nếu ứng dụng đang thử nghiệm có tên gói là "com.mydomain.myapp" thì gói thử nghiệm phải là "com.mydomain.myapp.test". Gói thử nghiệm bao gồm 2 đối tượng như sau:

3a) Các lớp test case: bao gồm các phương thức kiểm thử để thực thi trên ứng dụng đích.

3b) Đối tượng giả: bao gồm dữ liệu giả sẽ được sử dụng làm đầu vào mẫu cho các trường hợp thử nghiệm.

Các lớp trường hợp thử nghiệm Android

Sơ đồ lớp AndroidTestCase

  1. TestCase bao gồm các phương thức JUnit để chạy thử nghiệm JUnit
  2. TestSuite được sử dụng để chạy một tập hợp các trường hợp thử nghiệm
  3. InstrumentationTestSuite là một TestSuite đưa Instrumentation vào InstrumentationTestCase trước khi chạy chúng.
  4. InstrumentationTestRunner là trình chạy trường hợp thử nghiệm thực thi trường hợp thử nghiệm trên ứng dụng đích.
  5. AndroidTestCase mở rộng JUnit TestCase. Nó chứa các phương thức để truy cập các tài nguyên như Bối cảnh hoạt động.
  6. ApplicationTestCase xác minh các lớp Ứng dụng trong một môi trường được kiểm soát.
  7. InstrumentationTestCase xác minh một tính năng hoặc hành vi cụ thể của ứng dụng đích, ví dụ: xác minh đầu ra giao diện người dùng của ứng dụng.
  8. ActivityTestCase là lớp cơ sở hỗ trợ kiểm tra các Hoạt động ứng dụng.
  9. ProviderTestCase là lớp để thử nghiệm ContentProvider đơn lẻ.
  10. ServiceTestCase được sử dụng để kiểm tra các lớp Dịch vụ trong môi trường kiểm thử. Nó cũng hỗ trợ vòng đời của Dịch vụ.
  11. SingeLauchActivityTestCase được sử dụng để kiểm tra Hoạt động đơn lẻ với một InstrumentationTestCase.
  12. ActivityUnitTestCase được sử dụng để kiểm tra hoạt động đơn lẻ.
  13. ActivityIricalmentationTestCase2 mở rộng lớp JUnit TestCase. Nó kết nối bạn với ứng dụng đích bằng thiết bị đo đạc. Với lớp này, bạn có thể truy cập thành phần GUI của ứng dụng và gửi sự kiện giao diện người dùng (sự kiện nhấn phím hoặc chạm) tới giao diện người dùng.

Dưới đây là một ví dụ về ActivityInticmentationTestCase. Nó xác minh hoạt động giao diện người dùng của ứng dụng Máy tính, kiểm tra tính đúng đắn của kết quả giao diện người dùng.

Ví dụ về thử nghiệm ActivityInticmentationTestCase2

Khung thử nghiệm rô bốt

Kiểm tra bằng cách sử dụng Khung kiểm tra Android với thiết bị hoặc trình giả lập rất khó. Quá trình xây dựng và chạy thử nghiệm diễn ra chậm và cần nhiều nỗ lực phát triển. Để khắc phục sự cố này, có một sự lựa chọn khác - khuôn khổ thử nghiệm Robolectric .

Robolectric framework cho phép bạn chạy các bài kiểm tra Android trực tiếp trên JVM mà không cần thiết bị hoặc trình giả lập.

Các tính năng nâng cao của Robolectric

Các lớp trường hợp thử nghiệm robot

Hoạt động của Robolectric

  • Như hình trên, Robolectric có thể thực hiện các hành động sau:
  • Đăng ký và tạo một lớp Shadow
  • Chặn tải lớp Android
  • Sử dụng javaassist để ghi đè các thân phương thức của lớp Android
  • Đối tượng Bind Shadow với lớp Android
  • Điều này cho phép mã đang được kiểm tra thực thi mà không cần môi trường Android.

Khung thử nghiệm khác

Bên cạnh các khuôn khổ thử nghiệm đã được đề cập ở trên, còn có nhiều khuôn khổ thử nghiệm khác như:

  • Android Junit Report, một trình chạy thử nghiệm công cụ tùy chỉnh dành cho Android tạo báo cáo XML để tích hợp với các công cụ khác.
  • Expresso
  • Appium

Huyền thoại về thử nghiệm Android

Nhiều doanh nghiệp phát triển các chiến lược Kiểm thử android dựa trên những quan niệm sai lầm phổ biến. Phần này xem xét một số huyền thoại và thực tế phổ biến của thử nghiệm Android.

Lầm tưởng số 1: Tất cả các thiết bị Android đều giống nhau… thử nghiệm trên trình giả lập là đủ

Hãy bắt đầu với một ví dụ đơn giản. Một ứng dụng hoạt động hoàn hảo trên trình giả lập nhưng trên một số thiết bị thực, nó bị treo trong quá trình thực thi

Ứng dụng gặp sự cố trong quá trình thực thi trên thiết bị thực

Trình giả lập không đủ cho thử nghiệm di động của bạn. Bạn phải thử nghiệm ứng dụng của mình trên các thiết bị thực.

Lầm tưởng # 2: Thử nghiệm trên một số thiết bị phổ biến là đủ

  • Trên các thiết bị khác nhau, ứng dụng của bạn trông khác nhau vì các thiết bị khác nhau có phần cứng, kích thước màn hình, bộ nhớ khác nhau, v.v. Bạn phải kiểm tra ứng dụng của mình trên các thiết bị, phiên bản hệ điều hành, mạng di động và vị trí khác nhau.

Lầm tưởng # 3: Thử nghiệm khám phá ngay trước khi ra mắt là đủ

  • Nói chung trong tất cả các thử nghiệm, chúng tôi thiết kế các trường hợp thử nghiệm sau đó thực thi chúng. Nhưng trong thử nghiệm Khám phá, thiết kế và thực thi thử nghiệm tất cả sẽ được thực hiện cùng nhau.
  • Trong thử nghiệm khám phá, không có kế hoạch và không có sự chuẩn bị, sau đó người thử nghiệm sẽ thực hiện các thử nghiệm mà anh ta muốn làm. Một số chức năng sẽ được kiểm tra nhiều lần, trong khi một số chức năng sẽ không được kiểm tra hoàn toàn.

Lầm tưởng # 4: Nếu có một số lỗi trong ứng dụng, 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 gỡ cài đặt ứng dụng của bạn
  • Vấn đề chất lượng là lý do đầu tiên dẫn đến đánh giá không tốt trong Google Play. Nó ảnh hưởng đến uy tín của bạn và bạn làm mất lòng tin của khách hàng.

Do đó, điều cần thiết là phải có một chiến lược thử nghiệm Android phù hợp

Các phương pháp hay nhất trong Thử nghiệm Android

  • 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ọ đang viết mã
  • Tất cả các trường hợp thử nghiệm phải được lưu trữ trong kiểm soát 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 mã được thay đổi
  • Tránh sử dụng trình giả lập và thiết bị đã root