メール認証テストは、確認メールが届くことだけを確かめても半分しか終わりません。本記事では、登録、アドレスの変更、パスワードの再設定という三つの流れに共通する検証項目を整理し、見落とされやすい異常系の道筋を順に確認します。読み終えると、自分の手順書に足りない項目がどれか分かります。
確認メールで確かめるべきことは何か?
確認メールは、本人がそのアドレスを読めることを示すための仕組みです。したがって確かめるべきことは、メールが届いたかどうかではなく、次の三点に集約されます。
- リンクを開いたときに、その操作が意図どおり完了するか。
- リンクが想定した相手にだけ効くか。
- 完了したあとの画面の状態が、実際の状態と一致しているか。
この三点を流れごとに当てはめていくのが、認証まわりの検証の基本形です。
見落とされやすい四つの経路は?
正常系だけをなぞる手順書は、次の四つを落としがちです。ここが実務で最も多く不具合が出る場所です。
- 期限を過ぎたリンク。開いたときに案内が出るか、誤って成功扱いにならないか。
- 同じリンクの二度押し。二回目も成功するのか、二重に処理されるのか。
- 別のブラウザで開く場合。開始した画面と開いた画面が違っても完了するか。
- 同じアドレスを二つのアカウントで使う場合。どちらに紐づくのか。
とくに「メールが届かなかった」という経路は、必ず手順に入れてください。迷惑メールの扱い、再送の操作、再送の制限、そして再送しても届かないときに利用者がどうすればよいかまでを確認します。
状態の持ち方をどう確かめるか
認証まわりは、利用者から見えない状態がいくつもあります。未確認、確認済み、変更の途中、といった段階です。この段階が画面表示と食い違うと、利用者は自分が何をすればよいのか分からなくなります。
確かめ方は単純です。各段階で、次に取れる操作と取れない操作を一覧にします。次に、それぞれの段階で別の操作を試み、禁止されるべき操作が本当に止まるかを見ます。確認していない状態で本登録の機能に触れないか、変更の途中で古いアドレスにメールが送られないか、といった点です。
もう一つ大切なのは、古いアドレスと新しいアドレスの扱いです。変更が完了するまでのあいだ、どちらが有効なのかを決めておかないと、後から見て説明のつかない状態が生まれます。
変更の途中で何を確かめるか
アドレスの変更は、二つのアドレスが同時に存在する珍しい場面です。ここでは、どちらが現在の連絡先なのかを一意に決めておく必要があります。変更の申請中に新しいアドレスへ確認のメールが届き、古いアドレスにも案内が届く、という状態を許すのかどうかを決めてください。
決めたうえで、両方の経路を確認します。古いアドレスからの取り消しができるか、新しいアドレスの確認が済んだ時点で古い側が無効になるか。この二つは、実装しても確認されないまま残りがちです。とくに取り消しの経路は、間違えて変更を始めた利用者にとって唯一の逃げ道になります。
認証まわりで一時的な受信箱を使ってよい範囲
確認メールの受け取り先を一時的なものにすると、検証はぐっと楽になります。とくに、同じ確認を何度も繰り返す自動テストでは、人の受信箱を汚さずに済みます。
ただし、使ってよい範囲があります。一時的な受信箱は動作確認のためのもので、実在の身元として通用するものではありません。本番の利用者を装う目的や、本人確認をやり過ごす目的では使えません。ここを取り違えると、確認したいことそのものが変わってしまいます。
開発者向け: 状態機械として組み立てる
認証の流れは、状態と遷移の集まりとして書くときれいに整理できます。まず状態を列挙します。未確認、確認済み、変更の申請中、といった具合です。次に、それぞれの状態で許される操作を決めます。最後に、同じ操作が二度来たときにどうなるかを決めます。
二度押しの扱いは、とくに決め漏れが起きます。リンクに含まれる識別子を一度きりにするのか、何度でも成功として扱うのかで、利用者に見える結果が変わります。一度きりにするなら、二度目の案内を用意してください。何度でも成功とするなら、同じ操作を繰り返しても状態が壊れないことを確かめます。
もう一つの要点は、確認の送信そのものを止めないことです。検証のために再送の制限を外すと、本番で起きる「再送しすぎて届かない」という状況を再現できなくなります。制限は設計の一部として残し、テスト側でその範囲に収まる手順を組み立ててください。
最後に、確認メールの中身を検証するときは、文面の一部ではなく、操作に必要な値が取り出せるかどうかを見ます。文面は変わりますが、必要な値の位置は仕様として決まっているはずです。
次のステップ
手元の手順書を開き、上の四つの経路が入っているかどうかを確認してください。抜けていたら、期限切れのリンクと二度押しの二つから足すのが効果的です。
確認メールを受け取る場所を用意するなら使い捨てメールのツールが使えます。宛先を確認の単位ごとに分ける考え方は一時メールの仕組みで、同じアドレスを複数の相手に使うときの注意は使い捨てメールとは何かで扱っています。