12/08/2018, 13:38

Kiểm thử ứng dụng tích hợp Facebook login

Ngày nay, mọi người kết nối với nhau vô cùng dễ dàng và phổ biến. Và mạng xã hội là một trong những cách thức phổ biến nhất để phục vụ cho mục đích đó. Và khi đã kể đến mạng xã hội thì không thể không nhắc tới Facebook, một mạng xã hội phổ biến nhất thế giới. Theo thống kê mới nhất từ ...

  • Ngày nay, mọi người kết nối với nhau vô cùng dễ dàng và phổ biến. Và mạng xã hội là một trong những cách thức phổ biến nhất để phục vụ cho mục đích đó. Và khi đã kể đến mạng xã hội thì không thể không nhắc tới Facebook, một mạng xã hội phổ biến nhất thế giới.

wip-facebook-results-oct-29-results.jpg

  • Theo thống kê mới nhất từ Facebook, có hơn 1 tỷ người dùng truy cập hàng ngày, và số lượng người dùng truy cập hàng tháng là hơn 1,6 tỷ trải đều trên hầu hết tất cả các quốc gia(trừ Trung Quốc). Đó là một số lượng người dùng khổng lồ mà ngay cả những ông lớn như Apple hoặc Google, Microsoft cũng không thể có được.

Facebook analytics.png

  • Chính vì vậy, để tận dụng những lợi thế về số lượng người dùng cao như vậy, Facebook đã đưa ra hàng loạt những công cụ có thể tích hợp vào việc phát triển các ứng dụng trên các nền tảng web cũng như di động. Và một công cụ được sử dụng nhiều nhất đó là Facebook Login.

  • Facebook Login - Đó là một công cụ mà Facebook phát triển cho các ứng dụng thứ 3 có thể sử dụng chính tài khoản của Facebook để đăng nhập.

Với các ứng dụng trên nền tảng web, Android hay iOS đã tích hợp việc đăng nhập bằng tài khoản Facebook, để thực hiện kiểm thử chúng ta có một số các test case phổ biến cần lưu ý sau:

1. Người dùng mới đăng nhập ứng dụng bằng tài khoản Facebook

  • Các tài khoản cần phải chưa đăng nhập ứng dụng đó hoặc chưa cho phép quyền cho ứng dụng này sử dụng tài khoản facebook. Chúng ta cần kiểm tra tài khoản đó trong app settings để chắc chắn điều này.

851556_135779183259320_298311523_n.png

  • Với những người dùng đã đăng nhập tài khoản Facebook, khi click vào nút đăng nhập tài khoản Facebook trên ứng dụng, Facebook sẽ sử dụng luôn tài khoản đang đăng nhập đó để đăng nhập vào.

  • Đối với những người dùng chưa đăng nhập tài khoản Facebook, sẽ có một pop-up nhảy ra để yêu cầu người dùng đăng nhập tài khoản Facebook. Với các nền tảng android hoặc iOS, phụ thuộc người dùng đã cài đặt ứng dụng Facebook mà sẽ nhảy ra pop-up hay mở trực tiếp ứng dụng Facebook đã có sẵn.

  • Sau khi đăng nhập, Facebook sẽ yêu cầu người dùng cho phép cấp quyền Login để ứng dụng có thể sử dụng tài khoản Facebook để đăng ký. Trong trường hợp từ chối, người dùng phải bị thoát ra và không thể đăng nhập vào ứng dụng đó.

  • Với một số ứng dụng yêu cầu một số quyền khác như quyền Write, Friend, sẽ có thêm một màn hình yêu cầu người dùng cho phép thêm các quyền đó. Chúng ta cần kiểm tra và đảm bảo các quyền cần thiết cho ứng dụng được xin đúng và việc từ chối một số quyền không làm ảnh hưởng tới việc đăng nhập của ứng dụng(tùy thuộc theo từng ứng dụng cụ thể)

851548_223778914495342_2019005911_n.png

  • Vào app settings của tài khoản Facebook để kiểm tra các quyền đã được gán trước đó.

2. Người dùng mới đăng nhập ứng dụng bằng tài khoản Facebook sau khi đã đăng nhập thông qua "non-Facebook flow" với cùng địa chỉ email

  • Với các ứng dụng có sử dụng phương thức đăng nhập riêng bằng tài khoản email, chúng ta cần đảm bảo rằng hai phương thức đăng nhập không ảnh hưởng đến nhau.

  • Đăng nhập bằng địa chỉ email

  • Đăng suất sau đó đăng nhập bằng tài khoản Facebook

  • Cần đảm bảo các bước đăng nhập giống như người dùng mới đăng nhập ứng dụng bằng tài khoản Facebook

3. Tài khoản đã đăng nhập ứng dụng bằng tài khoản Facebook trước đó và đăng nhập lại

  • Mở ứng dụng và đăng nhập bằng tài khoản Facebook

  • Kiểm tra các màn hình yêu cầu quyền và bấm "OK"

  • Gỡ và cài đặt lại ứng dụng

  • Mở ứng dụng và đăng nhập bằng tài khoản Facebook

  • Ứng dụng phải được đăng nhập mà không có các màn hình yêu cầu cho phép quyền truy cập nữa

4. Tài khoản hủy bỏ đăng nhập bằng tài khoản Facebook và sau đó đăng nhập lại

  • Mở ứng dụng và đăng nhập bằng tài khoản Facebook

  • Kiểm tra các màn hình yêu cầu quyền và bấm "Cancel"

  • Mở lại ứng dụng và đăng nhập bằng tài khoản Facebook

  • Chắc chắn rằng các màn hình yêu cầu quyền được hiển thị lại đầy đủ

5. Người dùng xóa ứng dụng từ Facebook thông qua "app settings" và mở lại ứng dụng

Trong trường hợp này ứng dụng cần phải nhận ra điều này và yêu cầu người dùng cần phải đăng nhập lại

  • Mở ứng dụng và đăng nhập bằng tài khoản Facebook

  • Kiểm tra các màn hình yêu cầu quyền và bấm "OK"

  • Mở app settings trên Facebook và xóa ứng dụng vừa đăng nhập

  • Thực hiện lại 2 bước đầu và đảm bảo rằng việc đăng nhập bằng tài khoản Facebook vẫn hoạt động

6. Người dùng thay đổi mật khẩu Facebook sau khi đăng nhập tài khoản Facebook vào ứng dụng

Trong trường hợp này, access token của người dùng sẽ không còn hợp lệ nữa và ứng dụng sẽ thông báo cho người dùng rằng phiên làm việc(session) của Facebook đã hết hạn và yêu cầu người dùng đăng nhập lại

  • Mở ứng dụng và đăng nhập bằng tài khoản Facebook

  • Thay đổi mật khẩu Facebook và chọn "Log me out of other devices"

  • Mở ứng dụng và ứng dụng yêu cầu đăng nhập lại

  • Thực hiện các bước đăng nhập bằng tài khoản Facebook như bình thường mà không xảy ra lỗi gì

7. Người dùng tắt Facebook platform thông qua app settings và đăng nhập ứng dụng

Trong trường hợp này, cần đảm bảo rằng ứng dụng có thể phát hiện ra lỗi này cũng như thông báo cho người dùng và chuyển hướng ứng dụng tới Facebook để login và bật Facebook platform

Disable Platform.png

  • Tắt Facebook platform của tài khoản trong app settings

  • Mở app và đăng nhập bằng tài khoản Facebook

  • Hiển thị thông báo yêu cầu bật Facebook platform

  • Kiểm tra các màn hình yêu cầu quyền và bấm "OK"

  • Chắc chắn rằng Facebook platform đã được bật và app được thêm vào profile của tài khoản với quyền chính xác

8. Người dùng mở lại ứng dụng khi token của app đã hết hạn

Tùy thuộc vào xử lý của app cũng như Facebook mà ta sẽ phân ra từng trường hợp cụ thể. Mời các bạn đọc thêm trong handling token expiration

9. Với các ứng dụng trò chơi muốn đồng bộ trạng thái giữa nhiều thiết bị, cần phải kiểm tra trạng thái đồng bộ(syncing state)

  • Đăng nhập tài khoản Facebook trên ứng dụng và chơi game cho tới khi người chơi đạt được một level X

  • Đăng nhập tài khoản Facebook trên một thiết bị khác có cùng hệ điều hành hoặc khác hệ điều hành, và kiểm tra xem trên thiết bị đó, trò chơi hiện tại có đang ở level X đó hay không

10. iOS Facebook integration

  • Trên các thiết bị iOS, có một tính năng đó là iOS Facebook integration sử dụng bộ Facebook iOS SDK để tích hợp việc đăng nhập vào Facebook trong ứng dụng. Trong trường hợp người dùng cài cả ứng dụng Facebook và ứng dụng cần kiểm tra có tích hợp iOS Facebook integration, sẽ cần lưu ý là nếu người dùng đã click "Cancel" khi pop-up yêu cầu cho phép quyền được mở ra thì họ sẽ phải vào trong iOS system settings để kích hoạt lại việc đăng nhập vào ứng dụng.

  • Với trường hợp thiết bị iOS chưa cài ứng dụng Facebook và tính năng iOS Facebook integration không được kích hoạt trong ứng dụng, khi đăng nhập bằng tài khoản Facebook, ứng dụng sẽ chuyển hướng tới màn hình "mobile web Facebook login"

Lưu ý

  • Chúng ta có thể sử dụng tài khoản test của chính mình để sử dụng kiểm thử cho nhiều ứng dụng. Nhưng nếu tạo quá nhiều tài khoản Facebook, chúng ta sẽ gặp khó khăn vì Facebook sẽ nghi ngờ đó là các tài khoản spam. Có một cách để tránh việc này đó là sử dụng Test Users của mỗi app.

  • Facebook cho phép mỗi ứng dụng có thể tạo tối đa 2000 tài khoản test để kiểm thử trên ứng dụng đó. Tài khoản này được tạo dễ dàng trên App Dashboard của trang Facebook developer

safe_image.jpg

safe_image (1).jpg

Tham khảo
  • https://developers.facebook.com/docs/facebook-login/testing-your-login-flow
  • https://developers.facebook.com/docs/apps/test-users
  • https://developers.facebook.com/docs/facebook-login/access-tokens/#extending
0