MagicPodの導入でリグレッションテストの実施工数を約20〜30%削減。勉強会とペアプロを通じてチーム全体のスキル向上も実現
セーフィー株式会社
ユーザーインタビュー第23回は、MagicPod代表伊藤とともにセーフィー株式会社様にお話を伺いました。
具体的な活用事例や選定の決め手など、いろいろとお話しいただきました。
セーフィー株式会社
ビジョンとして「映像から未来をつくる」を掲げています。具体的には、日本中・世界中のカメラの映像をクラウド化し、誰もがそれを活用できるような映像プラットフォームを目指しています。例えば、カメラを導入したお客様が映像を使って、防犯や人材教育、施工管理、店舗運営、災害予見など、映像を見ることによって何かしらの意思決定をサポートできるようなサービスとなっています。また、最近では映像データとAIを活用することによって価値を生み出すような製品開発も行っています。
POINT
- 以前は開発メンバーがリリース直前にテストを実施していた
- 2020年頃にQAチームを組成し、モバイルはMagicPodを導入
- 自動化でリグレッションテストの実施工数を約20〜30%削減
- 勉強会とペアプロを通じチーム全体のMagicPodスキルを向上
小山さん(以下、小山):入社は2021年10月で、現在はQCDグループのサブグループリーダーとして品質保証業務全般を担当しています。QCDは「Quality」(品質)、「Cost」(コスト)、「Delivery」(納期)の略で、テストだけでなく、製品の要件定義フェーズからプロジェクトに参加することで開発の品質を高めるような取り組みも行っています。QCDグループのメンバーは業務委託の方も含めて現在14人ほどいまして、100人規模の開発本部の中でも大きな集団になりつつあります。
森重さん(以下、森重):私は2023年3月に入社しました。QAエンジニアとしてテストのリーディングをしながらテスターの皆さんが実施する内容を指示するなど、テスト管理を行っています。自動化の推進にも取り組んでおり、戦略から具体的な記述方法まで、メンテナンス性や可読性を高めるための取り組みを進めています。自動テストツールは前職でSeleniumなどコードを書いて利用していましたが、MagicPodのようなノーコードツールはセーフィーに来て初めて利用しました。
MagicPod導入の経緯
小山︰私が入社する前は、開発メンバーが月に1回あるリリースに対して手動でリグレッションテストを実施していました。テストのタイミングが開発終了後だったため不具合検出がリリース直前になり、バタバタすることが多い定期リリースだったようです。
2020年頃にモバイルアプリのリニューアルと「Safie Manager(セーフィー マネージャー)」というクラウドカメラやユーザーアカウントを一括管理できるWebアプリケーションのリリースがあり、さすがに開発メンバーだけでQAを行っていくのは厳しいということでQAチームが組成されました。その中で、Webビューア向けに自動テストツールも導入されました。
セーフィーのアプリケーションは「Safie Viewer(セーフィー ビューア)」というビューアに機能が集約されています。機能が増えればリグレッションテストの工数も増えていきますので、手動でリグレッションテストを行っていたモバイルも自動化ツールの導入が検討されました。ただ、Webで導入していた自動テストツールではモバイルでやりたいことができず、他のツールを検討することになったそうです。いくつか比較し、
- テスト実行回数に制限がない
- テストケースを作成するUIがわかりやすい
- メンテナンス性、保守性を担保しやすい
- 費用が安く、コストパフォーマンスが良い
といった点が決め手になり、モバイルはMagicPodを導入することになりました。
伊藤:ありがとうございます。御社の場合、アプリケーション単体だけでなく物理的なカメラも連動した環境になっていると思いますが、テストはどのようにされているのでしょうか?
森重:プロダクトの性質上、カメラの映像や音声など人の目や耳で判断しなければならないところが必ずあります。
こちらはカメラで撮影している映像・音声を人が確認する必要があり、自動テストに任せられない領域のため人がテストを行っています。
それ以外のシステム内部で完結する認証機能やカメラ情報の変更・検索などの領域を自動テストに任せています。
MagicPodの活用状況
森重:MagicPodには毎日20時から24時のタイミングでリグレッションテストの一部を実行してもらっています。テスト対象はiOSとAndroidで開発中の最新アプリと、手動テスト実施前のリリース済みアプリです。毎日実行することでエラーを早期に検出し、開発へ即座にフィードバックすることができるようになりました。リグレッションテストの実施工数も約20〜30%削減できています。
小山:MagicPodが動いていることで、機能追加が増えている中でもリリース頻度を下げることなく対応できています。今までリスクベースで見送っていたテストもカバーできるようになりましたし、毎日実行していることで「最新版に対してどんな変化があったか」や「失敗することによる気づき」を頻度高く得られるようになりました。また、工数削減によって業務改善などプロジェクト外の取り組みにも注力できています。
伊藤:開発メンバーとはどのように連携されていますか?
小山:テスト結果はSlackに飛ばしています。開発メンバーも何人か見てくれていますが、基本的にはQCDグループで確認し、必要に応じて調査に協力してもらいます。その際、モバイルアプリの開発チームほぼ全員にはMagicPodのアカウントを発行していますので、直接MagicPodに入って見てもらっています。
森重:最近は安定してきましたので、「原因がわからないので調査してください」といったコミュニケーションは週に1回あるかないかくらいになっています。
伊藤:どのような改善をされて安定化につながったのでしょうか?
小山:MagicPodを使い始めた頃は月に1回、アプリリリースの前に最新版のアプリを受け取ってリグレッションテストを実施するフローになっていました。しかし、その方法ではテストの実行回数が不足していると考え、ルールが未整備な部分は残しつつも、テストの実行回数を増やすことを優先して実装内容と運用方法を見直しました。
伊藤:月に1回だと動かない原因の切り分けなど大変でしたか?
小山:そうですね。次のテストまでの変更点が多いと原因の特定が難しくなります。開発側にも協力してくれる方がいて、ビルドごとに自動でアプリケーションをMagicPodに連携し、最新版を取得してテスト実行する体制を作り上げることができました。
毎日やることで変更点に随時対応できますし、開発側の意図しない不具合があってもすぐに気づけます。以前はリリース直前になって不具合が判明していましたが、現在では開発中に不具合を発見して修正できるようになり、開発プロセスが大きく改善されたと思います。ただ、メンテナンスコストが高く不安定な状態でしたので、そこを森重に整備してもらって安定化が進みました。
森重:以前は、テストケースごとにデータの依存性があり、あるテストケースで使用しているデータを別のテストケースでも使ってしまうことがありました。どうしても実機(カメラ)につながなければいけないテストケースもあり一部で依存性が残っていますが、全体の9割は解消できています。
また、共有ステップなどメンテナンス性を高めるMagicPodの機能を十分に活用できていなかったため、手順を一つの共有ステップに集約し、メンテナンス性や可読性の向上につなげました。メンバーの中には「変数って何だろう?」という方もいましたので、MagicPodの使い方を見直す勉強会も開催しました。
チーム全体のMagicPodスキルを勉強会とペアプロで向上
伊藤:勉強会はどのような形で実施されているのでしょうか?
森重:モバイルのQA全体で取り組んでおり、私がモバイルにアサインされたのを機に、「チーム全体でやり方を改善できるのではないか」と考えて始めました。具体的にはMagicPodさんが提供しているスタートガイドを解説しながら、自動テスト用に公開されてるサイトをベースに「実際にテストケースを作ってみよう」といった実践形式で進めました。さらに、勉強会だけでは不十分と考え、社員と業務委託メンバーの2人でテストケースを作成するペアプログラミングも実施しました。
小山:ペアプロは毎日1時間、固定の時間を作って半年ほど続けました。その結果、全員が「一定の基礎的なものは学習ができている」という状態まで持っていけたと思います。そこまでしないときちんとできないだろうと思ってはいましたが、かなりスパルタな取り組みでした(笑)。
業務委託の方から「なぜこのロケーターを使わなければいけないんですか?」と鋭い質問を受けることが多く、「なんでって言われると困るな……」と焦って、裏でこっそり調べたりもしました。自分の知識の定着にも非常に役立ちました。
森重:自分一人では気づけなかったであろう点を指摘してもらえて面白かったですね。現在、新しく入ってきた方のためのオンボーディング資料は作成できていませんが、勉強会の資料が残っているので今後も有効に活用できると思います。そういう意味でも、勉強会をやって良かったと思います。
伊藤:チーム全体でしっかり取り組むのは素晴らしいですね。ペアは定期的に替えたのでしょうか?
小山:ペアプロでは替えなかったのですが、シャッフル的な効果を期待して「ローテーションで他の人が作ったテストをメンテナンスしましょう」という取り組みを始めました。基本的には森重が伝えてくれたお作法に沿って作っていますので苦労はしないのですが、不思議な作り方をしていたり、真似したくなるような条件分岐に出会ったり、良い刺激になっています。
森重:メンテナンスはテストケースごとの担当制になっていまして、リリースのサイクルに合わせてその担当を替えていくようにしています。そこで、「同じ人が同じテストばかり見て、その人しかメンテナンスできない」という状況を防いでいます。
伊藤:テストごとに担当を決めるのは面白いですね。その担当はどうやって決めているのですか?
森重:機能のまとまりごとに「あんこうさんチーム」「うさぎさんチーム」「かばさんチーム」といったタグを付けてチームを固定し、毎月のリリースごとにチームメンバーをどんどん入れ替えています。
伊藤:名前もそうですが全部「さん」まで付けているのが丁寧で良いですね(笑)。担当を入れ替えていくので人依存になりにくいですし、常にどこかの担当になるので、メンテナンスの仕方を忘れてしまうといった問題を軽減できそうです。
小山:何かルールを決めないと継続しませんし、困ったら「少なくとも先月担当していた人に聞けばわかる」という点もすごく良いと思っています。
最後に
森重:自動テストは継続することが重要だと考えています。そのためには、メンテナンス性を確保したテストケースを作成しなければいけません。MagicPodはドキュメントが充実しており、成功させるためのステップも明確に示されています。実際、初めて使う方でも数回の勉強会で質の高いテストが作れるようになり、学習コストが大幅に抑えられています。
ただ、ツールが使いやすくても何をすべきかがわからない状態で導入すると、期待した成果は得られないと思います。私の経験では、自動テストを作るときはけっこう孤独になりがちだと感じています。その点、MagicPodはコミュニティが活発で他のエンジニアが経験を共有してくれますし、質問を投げると答えてくれる安心感もあります。気軽に相談できる環境がすごく良いなと思っています。そうしたリソースを活用することで、ツールをより効果的に活用できるようになると思います。私たちも協力させていただき、自動化の分野を盛り上げていきたいですね。
小山:MagicPodは、プログラミングスキルに特化していない方でも直感的に操作を行うことができるUIが特徴の一つだと思っています。費用面でトライアルとして支払える現実的な価格設定になっていますし、2週間のトライアル期間もあります。スモールスタートできるレベル感だと思いますので、興味のある方は、まずは実際に触れてみていただくことをお勧めします。
セーフィー株式会社
- テックブログ:Safie Engineers' Blog!
- テックブログ内 森重さんの記事:「QCDグループで使っている自動テストツール(MagicPod編)」
- セーフィー会社紹介資料