Classi株式会社は、学習や学校を支援するプラットフォームを提供する企業。主軸となる学習支援プラットフォーム「Classi」は、生徒、先生、保護者をつなげて、学校現場を多角的に支援している。生徒の学習サイクルに合わせたサポートやAIによる個別学習、生徒一人一人のカルテを作成して日々の状況を把握する機能、クラスや保護者などのグループ機能などを提供する。2025年4月時点で、累計2,400校、210万人以上の生徒に利用されている。
こうしたプラットフォームを計100名ほどからなる10数チームで開発しており、QAチームはすべての機能の品質を約15名で担保している。1日に数回の頻度で新機能がリリースされるため、QAの負担は大きかった。そこで、リグレッションテストなどをAutifyで自動化し、誰でも円滑にテストを行える仕組みの構築に成功。さらに開発チームにもAutifyを利用してもらうことで、QAの工数を大幅に削減した。QAチームは上流工程からの参画やプロセスの改善活動にあてる工数の確保が可能になり、サービスの品質向上やリリースのスピードアップに繋がっている。現在は、Autify NoCodeからAutify Nexusへの移行を進めている。
今回は、Autify導入と運用を担当するプロダクト本部 プラットフォーム部 QAチーム Engineer Manager 定金 裕史様に話を聞いた。
― 本日はお時間をいただきありがとうございます。まずは自己紹介をお願いできますか?
定金さん Classi株式会社でQAチームのエンジニアマネージメントを担当している定金裕史と申します。ClassiでのQAチームの役割は、各開発チームが作る全ての機能を横串で見て品質を担保することです。弊社は10を超える開発チームがあり、各チームがそれぞれアジャイル・ウォーターフォールなどの開発プロセスを案件の性質に応じて選択しているので、QAチームはそれぞれすべてに適用できるようにしています。また、開発スタイルが途中で変わることもあるため、開発チームの上流工程から参画し、変更に対応できるような体制作りをしています。
―開発チームによって開発スタイルが異なるとのことですが、どのような基準で開発スタイルを決めているのでしょうか
定金さん 既存のサービスの改修や新機能リリース、緊急で改修を行う箇所など、スピード感を求められる案件に関しては、主にアジャイル開発で進められています。また、大きな新機能のリリースや慎重に進めていかなければいけないサービスもありますので、それについては大枠としてウォーターフォールで進めています。
―Autify製品としてはまず2021年にAutify NoCode Webを導入いただいていますが、当初導入した背景を教えていただけますか
定金さん 弊社のQAチームが立ち上がりの頃は、数名ほどで全機能のQAを実施していました。やがて開発チームのリリースのスピード感に合わなくなり、はじめはシンプルにQAメンバーの増員を行い約10名ぐらいに増やし対応を行いました。しかし、サービスの提供やリリースを行う際にはリグレッションテスト(回帰テスト)が多く発生しますが、その工数を非常に取られてしまい、増員したとしても開発のスピードにQAチームが追いついていかないシーンが多々発生していました。
新規で作られる機能に関しては、手動で検証したり、細かな確認を行ったりしなければなりませんが、簡易的なリグレッションテストに関してはすべて自動化したいという思いがあり、自動化のサービスを色々と模索して、2021年10月からAutify NoCode Webを導入しました。
―実際にAutify NoCodeを導入していただいて、どんな変化がありましたか
定金さん Autify NoCodeの導入初期は、QAチームだけでAutify NoCodeを利用してリグレッションテストを実行していました。その後、開発チームにAutify NoCodeを使ってもらえるよう開放したので、開発チームだけでAutify NoCodeでテストしてリリースすることができるようになりました。それまでは、QAチームに検証依頼をする流れでしたが、その工数と工程を短縮できたことがもっとも大きな変化です。
実際にテストするだけのメンバーを1人を雇った場合とAutify NoCodeを使った場合では、工数削減の部分で明確に生産性の違いが見えています。Autify NoCodeの導入にあたって、会社の決裁を仰ぐ際にも数値を提供しています。さらにQAチームが新たな取り組みができるというプラスアルファもありました。
―導入当時、開発チームはAutify NoCodeについて、どのように受け止めていましたか
定金さん 開発チームとしては、Autify NoCodeによって工程が1つ増えることを煩わしく感じていたと思います。自分も元々開発チームで仕事していたので、気持ちはよくわかります。その経験を活かして、開発側の負担にならないような準備や運用の方法を明確化しました。また、どこまで開発チームが許容できるかを検証するため、あるチームでトライアルをさせていただきました。トライアルでは、お互いに譲歩できる工程について擦り合わせを行い、シンプルに効率よくテストが進められる環境構築に取り組みました。課題点や改善点をすべてクリアしたのちに、全開発チームに対してAutify NoCodeを展開しました。
―開発チームとはすごく良い関係性ですね。普段から密にコミュニケーションを取っているのでしょうか
定金さん そうですね。開発チームとQAチームは普段から頻繁にコミュニケーションを取っているので、何か問題が発生した場合もコミュニケーションが取りやすい関係性です。開発チームにもAutify NoCode導入の意義をきちんと理解していただけて、とても協力的にアドバイスもくれるので、QAチームとしてはすごくやりやすい環境だと思っています。
―2025年7月2日にローンチしたAutify NexusをClassi様は先行してすでにお使いいただいていますが、利用したいと思われた理由をお聞かせください
定金さん Autify NoCodeに関してはランニングコストの部分がネックになっていました。シナリオは膨大な数になっているけれども、クレジット制限があるので、本来実行したい回数が利用できないという状況になっていました。
これはQAチームと開発チームではテストを実行したい頻度に違いがあるのが大きな要因でした。QAチームは定期実行と、案件に沿った実行があります。一方、開発チームに関しては、修正中の動作確認に何度もAutifyでテストしながら開発したいという要望があります。その結果、開発チームの実行頻度がすごく高くなり、想定よりもクレジットが消費されるチームもありました。
しかし、私は開発チームがそのようにAutifyを使うことは、正しい使い方だと考えています。そこで、Autifyの担当者に相談させていただいて、実行回数に制限がないAutify Nexusの利用を開始することにしました。
開発者に十分利用してもらうことで手戻りなどの手間が少なくなり、より高い品質も担保できます。そういう意味では、すべてQAチームが想定していた理想的な使い方になってきていると思います。
―Autify Nexusを導入してみて、何か変化はありましたか
定金さん やはり、実行回数の制限がなくなったところが大きいですね。今まではクレジットを意識して、1本のシナリオでできるだけ検証できるようなシナリオを作成していました。その制限がなくなったので、より深く品質の高い検証ができるようになりました。
―Autify Nexusへの移行にあたって、苦労した点はありますか
定金さん まだすべての機能を把握していない部分はあるのですが、スムーズに移行できたので、運用ルールを変えるなどの作業もありませんでした。
今までAutify NoCode では制限があって実装できなかった部分に関しては、一からAutify Nexusでシナリオを作りました。まずは定期実行の部分を完全にAutify Nexusに移行し、その後定期実行以外のシナリオを移行して行きました。
―Autify Nexusで気に入っている機能や実装してほしい機能があったら教えてください
定金さん 気に入っている点は、シナリオのフォルダ管理です。弊社はシナリオ数が1000を超えるのですが、Autufy NoCodeではすべてフラットなディレクトリに並ぶため、どこに何があるのかを探すのが大変でした。Autify Nexusではフォルダ分けができるので、今はダッシュボードがとてもきれいな状態に保たれています。
―Classi様はAutifyを活用するメリットをどのように捉えていますか
開発チーム、QAチームどちらのニーズにも対応できることがメリットと考えています。コードが書ける開発者の目線では、動的にデータが変化する部分などに対応できるようなテストコードを書きたいと思うのですが、ClassiのQAチームにはコーディングが出来るメンバーが少ないので、100%コードになってしまうと自動テストの運用が難しくなってしまいます。Autifyは誰でも自動テストを書けるだけでなく、JavaScriptステップなどで柔軟で動的なテストも記述できるので、全員にとって良い選択肢になっていると思います。
―Autifyのシナリオ作りで工夫されている点はありますか
定金さん ClassiのQAチームは、今まで発生した不具合をすべてデータ化し、見える化しています。不具合が起きやすい機能についても把握しているので、まずはその不具合が起きやすい機能から、重点的にシナリオを作り上げて進めるようにしています。
―Autifyの導入がQAチームの工数削減に繋がったとのお話でしたが、工数が削減されたことでQAメンバーの役割はどう変わりましたか
定金さん QAチームがより上流工程から関われるようになりました。開発チームが今から作ろうとしている要件定義の内容をQAチームが把握して、開発チームが作るよりも前にシナリオを作ることができています。検証のタイミングが来たときにはある程度シナリオが組めており、数時間後にはテストを回せます。
また、QAチームはすべての機能を把握しているので、改修箇所の影響範囲についても早い段階からQA目線でのアドバイスをしています。特に開発チームがアジャイルで進んでいく場合、仕様書が作られないまま開発が進んでいくため、QAチームに仕様を聞かれるときもあります。また、検証に使うデータをQAチームが渡してテストに利用してもらうこともあります。
他にも、手動で細かく検証しなければならない案件に集中的に工数をかけたり、円滑にリリースへ進めるような取り組みを行う時間を確保でき、QAチームがメインとする作業が”高品質なサービスのリリース”にシフトしたと感じています。
―今後、Autifyをどのように活用していくご予定でしょうか
定金さん Autify NexusもAutify NoCodeと同じように、QAチームと開発チーム全体に開放して、全員に利用できるような環境にしようと思っています。
さらに、今までQAチームだけでシナリオを全て運用、管理、メンテナンス等を行っていたのですが、開発チームがシナリオを自由に作れる環境を提供する予定です。
その理由としては、Autify NoCodeはサーバーで全て共有されてしまうので、開発者が手元で試しに作ったような不要なシナリオが存在してしまう状態が発生します。しかし、Autify Nexusに関してはローカルでも利用が可能なので、クラウドにはチームで共有するシナリオ、ローカルに関しては自分だけが利用する一時的なシナリオというように、領域でシナリオを分けることができるからです。
個人的に試した後で共有フォルダーでQAチームに公開してもらえれば、QAチームが考えられないシナリオやイメージの部分も開発チームによって追加されると思います。それは会社にとっても大きなプラスになります。QAチームだけではなくて、開発チームが気軽に作れる場を提供するための、環境づくりや運用方法を今後も検討していきます。
Autifyへの要望としては、トップページにチームからのお知らせを表示できる機能が欲しいと思っています。QAチームから開発チーム全体に操作手順書や注意事項を共有したい場合、現在はAutifyと別のツールを使う必要性があります。しかし、Autifyを立ち上げた時に必ずメンバー全員の目に触れるスペースがあれば、Autifyだけで情報共有が可能になります。今後、QAチームと開発チームを繋ぐハブになるような立ち位置のサービスになってもらえることを期待しています。
―本日はありがとうございました!