Chương 2 GIẢI PHÁP ỨNG DỤNG ROBOTIUM ĐỂ KIỂM THỬ ỨNG DỤNG TRÊN ANDROID
2.2. Đề xuất giải pháp cải tiến
2.2.1. Phân tích tìm kiếm giải pháp
Những vấn đề gặp phải khi sử dụng JUnit Android như đề cập ở trên dẫn đến những hạn chế, khó khăn nhất định khi sử dụng kiểm thử những ứng dụng trên điện thoại di động thông minh Android. Chúng ta có thể cải tiến những hạn chế đó bằng cách giải quyết những vấn đề sau:
Giảm thiểu tiêu tốn tài nguyên hệ thống khi thực thi kiểm thử.
Giảm thời gian thực thi.
Đơn giản hóa việc viết mã kiểm thử.
Xử lý được các ca kiểm thử phức tạp và tốn nhiều thời gian.
Hiện nay trên thị trường có rất nhiều công cụ hỗ trợ cho việc kiểm thử các ứng dụng trên điện thoại thông minh Android. Ví dụ như: Robotium, Roboelectric,
TestComplete, M-Eux, TestQuest Countdown, Test Quest Pro, VNC, Sikuli, Deviceanywhere…
Công cụ chúng ta cần phải thỏa mãn được những yêu cầu sau:
Nhẹ, ít tiêu tốn tài nguyên.
Có thể dùng để thực hiện kiểm thử chức năng trên các ứng dụng Android.
Có thể chạy độc lập không cần mã nguồn dự án phần mềm.
Hỗ trợ kiểm thử những chức năng phức tạp.
Robotium được đưa ra như một giải pháp hoàn hảo cho vấn đề này.
Robotium ra đời kế thừa những điểm mạnh của các lớp kiểm thử được tích hợp sẵn trong Android ngoài ra nó khắc phục được những nhược điểm mà công cụ Android Studio chưa hỗ trợ.
Công cụ để hỗ trợ cho công việc này có rất nhiều, tuy nhiên tôi chọn nghiên cứu Robotium vì công cụ này có ưu điểm sau:
Robotium giúp chúng ta dễ dàng viết những đoạn chương trình kiểm thử mà không cần biết nhiều về kiến thức lập trình di động Android
Robotium cung cấp API để tương tác trực tiếp với các điều khiển giao diện người dùng trong ứng dụng Android như các điều khiển chỉnh sửa văn bản (EditText), nhãn (TextView) và nút (Button).
Robotium chính thức hỗ trợ Android 1.6 trở lên.
Không được sửa đổi nền tảng Android bằng Robotium.
Robotium có thể được tích hợp trơn tru với Maven hoặc Ant.
Dự án ứng dụng thử nghiệm và dự án ứng dụng chạy trên cùng một JVM, đó là, máy ảo Dalvik (DVM).
Có thể chạy Robotium mà không cần mã nguồn dự án phần mềm.
Robotium có thể làm việc với các công cụ đo lường vùng phủ sóng khác, chẳng hạn như Cobertura và Emma.
Robotium có thể phát hiện các thông báo được hiển thị trên màn hình.
Robotium hỗ trợ các tính năng của Android như các hoạt động, trình đơn, và trình đơn ngữ cảnh.
Các bài kiểm tra tự động của Robotium có thể được thực hiện một cách nhanh chóng, giảm thiểu thời gian kiểm thử ở mức tối đa.
Robotium được xây dựng trên JUnit, vì nó thừa hưởng tất cả các tính năng của JUnit.
Công cụ Robotium tự động xử lý nhiều hoạt động phức tạp trong ứng dụng Android một cách nhanh chóng, giảm thiểu tiêu tốn tài nguyên.
Các trường hợp kiểm thử của Robotium bao gồm một hay nhiều các phương thức kiểm thử đơn vị và những kiểm thử này lại được nhóm thành các TestSuite.
Mỗi phương thức kiểm thử trong Robotium phải được thực thi nhanh chóng.
Tốc độ là điều quan trọng vì càng nhiều kiểm thử được viết và tích hợp vào bên trong quá trình xây dựng phần mềm, cần phải tốn nhiều thời gian hơn cho việc chạy toàn bộ TestSuite. Các lập trình viên không muốn bị ngắt quãng trong một khoảng thời gian dài trong khi các kiểm thử chạy, vì thế các kiểm thử mà chạy càng lâu thì sẽ có nhiều khả năng là các lập trình viên sẽ bỏ qua bước cũng không kém phần quan trọng này.
Những ca kiểm thử trong Robotium được thực hiện tự động, các ca kiểm thử này được thiết kế để khi chạy kiểm thử mà không cần có sự can thiệp của con người. Từ những thiết kế như thế, chúng ta có thể thêm các bộ kiểm thử vào quá trình tích hợp và xây dựng phần mềm một cách liên tục để tạo một ra một sản phẩm phần mềm chất lượng tốt nhất.