- アプリケーションは、障害のある方を含め、誰にとっても理解しやすく使いやすいものになっていますか?
- アプリケーションは、さまざまなブラウザーやデバイスで動作する必要がありますか?
- アプリケーションは、多国籍または国際的な環境で動作する必要がありますか?
- 想定外の本番負荷がかかった場合、アプリケーションはどのような動作をしますか?
- アプリケーションをセキュリティ上の脆弱性からどのように保護しますか?
単体テスト
統合テスト
- Rules で変数を使用する場合は、値の設定方法を参照してください
- Hooks で変数を使用する場合は、エディタで secrets を設定する方法を参照してください
- Actions で変数を使用する場合は、Explore Flows and Triggers を参照してください
- Custom DB Scripts で変数を使用する場合は、設定パラメーターを参照してください
ベストプラクティス
テナント固有の値だけでなく、カスタムコード内に公開すべきでない機密性の高いシークレットを保持するためにも、変数を使用することを推奨します。カスタムコードを GitHub にデプロイしている場合、テナント固有の変数を使用することで、GitHub リポジトリを通じて機密値が露出するのを防げます。テスト自動化
モックテスト
ペネトレーションテスト (任意)
負荷テスト (任意)
- アプリケーションのテスト実行時に HTTP トレースを取得し、アプリケーションまたは予定しているテストで必要となるすべての呼び出しを特定してください。そのうえで、本番環境で実際に発生する動作を適切に再現できるよう、それらがテストに含まれていることを確認してください。
- Auth0 API のレート制限を考慮してテストを設計してください。
- Auth0 内のカスタムコード (Actions、Rules、Hooks、カスタムデータベーススクリプト、カスタム 接続) を使用すると、Auth0 のカスタムコードサンドボックスが呼び出されるため、パフォーマンス面でより大きなコストがかかる可能性があります。Rules は、テストに不可欠でない限り無効にしてください。無効にすると、有効な場合よりもスループットが高くなります。
- 本番環境で想定される全体の負荷と、各エンドポイントへの呼び出し割合を見積もり、それに応じて性能テストを構成し、現実的な結果が得られるようにしてください。エンドポイントごとに性能コストは異なります。実態を反映したテストを設計しないと、誤解を招く結果になります。
- 先行する呼び出しの結果に依存する呼び出しは、前提となる呼び出しやレスポンスが完了したことを確認せずに実行しないでください。単に遅延を組み込むだけでは不十分な場合があります。
- 十分なエラーハンドリングを必ず実装してください。テスト中の問題でよくある原因の 1 つは、カスタムコード (Actions、Rules、Hooks、カスタムデータベーススクリプト、カスタム OAuth 接続スクリプト) 内の未処理例外によるエラーです。
- 負荷テストは、低いレベルから開始して段階的に負荷を上げ、各レベルでデータを収集するように作成してください。そうすることで、より有用な結果が得られます。高いレベルから始めてすぐに失敗すると、システムがどこまで耐えられるかについて得られる情報は少なくなります。
- 性能テストは、テスト対象のコードやテストハーネス/設定を調整しながら、複数回実行する必要があるのが一般的です。複数回の反復に十分な時間を確保できるよう、早めにテストを開始してください。
- 独自のメールプロバイダーアカウントを使用し、十分なメール送信クォータを事前に確保するよう手配してください。そうしないと、メールプロバイダーによってレート制限される可能性があります。メール送信を使用しない場合は無効にしてください。
- すべてのソーシャル接続では、Auth0 の開発用キーではなく、必ずご自身のアカウント認証情報を使用してください。 で、Connections -> Social -> {name of connection} に移動すると、接続にご自身のソーシャルプロバイダーのアカウント認証情報を追加する方法を確認できます。注: 一部のソーシャルプロバイダーでは負荷テストが許可されていません。各プロバイダーのポリシーを確認してください
- レート制限を回避し、実際の負荷をより正確に再現するために、テストでは同じユーザーに対するリクエストばかりではなく、異なるユーザーに対するリクエストを送信する必要があります。1 人または少数のユーザーしか使用しない場合、キャッシュによって実効負荷が下がり、現実的な結果が得られない可能性があります。
- テストについて合意した条件と Auth0 の負荷テストポリシーの範囲内に必ず留まってください。Auth0 は、合意した条件の範囲を超える、または予定されたテスト時間枠を超えて実施される性能/負荷テストを終了させる権利を留保します。