TestSprite Auto-Authはテスト実行中のログインフローをどのように処理するか?

Rui Li
TestSprite Auto-Authはテスト実行中のログインフローをどのように処理するか?カバー画像

認証は、自動テストが従来つまずいてきた場所です。

このパターンは普遍的です。チームがテストカバレッジを整備し、デモではすべて正常に動作します。しかしその後、セッショントークンが期限切れになったり、OAuthのリフレッシュが処理されなかったり、ログインフローがわずかに変わってハードコードされた認証スクリプトが壊れたりして、スイートは深夜3時に失敗し始めます。失敗したテストは何もテストしていません。玄関先で立ち往生しているだけです。そして最も重要なフロー、ユーザーが実際に使う認証済みのフロー、はまさにその扉の向こう側にあります。

Auto-AuthはTestSpriteの回答です。毎回のテスト実行前に認証を自動処理し、一度設定するだけで、エージェントはログイン画面と格闘する代わりに製品のテストに時間を使えます。

自動テストにおいてログインが長年の障壁となっている理由

認証済みテストには構造的な問題があります。クレデンシャルとセッションは状態を持ち、期限切れとなり、環境に依存する一方、テスト実行は繰り返し可能で無人でなければなりません。

今日キャプチャしたセッションは来週には無効です。午前の実行で機能していたトークンは午後の実行前に期限切れになります。OAuthフローには静的スクリプトが実行しないリフレッシュサイクルが含まれます。そして、誰も監視せずに継続的なカバレッジを提供するはずのスケジュール実行は、クレデンシャルが1つ期限切れになるだけで、製品とは無関係な失敗が山積みになります。

チームはこれをつぎはぎで対処します。セキュリティチームが当然嫌がる長期有効なテストトークン、認証ページが変わると壊れるログインスクリプト、あるいはスケジュール実行で認証済みフローをテストしないという選択、これにより製品の大半がリグレッションカバレッジから静かに除外されます。

Auto-Authが代わりに行うこと

Standardプラン以上で利用可能なAuto-Authは、毎回のテスト実行前に認証を自動実行します。プロジェクトに対して一度設定するだけで、以降のすべての実行、IDEからのトリガー、スケジュール実行、CI実行のすべてが、有効な認証済みセッションを自律的に確立してから開始します。

他の検証ツールはコードを読んで推測します。TestSpriteはあなたのアプリを開いて実際に使います。

ほとんどの実際の製品において、アプリを使うということはログインユーザーとして使うことを意味します。Auto-Authはその最初のステップを透明にします。探索エージェントがナビゲーションを開始するころには、エージェントはすでに製品の内部にいて、ちょうどサインインしたばかりの実際のユーザーと同様に、新鮮なセッションを保持しています。

トークンが期限切れになっても手動で再実行する必要はありません。カバレッジの途中でトークンが期限切れになることがないためです。認証は毎回、各実行の開始時に再確立されます。

サポートする3つのメカニズム

Auto-Authは、ほとんどの実際の製品で使われている3つの認証パターンに対応しています。

パスワードエンドポイント。最もシンプルなケースです。実行時に設定済みのテストクレデンシャルでログインエンドポイントに対して認証し、得られたセッションをテスト全体に引き継ぎます。製品のセッションが通常のスケジュールで期限切れになっても問題ありません。次の実行で新たに認証が行われるためです。

OAuthリフレッシュトークン。OAuthベースの認証を使用する製品では、Auto-Authが実行開始前にリフレッシュフローを実行し、リフレッシュトークンを有効なアクセストークンと交換します。静的スクリプトがスキップしていたリフレッシュサイクルがセットアップの一部として処理されるため、数週間間隔のスケジュール実行もそれぞれ有効なトークンで開始されます。

AWS Cognito。Cognitoで構築された製品は、チームがCognito固有の仕様に対応するスクリプトを書くことなく、認証フローをファーストクラスでサポートされます。

いずれの場合も、設定はプロジェクトレベルで管理されます。Webポータルで一度設定すれば、テストをトリガーするあらゆる手段、CursorやClaude Code内からのMCP、スケジュールリグレッション、プルリクエストのGitHub Actions、すべてが有効な認証を引き継ぎます。

これが解放するもの:ログインの先にあるカバレッジ

実際のメリットはログイン処理そのものではありません。ログインが阻んでいたすべてのカバレッジです。

スケジュールリグレッションが信頼できるものになります。ステージングに対する夜間実行が、認証済みの製品サーフェス、ダッシュボード、設定、請求、チーム管理をカバーし、金曜夜のトークン期限切れが月曜朝の大量の偽陽性失敗につながることがなくなります。「前回との差分」レビューは純粋に製品に関するものになります。

CIカバレッジがマーケティングページを超えて広がります。プルリクエストのTestSprite実行がプレビューデプロイのログイン済み体験をナビゲートします。AIコーディングセッションによるリグレッションは実際にそこで発生しています。Claude Codeのセッションがログインページを壊すことはほとんどありませんが、その3画面先で何かを壊すことは少なくありません。

そして、ロールベースのフローが体系的にテスト可能になります。権限モデルを持つ製品は、異なるユーザータイプとしてのカバレッジが必要です。設定済みアカウントごとの認証済みセッションは、Viewerが見るべきものを見ており、Adminがすべき操作を実行できることをエージェントが確認するための前提条件です。

シナリオ:夜間テストが「オオカミが来た」と叫ばなくなった日

5人チームがAWS CognitoでプロパティマネジメントSaaSを構築しています。家主はログインして物件・賃貸契約・メンテナンス依頼を管理します。TestSprite導入前、スケジュール実行テストには繰り返すパターンの問題がありました。トークン処理やCognito設定が変わるたびに月に一度ほどの頻度で認証ヘルパースクリプトが壊れ、そのたびにスイート全体が赤くなっていたのです。3度目の誤検知の後、チームは夜間の通知メールを無視するようになりました。その結果、本当に問題が起きた朝も同様に無視してしまいました。

チームはStandardプランでTestSpriteに移行し、CognitoセットアップとロールスコープのテストアカウントでAuto-Authを設定し、ナイトリースケジュールをステージング環境に向けました。

その後の数週間は、望ましい意味での静けさが続きました。毎晩Cognitoを通じてフレッシュな認証が行われ、エージェントは認証済みのプロダクトを操作しました。賃貸契約の作成、メンテナンス依頼の記録、家主ダッシュボードの確認といった作業です。

そしてある木曜の夜間実行で、一つの変更が検出されました。その日のClaude Codeセッションでメンテナンス依頼フローが改修されており、テナントロールのアカウントがメンテナンスのコスト見積もりを閲覧できるようになっていました。これは従来、家主専用だった情報です。改修によって共有ビューへの描画時に完全なリクエストオブジェクトが取得されていたことが原因でした。検出結果は具体的でした。どのロールで、どの画面で、何が表示され、何が表示されるべきでなかったかが明記されていました。

失敗通知メールのインライン分析にはまさにその内容が記載されていました。金曜の朝、修正に20分かかりました。数週間誰も認証に手を触れておらず、触れる必要もありませんでした。毎晩ログインが正常に動作していたからこそ、重要な夜に検出内容がプロダクト本体の問題を示すものとなったのです。

まとめ

Auto-Authは、ログインフローを繰り返し発生する障害の原因ではなく、一度設定すれば解決する初期設定ステップとして扱うことで対処します。認証はすべての実行前に自動的に行われ、パスワードエンドポイント、OAuthリフレッシュトークン、AWS Cognitoをサポートし、プロジェクトごとに一度設定するだけで全テストサーフェスに継承されます。

Auto-Authが真に提供するのは、ログイン後のカバレッジです。ユーザーが時間を費やす認証済みフロー、AIコーディングセッションがリグレッションを生み出す場所を、クレデンシャル管理の手間や深夜の誤検知なしに、スケジュール実行やCIでテストできます。

TestSprite StandardでAuto-Authを設定し、今日から認証済みフローの継続的カバレッジを始めましょう。