12/08/2018, 18:06

Mobile Testing: UI Testing of Mobile Apps (iOS and Android UI Testing)

Ngày nay khi công nghệ mobile ngày càng phát triển, các ứng dụng trên di dộng cũng trở nên phổ biến, cho nên việc kiểm thử trên mobile application là cần thiết. Bên cạnh function testing, thì field testing, network testing, UI testing, battery life testing là những công việc bắt buộc khi kiểm thử ...

Ngày nay khi công nghệ mobile ngày càng phát triển, các ứng dụng trên di dộng cũng trở nên phổ biến, cho nên việc kiểm thử trên mobile application là cần thiết. Bên cạnh function testing, thì field testing, network testing, UI testing, battery life testing là những công việc bắt buộc khi kiểm thử cho ứng dụng trên di động. Và UI testing là một trong những yêu cầu cần thiết và quan trọng trong việc kiểm thử.

  • Như là một user, bạn cảm thấy như thế nào khi bạn sử dụng một ứng dụng thiếu tính tương tác và rất khó sử dụng.
  • Ấn tượng đầu tiên của user đối với một ứng dụng không phải là trải nghiệm chức năng của ứng dụng đó như thế nào, hoạt động ra làm sao, hiệu năng có tốt hay không, mà chính là trải nghiệm người dùng, một UI/UX thân thiện. Một ứng dụng có UI thân thiện luôn được đánh giá cao hơn một ứng dụng hoạt động tốt nhưng có trải nghiệm người dùng khó chịu.
  • Mặc khác, nếu một ứng dụng có UI/UX tuyệt vời trên device này, nhưng lại bị vỡ layout trên các device khác, hoặc trên hệ điều hành khác, thì đó vẫn là UI chưa tốt đối với người dùng.
  • Bạn có thấy khó chịu khi các ứng dụng trên di động có thiết kế button quá nhỏ để touch, menu và nanigation bar quá khó để điều khiển .v.v..
  • Bạn đã từng nghe về “Thiết kế trải nghiệm tệ hại?” Hầu hết lý do chúng xuất phát từ thiết kế UI quá tệ. Những thiết kế tệ không đem lại cảm giác muốn dùng thử từ người dùng, từ đó những mong muốn cung cấp trải nghiệm cho họ bị phá sản. Tất cả các vấn đề được đề cập ở trên cho thấy sự quan trọng của UI testing cho các ứng dụng di động. Hai điểm quan trọng chính là UI trên các loại devices khác nhau và các OS khác nhau.

Sau đây là ví dụ về cách giao diện người dùng phải hoàn hảo trên các kích thước màn hình khác nhau:

Từ biểu đồ trên, bạn có thể thấy rằng, ứng dụng Game chiếm 24,23% và sau đó là "Business' và 'Education'

  • Những ứng dụng Game thì cần được kiểm tra UI vô cùng tỉ mỉ, vì đòi hỏi tính hoàn thiện về mặt UI. Một ứng dụng bắt mắt và lợi hại sẽ cung cấp một trải nghiệm có giá trị với sự lựa chọn của người dùng.
  • Các ứng dụng của doanh nghiệp thì có thể không khắt khe lắm về giao diện người dùng, vì hầu hết đối tượng sử dụng đều là nhân viên của doanh nghiệp và được đào tạo hướng dẫn để sử dụng.
  • Các ứng dụng trong mảng giáo dục cũng cần được kiểm tra UI một cách kĩ lưỡng
  • Các ứng dụng thương mại như mua sắm, bán hàng... cần phải được kiểm tra UI hoàn chỉnh trên Web, các trình duyệt khác nhau, các thiết bị khác nhau và nhiều OS khác nhau. Tóm lại, tùy thuộc vào mục đích sử dụng của ứng dụng, yêu cầu của khách hàng, mức độ của việc kiểm tra giao diện người dùng sẽ được quyết định. Nhưng việc kiểm tra giao diện người dùng phải luôn được thực hiện trên ít nhất 3 phiên bản hệ điều hành khác nhau.

Sau đây là một số đặc điểm cần được kiểm tra trên mọi ứng dụng Mobile

1. Screen Resolution

Một số Screen Resolution thông dụng trên các ứng dụng Mobile

  • 640 × 480
  • 800 × 600
  • 1024 × 768
  • 1280 × 800
  • 1366 × 768
  • 1400 × 900
  • 1680 × 1050

Tất cả Screen Resolution phía trên là bắt buộc phải test nếu ứng dụng bạn đang test có multi-column layout. Chính vì vậy, việc kiểm tra từ độ phân giải thấp đến cao là điều bắt buộc

2. Các thuộc tính UI

Những thuộc tính UI như buttons, headings, icons, images, text fields, checkbox, combobox .v..v..và một số thuộc tính khác đều phải được kiểm tra hiển thị trên các loại màn hình khác nhau.

Cụ thể như trong trường text field, bạn cần phải kiểm tra việc bàn phím sẽ hiển thị khi bạn tap/touch vào text fields.

Về các buttons, thì việc đảm bảo nó hiển thị đúng kích thước để tránh trường hợp button quá nhỏ không thể tap được, hoặc button bị lệch, bị vỡ trên các loại thiết bị khác nhau

Thêm vào đó, việc canh lề trên thiết bị di động cũng cần phải được kiểm tra: ví dụ tất cả phải được canh giữa ...

3. Màu sắc và Theme của thiết bị

UI và theme của ứng dụng cũng phải phù hơp với các loại màu sắc và theme trên các loại thiết bị. Ví dụ như màu sắc và chủ đề của điện thoại Samsung rất khác so với điện thoại Nokia hoặc điện thoại MI .

Vậy nên bạn cần phải kiểm tra xem ứng dụng của mình có phù hợp trên các thiết bij như vậy hay không.

4. Multi touch hay single touch

Đối với các ứng dụng hổ trợ multi touch thì bạn cũng cần phải kiểm tra kỹ tính năng này. Ví dụ như chức năng chức năng chạm để phóng to thu nhỏ, và các chế độ setting multi touch trên iOS...

5. Long hay short press

Các ứng dụng trên di động thường hổ trợ chức năng short press hay long press (chạm và giữ) , ví dụ như sort press để mở ứng dụng, long press để thực hiện các chức năng như tạo mới, call nhanh tương tự như chức năng 3D touch trên iOS

Mỗi khi có một version OS mới được release, thì ít nhiều UI cũng sẽ thay đổi. Việc kiểm tra UI trên các OS khác nhau là việc không thể bỏ qua khi test UI cho các ứng dụng di động.

1. Thiết bị thực hay thiết bị giả lập (Emulators)?

Không có câu trả lời chính xác cho sự lựa chọn này bởi vì sự lựa chọn phụ thuộc vào những gì bạn muốn kiểm tra.

Như để thử nghiệm các chức năng, performance, network response, field test..., bạn nên test trên các thiết bị thật. Nhưng đối với giao diện người dùng, bạn nên chọn Emulators cùng với một số thiết bị thật.

Ưu điểm của việc sử dụng giả lập (Emulators)

  1. Lý do đầu tiên và cũng là lý do quan trọng nhất là kinh phí, khi bạn phải bỏ ra một số tiền kha khá để có thể có đầy đủ thiết bị với các kích cỡ màn hình khác nhau thì đối với Emulators bạn sẽ chẳng phải tốn một xu nào cả
  2. Với Emulators, bạn có thể test với tất cả độ phân giải màn hình và các hệ điều hành khác nhau.
  3. Việc kiểm tra với Emulators sẽ giúp bạn tiết kiệm thời gian cài đặt, config so với việc sử dụng thiết bị thật
  4. Các lỗi phổ biến như căn lề ... có thể dễ dàng bắt được với Emulators.

Nhược điểm của việc sử dụng giả lập (Emulators)

  1. Không thể kiểm tra hành vi của người dùng. Chỉ có một hành vi được mô phỏng tại một thời điểm
  2. Không thể kiểm tra các case UI trong tình trạng mạng yếu, hay sử dụng 2G, GPS...
  3. Không thể tạo mô phỏng cho các thiết bị Sony, LG, Nexus...
  4. Việc tạo điều kiện test là pin yếu, hay dung lượng ít là điều không thể.

2. Manual hay Automation testing?

Việc kiểm tra với tất cả các loại data, cover 100% các trường hợp có thể xảy ra là điều không thể khi test bằng tay. UI testing đơn giản và bạn chỉ cần nhìn và so sánh bằng mắt. Tuy nhiên nó rất tốn thời gian. Bên cạnh đó một dữ liệu rất lớn như một combox có một số lượng data lớn. Việc tạo dữ liệu là khá tốn thời gian, nếu sử dụng Automation thì có thể giải quyết được các vấn đề trên.

Tuy nhiên, nếu ứng dụng đang trong giai đoạn chưa chốt UI, còn thay đổi và hoàn thiện UI liên tục thì việc triển khai test tự động là không nên. Tương tự, nếu đó là các chức năng quan trọng thì manual vẫn là phương pháp phù hợp

Vì vậy phụ thuộc vào các điều kiện sau đây, bạn nên quyết định thử nghiệm bằng tay hay tự động:

  • Bản chất của ứng dụng
  • Tính ổn định của ứng dụng.
  • Nhân lực có sẵn trong dự án có thể triển khai Auto
  • Thời gian cho phép của việc triển khai Auto
  • Khách hàng có đồng ý đầu tư thời gian và nguồn lực hay không?

5 ứng dụng tốt nhất về UI testing Automaton trên Mobile

Sau đây là 5 tool có thể được sử dụng để kiểm tra UI của ứng dụng thiết bị di động trên Android và iOS.

1.Selendroid: Đây được coi như một trong những công cụ tốt nhất trong việc kiểm thử UI trên mobile.

  • Có thể được sử dụng cho cả Native và Hybrid.
  • Chỉ có thể được sử dụng cho Android và API được viết bằng Selendroid 2.
  • Có thể được sử dụng với nhiều thiết bị và có thể tương thích với JSON.

2.Testdroid Testdroid là công cụ dựa trên đám mây và có thể được sử dụng cho nhiều thiết bị, độ phân giải màn hình và phiên bản hệ điều hành khác nhau của Android và iOS. Kiểm tra thiết bị song song là một lợi thế lớn của công cụ này và là một công cụ tốt để kiểm tra UI. Nó giúp các nhà phát triển để cải thiện thời gian để thị trường.

3.SeeTest Đây là tool mất phí, có thể sử dụng cho các loại thiết bị như Android, iOS, Windows, Symbian...Đây là một công cụ đa nền tảng và do đó lợi thế là cùng một thử nghiệm có thể chạy trên tất cả các nền tảng. SeeTest có thể được sử dụng cho tất cả các ứng dụng di động và các bài kiểm tra có thể được chạy song song trên nhiều thiết bị.

4.UI Automation: Đây là công cụ kiểm tra UI chính thức của Apple và là công cụ tốt nhất để tự động hoá các ứng dụng iOS. Mặc dù rất khó để học, nhưng nó có điểm mạnh với thư viện, performance, UI testing...

5.Calabash Calabash có thể sử dụng để testing trên cả Android và iOS cho các ứng dụng Native hoặc Hybrid. Đây là công cụ đa nền tảng và nó được sử dụng tốt nhất để kiểm tra hành vi, chụp ảnh màn hình, ... Nó có thể được sử dụng trên các thiết bị cảm ứng thực sự. Calabash cũng có hỗ trợ cho Cucumber.

Tham khảo: https://www.softwaretestinghelp.com/ios-android-ui-testing/

0