Tìm hiểu về Mobile App Testing

Như chúng ta đã biết thì Công nghệ điện thoại di động và các thiết bị thông minh hiện nay là xu hướng và cũng là tương lại của thế giới. Mỗi ngày có hàng triệu application được download từ Appstore hoặc Google Play về các thiết bị cá nhân. Các ứng dụng di động rất phong phú đa dạng đáp ứng đủ các nhu cầu học tập, chăm sóc sức khỏe hay giải trí của người dùng. Để kiểm thử được các ứng dụng trên các thiết bị di động (Mobile App Testing) thì trước hết ta cần hiểu định nghĩa về các thiết bị di động.

I. Các thiết bị di động là gì và các nền tảng di động hiện nay?

1. Định nghĩa:

Một thiết bị di động là một thiết bị máy tính kích thước nhỏ bỏ túi, điển hình là với màn hình hiển thị với các phím cảm ứng hoặc các bàn phím nhỏ

2. Các nền tảng di động hiện nay (Mobile Platform)

Hiện nay trên thị trường thịnh hành các thiết bị di động sử dụng các hệ điều hành như dưới đây

  • iOS (Iphone, Ipad)
  • Android (SamSung, Sony, HTC…)
  • WindowPhone (Nokia, HTC)
  • BlackBerry (BlackBerry)

Con người sự dụng các thiết bị di động với mục đích:

3. Ứng dụng trên các thiết bị di động (Mobile application)

Định nghĩa:

Ứng dụng di động là những ứng dụng chỉ được sử dụng cho các thiết bị di động hoặc tablet thông qua các Cửa hàng trực tuyến của các hãng như App Store của Apple hay Google Play của Google

Những ứng dụng này phát triển dựa trên mã hoặc framework cho mỗi nền tảng, điều này sẽ gây cản trở cho một số máy nhất định. Ở những smartphone tầm thấp có thể không chạy được ứng dụng do cấu hình thấp hoặc cần một hệ điều hành mới hơn.

Các dạng ứng dụng trên thiết bị di động bao gồm:

  • ** Native Application:** Các ứng dụng này được phát triển cho một nền tảng cụ thể và được cài trên thiết bị
  • ** Web Based Applications:** Các ứng dụng được truy cập thông qua trình duyệt của thiết bị
  • ** Hybrid Application:** Là loại ứng dụng kết hợp các yếu tố của cả Native app và Web app

II. Kiểm thử ứng dụng cho thiết bị di động (Mobile ApplicatIIion Testing)

1.Định nghĩa:

Là kiểm tra các ứng dụng cho các thiết bị di động cầm tay về chức năng, tính khả dụng và nhất quán

Với mỗi loại ứng dụng thì kiểm thử ứng dụng di động đều đóng vai trò rất quan trọng. Vì số lượng lượt download ứng dụng thường lên tới hàng triệu lượt cho một sản phẩm nào đó, do vậy một ứng dụng bị lỗi không bao giờ được đánh giá cao. Nó thường gây tổn thất về mặt tiền tệ, vấn đề pháp lý và không thể khác phục thiệt hại hình ảnh thương hiệu sản phẩm.

2. Sự khác biệt về kiểm thử di động so với các loại kiểm thử khác:

+Sự đa dạng các thiết bị di động

  • Đa dạng các hãng sản xuất thiết bị như HTC, SamSung, Apple, Nokia… với các kích thước màn hình và cấu hình phần cứng khác nhau…
  • Đa nền tảng (iOS 6,7,8, Android 4.2;4.3;4.4 , BB 5;BB6…)
  • Các thiết bị di đông có thời gian chạy ứng dụng khác nhau

+Thách thức phần cứng của thiết bị

  • Giới hạn tốc độ xử lý
  • Giới hạn dung lượng bộ nhớ của thiết bị
  • Sự khác biệt về giao thức của thiết bị WAP/HTTP

+** Thách thức về đường truyền mạng**

  • Đa dạng các loại mạng (GSM/GPRS/WIFI/3G…)
  • Không dự đoán được thời gian cho truyền tải dữ liệu
  • Khác biệt về tốc độ kết nối thông qua vật lý
  • Đa dạng các nhà điều hành mạng với những tính năng mạng khác nhau

+Ngoài ra kiểm thử ứng dụng di động cũng bao gồm các dạng kiểm thử sau:

  • Kiểm thử giao diện (UI Testing) Kiểm tra màu sắc, phong cách Menu, nhất quán của giao diện người dùng trên các thiết bị khác nhau
  • Kiểm thử chức năng (Function Testing): Kiểm tra các chức năng chính của ứng dụng di động theo đặc điểm kĩ thuật của thiết bị
  • Kiểm thử hiệu suất và chịu tải (Performance and Load Test): Kiểm tra hành vi của ứng dụng di động trong các nguồn tài nguyên thấp (Bộ nhớ/ Không gian lưu trữ), hành vi của trang web điện thoại di động khi ngiều người sử dụng điện thoại di động cùng truy cập vào trang app di động
  • Kiểm tra khả năng sử dụng (Usability Testing): Kiểm tra các khía cạnh khả năng sử dụng các ứng dụng di động
  • Thử nghiệm tương thích (Compatibility Testing): Kiểm tra khả năng tương thích của ứng dụng của bạn với các tính năng thiết bị gốc để đảm bảo rằng ứng dụng của bạn không cản trở các ứng dụng khác trong thiết bị
  • Kiểm tra gián đoạn: Vì lí do các thiết bị di động có bộ nhớ thấp hơn nhiều so với desktop nên phải đảm bảo rằng khi có cuộc gọi thoại, tin nhắn SMS, cắm sạc, thông báo bộ nhớ thấp trong khi ứng dụng đang chạy không gây ra bất cứ xung đột nào.

3. Một số testcase đặc biệt cho kiểm thử các ứng dụng di động:

  • Sự hao tổn pin: Việc theo dõi sự hao tổn pin khi chạy ứng dụng trên thiết bị di động rất quan trọng.
  • Tốc độ chạy ứng dụng: Theo dõi thời gian respond time trên các thiết bị khác nhau với các dung lượng bộ nhớ khác nhau, tốc độ mạng khác nhau…
  • Yêu cầu bộ nhớ: Khi tải và cài đặt app, chạy app..
  • Kiểm tra các chức năng của ứng dụng: Để đảm bảo ứng dụng không bị crash khi mất kết nối mạng hoặc các tác động ngoại vi khác.

4. Khám phá những khả năng của trình mô phỏng

Trình mô phỏng đóng vai trò đặc biệt quan trọng khi không có thiết bị thật cho việc kiểm thử các ứng dụng di động mặc dù test trên thiết bị thật luôn được ưu tiên vì nó tái lập hành động của người dùng cuối. Nhưng tầm quan trọng của trình mô phỏng không thể bỏ qua

Trình mô phỏng có thể giúp chúng ta giả lập kích thước màn hình, version của hệ điều hành và kích thước thẻ nhớ… theo ý muốn

Hệ điều hành iOs có trình mô phỏng Simulator, hệ điều hành Android có trình mô phỏng Emulator…

  • Android Emulator là một máy ảo giả lập chạy trên máy chủ, chạy được cả trên Windows, Mac OS và Linus
  • **Ưu điểm: **Là một bản dịch của phần mềm có thể chạy được trên cả Emulator và Android phone
  • Nhược điểm: Chạy rất chậm do phải dịch lại, mỗi lệnh chạy trên CPU máy ảo phải dịch lại để chạy trên CPU máy chủ. Mỗi lần chạy thử phần mềm trên Emulator phải mất 1-5 phút để Emulator khởi động tùy thuộc vào tốc độ của CPU máy bạn.
    • iOS Simulator được tích hợp trong phần mềm soạn thảo Xcode và có thể giả lập được cả iPhone lẫn iPad
  • **Ưu điểm: **Các ứng dụng được mô phỏng nhanh chóng
  • Nhược điểm: Bản dịch này khác với bản dịch cho iDevice CPU. Hãng Apple có khuyến cáo sử dụng các Simulator như một công cụ kiểm tra sơ bộ để tăng tốc độ lập trình và không phải là sự thay thế của các thử nghiệm trên thiết bị. Nói tóm lại chúng ta không thể phủ nhận vai trò của trình mô phỏng nhưng luôn lưu ý ưu tiên thử nghiệm ứng dụng trên nhiều thiết bị devices thật với các hệ điều hành khác nhau bởi rất nhiều bug được tìm ra trên các thiết bị thật mà không thể phát hiện được trên các trình mô phỏng.

5. Một số công cụ kiểm thử tự động cho các ứng dụng di động bao gồm:

Hệ điều hành iOS có các tools test tự động phổ biến như :

  • FoneMonkey
  • Frank
  • QTP

Hệ điều hành Android có một số tool test tự động như:

  • Robotium
  • Eggplant (Mất phí)

Nhận xét