なぜテスト自動化に挑戦するのか? ビットキーの取り組みを紹介
まずセッションの冒頭で、おだしょー氏がmablの特長について説明した。
![mabl株式会社 Quality Advocate / Product Marketing DevRel Meetup in Tokyo おだしょー(小田祥平)氏](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_1.png)
「mablは“めいぶる”と読みます。現在ではGoogle Cloud Operationsと呼ばれている『Stackdriver』の創業者であるIzzyとDanが2017年ボストンで創業しました」(おだしょー氏)
同社が提供している同名のサービス「mabl」は、DevOpsに適したテスト自動化プラットフォームである。ノーコードでUIテスト・APIテスト・ネイティブのモバイルアプリテスト(現在は早期アクセス)に対応しており、単一プラットフォーム上でアクセシビリティやパフォーマンステストも実行できるといった多くの特徴を備えているという。
![DevOpsに対応したテスト自動化プラットフォーム](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_3.png)
そして株式会社ビットキーの三上氏が、「テスト自動化エンジニア」になってこの1年の取り組み内容を紹介してくれた。ビットキーでは、以前からテストエンジニアを中心にテスト設計やテスト実装に取り組んでおり、2023年1月からmablを使った“E2Eテストの自動化”にチャレンジしてきたのだ。
![株式会社ビットキー Product Quality Testing / Automation Engineer in System Test mablers_JP 三上鹿氏](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_2.png)
「ビットキーはスマートロックを強みに、オフィスや住宅のDXを手掛ける会社です。ビットキーではオフィス向けの『workhub』と住宅向けの『homehub』を展開しており、それぞれ役割の異なるWebアプリ、モバイルアプリを2つずつ、計8つのアプリを提供しています。これらのアプリの検証を十全に行うために、ビットキーでは4つのQAチームに分かれてテストを実施しています。mablは、オフィス向けのWebアプリでこの1年利用してきました」(三上氏)
三上氏は、テスト自動化に至った背景として、2つの理由を挙げた。プロダクトの機能拡充に比例して、リグレッションテストの項目が増加していたこと。さらに、新機能テストや修正・確認テストが工数を圧迫しはじめるようになっていたこと。そのために、テスト工数の省力化に取り組む必要に迫られていたのだ。
テストに関する工数の約25%を自動化! ビットキーが自動化ツールに求めたこと
テスト自動化のためにmablを選んだ理由について、三上氏は次のように説明した。
1つ目の理由は、ノーコード・ローコードで自動テストを作れること。コーディングに関する高度な知識がなくても、テストエンジニアが直接自動テストを構築できることが大きな利点だったという。2番目の理由は、ブラウザテストが作成できること。Webサービスが対象となるためこれは必須条件だった。3番目の理由は、スケジュールを設定して実行できること。深夜など好きなタイミングで実行でき、いつでもテストできることが良かったそうだ。
加えて、他のツールと比較してレスポンスが早く、動作が快適だった点も評価が高かったという。カスタマーサポートの迅速かつ柔軟な対応も印象的だったそうだ。
「サポートにはチャット形式で問い合わせできるのですが、朝10時くらいに質問してもレスポンスが1分以内で返ってきて、ユーザーとしての体験はかなり素晴らしいと思っています」(三上氏)
「そうなんですよ。インドのサポート部隊に私よりも日本語が堪能な人がいて。私の感覚ですが、質問をしようとエンターキーを押す直前に回答が来るくらい、そのくらい早いんです(笑)週1回程、言語交換会もやっています」(おだしょー氏)
続いて、三上氏はテスト自動化の1年間の実績について説明してくれた。
オフィス向けのworkhubでは月に1回リグレッションテストを実施している。このテストの実績が、テスト実施工数で165.8時間、テスト項目数で4122項目となっていた。それが、この1年で約25%自動化できたという。テスト自動化にかかった工数は970時間。平均すると1時間あたり1.1項目を自動化できたそうだ。
![workhubでのテスト自動化の実績](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_4.png)
このほかに、テスト自動化に関するナレッジベースやガイドラインを作成したり、自社用のオンボーディング用に自社プロダクトを操作しながらmablの操作を学習できるコンテンツを作成したりといった活動に取り組めたと説明してくれた。
「あと機会に恵まれたおかげで、mablのコミュニティイベントにも登壇させてもらいました。mablの導入事例と使ってみての感想をコミュニティに共有できたことも、この1年の成果です」(三上氏)
「動かしやすい」「作りやすい」「読みやすい」テスト自動化へ──mablの使い方を紹介
次に三上氏は、mablを使ったテスト自動化の方法について解説してくれた。ここでポイントとなるのは、動かしやすい・作りやすい・読みやすいという3つの点だという。
まずmablで、テストをシナリオ単位で整理することで、テストを動かしやすく管理している。「プラン」という複数のテストを入れる箱があり、ビットキーではシナリオ単位でテストを格納している。テスト種別ごとにラベルも付与しており、任意のテスト種別のシナリオが一括実行しやすくしてあるのだ。
![任意のテスト種別のシナリオを一括実行しやすく](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_5.png)
「1つのシナリオで長時間のテストも実行できますが、1時間かかるテストシナリオがあって45分ごろに失敗してしまうと、そこまで見に行くのは大変です。そこで実行時間が15分程度になるようシナリオを分割して、メンテナンスの負荷を下げています」(三上氏)
次にmablでは、Flow機能でテストステップを再利用して、テストを作りやすくしている。Flowとは、1度作成したテスト操作を保存できる機能だ。保存したFlowは、他の自動テストを作るときに呼び出して再利用できる。たとえば、ログイン機能をテストしたい場合であれば、メールアドレス入力やログイン入力といったパーツを再利用して組み合わせるだけで済むといった具合だ。これでテスト作成時間を大幅に短縮できるのだ。
![保存したFlowは他のテスト作成時に再利用できる](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_6.png)
加えてmablで、テストステップ名を誰でも読める文章にして、読みやすくレビューしやすいテストを作成する。テストのステップ名を日本語で書き直すことができ、見出しを使ってグループ分けもできる。そのおかげで、可読性が上がりテストをレビューしやすくできるのだ。
![実際のテストを誰でも読める文章に](http://cz-cdn.shoeisha.jp/static/images/article/19155/19155_7.png)
このように、mablを使うと動かしやすい・作りやすい・読みやすいテスト自動化が実現できると三上氏は説明した。
テスト自動化エンジニアへの挑戦を振り返って
最後に、三上氏は、テスト自動化エンジニアになってからの1年を振り返ってくれた。
「テストエンジニアとしての知見を広げるために興味のある分野だったのでmablに触る機会に恵まれたのは本当にありがたかったかなと思います。
mablはローコード・ノーコードを強調しているだけあり、コーディングに関する知識がなくても3カ月弱で十分にmablの操作を覚えることができて、自信を持ってテスト自動化業務に取り組むことができました。
mablでは、JavaScriptスニペットやxPath検索といったコーディングに関する知識も活用できるので、テストエンジニアの業務に紐付けながらコーディングについて学ぶ機会があったのもうれしいことでした。 まとめると、最高の1年でした」
このように語って、三上氏はセッションを締めくくった。