2020年代に入り、もはやE2Eテスト自動化は必須でしょ。
ということで自動化ツールなにがいいのか問題に対しての考察をまとめてみました。
自動化したいけど、どうやって選んだらいいのかわからないという方の参考になれば幸いです。
まずはE2Eテスト自動化を取り巻く状況を知ることから
1. 主要なテスト自動化ツール
ざっくり変遷
2010年代からオープンソースのツールが充実し始め、続いて有料サービスで多機能のツールが出てきている。有料サービスはサポートがしっかりしている。
最近のトレンドは非技術者をターゲットにしたノーコードサービスでAIを使ったシナリオ生成。
この他にもツールはたくさんあり網羅するのは断念。
大雑把な流れとしては時間とともに↓表の上から下に流れている感じ。
コード → ノーコード → ハイブリッド のような流れ。
Selenium系
扱えるフレームワークや言語の種類が豊富で得意なものを選べる。
ただしフレームワークとは別にWebdriverのインストールが必須で環境構築が煩雑。またツール(ブラウザ含む)のアップデートによってツール間の互換性がなくなる可能性があるため安定運用に手間がかかる。
Non-Selenium系
1つのインストールで環境構築が完了するというのがメリット。
AI系
売りにしているツールは、オートヒーリング機能(アップデートで変更された要素を自動予測して差し替えてくれるっぽい)、自動比較による意図しない変更の検出、リンク切れ検出などの機能が提供されている。
AIとコード両方が扱えるハイブリッドも出てきている。
Non-AI系
最初のテストシナリオ作成まではブラウザ操作をレコードすることで生成される。ここまではAI系と同じ。
Non-AI系は作成したシナリオで扱う要素を手動で細かく編集(調整)することができ、シナリオ作成の柔軟性が非常に高い。
柔軟性の高さをどう使えばやりたいことが実現できるか、ハックする姿勢があればとても扱いやすいのではないかと思う。
2. 日本は遅れている
自動化の状況 : 日本
どうやってテストを自動化するか試行錯誤している段階。
ネット上には「こんなツールでこんな風に自動化することができました。」といった趣旨のコンテンツが大半を占める。
自動化の状況 : アメリカ
どうやってテストを自動化するかという段階はすでに超えている。テスト自動化が一般化しつつある印象。
自動化によってなにを狙うか。QAの取り組み方がどう変わるか。開発体制をどうすれば品質をより向上させることができるかという段階。
**QAE(Quality Assuarance Engineering)**という言葉も見かけた。
E2E自動化はこうすべし!的なコンテンツがたくさん共有されている。
3. 業界標準はできつつあるのか
日本のパターンは3つ
- 技術者寄りのQAチーム
- 非技術者のQAチーム
- 1と2の混合
技術者寄りのQAチームと非技術者のQAチームを両翼に、その間をグラデーションが埋めるのが日本のQAの状況。
パターンによって選ぶツールや取り組み方が変わってくるため、テスト自動化における標準的な形は見受けられない。
しいていえば、QAチーム体制にあったツールを選択するようになっていくと思われる。
参照ソースは少ないので明言はできないが、アメリカではツールによる自動化が進むにつれ、QAチームは手動のテストチームという考え方からQAEを行うチームへという流れがあるよう。
つまり、より能動的にQuality Assurance(品質保証)を向上させていく変化が起こりつつある。
とりあえずツールを選んでみる
4. 課題の整理
自動化ツールを何のために導入するのか目的と、過去に試みた経験があればそのときに見えてきた課題を整理する。
これによってどんな機能が必須なのかを明確にすることができ、ツールの選択肢を絞り込める。
具体的な例だと以下のようなものが考えらる。
- リグレッションテストを自動化して日次で動作確認すること
- 非技術者のチームである
- メール受信テストの自動化
- シナリオ管理のしやすさ
5. チーム構成が最も重要
目的と課題が整理できたらツールを絞り込んでいく。
どの程度コードが扱えるかによって選択の幅がかわってくるため、最も重要になってくるのが先出のチーム構成パターン。
自動化ツール表からチームにあったツールを選んで、実際にフリートライアルでテストシナリオを作成してみる。
6. チームにあったツールを導入する
E2Eテスト自動化で大切だと思うのはツールの特性とチーム構成が合っていることだと思う。
それさえ正しく選択することができれば、テスト自動化自体はそれほど難しいものではないと思う。
E2E自動化ツール探しで感じたこと
まーやっぱり英語力には地道に投資した方がいい
先にも書きました通り、アメリカの方がテスト自動化が進んでおり有益な関連コンテツがたくさんあります。
特に自動化ツールのサイトで提供されているコンテンツには、導入した会社の経験談や自動化HowToなど良質なものが豊富にあります。また、ツールの多くはドキュメントもUIもすべて英語で提供されています。
ですので英語読解能力はE2Eテスト自動化にあたって、個人的にも組織的にも投資する価値は大いにあります。
様々なコンテンツを見てE2Eテスト自動化は市場として拡大しつつあると感じました。
勢いのある情報が多く生み出されている今、その情報を活かすことができたらチームに大きな価値を提供できるのではないでしょうか。
AIは今後に期待
個人的には、AIがどんなことをしているのかブラックボックス感があり、試用した感想としてはまだあまりグッとくるものはありませんでした。AIによる自動機能はAIを教育する視点も必要なようで、今までに経験したことのない考え方が必要になりそうだと思いました。
しかし、自動テストでおそらく一番大変になりそうなシナリオマネージメントコストの削減には大いに期待を持っており。引き続きツールの進化には注目しています。
以上です。お読みいただきありがとうございました。