株式会社ディー・エヌ・エー(以下、「DeNA」)は言わずと知れた、常に新しい価値提供を追い続ける日本を代表するベンチャー企業の1社。「インターネットやAIを活用し、永久ベンチャーとして世の中にデライトを届ける」をビジョンに掲げている。
多くのプロダクト、サービスを提供し続けるDeNAのQAチームはゲーム以外の領域だけでも100人を超える規模になるとのこと。そこで抱える莫大な規模のソフトウェアテスト業務の自動化ツールとして、Autifyを採用いただいている。テスト自動化への道のり、その効果について、システム本部 品質管理部の柏倉 直樹 氏(以下、「柏倉さん」, 写真右)、芹沢 憲二 氏(以下、「芹沢さん」, 写真左)のお二人にお話を伺った。
– まずはじめに、お二人の自己紹介をお願いします。
柏倉さん:私は、ゲーム以外の領域の中でも、エンターテインメント関連のサービス、プロダクトの検証を行うQAチームのリーダーを務めています。 社外に向けた活動としては、「DeNA QA Night 」という勉強会を主催しています。
芹沢さん:私も同じく、ゲーム以外の領域、例えばモバゲーのプラットフォーム、その他漫画アプリ、小説アプリといったエンタメ領域のコンテンツを中心としたQAチームのリーダーを担当しています。 2019年には、『ソフトウェア品質シンポジウム』に登壇したりなど、柏倉と同じく、社外に向けた活動も行なっています。」
– ありがとうございます。DeNAさんがAutifyを導入しておよそ半年ほど経ちます。(* インタビュー当時) 改めて導入の経緯などを詳しく伺います。
– それではまず、Autify導入前のテストの状況をお伺いさせてください。
芹沢さん:Autify導入前は、品質管理部として手動テストをメインで行なっていました。DeNAのサービスの多様化に伴い、テストの領域や規模が徐々に、そして日々大きくなっていく中、ツールの導入検討タイミング、などは取れません。日々の、手動テスト業務で手一杯になっていました。
– DeNAさんには Software Engineer in Test (以下、「SWET」) 専門チームもいらっしゃいますよね。SWETチームと手動テストとの住み分けはどのように行なっていらっしゃったのでしょうか?
柏倉さん:SWETチームはCI/CDといった、どちらかというと開発寄りのテスト自動化を得意としています。AutifyがサポートしているようなE2Eテストに関しては、手動がメインで、自動化についてはあまり進んでいませんでした。 一部我々のチームの中にも、Seleniumを扱えるメンバーはいました。使える人は進んで使うということはありましたが、部門全体でやるとなると敷居が高く、進められていませんでした。
– そこで、Autifyを知っていただき、導入を検討いただいたということですね。どのあたりが導入の決め手になったのでしょうか?
柏倉さん:Autifyはとてもシンプルで、非常に入りやすいです。例えば、コーディングスキルを有していなくても入りやすい、という点だけをとってみても「せーのっ」とチーム全体で導入しやすいと感じました。
芹沢さん:チームメンバーからも、テスト結果画面のスクリーンショットなどの、エビデンス、ログの追いかけやすさ、確認のしやすさがとても良いという声が上がりました。トレーサビリティといえば良いのでしょうか。そのあたりがこれまでに無いものでしたね。
– 手動テストの時はトレーサビリティについてどのように解決されていたのですか?
芹沢さん:よく言われる言葉で表すと『エクセルスクショ職人』になっていました。手動でスクリーンショットを撮って、保存して、どこで、それがなんの画像か、といったのを管理して。テストの実施ではなく、その作業の方がむしろメインになってしまっていました。 Autifyの場合は、手順にあわせて画面が並んでいるため、スライドするだけで、流れも追いかけることができます。これは、最初に画面を見たときにすぐに「かなり使いやすい」と感じました。Autifyのおかげで “職人芸” から解放されました。
柏倉さん:『エクセルスクショ』はただただ辛いだけですからね(笑)。そうした雑務からは解放されたい、チームメンバーを解放したいと思い続けていました。
– 人がすべきところに集中する、そういった点でもお力になれたこと、とても嬉しいです。
– Autify導入時の進め方についてお伺いさせてください。まずはじめにどのようなところから開始されたのでしょうか?
芹沢さん:まずは触ってみること。操作をしてみて、使い慣れる、というところから始めました。テスト項目としても、複雑なものからではなく、シンプルな項目、例えば表示の確認やページ遷移といった短いテストケースからシナリオの作成を進めました。 何か、開始してから詰まったところなどはありましたか?
芹沢さん:操作マニュアルやレクチャーの動画があり、ドキュメント類が非常に充実していたので、入りはとても簡単でした。とても使いやすかったです。初期の導入は、素早くいけたという印象です。時にはAutifyの方が直接レクチャーしてくださるような機会もあり、それもとても助けになりました。 使っていく中で、徐々に高度なことをやりたくなったとき、例えばアサーション周りのあたりとか、そのあたりの動画とか操作手順やマニュアルがあれば、より利用拡大のスピードは上がったかもしれません。このあたりはAutifyさんへの改善要望ですね(笑)
– ご要望、すぐに対応していきます!(笑)
その他、様々な製品(サービス)、部署など幅広く使っていただいてる印象です。その幅広く利用する上で、工夫されていることなどはありますか?DeNAさんのような大規模なQAチームならではの工夫などはありましたか?
芹沢さん:Autifyを導入するタイミングで、テスト自動化に向き合う時間を各チームで取りました。どこを、どの順番で自動化するのか、などの計画を立てたり、KPIのような目標を立てたり、ということをやりました。 今まできちんと向き合ったことがなかった分、こういうきっかけ、機会を作れたのはこれからの運用を考えるととても大きいと今でも感じています。
– なるほど。その結果、どのようなアクションになったのでしょうか?
芹沢さん:例えばリグレッション項目を1つとってみても、すべてを一気に自動化することは考えずに、できるところから1つずつ、きちんと、自動化していくこ と。シナリオを考えて組み立てること。そこから取り組み始めました。 特に自動化のメリットが出せる部分である、繰り返しテスト。この優先度を上げ、徐々にシナリオ化して、定期的に実行して、Autifyに任せるものを広げていきました。
– スモールスタートの方法をとったのですね。その際、どうやって優先順位を決めていったのですか?
芹沢さん:各チームごとに、計画的に、レビューもしながら、どこから自動化していくかの認識あわせをしながら進めていきました。その辺が、結果としてクイックに成果を出せたポイントかもしれません。
柏倉さん:当社は様々なプロダクトがありますが、各チームが一斉に、Autifyの導入を進めています。DeNAでは、各チームのリーダーが集まって、各課題について話し合う定期的なミーティングを行なっていまして、その中の議題の1つとしてAutify、テスト自動化という議題があがりました。そこで、「うちではこういう工夫をしているよ」といった社内の情報共有mtgをしていましたね。
そこで出てきたのが先ほど芹沢から言ったような下記のような点でした。
– DeNAさんの規模になると各チームのノウハウを集約する場があったことで、スモールスタートの後加速できたということがとてもよくわかります。
– それでは、成果について詳細をお伺いしたいと思います。具体的にどのような効果、成果がありましたか?
芹沢さん:簡単な項目から自動化を導入するだけで、他の作業に時間を使えるようになりました。テスト実施効率を上げることができています。 また、今までできてなかったテストができるようになったことは最大の効果といえます。 今までできなかったテストというのは、繰り返しテストなどのことです。我々の規模で、手動で行うことは非現実的です。人が何人必要になるか、予想もできません。また、時には本番環境の異常検知のために、Autifyを使った定期的な回遊チェックなどもしています。このあたりも同様に今までできなかったことで、Autifyを導入して初めてできるようになりました。 シナリオを組み、実行しておくことで、他の作業を並行して進められるようになったことも大きいです。 それぞれのチームごとに具体的な数字は変わってきますが、確実に全体の数値として効率的にテストが実施できるようになっていることを実感しています。 例えば、私が管理している領域のとあるプロダクト(サービス)では、すでに10%-15%ほど工数の削減ができています。 また、ここ最近の情勢と触れた点でいうと、リモートワークに切り替えた際にも効果がありました。 事業部は早々にリモートワーク化を進められた一方で、品質管理部のメンバーがテストに使う実機端末には、持ち出し制限があり、使用頻度の高い端末を分担して持ち帰り、そのための貸し出し管理を行う必要があり、完全なリモートワークになかなか切り替えられませんでした。品管管理部だけが遅れをとったのです。 Autifyを使っていたテストについてはこの点について、全く問題ありませんでした。クラウドツールという点が、このような状況下でも業務を進められる、大きな助けになっています。
– ありがとうございます。このような状況下でもお役に立てていることがとても嬉しいです。柏倉さんはいかがですか?
柏倉さん:私たちのチームは『工数削減』よりも、今までできていなかったテストをできるようにしていきたい、という視点が強いです。例えば、リグレッションテストの項目を現在も増やし続け、さらにこれを定期的に実行しています。これをもし人の手でやったとしたらかなりの金額です。このコストをかけずに、より高い品質を追求できているという考え方を持っています。 例えば、自分たちの開発チームがコードを修正した場合は、我々の検証の仕組みで自分たちで見つけることができます。ただ、OSやブラウザのバージョンがあがったといった場合に、全てのテスト項目を毎回できるかというとそれはできませんでした。 Autifyによって、従来よりも広い範囲のテストの実行が可能になりました。 と、言いつつも工数の削減にももちろんチャレンジしています。手動テストのときはテスト項目を書く、という作業が必要でした。今は、この作業自体をなくして、実装を先に進めるというプロセスに変更していっています。エビデンスの取得も自動でできるので、いわゆるエクセルで項目を作るという作業自体がいらなくなります。これは、非常に大きな工数削減に繋がると狙っています。 さらに、これを積み重ねていくと、リグレッションテストのケース数が加速度的に増えていくということになります。これはまだ実験的な取り組みではありますが、リリースサイクルの早いプロダクトで試しに1ヶ月ぐらい試したところ、だいたい10%ほどの工数が削減できました。初回から工数メリットを出していけそうだなと思っています。
– 我々もそのあたりを機能面でさらにフォローできるようにしていきます。
芹沢さん:効果としてもう1つ大きな点があります。 手動テストがメインだったという我々の背景もあり、自動テストを導入することで、テストの自動化自体に興味をもつメンバーが増えました。「うまくテストの自動化と向き合って、それを活用しよう」という思考・意識が働きはじめました。
– それは、単純作業からの脱却ということでしょうか?
芹沢さん:どこを自動で、どこを手動でという切り分けを考えたり、人に依存していた、目視確認や手作業をどうやったら減らせるかということを考えるようになりました。思考の時間が増えてきています。 Autifyであれば、誰もが自動化できるので、まずはじめに「自動化できるんじゃないか」というところから会話をはじめるようになりました。 これはつまり、シナリオを意識するようになったということで、よりユーザーに近い立場を意識したテストの実行が可能になった、という実感があります。
– ありがとうございます。最後に、今後の展望をお伺いさせてください。
柏倉さん:目指す姿として、部門をあげて、手動のスクリプトテストは最低限にしていきたいと考えています。探索的テストと自動テストを主体として、徐々に探索的テストの領域を増やし、官能的なテストに集中していきたいと考えています。 自動化テストを有効に活用することで、このあたりに使える時間を増やしていけると確信しています。
芹沢さん:ほとんど柏倉さんと同じですが、リグレッションテストは苦痛です。より、自動化で対応したい部分です。自動化の対象を広げ、自動化によせていくというのを徹底的に追求して、人の手を割くべきところに時間をさいていきたいなというのが一番思うところです。
– まさに、自動化できない、QAの本質的な方に集中していきたいということですね。DeNAさんのような規模の大きなQAチームでの活用をさらに共有していってくださるとのこと、大変誇らしく思います。ありがとうございました。