Customer Stories

「究極は開発工程にテストフェーズをなくしたい」レコチョクが見据える品質保証の未来

IT基盤部 伊藤 智之氏、清崎 康史氏
Company
株式会社レコチョク
https://recochoku.jp/
Industry
エンターテインメント / BtoB SaaS / BtoC
Publish Date
May 23, 2022

「品質を高める意識を根付かせる」ことがAutify導入の目的のひとつ

創業から20年、国内で音楽配信サービスの先駆けとして音楽ダウンロード、ストリーミングといったサービスやプラットフォームを提供、最近では NFT などブロックチェーン技術を活用して、新たな音楽体験を展開してきたレコチョク。さまざまなサービスを開発しリリースする中で、2020年からテスト自動化プラットフォーム Autifyを導入した。

「人間の感覚でなければテストできない部分もある」

音楽というジャンルだからこそ、クリエイティブな時間を生み出すことにこだわる彼らは、品質保証のこれからをどう見据えているのか? 株式会社レコチョク IT基盤部の伊藤 智之さんと清崎 康史さんに話を聞いた。

音楽を軸に「体験」を届ける

—御社の事業について教えてください。

レコチョク・伊藤さん: 株式会社レコチョクは2001年に国内の主要レコード会社の共同出資で設立されて、おかげさまで昨年で20周年を迎えました。2002年に「着うた®」のサービスを開始して、現在は、PC、スマホ、ゲーム機などの多様なデバイスでダウンロード配信やストリーミング配信を展開しています。

また、NTTドコモ社やUSEN社、タワーレコード社などの企業との協業サービスも運営しています。さらに、2021年10月から、アーティストがファンとダイレクトに繋がれるD2F(Direct-to-fan)のプラットフォーム「murket」の提供を始めました。2022年にはNFTの独自基盤でのサポートを開始するなど、 新たな音楽体験を提供しています。

—皆さんの業務内容を教えてください。

伊藤さん: 私はIT基盤部の部門長をやっています。IT基盤部は、情報システム、セキュリティ、QA(品質保証)などを横断的に束ねています。その中で品質面は総勢約7名のQAチームが担当しています。

QAチームは自社サービスとto B向けのサービスに対して開発チームと協力してテストに取り組んでいます。2021年からスクラム開発になり、今まさにAutifyを活用したリグレッションテストで品質向上に取り組んでいます。

レコチョク・清崎さん: レコチョクに15年ほど在籍していて、QAに配属されてからは約5年。現在はQAチームのリードを担当しています。それまではレコード会社の支援や折衝、開発の上流工程や開発のPMを担当していました。安定したサービスをどうデリバリーし続けるかを手探りでやって現在に至ります。過去の不具合事例を分析して、QAのプロセス改善を継続的に行っています。

メンテナンスが課題。繁忙期のリソース不足をどうするか

—Autifyを導入いただいて2年経ちました。導入前は、どのような課題がありましたか?

清崎さん: 社内の複数サービスの品質を保つため、常に開発とテストが実施されています。大規模なプロジェクトであれば専任のQAがアサインされるのですが、保守/運用のフェーズになると、必要なタイミングでQAの依頼を受けて、テストを行います。

開発内容によってテストの規模も変わるため、繁忙期と重なってしまうとリソースが足りなくて、外部調達に係るオーバーヘッドが発生します。そんな中「いかに効率良く、最大限QAのテストを実行できるか」が課題でした。

—Autify導入のきっかけを教えてください。

清崎さん: 2019年頃からテスト自動化に興味を持ち始めました。たまたま参加した社外のQA勉強会で、Autifyの末村さんの「クロスブラウザテストの闇と闇と闇」という発表を拝聴しました。「Seleniumを使ったクロスブラウザ上のテストがどれだけ大変か」という話で、末村さんが「あなた方に自動テストを諦めに来てもらいました」という内容でした(笑)。その場でAutifyという便利なプラットフォームがあることを知りました。

—確かに。あれはすごく話題になりました。

清崎さん: はい、非常に刺激的でしたね。私が勉強会に参加した理由は、手動でテストし続けることに疑問が湧いていたことと、前任者が自動テストを検討して導入できなかった経緯があったことです。テストを切り捨てることはできないし、人のリソースに依存し続けることもリスクです。それを解決するのがミッションだと思いました。

事業が拡大していくと、テストする対象も増えていく。開発サイクルも上がっていきますし、機能もどんどん増えてきて、回帰テストを実施する範囲もどんどん広がっていく。その状況にどう対応していくかが大きな課題でした。

—以前、自動テストの導入を諦めたというお話、具体的にお聞かせいただけますか。

清崎さん: 当時はAppiumを使ったアプリのテストをトライしましたが、メンテナンスコストを考えると、運用に乗せられないということで、自動テストを諦めた経緯があります。

コストが一番大きかったのは、環境のメンテナンスと、修正にかかるコストです。テストシナリオが増えていき、対象のUIも変わっていく。都度コードを修正しなければなりませんが、そのメンテナンスの体制がうまく作れませんでした。テストすることよりも、テストそのものをメンテナンスすることがだんだん目的になっていくような感じで、懸念点が払拭できませんでした。

伊藤さん: 案件が重なったときのリソース不足が大きな課題でした。案件を受けないのは話が違う、それなら人を増やせばいいかといえば、繁忙期と閑散期がある中では難しい。「設計する」部分や、ノウハウを生かして「考える」部分は人がやるべきところで、考えたものを実行する部分は、自動化したほうがいいという発想で「トライしよう」と動いてもらいました。

メンテナンスコストと実行スピード、結果の確認を客観的に評価

—Autifyを選んでいただいた理由を教えてください。

清崎さん: 勉強会でAutifyの存在を知った後、たまたまTechCrunch Tokyo 2019の会場に足を運んで。Autifyのブースがあったので相談も交えてお話をしました。環境のメンテナンスやシナリオ修正について詳しく話を聞いてみると、不安も解消できたんです。導入障壁が低い印象を受けたので、会社に戻ってすぐ上司の伊藤と話しました。翌日にはデモリクエストを送っていましたね。そんなスピード感で導入検討、判断した流れがあります。

—ブースを出して良かったです(笑)。その後の導入のプロセスも教えてください。

清崎さん: デモリクエストを送った後、さっそく有用性の検証に取り掛かりました。実施したのはPoC(Proof of concept)です。対象になるサービスを私のほうで1つ決めて、開発担当者に「Autifyを検証環境の上で回させてください」と相談してから始めました。

PoCの内容とポイントは、大きく3つあります。1つ目がシナリオの作成の容易さとメンテナンスコスト。2つ目が実行スピード。3つ目が、実行結果の確認の工数です。仮にテストの失敗を確認した場合に、エビデンスが出せるかどうか。その3点に興味があって見ていました。客観的な評価を見てどう進めるかを見極めました。

—結果的にどのような評価だったのでしょうか。

清崎さん: Autifyの「クリック操作でスクリーンショットとともにステップがレコーディングされる」という機能は、使い勝手が非常に良く、テストにスピード感が増しました。シナリオ作成時にも、1つずつロケーターや要素を探さなくても、自動で拾ってくれるのも便利です。

また、ステップを差し込む、間違えたときに差し替えるといったことも自由にできるので、コードを書けない方でも、自動テストの作成/保守、QAに対応できる姿が想像できました。そのため、活用幅を広げる判断もスピーディーにできましたね。

—実行スピードはいかがでしたか?

清崎さん: ザックリと言えば、手動で丸1日掛かったものが4分の1ぐらいのスピードで完了したので、PoCの段階でメリットが感じられました。並行実行が10並列までできるので、スピード感はさらに何倍にも速くなると実感できました。 初期シナリオの作成はどうしても必要ですが、実行スピードの速さや並列実行ができるというのは非常に大きなメリットであると感じました。

—実行結果の確認はいかがでしたか?

清崎さん: PoCの中で不具合は見つかりませんでした。自動テストの失敗がありましたが、実行環境によるものなど、原因の切り分けがスムーズにできました。スクリーンショットでメッセージを見れたので、詰まらずに行けたかと思います。

開発側も品質保証に意識を向けるために

—運用で、何か工夫した点や気づきはありましたか?

清崎さん: PoCの結果を、開発担当の部門長やマネージャー会議で共有し、有用性をアピールするところから始めました。次に、手動で行っていた既存の回帰テストのシナリオを自動テストに置き換えていく作業です。

手動ではシナリオに書かれていない部分も、OK/NGの判断を人間が暗黙的にやっている部分もあるのだとわかりました。人の感性で見ているところをいかに自動に置き換えていくかは、コツが要るんです。

—開発チームの反応はいかがでしたか?

清崎さん: すごく反応が良く「ぜひ使いたい」という声も上がってきました。ただ、一気に広げるのは大変なので、開発の頻度が高いものを優先的に1個ずつ導入を進めていきました。

単に自動テストの導入を開発担当者に提案したとしても、導入しただけで終わってしまう。それだけは避けたいと思いました。開発者にもQAを行う意識を根付かせないと、品質は向上しません。Autifyの導入を広げることが目的ではなく、「品質を高める意識を根付かせる」ということにも力を入れました。

—「意識を変える」は文化的なチャレンジになりますね。

清崎さん: 開発工程でひととおりパスした後に、QAが最終チェックをする流れを作り上げたいと思いました。ちょうど、開発チームのトップにも同じ意識があり、それが追い風になってやりやすかったです。次の課題として、開発者がテストをどう実施すればいいか、手動と自動の両方で、必要なテストの洗い出しや設計手法、使い方のレクチャーなどを実施しました。最低限のルールをまとめたガイドラインも作って説明し、品質への意識を根付かせていきました。

定期的な情報交換会をQAと開発メンバーで実施して、利用状況や製品のアップデートをテーマに会話しました。困りごとがあれば報告してもらって「次回までに、どう解決するのか」検討したり、次のアクションを決める課題管理もしっかり行いました。こうした運用面での取り組みも、ツールを現場に根付かせる上では重要だと思います。

—品質意識を広めていく上で大変だったことはありますか?

清崎さん: どんな観点でテストを行うかが、テストシナリオの質を左右します。そこでQAチームがアーカイブしている「観点リスト」というガイドを引用しながら説明しました。誰がやってもその観点が漏れないように。きちんと言語化して、うまく使えるような仕組み作りをしています。

開発者自身がしっかりテストできると、今までQAチームが対応できなかった部分にまでカバレッジが広がり、よりクリエイティブなテストにリソースを割くことができます。開発で品質が上がれば、プロダクトとしても当然品質が上がっていきますし、そのぶん安心感も得られます。

当初に対象としていた主要動線のリグレッションテストは100%Autifyがカバー

—Autifyの機能で特に活用した機能はありますか?

清崎さん: 弊社で最近よく使っているのが、Eメール機能です。新規会員登録した後のメール認証と連携させています。新規会員登録のステップを挟んだテストでは、テストデータの作成に手間がかかりますが、Autifyのメール機能はランダムメールアドレスが発行できるので、大変便利で助かっています。

—導入後の効果はいかがでしょう?

清崎さん: 開発の終盤のほうで、「回帰テストを回す」ときに手動と自動をうまく組み合わせることで、カバレッジを損なわれずに実行できています。繁忙期にも見通しが立ちやすくなり、外部からリソースを調達する必要もなくなりました。導入当初に自動テストの対象としていた主要動線のリグレッションテストは全てAutifyでカバーできています。

新しい機能は、手動でパスした後に自動テストに置き換えています。手動での気づきもあるので、違和感を感じたところは、全てインシデントとして上げて、それが修正されたら自動テストに置き換える流れです。QAチームも操作に慣れてきて、開発チームが作成したシナリオも増えているので、自動化がどんどん加速しています。導入前の悩みはほぼ解消されました。

伊藤さん: 案件が重なって、リリースのタイミングで「今立て込んでいるので、ちょっと待ってて」という状況が以前はありました。開発チームにも迷惑をかけて、QAメンバーには胃の痛い思いをさせてしまっていたと思います……。Autifyを導入後は効率良くできるようになり、スムーズに進行できるようになりました。 清崎とは「Autify導入が目的にならないように」と当初から話していました。導入して「使って、使って」と言うだけでは、「品質を高める意識を根付かせる」目的を見失ってしまう。当初は意図が開発チームにうまく伝わらないこともあったのですが、焦らずに解決策を話し合った結果、徐々に開発チームにも認知されて、今では「ウチも導入したい」、「使い方を教えてください」という声が上がるようになってきました。また、開発チームも品質への意識が高まってきました。 昨年タネを蒔いて、今年花開いている感じがします。

—これからテスト自動化に取り組む方々へメッセージをお願いします。

清崎さん: テスト自動化にあたり、まずは具体的に実現したいことを整理するといいと思います。例えば「end-to-endテストの実行回数を増やしたい」「テストのカバレッジを広げたい」「実行スピードを速くしたい」などいろいろあると思うんですね。整理してから始めたほうが、手応えを感じながら進められると思います。チーム内で目線合わせもできますし、形骸化していくリスクも低くなります。

私は、Autifyの利用者同士で相談や情報交換できるSlackのコミュニティに参加しています。ご利用いただければ自動テストが楽しくなるんじゃないかなと思うので、こういったコミュニティも参加されてはいかがでしょうか。。

伊藤さん: まずは目的を見失わないこと。あとはQAチームだけにとどまらず全社的に巻き込んでやっていく。この2つが大事なんじゃないかなと思います。

人だからこそできるクリエイティブなQAにリソースを割く

—今後の展望をお聞かせください。

清崎さん: 究極は開発工程にテストフェーズをなくしたいと思っています。これは簡単なことではないと思いますが、Autifyを活用して常にテストが実行できる状況を維持すれば、実現できるんじゃないかと思います。実現すればQAが職をなくすというわけではなく、今まで培ってきた経験から、タイミングや条件を組み合わせた探索的テストも行えます。「いつでも出荷できます」という状態を作ることに、QAがリードしたいですね。

弊社の場合は、音楽や動画のサービスを提供している以上、人間の感覚でなければテストできない部分もあると思っています。音楽を楽しむという体験としては、もっとユーザーインサイトを知るなど、お客様や音楽ファンのニーズを理解する部分にトライしていきたい。それが、人だからこそできるQAであり、よりクリエイティブな部分に時間を費やせるようになると考えています。

伊藤さん: 当初から人にしかできないことに注力できるように自動化を進めてきたので、品質を高めたあとは「よりいいもの」を目指して、付加価値を人が作っていく。そんなチームに進化していきたいと思っています。

—最後に何かお知らせがあれば、どうぞ。

伊藤さん: 弊社では2021年に「murket」という音楽・エンタテインメント業界に向けてオンラインストアを開設できるECソリューションの提供をスタートし、開発メンバーも大募集しています。ご興味のある方はぜひ、サイトからご連絡ください。「まずは話を聞いてみたい」からでもいいので、ぜひよろしくお願いします!

(聞き手:オーティファイ株式会社 CEO 近澤 良)