あなたはE2Eテスト自動化ジャーニーの第一歩を踏み出すべきか?
10年以上エンジニアとしてソフトウェア開発に従事してきた近澤氏。日本/シンガポール/アメリカの3カ国でエンジニアとして開発してきた中で、どこの国でもテストに苦労していたことから、Autifyの開発に踏み切った背景がある。
AIを用いたWeb/モバイルアプリのE2Eテスト自動化サービスのAutifyは、「ノーコードで誰でも簡単にE2Eテストを自動化できる」「AIがメンテナンスを自動化してくれる」という特徴を持ち、2019年10月のローンチから約半年で累計100社、現在は300社を超えるユーザーを抱えている。
近澤氏は、まずテスト自動化の必要性について言及した。「テストを自動化したい」と思いながらも、「本当にそれで楽になるのか? 逆に手間が増えることはないのだろうか?」と不安に思っている人も多いのではないか。近澤氏はテスト自動化に関するある論文を紹介し、「テスト自動化の損益分岐点は3回。それ以上リリースサイクルが短ければ短いほど、あるいはテストの頻度が高ければ高いほど、自動化の効果は高まる」と説く。
Autifyが独自で行ったリリース頻度調査によると、79.31%が月に1回以上リリースを行っていることがわかっている。これは顧客ニーズの変化に素早く対応するために、高速なリリースサイクルが必要不可欠な現状を示していると言えるだろう。特にアジャイル開発では、機能を追加するたびにリグレッションテストが発生する。手動でそれらをすべてカバーし続けるのは不可能だ。「極端な話、自動化しなければアジャイルにはならない。手動テストをしている限り、リリースサイクルを遅くするか、障害のリスクを許容するかの二者択一を迫られ続けることになる」(近澤氏)
本来、テストの理想的な在り方としては、まずUnit/Integrationテストを書き、カバーしきれない部分を自動E2Eテストや手動E2Eテストで補う形が望ましい。しかし、スピード優先で開発してきたためにテストコードがなかったり、レガシーコードでUnit/Integrationテストが書きにくかったり、チーム内のテストに対する理解が低くないがしろにされてしまったり……といった理由により、Unit/Integrationテストがほとんどないまま、手動のE2Eテストに依存している人も多いのではないか。「このような状態を“Ice cream cone”と呼ぶ。Ice cream coneを解消するには、肥大化した手動のE2Eテストを自動化して負荷を下げることが、非常に有効なアプローチだ」と近澤氏は話す。