1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

テストを“作業”から“見える化と品質基盤”へ 〜 なぜE2Eテストが、わかっていても実践できない現場を変えるのか? 〜

Last updated at Posted at 2025-10-28

テストを“作業”から“見える化と品質基盤”へ 〜 なぜE2Eテストが、わかっていても実践できない現場を変えるのか? 〜

1. 導入:「テストはコストでしょ?」現場のホンネと向き合う

テストはコストか投資か?

「テストコードを書く時間があったら、機能開発を進めたい」
「E2Eテストなんて、リリース前の確認作業で手一杯だよ」

ソフトウェア開発の現場では、テストの重要性は認識しつつも、つい後回しにされたり、「コスト」や「作業」として捉えられたりすることが少なくありません。工数が増え、進捗が遅れるという懸念は、確かに無視できません。

でも、もしテストが単なる「確認作業」ではなく、もっと積極的な価値を持つとしたら? 例えば、バグを早期に発見できたり、チーム内での仕様の共有が進んだりする効果があるとしたらどうでしょう? テストは本当に「コスト」なのでしょうか、それとも未来への「投資」なのでしょうか?

2. テストは家計簿と同じ?:未来をコントロールするための「見える化」

家計簿はお金を増やさないが、家計を強くする

ここで、少し身近な例え話をさせてください。「家計簿」です。
家計簿をつけること自体は、お金を直接増やす行為ではありません。 むしろ、レシートを整理したり入力したりするのは、面倒な「作業」に見えます。

しかし、家計簿をつけることで何が起こるでしょうか?

「何にどれくらい使っているか (支出傾向)」「季節による変動」「現在の残高」といった、お金の流れが「見える化」 されます。 そして、この「見える化」こそが、無駄遣いを減らしたり、貯蓄計画を立てたりといった、家計を「コントロール」するための第一歩になるのです。

テストの目的は「確認」ではなく「可視化」

テストも、これと全く同じです。

テストの本来の目的は、単に「バグがないか確認する」という受け身の「確認作業」ではありません。そうではなく、「今、私たちのソフトウェアがどういう状態にあるのか」「仕様通りに動いているのか、それとも予期せぬ動きをしているのか」という現実をチーム全員で共有するための手段、つまり「現状の見える化」なのです。

3. いつ「見える化」するのが一番効く?:テストピラミッドとシフトレフト

テストの全体像をピラミッドで考える

ソフトウェアテストには、よく「テストピラミッド」という考え方が用いられます。下から「単体テスト」「統合テスト」「E2Eテスト」と積み重なり、上にいくほどテスト範囲は広がりますが、一般的にテストの実行時間は長くなり、失敗時の原因特定 (絞り込み) に必要な手間や時間 (コスト) は増大します。

E2Eテストは、ユーザーの実際の操作を模倣するため、システムの全体的な動作を保証する上で非常に重要です。 しかし、「コストが高い」という側面があるのも事実です。

問題を “右側” ではなく “左側” で発見する

ここで重要になるのが、「いつ問題を発見するか」という視点です。

開発プロセスの後半、つまり「右側」で問題が見つかると、その修正には大きな手戻りコストが発生します。設計からやり直す必要があるかもしれません。リリースが遅れる原因にもなります。

だからこそ、「問題をできるだけ左側で発見する」、つまり開発の早い段階でテストを行い、「見える化」を進めること( シフトレフト )が重要になるのです。 E2Eテストも、リリース直前の「確認作業」として行うのではなく、開発の早い段階から少しずつ導入し、「動く仕様書」のように活用していくことで、手戻りコストを劇的に削減できます。

4. テストを「後工程」から「開発の指針」へ:TDDという考え方

まず “テスト” を書く。実装はあと。

「テストを開発の早い段階から」という考え方をさらに推し進めたのが、「テスト駆動開発 (TDD: Test Driven Development) 」です。

これは、まず「失敗するテスト」を書き(Red)、そのテストが通るように最小限のコードを実装し(Green) 、そしてコードを整理 (リファクタリング)する(Refactor) 、というサイクルを繰り返す開発手法です。

TDDを採用することで、テストは単なる「後工程の検証」ではなく、「これから何を作るべきか」を示す 「開発の指針」 へと変わります。

4.5 E2EテストでTDD? mablなら実装前の「期待」をテストにできる

単体テスト、ユニットテストの世界ではTDD(まずテストを書き、それをパスするコードを書く)は広く知られています。しかし、E2EテストでTDDを実践するのは難しいと感じていませんか? UIがまだ存在しないのに、どうやって「失敗するE2Eテスト」を書けばいいのでしょうか?

mablを使えば、これが可能です。

たとえページの実装がまだ存在しなくても (URLだけが決まっている状態でも) 、mablの 生成AIアサーション を使って、その 未来のページに対する「期待」 をテストとして定義できるのです。

具体的には、

  • そのページがどのような目的を持っているべきか (例:「これはToDo登録画面として妥当か?」)
  • どのような情報が含まれているべきか (例:「ユーザー名と未完了タスク一覧が表示されていること」)
  • どのようなデザインやレイアウトであるべきか (例:「モバイルフレンドリーなレイアウトであること」)

といった内容を、自然言語のプロンプトとして記述します。

mablの生成AIアサーションの結果画面例

当然、最初はページが未実装なため、このテストは 失敗 (Red) します。しかし、開発が進むにつれて、AIアサーションの評価は向上し、最終的にテストは 成功 (Green) します。この進捗はテスト結果レポートで確認できます。

さらに、mablはテスト実行ごとに 画面の変化を自動で検出し、比較表示 する機能も持っています。

mablの視覚的変化の比較画面例

これにより、「前回実行時からどこがどう変わったか」が一目瞭然となり、実装が進んでいることを視覚的に、かつ分かりやすい形でチームに共有できます。

このように、mablを活用することで、E2EテストのレベルでもTDDの「Red→Green→Refactor」サイクルを回し、「期待」を先に定義して開発を進めるアプローチが可能になります。

5. E2Eテストを「開発の相棒」にする:mablが目指す世界

mabl は “自動テストツール” ではなく “開発の相棒”

TDDの考え方をE2Eテストにも取り入れ、開発プロセス全体をスムーズにすることはできないでしょうか?

私たち mabl は、mablが単なる「自動テストツール」ではなく、開発チームの 「相棒」「右腕」 となることを目指しています。

ローコードでの簡単なテスト作成、AIによるアサーション作成支援やテストの自動修復といった機能を通じて、E2Eテストの作成・実行・メンテナンスの負担を軽減し、開発の早い段階から品質を「見える化」するお手伝いをします。 クラウドでもローカルでも実行可能な柔軟性も備えています。

目指すのは、テストが「面倒な作業」ではなく、開発を加速させ、品質を高めるための「頼れる相棒」となる世界です。

6. まとめ:テストを「コスト」から「投資」へ

テストは、決して単なる「コスト」や「作業」ではありません。
家計簿が家計を強くするように、テストはソフトウェア開発プロセスを「見える化」し、チームが品質を「コントロール」するための強力な手段であり、「未来の品質と生産性への投資」です。

「教科書通りにはいかない」現場の難しさは重々承知しています。しかし、テストの目的を捉え直し、少しずつでも開発の早い段階で「見える化」を進めることが、結果的に手戻りを減らし、チーム全体の力を高めることに繋がるはずです。

この記事が、皆さんのチームでテストへの向き合い方を考え直すきっかけになれば幸いです。

mablを無料で試してみませんか?

今回ご紹介した機能を含む、mablの全ての機能を2週間無料でお試しいただけます。
ご興味のある方は、ぜひmabl日本語サイト右上の「MABL無料トライアル」からお申込みください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?