E2E(End to End) って?
実際にユーザがサービスを使うのと同じようにブラウザなどを操作して、
振る舞いが期待通りになっているか確認すること(=ブラウザテスト)
また、E2Eテストは作成したテストを自動化(定期的に実行(CI))とセットとする事が多い
E2EをCIなどで自動化することによって期待できること
複数のブラウザ(IE、Chrome、Firefox)上の動作確認を自動化することにより、
手動確認では手間がかかるテストも広範囲にわたりチェックを行うことが可能となる
これは、ある程度システムが出来上がっているものにエンハンスなどで、
予期せぬ影響範囲群れなどからの障害を早期に検知できるので品質の担保と向上を目指せる
「あれ?このブラウザだけボタンが表示されていない(効かない)!重要導線が途切れてしまっていた!!」
なんてことも、シナリオを回しておけば検知可能。
E2E導入で気を付けなければいけないこと
今の時代、BtoCサービスなどでは、UI変更などは当たり前のように頻繁に行われるし、
A/Bテストなども活発に行われている中で、ボタンやリンクの配置、スタイル変更などによって
今まで動作していたテストが通過しなくなる可能性もでてくる。
これはE2Eによるブラウザテストの動作を担保し続ける中でものすごく辛い部分でもある。
なので、あれもこれもとケースを増やすと、これは逆にメンテナンスコストが増え、
次第に実装ケース自体をコメントアウトなんてこともあり得るし、
担当者が離任などする場合、誰も引き継ぎたくないなんて状況も…
なので、取り入れるなら必要最低限からの実装が好ましい。
また、なるべく要素にID(固有)を設定しておくことや、
リンクなどはpathでなくリンク名でなどであてにいくなど、
軽微な配置変更などのテストケースへの影響をなるべく減らしたいところ。
また、現行システムの仕様に詳しい人を巻き込んで、
テストケースのやるやら判断などをしてもらい本当に必要な機能など絞り込んで進めていくべき。
最後にE2Eテストとは
特定のブラウザなどであるボタンが動作しない、仕様条件に則った表出しがされていない等の
機能不具合の検知を主目的とし、画面レイアウト崩れの確認などはメンテナンスコストの面からも極力関与しない方が良い。
また、リンク切れチェックなど404ステータス等などは、Apacheログで一括チェックした方がよかったりもする
テストは本当に重要な工程なので、色々な技術を組み合わせて、少しでも不具合を撲滅していければと思う。
コメント