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
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
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
Đọ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
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.