// QA & kiểm thử

Cách kiểm thử luồng xác minh SMS của chính bạn từ đầu đến cuối

Trước mỗi lần phát hành bạn cần bằng chứng rằng luồng đăng ký và OTP của mình vẫn hoạt động — rằng mã gửi đi, đến nơi, được kiểm tra và bị từ chối đúng cách. Cẩm nang này chỉ cách kiểm thử luồng xác minh của chính bạn bằng thông tin đăng nhập kiểm thử của nhà cung cấp, mã ma thuật, sandbox và các kiểm tra tự động trong CI, mà không làm phiền điện thoại thật hay tốn tiền cho SMS thực.

Bạn thực sự đang kiểm thử điều gì

Một luồng xác minh có nhiều bộ phận chuyển động, và mỗi bộ phận có thể hỏng độc lập. Kiểm thử tốt bao quát cả đường hạnh phúc lẫn các đường thất bại, bởi việc xử lý thất bại là nơi giành hoặc mất niềm tin của người dùng.

  • Gửi: một mã được sinh và phát đi cho một số hợp lệ.
  • Nhận và kiểm tra: mã đúng được chấp nhận và phiên được nâng cấp.
  • Từ chối: mã sai, hết hạn và tái sử dụng bị từ chối.
  • Giới hạn: giới hạn tần suất và khoảng chờ gửi lại hoạt động như thiết kế.
  • Dự phòng: việc nâng cấp kênh và các trạng thái lỗi hiển thị đúng.

Dùng thông tin đăng nhập kiểm thử của nhà cung cấp và mã ma thuật

Mỗi nhà cung cấp lớn cho bạn một cách diễn tập luồng mà không gửi tin nhắn thật. Twilio có thông tin đăng nhập kiểm thử và số điện thoại ma thuật mô phỏng thành công và các phản hồi thất bại cụ thể; Vonage, Sinch và MessageBird cung cấp chế độ sandbox và số kiểm thử. Dùng chúng trong các lần chạy cục bộ và CI để bộ kiểm thử của bạn không bao giờ chạm đến một nhà mạng thật.

  • Twilio: thông tin đăng nhập kiểm thử + số ma thuật buộc kết quả thành công/không hợp lệ/thất bại.
  • Các nhà khác: khóa API sandbox và số kiểm thử được chỉ định.
  • Giữ thông tin đăng nhập kiểm thử và thực trong các cấu hình môi trường tách biệt, đặt tên rõ ràng.
!

Đừng bao giờ chạy kiểm thử với thông tin đăng nhập thực trong CI — một lỗi vòng lặp có thể gửi hàng nghìn tin nhắn tính phí và khiến người gửi của bạn bị gắn cờ.

Cấp phát số kiểm thử bạn kiểm soát

Với các kiểm thử đầu-cuối thực sự giao một tin nhắn, hãy cấp phát các số lập trình được bạn sở hữu làm người nhận kiểm thử, rồi đọc mã đã giao trở lại qua API tin nhắn của nhà cung cấp và đưa nó vào bước kiểm tra của bạn. Vì bạn sở hữu số và ứng dụng, đây là một kiểm thử vòng kín gọn gàng cho chính hệ thống của bạn.

  1. 1

    Cấp phát một số kiểm thử

    Tạo một số lập trình được trong tài khoản nhà cung cấp của bạn dành riêng cho môi trường kiểm thử.

  2. 2

    Kích hoạt việc gửi của bạn

    Gọi chính điểm cuối đăng ký/kiểm tra của bạn để ứng dụng gửi một mã thật đến số kiểm thử.

  3. 3

    Đọc mã qua API

    Lấy tin nhắn đến qua API nhà cung cấp và trích xuất mã bằng lập trình.

  4. 4

    Hoàn tất và khẳng định

    Gửi mã đến điểm cuối kiểm tra của bạn và khẳng định phiên được nâng cấp; rồi giải phóng số.

Tự động hóa trong CI

Đấu nối những điều trên vào pipeline của bạn để xác minh được kiểm tra ở mỗi lần build. Dùng đường mock/sandbox cho các kiểm thử đơn vị và tích hợp nhanh chạy ở mỗi commit, và dành kiểm thử vòng kín thật (với số bạn sở hữu) cho một giai đoạn hằng đêm hoặc trước phát hành để kiểm soát chi phí.

  • Làn nhanh: mock nhà cung cấp hoặc dùng thông tin đăng nhập kiểm thử ở mỗi commit.
  • Làn chậm: kiểm thử gửi-đến-số-của-mình thật hằng đêm hoặc trước phát hành.
  • Khẳng định cả các đường thất bại: mã hết hạn, mã sai và phản hồi giới hạn tần suất.
  • Cảnh báo về suy giảm độ trễ gửi đến, không chỉ đạt/rớt.

Kiểm thử khả năng gửi đến, không chỉ logic

Kiểm thử logic chứng minh mã của bạn đúng; chúng không chứng minh tin nhắn đến nơi trong thế giới thực. Định kỳ gửi lưu lượng kiểm thử thật đến các số trên các nhà mạng và quốc gia trọng yếu của bạn và đo tỷ lệ gửi đến và độ trễ thực tế, để bạn bắt được một suy giảm định tuyến hoặc lọc trước khi người dùng của bạn gặp.

!

Vấn đề gửi đến thường xuất hiện theo quốc gia hoặc theo nhà mạng. Hãy luân phiên giám sát trên cơ cấu đích thực tế của bạn — cẩm nang khả năng gửi đến giải thích vì sao.

Câu hỏi thường gặp

Làm sao kiểm thử OTP mà không gửi SMS thật?+

Dùng thông tin đăng nhập kiểm thử và số ma thuật của nhà cung cấp, chúng mô phỏng phản hồi thành công và thất bại mà không chạm đến nhà mạng. Dành việc gửi tin thật cho một kiểm thử nhỏ hằng đêm hoặc trước phát hành với các số bạn sở hữu, để giữ chi phí và uy tín người gửi trong tầm kiểm soát.

Làm sao đọc mã OTP trong một kiểm thử tự động?+

Cấp phát một số lập trình được bạn sở hữu làm người nhận kiểm thử, rồi lấy tin nhắn đến qua API tin nhắn của nhà cung cấp và trích xuất mã trong kiểm thử. Vì bạn sở hữu số và ứng dụng, đó là một kiểm thử vòng kín gọn gàng cho chính luồng của bạn.

Kiểm thử xác minh của tôi nên bao quát gì?+

Cả đường hạnh phúc (mã gửi, đến, kiểm tra) lẫn các đường thất bại (mã sai, mã hết hạn, mã tái sử dụng, giới hạn tần suất và chuyển kênh dự phòng). Việc xử lý thất bại là nơi hầu hết lỗi thật và rủi ro chiếm đoạt tài khoản ẩn náu.

Xác minh có nên chạy ở mỗi lần build CI không?+

Chạy các kiểm thử mock/sandbox nhanh ở mỗi commit, và lên lịch kiểm thử gửi thật chậm hơn hằng đêm hoặc trước phát hành. Điều đó cho bạn độ phủ logic liên tục mà không phải trả tiền SMS ở mỗi lần push.

EdgeGigs

Muốn kiểm thử luồng đăng ký và OTP từ đầu đến cuối?

Thuê một lập trình viên tư duy QA trên EdgeGigs để xây dựng kiểm thử tự động quanh chính luồng xác minh của bạn — bao gồm số kiểm thử, sandbox và CI.

Tìm lập trình viên trên EdgeGigs