Customer Stories
badge

「小さなバグでもユーザーは不安になるから、高い品質は譲れない」ローコスト×ノーコードで運用を加速させる、テスト自動化の有効性

CTO 時武 佑太 氏、QAエンジニア 川﨑 彩 氏

Company
株式会社LegalForce
https://www.legalforce.co.jp/
Industry
LegalTech
Publish Date
Jan 28, 2021

「全ての契約リスクを制御可能にする」をミッションに掲げ、契約書業務を支援する『LegalForce』を提供する、株式会社LegalForce。大手弁護士事務所出身の2人の弁護士が2017年に創業し、リーガルテック(法律・法務×テクノロジー)という分野で急成長しているスタートアップだ。

『LegalForce』は契約書に「不利な条文がないか」、「欠落している条項がないか」などをAIが数秒でチェックし、リスクのある箇所を指摘。修正文まで提示してくれるという画期的なもの。

Autifyを導入して実現したテスト自動化により、新たな運用ルールが構築され、新機能の開発も加速しているという。同社で1人目のエンジニアとして入社した取締役兼CTO の時武 佑太 氏、QAエンジニア 川﨑 彩 氏のお二人に、くわしく話を聞いた。

LegalForce Autify導入事例 (写真右から、株式会社LegalForce CTO 時武 佑太 氏、QAエンジニア(Quality Assurance エンジニア)川﨑 彩 氏)

機能が増えるにつれてカバーしきれなくなった「デグレ」検証

— Autifyを導入する前はどのような課題があったのでしょうか

時武さん: 以前は、QAの専属メンバーはおらず、開発エンジニアがE2Eテストまで一貫して担当している体制でした。開発の目線が検証にしっかりと反映できて良い面もあったのですが、開発件数が多くなるにつれ品質保証とリリーススピードの両立が難しくなってきました。

開発中の機能そのもののQAは、開発者が網羅できるものの、新機能追加によって、以前からある機能のほうに影響が出てしまう、いわゆる「デグレ」が目立つようになっていました。機能が増えるにつれてデグレの工数も増えていきますしカバーしきれなくなっていたんです。

リリース前に毎回、全てのデグレ検証を行うことが難しく、リリース後にユーザーさんから指摘されて初めて気付く、というようなケースもあり、危機感を感じていました。テストを自動化することで、中長期的にみて品質保証の工数を削減できると考え、テスト自動化に取り組むことにしました。

— Autifyを検討される前に、例えばSeleniumなど、ほかの方法での自動化も検討されたのですか?

時武さん: Seleniumを試したりしましたが、当時の開発者リソースだと「運用にのせられないだろうな……」という状況で、結局検証だけして使いませんでした。Seleniumを使って自社で開発する場合、エンジニアがテストケースをメンテナンスしていく必要があって、整備や運用などテストに掛かる手間が増えてしまう。開発とテストの工数感、バランス含めて現実的ではないと判断しました。

— クロスブラウザでの検証も重要なのでしょうか?

時武さん: そうですね。弊社の場合、法人向けに提供しているサービスなので、だいたい3割くらいのお客様がInternet Explorer(以下、IE)を使っています。そのためChromeとIEの2種類のブラウザでの検証が必須です。手動で2種をテストする際に、IEだけ動かないケースも散見されるので、なかなかツライところではあります。

— IEは鬼門なのでよく分かります(笑)。

自動テストと手動テストの両輪で、ユーザーの不安を徹底的に取り除く

— 急成長しているスタートアップの中では、なかなかテストまでカバーできないという声も聞きますが、御社ではテストの重要性を意識されているんですね。

時武さん: 高品質の製品を継続的に提供していくために、QAはもっとも重要な工程だと感じています。とくに弊社の場合、契約書というかなりセンシティブなデータを扱っています。データの漏洩や「別のユーザーのデータが見えてしまう」ということが、仮に発生した場合、かなりマズイ状況に陥ってしまうんですね。データをきちんと保護するという点と、安心して使えるサービスであることが、大変重要だと考えています。

安心して使っていただけるよう全力を尽くしているのですが、バグが発生することもあります。そんなとき、エンジニアにとってはその背景を理解して小さなバグだと感じるものであっても、ユーザーさんは、ほころびが見えてしまうと「このまま使い続けて大丈夫かな?」と不安になると思うんです。ですから、全体的な品質の高さは絶対に譲れないポイントです。

ただ従来のように、全てを手動で行うのはどうしても工数がかかりすぎて、人手が足りません。一定のシナリオに従ってチェックできるようなデグレやシナリオチェックを自動化して、本当に人でしか見れないところは、人がしっかりと担保する。結果的に、ローコストで高い品質を維持できるので、エンジニアがまだ少ない頃から、自動化については積極的に考えてきました。

— テストの自動化までのプロセスについて教えてください。

時武さん: 昨年、(オーティファイ株式会社、代表の)近澤さんにハンズオンに来ていただいて、開発者全員でAutifyのレクチャーを受けました。ページを開きながら操作をしていくだけでテストケースが作れるという体験とテストにAIを使っている点とに、すごく感動したのを覚えています。

これまでは、ある程度コードを書いたうえで、そのコードと操作を照らし合わせながら作らなければならなかった。それが普通にポチポチしていくだけで簡単にシナリオが作れちゃうというのが驚きでした。

新たにメンバーに加わった川﨑が、サービス全体のシナリオを網羅的に作成してくれてルールができ、運用に乗り始めました。

テストケースを複数用意することで、余計な工数を掛けない

— 運用において、工夫されたことなどはありますか?

川﨑さん: Autify側でテストケースを作っていく際に、タグ付けするような感じでIDを振って機能ごとに管理しています。そうすることで、パッと見て「何を確認しているのシナリオなのか」が分かるようになります。

私の前任者がGoogleスプレッドシートを用意していまして、01-001みたいな形で機能ごとにナンバリングしていました。それをベースに改良していってAutifyのシナリオのリンクを付けたり、機能ごとに「何をしているか」「何が今できないか」など簡単に記載して管理しています。Autifyではまだ実施できないもの――例えば、現状ですとデザイン部分などは、ここにメモを残しておいて、手動でテストするというかたちで運用しています。

最初は本番環境だけでテストをしていたのですが、最近はAutifyを使ってテスト環境でも全体テストができるように整えました。リリース前に最終的な全体確認をしたいという時に、対応するためです。シナリオ作成は基本的にはQAエンジニアが行うのですが、開発エンジニア側でも実行できるようなマニュアルを作成して、チーム全体で運用できるようにしています。

— 開発エンジニア側でも実行するんですね

川﨑さん: そうですね。最初はテスト用に「このファイルをアップロードする」といった少々手間の掛かる手順を用意していたんです。でもその場合、普段シナリオ作成をしていない人だとパッと見て分からないんですよね。そこで余計な時間が掛かってしまうなということに気付いたんです。

シナリオ全部を回したいときと、機能をかいつまんで実行したいときがあると思います。「全部回したいときはこちらのテストプラン」「一部を試したいときはこちらのテストプラン」というようにそれぞれ作っておいて、実施できるようにしています。

Autifyの機能を活用した細かい工夫で、運用をスムーズに

— 整備されていて素晴らしいですね。ちなみに今QAチームはどのような体制ですか?

川﨑さん: メンバーは、私含めて2名です。 (* インタビュー当時)

時武さん: 今後はQAチームの規模をもう少し大きくして、Autifyを活用したビジュアル・リグレッションテストなどにも取り組みたいと思っています。それ以外の全体的なQAの向上も含めて、まだまだやれることは多いです。

— ビジュアル・リグレッションの機能を準備中ですので、ぜひご期待いただければと思っています。

時武さん: 現状はUIの改修も多いので、大規模に改修した際は見た目が大きく変わるのですが、普段の細かい改修でビジュアルを保ちながら機能を改修できるようにしたいんですよね。表示崩れなどが起きていないか、都度デザイナーに確認をお願いしているのですが、その辺を自動化したいと思っています。そうすることで、ビジュアルを保ちつつリファクタリング(ソースコードの整理)など細かい改修を入れやすくなるのかなと。

— そのほか運用で工夫されているところはありますか?

川﨑さん: 本番環境とテスト環境で同じシナリオを使って実行できるように細かい工夫をしています。特定の環境情報――例えばURLを確認する場合は、URL全体の確認ではなくて「URLの中にこれが含まれていて、このページにいる」ということが確認できるように調整しています。Autifyに「〇〇が含まれていることを確認する」というアサーションの検証項目があるのでその機能を活用したものです。

そのほか、Autifyの「ステップグループ」機能を、ログインの権限管理に活用していまして、シナリオによって管理者権限とメンバー権限を使い分けています。

4〜5時間かかる全体確認が、並列実行で1時間にまで短縮

— 工夫して、とても綺麗に設計されていますね。Autify導入後は、それまでの課題に対して、どのような変化がありましたか?

時武さん: 導入前の課題感、特に「デグレが目立つ・気付けない」といったケースが、導入以前と比べると、かなり減った実感があります。毎週のように起きていたデグレが月1くらいまでに減ったので、確実に効果が出ているように思います。

川﨑さん: 今まで本番環境だけで実施していたものを、最近はテスト環境でも実施できるようにしたことで、リリース後のデグレ確認だけではなくて、リリース前のシステムテストが実施できているのが、エンジニアからも「安心感がある」と好評です。

Autifyは、コードが書けない人でもシナリオ作成ができ、QAエンジニアがシナリオを直接いじれるので、開発側とQA側で「伝言ゲーム」のようになりがちな確認のためのコミュニケーションコストが大幅に減りました。QA観点のあるQAエンジニアがシナリオの一部を修正したり、追加したりといった調整が簡単にできるからです。

エンジニアは開発に追われていて、テストのシナリオ作成に時間が取れないため、基本的にはQAエンジニアが管理しています。ですが、テスト環境でもAutifyのシナリオを実行できるようにしたことで、エンジニア側も興味を持ってAutifyに触れる機会が増えました。開発側でも、好きなタイミングに、ピンポイントでテストを実行しやすい体制が作れたように思います。

あと、これは導入前からの変化ではないのですが、最近Autifyの「並列実行」を採用しまして、シナリオ実行に4〜5時間かかっていたものが、1時間ほどに短縮できるようになりました。シナリオ実行は、日次と週次で行っていて、日次は13シナリオ、週次は20シナリオほど実行しています。全体的なリグレッションの確認となると、やはり量が多くなるため、実施時間を大幅に減らせる並列実行は、とても便利に使わせていただいています。

仕様段階でテストケースを作り込む、より洗練された体制づくりへ

— 今後の品質管理における展望などあれば教えてください。

川﨑さん: 『LegalForce』のWordファイルのレビュー機能など、まだ自動化できていない細かなテストがあるので構築していって、自動化の幅を広げていきたいと思います。

時武さん: 運用ルールの話になるのですが、先ほどお伝えしたビジュアル・リグレッション含めて、より洗練されたテストの構築を進めていきたいです。Autifyを、最後のチェックの手段としてだけに使うのではなく、シフトレフトの考え方にならって、新しいものを作るための仕様ができた段階で、テストケースを作り込めたらいいですね。「このシナリオがチェックできれば問題なし」というのを定めて、実装してテストを回していく体制作りができると、さらに運用が加速するのではないかと考えています。

— シナリオが早く作れるし、テスト観点で仕様の「バグ」も洗い出せる。

時武さん: はい、おっしゃるとおりです。開発エンジニアとQA観点もうまく融合させつつシナリオが作れると、さらに堅牢なテストができてくると思うので、改善を行っていきたいなと思っています。

「テスト自動化まで手が回らない」開発チームにとって、Autifyは“銀の弾”

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

時武さん: フロントエンドのE2Eテストは、コストが高い上に、効果が上がりづらい、見えづらい部分だと思います。実装するためのエンジニアが必要であるとか、プラットフォームの構築がかなり重労働だったということもあります。

大きな企業だと、いわゆるSET(Software Engineer in Test)と呼ばれるようなエンジニアを採用して大規模に進められると思うのですが、我々のような規模だとどうしても難しかった。E2Eテストを自動化していきたいけれども「テストケースの作成、運用、基盤周りの構築がどう考えても回らない」という開発チームが、いろんな会社に存在すると思います。そんな悩みに対して、Autifyはまさに「銀の弾」になるようなツール。「銀の弾などない」と思っていたんですけど、あったんだなと思いました(笑)。

うまく運用していくためには、チームに合ったルール作りが必須というのは今回LegalForceで運用してみて学んだことです。ただ、運用ルールが一度できてしまえば、大幅に生産性が向上できて、製品を品質向上できる体制づくりが実現できると思っています。

川﨑さん: 機能確認を網羅するためのシナリオ作成、初期工数はどうしても掛かってしまうのですが、やはりその後の運用は、好きなタイミングや好きな環境でテストを実施できます。QAエンジニアが少ない、開発エンジニアも忙しくて手が回らないといった企業で、Autifyを導入するのは、特に有効かなと思います。

あとは、シナリオ作成やテストの結果などで不明点があるときサポートに連絡すると、すぐに回答してくださるのがとてもありがたいです。相談しやすいサポート体制があるAutifyなら、導入時の不安も少なくて済むと思います。

— ツールだけではなくて、人のサポートも介して、皆さんがスムーズに自動化できるように努めていますので、サポートをご評価いただけるのは嬉しいです。ありがとうございます。最後にお知らせなどあれば、ぜひ。

時武さん: 弊社は今、QAチーム2名で回しているのですが、まだまだQA周りでやっていくことは多いと思っています。全体的な品質保証や、テストの自動化にご興味のある方は、ぜひ採用情報を参考にしていただければ嬉しいです。一緒に未来のQA組織を作り上げていきたいと思っていますので、よろしくお願いいたします。

導入事例

Autifyのデモをご希望ですか。
こちらのフォームよりご連絡ください。

デモを申し込む