atama plus techblog
🦔

リリーステストの最適化~教科のハコで進めるテスト効率化

2024/09/27に公開

こんにちは!atama plusでQAをやっている池上です。
ソフトウェア開発においては、QCD(品質・コスト・納期)のバランスを整えながら、ユーザーに良いプロダクトを提供することが重要です。
本記事では、教材という特性を踏まえたテストケースの効率化について紹介します。

はじめに

atama plusでは、学生向けのAIを用いた学習システムを開発しており、複数の開発チームがそれぞれ同一プロダクトの異なる部分を担当しています。
リリース前には各チームのプログラムを統合し、網羅的なリグレッションテストである「リリーステスト」を実施しています。
QAチームは、生徒の学習体験を網羅することを最優先に考え、全教科に対してリリーステストを行っていました。
そのため、各教科に対応した多くのテストケースが作成され、リリーステストは大規模なプロジェクトとなっていました。

テストケース増加に伴うリスク

2022年末の時点で、2023年から2024年にかけて多くの教科がリリースされる予定になっていました。
教科や機能の追加に比例してテストケースが増加することが見込まれ、このままではリリーステストが期限内に完了しないリスクや、テストケースのメンテナンスコストの増加が懸念されていました。
QAチームは、多くの教科のリリースを前に、既存のテストケース数を削減しつつ、教科に比例してテストケースが増えない仕組みを構築する必要がありました。

新たな概念の導入でテスト効率化

現状を確認したところ、同じテスト観点をすべての教科で実施していることがわかりました。
そこで、すべての教科を一律同じ観点でテストするのではなく、教科の特性に基づいてテストケースを整理できるのではないかという議論が始まりました。
教科の特性として、問題が出題されるロジックやナレッジグラフのつながりなどを確認し、システム的にまとめてテストしても問題ない教科を整理しました。
1教科ごとに、出題される問題形式やナレッジグラフのつながりを調査し、ときにはエンジニアにも内部的な構造をヒアリングしながら進めていきました。
この時点でもリリースされている教科は多岐に渡ることから、1つずつ整理していくのは大変な作業でしたが、QAチームで手分けしながら進めていきました。
結果として、例えば、算数、中学数学、高校数学はシステム的には1つにまとめても問題ないことがわかり、1教科のみでテスト実施すれば十分だろうと判断しました。
このアイデアに基づき、類似する教科群を「教科のハコ」と命名し、共通の特性を持つ教科をまとめ、1教科だけをテストする方針としました。
具体的には、算数、中学数学、高校数学、そして中学理科や高校生物、物理、化学といった理系教科を「理系のハコ」にまとめました。
同様に「文系(英語)のハコ」や「文系(縦書き)のハコ」などの分類も行いました。
以下は簡単なイメージ図になります。

これにより、テストケースを効率的に整理し、全体のテストケース数を削減できました。

施策の結果

このアプローチによって、リリーステストのテストケースの数を約7,500件から約5,000件に削減することに成功し、全体で約33%のテストケースを削減しました。
なお、テストケースを減らしたことによって不具合が多発することはなく、リリース品質も維持されました。
既存のテストケースを削減するとともに、今後リリースされる教科についても「教科のハコ」の概念を適用することで、テストケースの増加を抑制できています。

今後の展開

「教科のハコ」という概念を導入したことで、品質を落とすことなく、効率的にテストを行えるようになりました。
また、弊社QAチームではテスト自動化にも力を入れています。
詳細については別記事でご紹介していますが、手動テストと自動テストを組み合わせ、QCDのバランスを保ちながら、テスト戦略を進化させています。
現在は1週間に1度のリリースサイクルですが、将来的にはチームごとに任意のタイミングでリリースできるようにするため、さらなる改善に挑戦しています。

終わりに

本記事では、教材の特性を踏まえたテストケースの効率化について紹介しました。
QAチームは、今後も「いいものをタイムリーに安定的にユーザーに届ける」という目標に向けて、継続的に改善を行っていきます!
最後に、atama plusでは多くの職種で一緒に働く仲間を募集中です!
カジュアル面談も行っていますので、ぜひお話しましょう!
https://herp.careers/v1/atamaplus

atama plus techblog
atama plus techblog

Discussion