E2Eテストの不安定さを見える化してみた

https://cdn-ak.f.st-hatena.com/images/fotolife/g/go_dev/20240618/20240618002212.jpg

Software Engineer in Testチーム(通称:SET)でスマホアプリの自動化を進めている笠間です。現在、SETチームでは、スマホアプリの自動化を進めています。

現在は、AndroidiOSともにAppium を使い、アプリの肝となるシナリオ40件をターゲットにしており、その作成コストや運用コストを確認しながら、その範囲を広げていこうとしています。

不安定さとの戦いがはじまる

自動化されたテストシナリオは、営業時間中に3時間毎に定期実行しています。シナリオ数は少なく、シナリオもしぼってはいるのですが、なかなか「All Green」になりません。

失敗したテストの原因解析は、以前公開した「AppiumでAndroid・iOSアプリのテスト実行動画をエビデンスとして残してみよう」という記事にあるように、実行エビデンスを動画で保存することでだいぶ楽になってきました。

ただ、失敗するテストの傾向を、より俯瞰的に確認するため、TestRail に蓄積されたテストデータをもとに、レポートを作成して定期的に確認しようとしています。

不安定なテストを見える化

https://cdn-ak.f.st-hatena.com/images/fotolife/g/go_dev/20240618/20240618002213.jpg

上記が TestRail のレポート機能を使った画面です。デフォルトで用意されている「Comparison for Cases」というテンプレートを使って簡単に作成できます。

このレポートでは、それぞれのテストシナリオの実行結果が時系列に確認できます。Passはグリーン、Failedはレッド・・・というように、実行結果を色分けしているため、こうやって画面を縮小すると、どのテストシナリオが不安定か(Flakyか)がよくわかります。

安定化については、いろいろな作戦がありますが、JapanTaxi では、ある程度がんばっても安定化できないものは一旦諦め、すぐに解決できそうなところから潰しています。

その理由としては、並行して「システムやアプリのテストしにくさ」を解決しようと動いており、SET自身がアプリやシステムの改善にも貢献しながら、さらなる自動化、その先の品質貢献や生産性向上を狙っているからです。

実際にテストのしやすさを向上させるためにクーポンを発行したり、ボタンをぽちったらアカウントを作成したりなどのツールも作っています。こちらの話は次回投稿します。

supported by daipresents