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のシステムテストの章でも登場する。
なお、以下のシラバスも探したが、見当たらなかった。
Advanced Level シラバス 日本語版 テストマネージャ Version2012.J03
Foundation Level Specialist シラバス 自動車ソフトウェアテスト担当者 日本語版 Version 2018.J01
書籍 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ブラウザ間の挙動の違いの話題が今より多かった気がする。