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