Better Software Testing

ソフトウェアテストをもっと良くしたい

「自動End2Endテストを作成する基準ってありますか?」 を読んだ

teyamagu.hatenablog.com

同意。

加えて、自分だったら以下の観点も追加すると思う:

  • 過去に発生した重大な不具合を検証するテスト
  • 人手で実行するとコストのかかるテスト(手順が複雑だったり、繰り返し操作を行うものだったり)
  • 顧客のニーズが強い機能のテスト(マネーパススイート)

全てをE2Eで網羅しない、というのもその通りで、ユニットテストAPIテストで動作保証できるものであるならそのようにしたほうがテストの安定性を高められると思う。例えば、ログイン機能に対して「ログインに失敗する」テストを実装する場合を考える。ログインに失敗するパターンはいくつかあると思うのだが(存在しないID、間違ったパスワード、空欄のままログインボタン押下、等)、ログイン失敗した時に表示されるメッセージが同じであるとするならば、1パターンだけE2Eで実施して残りのパターンはAPIテストで実施する、、という戦略もあるかもしれない。

 

余談だが、E2Eテスト化するかどうかの基準については、以下の書籍にわかりやすくまとめられていた:

gihyo.jp