自動テストが高めるサービス品質で登山者の命を守る。MagicPodの導入が開発とQAの連携を強化するきっかけに

株式会社ヤマップ

モバイルアプリテスト ブラウザテスト

ユーザーインタビュー第20回は、MagicPod代表伊藤とともに株式会社ヤマップ様にお話を伺いました。
具体的な活用事例や選定の決め手など、いろいろとお話しいただきました。


株式会社ヤマップ

ヤマップは、国内No.1の登山ユーザー数を誇る「YAMAP」アプリのコミュニティを中心に、登山・アウトドアに関する事業を展開しています。ユーザーが日常と登山を繰り返していくライフスタイルの中で人と環境のWell Beingが向上していく「YAMAP Well Being Life Journey」の流れに基づき、ユーザーに寄り添ったサービス・体験が、オンライン・オフラインに関わらず設計されています。




POINT

  • 導入前は開発エンジニアの手動テストで負担増が課題に
  • MagicPodはコマンドが豊富でやりたいことを実現できた
  • スムーズに導入でき重要度の高いテストを約60%自動化
  • 振り返りMTGが開発とQAの連携を強化するきっかけに

右上から時計回りに ・MIYAMOTO GUSTAVO LUISさん iOSエンジニア ・高村 真理さん QAエンジニア ・橋本 元さん QAエンジニア ・伊藤 望 MagicPod CEO

右上から時計回りに
・MIYAMOTO GUSTAVO LUISさん iOSエンジニア
・高村 真理さん QAエンジニア
・橋本 元さん QAエンジニア
・伊藤 望 MagicPod CEO


MIYAMOTOさん(以下、MIYAMOTO)︰入社は5年ほど前で、iOSエンジニアを務めてきました。ヤマップはQAも含めて開発全体で40人ほどいまして、登山アプリ「YAMAP」は5、6人のチームが3つほどで開発しています。MagicPodは僕が導入を進めた経緯がありますので、当時の状況などお話しできればと思っています。

高村さん(以下、高村):私は前職で10年ほどシステムエンジニアとして働き、ヤマップに入社してからはQAエンジニアを務めています。QA機能は前からありましたが、チームとしては橋本が入社したタイミングで正式にQAチームになっています。MagicPodは導入の時から関わっていまして、今も新しい機能がリリースされた際などに使用して随時検証しています。

橋本さん(以下、橋本):私は前職もQAエンジニアで、ヤマップには2022年に入社しました。「YAMAP」のリリース前テストや新しい機能のテストを行ったり、MagicPodにテストケースを追加したりしています。


MagicPod導入の経緯


MIYAMOTO:MagicPodの導入以前は週1回のリリース前テストを開発エンジニアが手動で行い、リリース後にQAで検証してもらう運用になっていました。テスト範囲が増えていくにつれて開発エンジニアの時間が取られてしまいますし、デグレも課題になっていました。

高村:当時はQAが1人でしたので、新しい機能が開発された時にはもちろん確認するのですが、全体を通してリリース前検証までできる体制ではありませんでした。

MIYAMOTO:主要なテストだけでも自動化したいと検討していましたが、なかなか取り組む時間が取れず、手軽にE2Eテストを自動化できるサービスを探していました。それが2022年くらいのことだったと思います。

実は最初に検討したツールはMagicPodではなく、ちょうどモバイルアプリの対応を始めた別のツールでした。タイミングが良いと思って試してみたのですが、リリース直後でかなり不安定なところがあり、他のサービスも試してみようと思ってたまたま検索で見つけたのがMagicPodでした。


MagicPod導入の決め手

MIYAMOTO:どのツールにするかは実際に使う人が使いやすいかが重要ですので、高村の意見を重視しながら検討していきました。

高村:MagicPodを選んだ一番の決め手は、アプリ画面を可変で検証できた点です。「下にスワイプして各要素を確認する」という作業が重要で、例えば「YAMAP」のホーム画面には4つほどセクションがあるのですが、スワイプした時にそれぞれ「表示されるべきコンテンツが正しく表示されているか」「そこから遷移先まで正しく飛べるか」といった検証をしています。どこまでスワイプするか定量スワイプでは難しいところがあり、MagicPodは要素までスワイプできるので助かりました。

MIYAMOTO:非エンジニアでもテストケースの作成が行うことができるところも決め手になりました。テストコマンドの種類も豊富で条件分岐や変数、共有ステップ、待機処理といった機能を活用することでテストの流れを柔軟にコントロールできます。

高村:画面の要素が入れ替わった時に自動で検知して修正提案してくれる機能も、メンテナンスコストの面で魅力的でした。

MIYAMOTO:当初は僕と高村で選定を進めていたのですが、だんだん興味のあるエンジニアメンバーが参加してきて、もう1人フロントエンドのエンジニアを含めて話し合っていきました。

MagiPodは動作が軽くストレスがないこと、要素の検出が早く動作も安定していることから3人で合意し、CTOとメリット・デメリット、コスト面をすり合わせて最終的に導入を決めました。


MagicPodの活用状況

MIYAMOTO:現在はiOSとAndroid、Webブラウザで展開している各プロダクトで自動テストを行っています。iOSとAndroidではCircleCIからアプリをビルドし、MagiPodへアップロードしてテストを実行しています。 

高村:テストケースの作成とテスト結果の確認はQAが担当していまして、毎朝Slackに届く結果を確認するのがQAのルーティーンになっています。

不具合が発見できて疑問が生じた場合はエンジニアチームに共有しています。Slackのチャンネルには各チームから必ず1人はエンジニアに入ってもらっていますので、事前に気づいて連絡いただくこともあります。

たまにバグではなくMagicPodの誤検出でテストが失敗することがあり、その際はお問い合わせからうまくいく方法をアドバイスいただくこともあります。対応は早いですし、「このステップを入れてみてください」といった細やかなアドバイスも頂けるので助かっています。

伊藤:MagicPodの導入はスムーズにできましたか?

高村:最初はリグレッションテストで使用していたテスト項目を自動化することから始めました。エンジニアチームと相談しながらテストケースを作成し、現在は重要度の高いテストケースを60%ほど自動化できています。まだ実装できていないものもあり、より多く追加していきたいと考えています。

MIYAMOTO:先に別のツールを試していたことで、どちらが使いやすいかという比較ができたのが良かったです。スムーズに導入できたと思います。

橋本:私はMagicPodが導入された後で入社しましたが、コードを書かずに使えるのが驚きでした。マニュアルがわかりやすく視覚的にも使いやすかったので、あまり学習コストをかけずに習得できたと思います。誰でも自動化が行えるのがすごく良いと感じました。

伊藤:ありがとうございます!ヤマップさんで特に利用頻度の高い機能はありますか?

高村:MagicPodは位置情報を活用したテストが行えるので助かっています。

伊藤:もともと位置を決めてテストを起動することはできたのですが、途中で位置を変える機能はありませんでした。たしかMIYAMOTOさんから「テスト中に位置情報を変えられないとコアの部分のテストができない」というリクエストを頂いて、コマンドを追加したと記憶しています。

MIYAMOTO:当時は僕がやり取りしていたので、お願いしたと思います。追加していただいてありがとうございます。

伊藤:最初はヤマップさん向けでしたが、その後は他のお客様でも位置情報を使うアプリのテストで重宝されているようです。

高村MagicPodは使用できるコマンドの数が多いのも嬉しいです。Web APIを呼び出すこともできるので、動的に値を設定するといった柔軟なテストシナリオも作成しています。

MIYAMOTO:「YAMAP」には何かしらの事故が発生した際、ご家族などに自分の位置情報を共有できる「みまもり機能」という機能があります。位置の確認はWebでしていただきますが、アプリ側から定期的に位置情報を送っている形になっています。

そこでWebからアプリ側のAPIを呼び出して位置情報を取得し、地図にプロットしてそれを検証するということを行っています。もともとできるとは思っていなかったのですが、「もしかしたらできるんじゃないか」と思ってMagicPodのドキュメントを読みながら試したところ、実装できました。

QAチームと開発が協力して実現したテストで、大変助かっています。人力でテストしていたことが自動化されて、より重点的にテストしたい機能に時間を使うことができていると思います。


MagicPodの導入が開発とQAをつなげるきっかけに

伊藤:定期的な振り返りミーティングなどは設定されていますか?

MIYAMOTO:導入当時は「これのせいで作業が進まない」といったブロッカーになるものをなくしてクイックに使いこなすということを意識していたので、1〜2週間ごとに振り返りを行っていました。全体的に安定してきたという段階から月1回にしています。

QAだけでなくiOSとAndroidを担当しているエンジニアも参加して情報共有したりお互い相談したりしていて、ミーティングでは「YWT(やったこと・わかったこと・次やること)」というフレームワークを使用しています。忙しい中でもみんな頑張って参加してくれたお陰で、良い形で導入が進んだと思います。

高村:単にMagicPodの話に限らず、開発ではどうやって検証しているのかを知る機会にもなっています。そういう機会はなかなか得られていなかったので、良い時間ができていると思います。

伊藤:会社によっては開発とQAの連携で苦労されているケースも少なくないのですが、ヤマップさんではかなり密な連携ができているようですね。

高村:要素が検知できない場合にアクセシビリティidの付加をお願いするなど、QAだけで実現できないことをお願いしたり、気軽に「こういった場合はどうしたらいいか」と相談できたりしています。

伊藤:先ほどの「みまもり機能」もそうですが、ユーザーの命に関わるサービスということもあって、エンジニアの品質に対する意識がとても高いように思います。

MIYAMOTO:そうですね。ヤマップのエンジニアは品質へのこだわりというか、意識が高いところが嬉しいと思っています。振り返りミーティングも品質につなげる意識でちゃんと参加してくれています。

そのきっかけは、MagicPodを導入したことだと思っています。それ以前は開発とQAが集まって定例ミーティングをする機会は一切ありませんでした。開発とQAとをつなげる場ができたという意味でも、MagicPodを導入して良かったと思っています。


最後に

MIYAMOTO:QAメンバーがエンジニアに頼らずUIテストやE2Eテストを作れるようになれば、エンジニアは新しいサービスや機能の開発により多くの工数を割くことができるようになります。正直なところ最初は「本当にノーコードでできるのか?」と半信半疑でしたが、実際に使ってみると「MagicPodならできる」と確信に変わりました。

以前はユニットテストで内部処理のテストくらいしか行われていませんでしたから、E2Eテストを実行できる環境まで整ったのはMagicPodのお陰だと思います。「YAMAP」には熱量の高いユーザーさんが多くいらっしゃいますので、いかに迅速に対応していくかが重要です。MagicPodが毎日動いていることで、デグレが事前に発見できる安心感があるのは本当に助かると感じています。

高村:MagicPodはコマンドが充実しているので「こういうテストを作りたい」と思った時の実現度が高いのが非常に魅力です。使っていると「(MagicPodの)デザインが改善されて見やすくなっている」と感じることも多く、例えば条件分岐を字下がりにするなど痒いところに手が届く感じが好きです。OSの新しいバージョンと古いバージョンを並行して夜間にテスト実行できるところもかなりの安心感につながっています。

橋本:私は開発経験が無くコードも書けませんが、実際にE2Eテストの自動化を実現できていて「本当にノーコードでできるんだ」と驚いています。以前の職場では開発経験のないQAチームで自動化に不安を持っていましたので、「あのときMagicPodに出会えてたら良かったな」と思います。自動化に不安を抱えているチームがありましたら、MagicPodをお薦めしたいです。



株式会社ヤマップ