🤖

ただのエンジニア目線でE2Eテスト自動化についてまずはまとめてみた

に公開
2025/12/22
1件

#instagram
https://www.instagram.com/p/DSfIkZhEgQJ/?utm_source=ig_web_copy_link&igsh=NTc4MTIwNjQ2YQ==

この記事は、
・テスト自動化に興味はあるが、まだ導入経験がない人
・「とりあえず自動化しよう」と言われて不安な人
向けに書いています。

ご存じの方からすると釈迦に説法なのですが、一度原点に立ち返ってまとめてみましょう。

概要

そもそもE2Eテストとは...

End to End Testing

    E2Eテスト=ユーザー操作を起点に、画面から裏側まで全部つなげて確認するテスト

であり、

   E2Eテスト=「本番と同じ使い方」を機械にやらせるテスト

であり、

    E2Eテスト=最後に壊れてないかを保証するテスト, リリース前の保険

である。

モジュールが最もつながった状態で行うテスト、シナリオ等を用いて表示やふるまいの検証を行うテスト。
現場やPJによりけりだと思いますが、いわゆる「システムテスト」「シナリオテスト」を指します。

E2Eテストの自動化とは

ユーザーの操作を起点に、画面・API・DBまでを一連の流れで自動検証すること
(シナリオテスト、リグレッションテストの自動化)
  • 代表ソフトウェア:
    • Cypress
    • Selenium

主なメリット

観点 効果
品質 人手では不可能な回帰テスト量
スピード リリース前の確認が数時間→数分
再現性 「あの時動いてた」が消える
心理 リリース恐怖が減る
組織 属人化の排除

主なデメリット

デメリット 実態
初期コスト ほぼ必ず想定超え
メンテ UI変更=即壊れる
過信 テストがある=安全ではない
運用 作った人が消えると死ぬ ➡逆に俗人化している

案件適合性

フローチャート

うまくまとめられていない気がするけど、なんとか頭の中を絵にするとこんな感じ

収益性

E2Eテスト自動化の収益は、
「作った瞬間」ではなく「使い続けることで」発生します。

ここだけは、走りながら考えるのではなく、着手前にしっかりと煮詰める必要があると考えます。

  1. 人手テスト削減
  2. 障害・手戻り削減
  3. 安心してリリースできることによる開発スピード向上

良い循環

E2Eがある
  ↓
リリースが楽になる
  ↓
使われ続ける
  ↓
保守する価値が出る
  ↓
さらに安定する

具体例別

「ぜひやるべき案件」の実例

例①:既存BtoBシステム(長期運用)

  • 5年以上運用予定
  • 年10回以上リリース
  • 毎回同じ業務フロー確認

判断:⭕ 絶対やるべき

  • 初期費用:回収可能
  • メンテ費用:毎回の人手削減で吸収できる

例②:パッケージ開発(複数顧客)

  • 顧客が増えるほど確認工数増大
  • 後方互換が重要

判断:⭕ 最優先でやるべき

  • 1本のE2Eが複数顧客を守る
  • メンテ費用 < 障害対応コスト

例③:新規開発だが手順が異常に複雑

  • 複雑な初期データ投入
  • 組み合わせ爆発の入力チェック

判断:△ 手順単位で部分自動化

  • 全E2Eは不要
  • 人がミスりやすい手順だけ自動化
  • 後にE2Eへ昇格可能

5. 「やらないべき案件」の実例

例④:短期MVP・PoC

  • 3ヶ月で終了
  • UIが毎週変わる

判断:❌ やらない

  • 回収前に捨てることになる
  • 手動+軽いスクリプトで十分

例⑤:単発受託・ワンオフ

  • 納品したら終了
  • 保守契約なし

判断:❌ 基本NG

  • E2Eは資産化されない
  • メンテする人がいなくなる

 **E2E自動化は「テストを作る話」ではない。
 そのテストを“何回使うか”の話である。**
 **E2E自動化は、正しく設計すれば利益を生む。
 間違えれば、ただの高価な負債になる。**

個人的には、
「全部自動化する」ではなく
「壊れやすい部分は自動化しない」
という判断が一番大事だと思っています。

Discussion

ただのエンジニア けいただのエンジニア けい

僕個人の意見としては、案件適合性が高ければ積極的に自動化にTRYしていくべきです。

  • 今までTRYしていなかったのであればエンジニアとして幅が広がる
  • 自分たちが楽できる(忌まわしきエビデンス取得も自動化など)
  • 安定性・正確さ(メンバー炎上タスクで比叡しているから工数が伸びるということもない)