人々のニーズが多様化する中で、必要なときに必要な情報にアクセスできる環境づくりを。KDDIの「auスマートパス」を始め、au関連サービスや自社サービスなど、幅広い分野でサービスを展開している株式会社mediba。
進化を続けるモバイル業界で、新たなユーザー体験を生み出すスピード感のある現場で、品質保証を担うのが品質管理UNITだ。モバイルサービス開発におけるコロナ禍での課題や、テスト自動化のメリットなど、テクノロジーセンター 品質管理UNIT に所属する成田 泉さん、風見 玲衣さん、沢田 知樹さんの3名に話を聞いた。
― 御社の事業内容と、皆さんのご担当について教えてください。
成田さん: 弊社はKDDI社のユーザー向けコンテンツ事業「auスマートパス」などのau関連サービスから自社サービスまで幅広く展開しています。なかには1000万人以上のユーザーを抱えるサービスもあります。
会社の成長にともない品質管理に注力するフェーズに入りました。私はもともとはプロジェクトマネージメントをしていたのですが、約5年前に品質管理UNITを作り、現在は品質管理を担当しています。
風見さん: 私は前職よりテストを10年ぐらいやってきました。2017年にmedibaにジョインしまして、品質管理UNITに所属しています。2019年ごろからAutify導入を進めてきました。
沢田さん: 僕はau Webポータルに参画して品質管理に携わっています。
― 多くのサービスを抱えているとのことですが、品質管理UNITには何名くらいいるんですか?
成田さん: 協力会社も含めると、だいたい常時30名以上です。品質管理UNITの立ち上げ時は2人でしたが、それからメディアの数も、チームの人数も増えました。
― そこからテスト自動化の検討に入ったんですね。
成田さん: 開発がパートナー会社などにも広がっていくと技術選定も、1つだけではなくなり、一律で品質管理していくことが難しくなります。でき上がってからテストするよりも、作りながらテストするプロダクト、サービスも増えていきました。アジャイル開発でサイクルを早めていくために、品質管理UNITとしても、テスト自動化は不可欠でした。
またスマートフォンがメインのサービスなので、実機で検証する必要もあります。その場合「エンジニアしかテストコードが書けない」状態だと、エンジニアに任せるか、全て手動で行うかのどちらかになってしまい、非効率でした。そうした課題を解決するため、テスト自動化の検討に入りました。風見さんがツールを見つけてきた中の1つにAutifyがありました。
― 開発環境に左右されずにテストできるようなものを探されていた。
成田さん: そうです。基本的には品質管理UNITが横断的にテストを行うため、プロダクトに依存するのではなく、チーム内で使いやすく、人や文化が変わっても使えるようにルール化していく必要があります。そのため、1つのツールで横断的にテストできるものが理想でした。
― 実際に自動化するうえでさまざまなツールを比較検討されたのでしょうか?
風見さん: 自分で試してみてから検討しようと思いAppiumを試してみたところ、いくつかの問題が出てきました。テストコードを書く場合、最初は簡単でも徐々に難しくなり現実的ではありません。例えば、開発側にUnique IDを振ってもらう必要があったのですが、それを徹底することも難しく、また社内に他にAppiumを書いたことのある人がいなかったため、挫折しました。AWS Device Farmとの連携まで試そうと考えていたのですが、Autifyでクロスブラウザテストにも使えるからこれでいいじゃないと(笑)。
― 2019年に風見さんにAutifyをご紹介して、導入を決めていただいたのですが、実際に何が決め手となったのでしょうか?
風見さん: Autifyを使った自動テストは「人に依存しない」というところです。自動テストの取り組みは中長期に渡ることは経験からもわかっていました。Autifyはノーコードでシナリオが簡単につくれて、メンテナンスも楽。そしてスマートフォンブラウザにも対応している。E2Eテストに関することをシームレスに、人に依存せずに利用できることが導入の決め手として大きかったです。
― スマートフォン端末をカバーしている点はAutifyの強みの1つでもあるので、ご評価いただけて嬉しいです。具体的にはどのようにAutifyの導入を進めていきましたか?
風見さん: まずは自分が使ってみました。実際のテスト案件を担当した時に、マニュアルテストをやりながら、自動テストも作り、どちらも回してみる。それで信頼度を見ながら進めていきました。「自動テストは安定しない」という話を聞くこともあったのですが、Autifyの場合、信頼度は問題ないとわかりました。
次に、仲の良いエンジニアにAutifyのことを話して触ってもらって、という形で広げていきました。話してみると興味を持ってくれる人も意外と多く、社内勉強会なども開催してAutify自体を知っている人を増やしていきました。
– 巻き込み、大事ですよね。まずは1つのプロジェクトを決めて、そこで風見さんが実際にシナリオを作っていきノウハウを貯めつつ、別プロジェクトに広げていったということですね。
― 自動化をAutifyで進めていく中での、ノウハウについてぜひ教えてください。
沢田さん: 最初に風呂敷を広げ過ぎないということでしょうか。これは自分の反省点ですが、自動化するところを整理するために、範囲表のようなものを網羅的に作ろうとしました。すると整理している時間がすごく長くなってしまい、いつになったら自動化できるんだろう?という状況になってしまいました(苦笑)。
まずは直感的に、自動化したい部分から作り始めていくのがいいと学びました。
― 逆に言うと、Autifyは直感的に使えたということでしょうか?
沢田さん: ツールに慣れる早さは人それぞれだとは思うのですが、私たちの場合は早い段階で使えるようになりました。機能に対して、どんなテストをするか、レコーディングはどうすればいいかなどは、メンバーと話し合ってシナリオのクオリティを揃えるように意識しました。
― 自動化を進めるにあたり、つまづいたことはありましたか?
沢田さん: レコーディングがうまくできない箇所の回避方法などです。例えば、リンクをクリックして新しいページに遷移し、そこからもう1度、元のページに戻る――などの場面で、テストがうまく動かないことがありました。またスクロールがうまく表現できないことも。そんなときは社内で知見を共有し合ったりしていました。
― 沢田さんがうまく進められた理由はなんだと思われますか?
沢田さん: 風見さんからAutifyの機能をひと通り説明してもらったので問題ありませんでした。それでもつまづいてしまう場合は、質問箱からAutifyのヘルプに質問をしました。「よくある質問」などのヘルプページを案内してもらったり、「こういうコードを入れたらうまくいくよ」というアドバイスを都度いただいたりして、クリアにしていきました。
― 社内でAutifyを広げていくために、どうしていますか?
成田さん: 実際に自動化を広げていく場合、コストも掛かるため会社の承認を得る必要があります。他のプロダクトでツールを導入したいと相談があったタイミングで、「実はもう始めていて、Autifyはノーコードなのでプログラムのスキルが高くなくても始められます」と、タイミングを待ち構えて広めていくというやり方です。
デリバリーを早めたいという課題があるので、そこに向けて1つの解決策として提案していくパターンもあります。風見さんや沢田さんが地道に実績をあげたことで、エンジニアやディレクターからも「Autify触ってみたい」「試してみたい」という声があがってきています。
― そのほか運用面で何か工夫しているところはありますか?
風見さん: 導入直後は私1人だったのですが、Autifyを使い始めて早々に効果が出たので広めたいと思ったんです。通常プログラムコードを組んでテスト自動化を進めると言うのはなかなか難しいので、「テスト自動化ってそんなに簡単ではない」というのを社内勉強会で伝えました。
特にエンジニアに向けて話をすると「テスト自動化ってコード書けばいいじゃん」と思われがちですが、運用やテスト観点で見ると環境構築も含めて各担当に協力してもらわないとできないことがあります。
― エンジニアで自動化したことがない人だと、見過ごされがちな課題感なのかもしれないですね。勉強会がいい効果を発揮したんですね。沢田さんはいかがでしょうか?
沢田さん: 「au Webポータル」というサービスは、アジャイル開発、スクラムを組んで開発しています。自分たちが進めていく中で「このJavaScriptがうまく書けない」などの課題を朝会で相談したり、「こういうものを作ってみました」という事例をレビュー会で紹介しました。するとエンジニアから「こう書けばいいよ」とか、「こういう課題もあるんじゃない?」みたいなコメントをいただくことも。結果的にプロダクトに関わるメンバー全員で取り組めた点はすごくよかったですね。
成田さん: エンジニアだけではなくビジネスサイドも自動化には皆さん敏感で、全体コストを下げられるという視点で、Autifyについて問い合わせをもらうこともあります。エンジニアに対しては、デリバリーが早くなる点や、時間の掛け方にメリハリをつけられる。それによって開発の工程をもう少し長く取れるかもしれない。ビジネスサイドには、短期的に工数が減らせるというよりは長い目で見て効果が出せることをメリットとして伝えています。
― 実際に活用が広がっているとのことなので、社内でのコミュニケーションや成果の共有はうまくされていると感じます。
成田さん: 風見さんがまず導入のところを頑張って1人でやっていた時期から、みんなを巻き込んでやっていくスタイルに変えてくれました。また沢田さんが「au Webポータル」で自分のやり方を見つけて向き合ってくれたところが成果に繋がっていると思います。
― 実際には、どのような成果を社内で共有されていますか?
成田さん: これまでリグレッションテストを行っていた領域で、シナリオ作成からAutifyで回すことによって、それまで毎回「5時間掛かっていたものが、3時間に減らせました」ということを示せていると思います。時間だけ見るとそこまで短縮できずとも、自動で動かしている時間は、他の作業に充てられます。実績やデータを積み上げて、品質面でのメリットを定量的に見せていくこともできると確信しています。
沢田さん: リグレッションテストはもともとやっていましたが、5端末を全て人手でやっていたところを、今では人手は保険的に残しつつ、3端末を自動化して残り2端末を人が見ることに注力する形をとっています。2端末を集中して見たほうが、細かいところにも気付きやすいという点で、人が見るからこその品質をより保証できるようになったと思います。
― 以前に抱えていた課題感に対してはいかがでしょうか?導入のカギを風見さんが握られている
成田さん: シナリオを作って自動化しただけだと進まないんですよね。それをメンテナンスする体制が必要です。そこはテストエンジニアが担当しています。テストエンジニアも、自動化するところと、マニュアルで行うところのバランスを考えながらやっていくことになります。
場合によってはエンジニアやディレクターがやっていくところまで広げていけると、自動化できる領域も広がり、対象となるサービス、プロダクトも広がっていくのだと思います。
― 今後は各プロジェクトのエンジニアやプロダクトマネージャーなどがAutifyのメンテナンスをしていくのでしょうか?
成田さん: そうですね。メンテナンスを率いていく人はプロジェクトごとに必ず必要だと思います。テスト観点を持っているのはテストエンジニア、開発の設計内容に理解があるのは、エンジニアのほうなので。どちらかがイニシアチブを取るとき両方を兼ね備えた人を育てるというよりは、その観点を引き渡していくスキームを作ったほうがいい。それは次の課題です。
コロナの影響もあり実機での検証が困難な状況が続いています。いかに実機での検証を最小化できるか、しっかり考えていく必要があります。そういった意味でもAutifyは未来に向かっていけるツールだと思っています。
― これから自動化に取り組む人たちに、メッセージをお願いします。
成田さん: 私は会社に「導入のためにお金を出して」と言う役割ですが、小さい事例を作って「成功している」ところを、タイミング良くアピールしていくことが成功のカギだと考えます。導入はなかなか大変な取り組みであることは、どこの会社でも同じだと思いますので、うまく波に乗ることができたらいいのかなと。
風見さん: 自分の経験からですが、自動化しようと思ったら1人ではなく仲のいいメンバー、エンジニアを巻き込むとスムーズだと思います。そうやって周りを少しずつ巻き込みながら、最初は小さい事例をつくっていくことがおすすめです。
沢田さん: 僕も風見さんがおっしゃっているように、エンジニアを巻き込むのって、すごく大切だと思います。僕の場合、スクラムのチームが相談しやすい環境でした。そういう意味では、プロダクトが抱えている他の課題に対しても手伝うなど、日々のチームビルディングへの貢献も大切ではないかと思いました。
― 最後に、御社から何かお知らせがあればどうぞ。
成田さん: 品質管理UNITでは、QCのメンバーを大募集中です。品質に対して、どのように課題解決をしていけばいいのか、自分事として考えられる人、そのためのスキルを磨いてきた方に、ぜひジョインしていただきたいです。medibaで新しい品質の文化をともに作っていけたら嬉しいです。
(聞き手:Autify, Inc. CEO&Co-Founder 近澤 良)