生産性向上が求められる現代社会。しかし、コミュニケーション能力が問われる商談や顧客対応といった業務の効率化はそう簡単ではない。特に電話営業をはじめとする音声コミュニケーションは、企業にとって業績に直結するため、古い手法でありながらも成果をあげることも確かだ。
そんな中、電話営業をDX化するサービスが登場した。『MiiTel(ミーテル)』は電話営業の音声を解析するAIを搭載したクラウドIP電話。通話を自動録音して、AIが文字起こし、内容を解析して可視化する。CRM連携機能で担当者の「いつ・誰と・なにを話した」という顧客対応状況をリモートで一元管理できるというものだ。
MiiTelを手がける株式会社RevCommのCTO平村 健勝さんと、QAを担当する池畠 賢さん、福田 華奈子さんに、開発におけるQAの取り組みについて聞いた。
—まずは皆さんの自己紹介をお願いします。
RevComm・平村さん: 株式会社RevCommでCTOを務めています。組織づくりや経営の他、クラウドサービスの企画立案から、サービス仕様の設計、システムアーキテクチャの設計、機械学習やニューラルネットワークを用いた音声認識、音声通信インフラの開発までを手掛けています。
RevComm・池畠さん: 株式会社RevCommでサーバサイドエンジニアをしております。サーバサイド業務の他に、QAのプロジェクトを担当し、E2Eテストの実装に取り組んでいます。
RevComm・福田さん: 私はカスタマーサポートに所属しています。池畠さんと同じくQAのプロジェクトに関わって、テスト自動化に取り組んでいます。
—Autify導入に至る経緯を教えてください。
平村さん: きっかけは顧客の急増により、想定していなかった使い方をするユーザーが出てきたことです。同時にリリースの頻度も上がり、QAに関しても素早い対応が求められるようになりました。
—Autify導入前は、基本的にはマニュアルテストで対応されていたのですか?
池畠さん: カスタマーサポートがマニュアルテストをして、エンジニアがエンジニアの観点でテストをすることもありました。リリースサイクルが早いなか、想定外のケースも洗い出してカバレッジを広げていく必要がありました。
—Autify導入前は、他のテストツールも検討しましたか?
池畠さん: Seleniumを使って独自開発したものを活用することもありましたが、複数のプロダクトでそれぞれコードやシナリオを変えなければならず、運用と管理のコストもかかっていました。Autifyはシナリオを複製して、設定値を変えるだけで、他のプロダクトにも転用でき、管理工数を大幅に削減できます。工数を踏まえて、Autifyで品質とリリース速度を高める方針にシフトしました。
—そこから導入へのプロセスについて教えてください。
池畠さん: 2021年3月からトライアルで、Autifyを使ってどんなシナリオが組めるか検証してきました。『MiiTel Phone』は、電話の発着信機能があり、技術的にはWebRTCやWebSocketを使っています。それらがAutifyで対応可能かどうかがポイントでした。
CTO、テックリード、インフラリードのメンバーを招集し、Autifyのサポートにも相談したところ、Autifyのエンジニアの皆さんが総出で対応してくださったんです。結果的に、WebRTCでも動作する確認が取れたため、QAに十分なテストができると判断し、導入を決めました。
福田さん: MiiTel Phoneは、電話ができなくなるのはクリティカルな問題かつ基本的にできなければならない部分なので、テストを自動化できたら自ずと品質が担保できます。Autifyはテストを自動録画して振り返れる仕様で、もしエラーが出たら、Slackで通知を飛ばしてくれる。テスト結果をメンバー間で共有することが重要なので、導入を後押ししたと思います。
—御社の場合、リリースの頻度はどのくらいですか?
池畠さん: プロダクトによりますが、例えば『MiiTel Analytics』だと週3回程度です。 複数プロダクトを同時に進行しているため、毎日何かしらデプロイしている状況ですね。
—Autify導入の決め手になったのはどんなところですか?
池畠さん: 他にも似たようなサービスがありましたが、AutifyはUIが全て日本語で対応していますよね。誰でも簡単に使えることを考えると、導入の障壁がまず1つ減らせました。
先ほども伝えたように「WebRTCに対応しているか」は重要なポイントでした。そこをサポートに相談したとき、具体的なシナリオを提案してくださったり、スピーディに対応いただけたことも大きな決め手になりました。
—ありがとうございます。確かに、WebRTCなどはE2Eで躓くポイントですよね。
池畠さん: 実際に問い合わせたあと、Autifyの「よくある質問」に「WebRTC を有効にするときはBASIC認証を設定しないでください」というのが追加されていることに気付きました。対応が速いなと思います(笑)。
—導入前はマニュアルでテストされてきたとのことですが、テストケースをどのようにAutifyに移行しましたか。
池畠さん: まずAutifyを触ってみたところ、簡単で直感的なUIだと感じました。そして『MiiTel』のテストの仕様書を見直すところから始めました。シナリオのひとつひとつの単位を、ステップグループに落とし込みました。サービスごとのステップグループを作成して、トライ&エラーを重ねシナリオを完成させていきました。
— QAチームはどのようなメンバー構成でどのようにテスト自動化を進めたのですか?
平村さん: 弊社の場合、サポートチームの中にQA担当が存在しており、加えて開発は開発の立場でQAに携わっています。かなり多くのメンバーがAutifyに触れています。サポートと開発のチームを横断して、タスクフォース的にテスト自動化に取り組みました。
—そこまで広げるために、導入・運用時にどのように工夫されたのですか?
池畠さん: 実行タイミングの指針を社内で話し合いました。Autifyの実行回数が月400回あり、「コスパは良いけれど無駄遣いはしない」という認識合わせをしています。現状のシナリオを精査してステージング環境やプロダクション環境のリグレッションテストを実行しています。他社サービスに絡むものは、外的要因で障害が起きる可能性もあるため、先月からは毎日実行していくことにしました。言語やフレームワークのバージョンアップの際にはAutifyを回す習慣ができました。最低限の品質が担保されている安心感が得られています。
Autifyはエラー発生時に「なぜダメなのか」を知らせてくれますが、プログラミング言語ほど明確ではありません。ですが、みんながAutifyに慣れ始めて、原因を察することができるようになってきました。Autifyの活用が各々向上してきたことは、良い変化だと思います。
—1つのチームやプロダクト単体での導入はうまくいくけれども、その後の横展開に苦労される企業は多いです。御社の場合、うまく広がった要因はなんだと思いますか?
池畠さん: 実は最初は横展開に苦労しました。でも新しいメンバーも加わりAutifyを開拓してもらい、ナレッジトランスファーをしていって、使える人をどんどん増やしていきました。あるとき、ステージング環境でAutifyに警告が出て、「これ、ちゃんとAutifyで防げてるじゃん」という事例が発見できたのです。徐々にみんながAutifyの効果を実感し始めました。そこからシナリオ作成も加速していったように思います。テストケースにも「Autify 済み」かどうかわかるようルール化していきました。
—知識を伝えていくことと、ルール作り、そして実績を開示していくことで広げていったのですね。
—活用にあたり、Autifyで重宝している機能があれば教えてください。
池畠さん: ステップグループは一番よく使っています。他のチームとシナリオを共有できるのが便利ですね。またテストのためのメールアドレスを追加する機能は、動作確認に大変役立っています。
Slack通知も重宝しています。テストの実行結果を確認して、どう改善すればいいか、チーム内でディスカッションが生まれ、どんどんシナリオが研磨されていく。いいサイクルに繋がっていると思います。Slack通知は必須機能なので、拡張していけば、皆がもっとハッピーになれるんじゃないかなと期待しています。
—先日テストプラン毎のSlack通知がリリースされ、テストプランごとに別のチャンネルに投稿することができるようになりました、ぜひご活用ください。Autifyと外部連携などもされているんですか ?
池畠さん: Salesforceと連携しています。最近Salesforceのログインに二要素認証が必須化され、MiiTelとしても現在開発を進めています。ログインテストの1つとして、MFAの突破の手法(サーバにアクセスしてOTP取得)をナレッジとして公開されていたので、実際にやってみた結果問題は解消したので、今後よりシナリオを広げていきたいです。
—Autify導入後は、どのような変化がありましたか?
池畠さん: リリース前後はいつも「ちゃんと動くかな?」と不安でしたが、Autify導入によりリグレッションテストを自動化できて、一定の安心感を得られるようになりました。心理的負担が軽減されると、次の開発にも繋げやすくなるんです。「導入して良かった」と実感しますね。
新たに開発するサービスや機能は、Autifyのシナリオをあらかじめ用意して、運用コストが少ない状態で臨んでいます。『JSステップ』も活用しながら、開発者が一丸となってシナリオを作っています。JSステップ用のリポジトリを用意して、共有する試みも始めています。
福田さん: 自動化にあたってマニュアルの見直しをするので、全体的にテストシナリオの精度が向上したと思います。
平村さん: 夜間のメンテナンス時間帯にリリースを実施した後、マニュアルテストをするというケースは多いと思うのですが、メンバーのワークライフバランスを考えると、それはできるだけ避けたかった。Autify導入後は、この課題がクリアになって本当によかったと思います。
―今後の展望を教えてください。
池畠さん: まずテスト自動化のカバレッジを広げることを1つの目標として挙げています。また検討中のシナリオレビューも定着させて、Autifyに落とし込むことをどのプロダクトに対してもフロー化していき、テストの工数を減らしていきたいと思います。
福田さん: お客様に安心して使っていただけるサービスを維持していきたいです。「より便利に」というところを同時に担保しながら、製品を作っていくことが重要になってくるのでAutifyを活用して、自信を持っていい製品を世に送り出していきたいと思っています。
平村さん: より早く、より便利に開発していくことが、RevCommの開発方針です。今後は電話機能以外の機能を拡充して、RevCommに情報を集約していこうとしています。現在日本だけではなく、インドネシアにも展開しており、さらにグローバル展開を進めていきます。多言語対応や、SFDC、HubSpotといった他製品との連携も進めていきたいと思っています。
―最後に、これからテスト自動化に取り組む方々にメッセージをお願いします。
池畠さん: SaaSというビジネスモデル自体が波及していく中で、コストの考え方は重要です。金銭的な方法で時間を短縮できるのなら、率先して自動化を進めていったほうがいい。今後Autifyのようなサービスが必須になると思います。製品が大きくなってからAutifyを検討するのではなく、むしろ最初から使って、品質の高い状態でプロダクトを成長させていくことが大事ではないでしょうか。
福田さん: 自動化できないテストや、人だからこそ見つけられるエラーもあると思いますが、手動で何度も同じテストを繰り返すのは正直ツライです(苦笑)。長時間に及ぶマニュアルテストは集中力も途切れてしまう。Autifyを導入して、テスターの負担を軽くしてあげてください。
平村さん: テスターの採用はとても大変です。Autifyでテストを自動化すれば、少ないコストでも実現したいことが実現できるので、導入を検討する価値は高いと思います。
―なにかお知らせがあればどうぞ。
平村さん: MiiTel Phoneは便利なサービスなので、ぜひ使ってみてください。それから開発メンバー、テストエンジニア、QAエンジニアを絶賛募集中です。音声×クラウド×AIの掛け合わせで、世の中を良くしていきたい。そんな思いを共有できる人を探しています。
―ありがとうございました!
(聞き手:オーティファイ株式会社 CEO 近澤 良)