記録用ブログ

個人的な記録のためのブログ。主にソフトウェアテストの話題。

E2Eテストの定義を知りたい

E2Eテスト(end-to-end testing、エンドツーエンドテスト)という言葉の定義をちゃんと知りたいと思い、いくつかの文献の確認をしてみたメモ。

背景

「E2Eテスト」と言う言葉は、人によって、異なるニュアンスで使われているような気がしている。

  • 単に「エンドユーザーが触るところからバックエンドまで」といったスコープを示すために使っている場合、 ユーザーシナリオの確認といった目的が付随している場合

  • 厳密さの違い。  例えば、自システムと連携しているシステムをモックにしたら、E2Eテストではない?   (これに関しては、スコープを自システムに限ればE2Eテストと呼び、連携先も含めて語る時はE2Eと呼ばない、でいいのかもしれない)


確認結果詳細の前に、まとめ。

  • そもそも、定義している文献があまり見つからず。上述したニュアンスの違いについては、白黒ついてない

  • 「E2Eテスト」は、SQuBOK、SWEBOKには定義されていないようだ(あと、国際規格のISO/IEC/IEEE 29119にも?) JSTQBシラバスにも、「E2Eテスト」そのものはない。ただし、エンドツーエンドと言う言葉がシステムテストの説明で使われている

  • なので、使うときは「E2Eテスト」のイメージを確認した方がよさそう


以下、文献ごとに調べた内容。

ISO/IEC/IEEE29119

手元にあったPart 1:Concepts and definitions、Part 2:Test processesを検索したが、見当たらず。
他のPartは、未確認。

JSTQB(ISTQB)シラバス

「エンドツーエンドテスト」「E2Eテスト」「end-to-endテスト」といった文言はなかったが、いくつかのシラバスでは「エンドツーエンド」という表現を見かけた。
いずれも、システムテストの説明の中で使われていた。
例えば、

  • 「システムレベルの機能テストでは、エンドツーエンドの機能性を対象にテストする。」(Advanced Level シラバス 日本語版 テストアナリスト Version2012.J01)

  •  (「システムテスト」という箇条書きの子要素で)「ユーザストーリー、フィーチャおよび機能のエンドツーエンドのテストである」(Foundation Level Extension シラバス アジャイルテスト担当者 日本語版 Version 2014.J01)

  • ほか、Foundation Level シラバス 日本語版 Version 2018.J03のシステムテストの章でも登場する。


なお、以下のシラバスも探したが、見当たらなかった。


書籍 SQuBOK、SWEBOKなど

いずれも、索引になし。 

  • ソフトウェア品質知識体系ガイド(第2版) -SQuBOK Guide V2-  
  • ソフトウェアエンジニアリング基礎知識体系-SWEBOK V3.0-  
  • 実践ソフトウェアエンジニアリング ロジャーS.プレスマン (著)
余談1

インターネットで検索するといろいろ出てくるが、E2Eテストとは何か?に焦点をあてた記事は、案外少なかった。
E2Eテスト自体の説明は一言二言で、E2Eテストの自動化事例やTipsを紹介する記事や資料が比較的多い印象。

E2Eテスト自体を説明した記事も一部あり、踏み込んでE2Eテストの目的にまで踏み込んで書かれているものも見かけた。


余談2 E2Eテストの位置付けの変化

本「基本から学ぶソフトウェアテスト」の著者の1人のKaner氏のサイトと思われるところで「end-to-end testing」に言及されていた。

定義を詳細に語った部分は見つけられていないが、「end-to-end testing」が登場した部分をかいつまんで読んでみたら面白かった。

興味持った人は原文をあたっていただきたいが、興味深かった内容の自分まとめ:

  • 従来のアプリケーションでは、E2Eのテストの必要性を過小評価しすぎでは?  スタックオーバーフローやタイミングの問題など特定の問題は、大量の、システムレベルの自動テストで最も効果的に検出できた。パフォーマンステストでもE2Eテストは必要

  • 現在のモバイルアプリはHWとSWの構成が多様なので、より、システムレベルのテスト寄りになるのでは
     (この記事は、2016年付。テストの多くがシステムレベルのテストになる、ということか?)

  • システムが成熟すると、テストプロセスの歪みは徐々になくなる
     20年後には、モバイルのテストについても、他のアプリケーションに適用されるのと同様のピラミッドが適用されるだろう


2016年の20年後というと、あと15、16年経った後。モバイルアプリのテスト、特にE2Eテストやその周辺の難易度は、どう変わるか? また、他の分野とのテストプロセスの違いは小さくなる、または、なくなるのか?
モバイルではないが、WEBブラウザ間の差異については、適用できるように思った。ゼロにはなっていないものの、今から10-15年前はWEBブラウザ間の挙動の違いの話題が今より多かった気がする。