受信トレイ
開発者・QAへ戻る

便利な共有資源が曖昧なtest stateになる

共有テストメールボックスがメールQAをflakyにする理由

人、retry、environment、parallel runが1つのmailbox stateを共有するとmessage ownershipが曖昧になります。

読了目安 8分

共有QA inboxは最初は効率的です。しかしstagingとproduction-like mailが混ざり、retryが古いmessageを拾い、CIが人の調査中のmailを消すようになると、どのscenarioがどのmessageを所有するか分からなくなります。

共有の便利さと信頼性

PatternConvenienceAmbiguity
signup用1 inboxprovision不要どのmailがどのrunか
multi-env inboxaccess簡単正しいhost/template
manual+CIsame evidence誰がconsume/deleteしたか
retry共有fixture再作成不要old messageでpass

mailboxはexternal state

PlaywrightとCypressがbrowser stateをcleanにしても、外部recipientがglobalならtest couplingは残ります。

特にOTPやresetでは新しいrequestがbackend validityを変えるため、単なるinbox clutterではありません。

ownershipを明示する

  1. 1

    scenarioごとにaddress

    最も明確なownershipです。

  2. 2

    reuse時はserial

    active runを1つにします。

  3. 3

    environmentを分ける

    host bugを隠さないようにします。

  4. 4

    human investigationとautomationを分ける

    調査中にCIが状態を変えないようにします。

shared passwordだけではfixtureではない

fixtureにはsetup、owner、expected state、teardownが必要です。皆がloginできるだけのmailboxはその契約を持ちません。

目的はaddress数を増やすことではなく、各messageのownershipを事実にすることです。ownershipが明確ならorderやretryの影響が減ります。

手動メールQA用のクリーンな受信先が必要ですか?

MailOnceで、個人の受信箱をテストデータとして使わずに、登録、OTP、マジックリンク、パスワード再設定、通知メールを確認できます。

使い捨てメールを作成

参考資料と追加情報

テスト指針の根拠として使用したセキュリティ資料とテストランナーの一次ドキュメントです。

次のテストへ

同じメールテスト領域にある次の境界を確認します。