マネージャーの常松です。 この記事はRetty Part2 Advent Calendar 2021の18日目の記事です。
Rettyでは2020年1月からテスト自動化ツールmablを導入し利用しています。「使い方に慣れてきたところでTechBlogにまとめて紹介しよう。まだまだ国内の事例も少ないしな」と思っていたのが、いつの間にか2年が経ってしまいました。
現在でも便利に活用しているツールですのでRettyでの活用事例と、使ってみて意識が変わったことを紹介します。
mablとは?
テスト自動化SaaSです。アプリで操作を記録し、テストケースを作成することができます。 どんなことができるかは既にまとまった記事がありますのでリンク先を参照ください。
Rettyでのmabl活用事例
広く下記の内容をテストしています。
- toC メディア (retty.meやRettyグルメニュース)
- 主要ページの巡回・ログイン
- ネット予約 など
- toB 管理画面
- ログインと主要ページの巡回
- RettyOrder
- ログイン、注文、会計など
mablはページを訪れるだけで、画面キャプチャをし、リソース読み込み(画像・CSS・JavaScript)の結果を記録してくれるため、巡回と主要表示要素のチェックをするだけでも結構なテストになります。
2年間使ってみて良かったと感じる点に下記があります。
- 過去の実行結果が通信ログや画像キャプチャつきで残る。
- なぜバグを見逃してしまったのかとか、どこで壊れていたのかを調べるのが容易。
- デプロイきっかけで同じテストを繰り返し実行できる。
- 「少なくとも自動テストは通った」という安心感がある。
- 年に数回は修正きっかけのバグを見つけることができそう。
- mablのポリシーや利用上の制限から、どのテストをするべきかという考えが深まる。
- 「手動のテストを全て置き換えるものではない」とか「重要なカスタマージャーニーにE2Eテスト」とか。
- エンジニア以外でもテストを足していける。
- 一緒にテスト追加に取り組むことでテスターや企画担当者でもある程度いける感触を持っています。
- SaaSなのでメンテナンスやバージョンアップがいらない。
- 問い合わせ時の対応が迅速で丁寧で的確。
- 不具合報告や機能追加要望に対し、その時できなくても後日対応したときに連絡をくれる。
mablを使って意識が変わったこと
自動テストは手動テストの置き換えではない
導入当初はテスト項目を充実させて次々とmablに置き換えていくことを考えていましたが、テストの実行時間も長くなりますし、仕様が変わることでテストを直す工数も膨らんでしまいます。 mablは毎日チェックしたいような「重要なカスタマージャーニー」の定期実行に向いているツールなのだと意識を改め、「複雑なエッジケース」や「手がかかる一時の検証」工数を削ることはせず、リリース前のチェックは引き続き人手での検証を継続しています。
継続的にテストを実施するとバグが見つかる
「重要なカスタマージャーニーに絞っているならテストなんて失敗しないでしょ」と思っていましたが、失敗することは実際にあります。 実際にあった事例としてJavaScriptの読み込み箇所を変更したところVue.jsの読み込みタイミングがおかしくなり、画面が真っ白になってしまうバグを出したことがありました。 mablでもテストが失敗したことをきちんと記録できていましたが、テスト実行環境が一時的におかしくなったのかと疑っていました。 現在では悔い改め、些細な変化も確認し、場合によってテストが落ちにくくなるように都度手を入れるように心がけています。
最後に
2年前のmabl導入当初はテスト観点が整備されていなかったり、強いページキャッシュによってテストを実行することが難しい状況ではありましたが、少しずつ環境を整備し自動テストを広げていく下地ができた段階です。
mablを使ってプロダクトを改善していきたい・プロダクト全体にQAの横串を刺したいというQAエンジニアの皆様がいらっしゃいましたら是非お話ししましょう。