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