Một số lưu ý khi thực hiện kiểm thử trên Android

Ngày nay chúng ta hầu như ai cũng có một thiết bị thông minh, và nhiều nhất đó là các điện thoại thông minh và máy tính bảng. Theo đó thì các xu hướng phát triển phần mềm cũng dịch chuyển sang làm trên các thiết bị di động này. Trong đó thì phải kể đến hai loại thiết bị di động đang chiếm lĩnh thị trường đó là các thiết bị chạy hệ điều hành iOS và Android. Khi so sánh sự phổ biến, theo báo cáo mới nhất hệ điều hành Android đang dẫn đầu về mức độ phổ biến với hơn 82% số lượng thiết bị di động thông minh còn iOS là gần 15%.

Tuy phổ biến nhưng hệ điều hành Android cũng chứng kiến sự phân mảnh rất nhiều do mỗi hãng công nghệ đều muốn tùy biến hệ điều hành Android cùng với phần cứng của thiết bị theo một cách riêng nhằm tạo lợi thế cạnh tranh, chưa kể đến các phiên bản rom cook do người sử dụng tự tạo. Chính vì vậy nên khi phát triển phần mềm trên hệ điều hành này, đội ngũ phát triển gặp rất nhiều khó khăn để phát triển ứng dụng chạy tốt trên tất cả các phiên bản android cũng như trên các hệ máy của từng hãng. Dựa trên kinh nghiệm thực hiện kiểm thử phần mềm trên Android, xin chia sẻ với mọi người một số phần dễ gây ra lỗi cần lưu ý.

Tính năng dual windows

  • Hiện nay trên phiên bản 5.0 trở lên Android đã hỗ trợ dual window, tính năng cho phép người dùng có thể sử dụng hai ứng dụng cùng một lúc. Nhưng hầu hết các ứng dụng hiện nay chưa support đầy đủ cho tính năng này, về mặt giao diện cũng như chức năng. Dẫn đến khi sử dụng tính năng này có thể dẫn đến một số lỗi là force close ứng dụng cũng như đồ họa của ứng dụng đang chạy bị vỡ.

Các lỗi về gián đoạn(interrupt)

  • Một trong những lỗi có thể nói là phổ biến và hay gặp phải nhất là lỗi về gián đoạn. Và khi viết đến phần này dường như có một sự trùng hợp kỳ lạ là thiết bị di động của tôi cũng bị sụt nguồn do có một cuộc gọi đến và vẫn chưa cấp cứu được 😦 Lỗi này thường hay gặp và mắc phải trên những game hoặc phần mềm mà đòi hỏi có quyền ưu tiên được chạy như chạy toàn màn hình, đang chạy file âm thanh hoặc video. Ngoài một số gián đoạn từ bên ngoài phổ biến như cuộc gọi đến, tin nhắn(SMS, OTT) thì còn một số gián đoạn từ bên trong như báo thức, sử dụng các phím cứng, thông báo từ hệ thống(pin yếu), hết pin hoặc thậm chí là tháo pin. Chúng ta nên thử tất cả các trường hợp này để đảm bảo rằng ứng dụng chạy tốt và không bị mất dữ liệu khi bị gián đoạn. Mình cũng đã liệt kê các loại lỗi do gián đoạn tiến trình của ứng dụng trong bài các loại lỗi gặp phải khi thực hiện game testing.

Lỗi về kết nối mạng

  • Ngày này hầu hết các ứng dụng đều yêu cầu người chơi phải online để sử dụng chúng, đặc biệt các ứng dụng trò chơi hoặc nghe nhạc, xem video hay ứng dụng về chợ điện tử(Google Play Store). Chúng ta thường hay gặp đó là kết nối mạng của thiết bị vẫn bình thường nhưng ứng dụng không thể kết nối đến server hoặc thời gian kết nối quá lâu, dẫn đến timeout.

  • Nếu như chúng ta lướt web chúng ta có thể không nhận ra độ trễ một vài giây nhưng khi chơi game hoặc xem phim, nghe nhạc, điều này là rất quan trọng để giữ người dùng. Trong những điều kiện lý tưởng khi thực hiện kiểm thử chúng ta thường có tốc độ kết nối mạng wifi hoặc 3G ở mức tốt, nhưng ở điều kiện thực tế thì không phải vậy, chưa kể việc ứng dụng còn phải chia sẻ tốc độ mạng với các ứng dụng khác cùng chạy trên thiết bị của người dùng. Chúng ta nên kiểm thử ở các tốc độ mạng khác nhau hoặc có thể đảm bảo ứng dụng chạy ổn trong các điều kiện bình thường.

Các lỗi do tùy biến của từng dòng thiết bị, điện thoại của các hãng

  • Như đã đề cập đến ở phần giới thiệu, các hãng khác nhau thì giao diện của hệ điều hành cũng khác nhau. Thêm đó là một số tính năng có thể chạy tốt và không gặp lỗi trên dòng thiết bị của hãng này nhưng khi chạy trên hãng khác thì có thể gặp lỗi dù thế hệ của máy, cấu hình phần cứng giống hoặc tương đương nhau

  • Một ví dụ đơn cử là trên một số hãng ví dụ như LG, chúng ta có thể ẩn được thanh menu điều hướng của điện thoại. Chính vì vậyứng dụng cũng phải đáp ứng được khi ẩn hoặc hiện thanh menu này giao diện sẽ không bị che khuất hoặc vỡ hình ảnh.

  • Một số hãng đã bỏ đi một vài tính năng của hệ điều hành Android gốc dẫn đến ứng dụng của chúng ta có sử dụng tính năng đó khi chạy trên thiết bị này thì dẫn đến lỗi. Lỗi này sẽ không thể sửa được và khi đó thường đội ngũ sản xuất sẽ loại thiết bị này ra khỏi danh sách hỗ trợ.

  • Với một số thiết bị dành riêng cho thị trường Nhật Bản, những thiết bị này có một chế độ đó là manner mode. Chế độ này sẽ tắt toàn bộ tất cả các âm thanh của device, kể cả khi người dùng tăng chỉnh volume, chế độ này chỉ được tắt trong setting của device. Chính vì vậy nên khi thực hiện kiểm thử cho các app có sử dụng âm thanh trên thị trường này, chúng ta cũng nên để ý về điều này, tránh bắt những lỗi nhầm lẫn.

Lỗi do chạy nhiều ứng dụng hoặc lỗi của bên thứ ba

  • Khác với iOS, android cho phép nhiều tác vụ, ứng dụng chạy ngầm mà thậm chí không cần bật, dẫn đến khi sử dụng ứng dụng thì sẽ gây nên giảm hiệu suất. Cộng thêm trong điều kiện sử dụng thực tế, người dùng thường không có thói quen tắt các ứng dụng đã sử dụng nên gây nên tình trạng tốn bộ nhớ, và giảm hiệu suất của máy. Chúng ta nên kiểm tra khi có nhiều ứng dụng khác được chạy trên thiết bị, ứng dụng có đảm bảo hiệu suất chạy hay không.

  • Thêm một lỗi có khả năng xảy ra đó là lỗi xung đột với các ứng dụng khác. Một ứng dụng khác sử dụng chung tài nguyên của thiết hoặc cùng do một đội ngũ phát triển hiện tại làm nên sử dụng chung mã nguồn mà không thay đổi các tham số, dẫn đến khi chạy hai ứng dụng trên cùng một thiết bị thì có thể gây đến lỗi về xung đột.

Lỗi do chạy trên các phiên bản Android khác nhau

  • Hệ điều hành Android thường xuyên được cập nhật các tính năng mới mà người dùng thì không thường xuyên cập nhật hoặc các hãng sản xuất không còn cung cấp phiên bản Android mới cho thiết bị đó nữa. Trường hợp này chúng ta nên kiểm tra trước xem những tính năng mà ứng dụng đang sử dụng được hỗ trợ từ những phiên bản nào để có thể thực hiện kiểm thử chính xác.

  • Một lỗi khá phổ biến khi một ứng dụng chạy trên các phiên bản hệ điều hành khác nhau, do cách thiết kế, kết nối đến dữ liệu của hệ điều hành đã bị thay đổi, dẫn đến lỗi. Khi thực hiện kiểm thử trên các thiết bị Android, chúng ta nên kiểm thử khả năng tương thích của ứng dụng trên tất cả các phiên bản Android được hỗ trợ.

Lỗi khi cập nhật ứng dụng

  • Một ứng dụng trên hệ điều hành Android thường được phát hành trên chợ ứng dụng Google Play store rồi các người dùng mới có thể tải xuống. Chính vì vậy, khi có một bản cập nhật thì người dùng cũng sẽ tải về từ chợ ứng dụng và cài đè lên phiên bản cũ. Có những lỗi phát sinh trong quá trình này do dữ liệu của người dùng trên phiên bản cũ và không tương thích với phiên bản mới, gây lên lỗi khi cập nhật.

Lỗi về việc tính thời gian trên các ứng dụng offline

  • Với các ứng dụng hoặc trò chơi có thể chạy offline trên thiết bị, có một lỗi mà rất khó để sửa được đó là việc tính thời gian. Vì sử dụng offline nên ứng dụng sẽ sử dụng giờ của hệ thống. Trong trường hợp giờ của hệ thống không chính xác thì sẽ dẫn đến sự sai lệch về tính toán. Ví dụ như một trò chơi nổi tiếng là Candy Crush Saga, trò chơi này đếm số lượt chơi của người dùng và sẽ cần một khoảng thời gian để có được một lượt chơi. Khi hết số lượt chơi thì người không thể chơi được nữa. Nhưng khi thay đổi thời gian trong hệ thống thì số lượt chơi lại được tăng lên. Hiện này thì lỗi này vẫn còn xảy ra trên trò chơi này và mình vẫn dùng nó để cheat 😄

Người dùng sử dụng các hệ điều hành đã được root

  • Một số người dùng sử dụng những thiết bị đã được root và sử dụng quyền root của máy để có thể thay đổi các thông tin nhứ IMEI, MAC Address... mà máy chưa root không thể làm được nhằm vượt qua các rào cản của ứng dụng để có thể vào được ứng dụng cũng như hack các ứng dụng có cung cấp điểm thưởng cho người dùng nhằm trục lợi. Chúng ta nên thử sử dụng những máy root này để kiểm tra xem ứng dụng của chúng ta có thể chống được cách hack bằng các phương pháp sử dụng quyền root hay không

Thay đổi chính sách về quyền của ứng dụng trên Android 6

  • Trên Android 6.0 trở lên, Google đã thay đổi cách set quyền cho từng ứng dụng và người dùng có thể tắt hoặc bật các quyền này. Chính vì vậy khi phát triển ứng dụng, chúng ta cần kiểm tra xem khi tắt hoặc bật quyền thì ứng dụng vẫn được chạy bình thường mà không gây ra lỗi force close. Android-6-Apps-permission.png

All Rights Reserved