LLMの活用でより抽象度の高いテスト工程を効率化
ソフトウェアテストは要件分析、テスト計画の作成、テストケースの開発、テスト環境の作成、テストの実行、テストサイクルの完結という6つの工程でライフサイクルを回していく。従来のAIがカバーしてきたのはテスト環境の作成やテストの実行、およびテストサイクルの完結の一部だった。しかし大規模言語モデル(LLM)の登場により、AIがカバーする領域が拡大する可能性があるという。LLMは言語の理解力が高いので、抽象度の高い作業ができる。要件分析やテスト計画の作成、テストケースの開発という上流工程は、抽象度が高い。つまり、ここにLLMが使える可能性があるのだ。
「個人的に、GitHub CopilotやChatGPTでのユニットテストコードやE2Eコードの生成、テストのパターン出しなどに使っている人もいるのではないでしょうか」(松浦氏)
このようにテスト自動化の枠外でLLMをサポート役として使う例は増えている。だがLLMにはハルシネーションや生成物への責任、品質管理の問題がある。「最終的に人間がレビューする必要があるので、人間にはより高いスキルが求められるようになるジレンマがあります」と松浦氏は言う。
このジレンマを解決する方法の一つとして、ユーザーが直接LLMを使うのではなく、LLMを意識させないような仕組みを作り、LLMを製品に組み込んでしまう方法がある。そうすれば人間はLLMの出力をレビューすることなく、その恩恵にのみ預かることが可能だ。 その具体例として、Autifyが昨年提供した「Step Suggestions」という機能がある。これは画面の内容をもとに何をテストすべきかを教えてくれる機能だ。そのほか、「Scenario Summarizer」という非常にステップ数の長いテストの情報を要約して表示してくれる機能の提供も開始。Step Suggestions、Scenario Summarizerのいずれの機能もLLMを活用している。
E2Eテストはまだまだ自動化・省力化の余地は大きい。オーティファイでは、従来型の独自AIモデルとLLMを積極的に活用し、人間ができるだけテストをしなくてもよい世界の実現を目指していく。