私が担当しているメール共有サービスのメールディーラーは2001年にローンチしましたが、
プログラム構造の陳腐化がリリースを行うごとに進み、いわゆる「スパゲッティコード」が散在し、
それらがサービスの品質にまで影響するようになりました。
具体的には、ある共通関数が別の共通関数を呼び出し、
それが繰り返されることでプログラムが複雑にネスト化しています。
その結果、コード全体の把握が難しくなり、思ってもみない機能に不具合が混入し、
新機能のリリース直後に改修していないはずの機能が動作しなくなる致命的な障害が発生しました。
これらの対策としてE2Eテストを導入しそれを自動化しました。
E2Eテストを導入したことで、致命的な障害が防げたか?など得られた効果や
テストコードの実装やテストケースの作成における工夫ポイントなど、可能な限り具体的に説明いたします。