仕様駆動のテスト生成とは、LLM ベースのコーディングエージェントにテストを書かせるためのプロンプトの与え方である。テストを直接求めるのではなく、エージェントにはまず、コードの事前条件、事後条件、未定義動作について推論し、それを明示的に文書化するよう指示する。こうして得られた中間的な半形式仕様は、提案者たちが認知的な足場(cognitive scaffold)と呼ぶものとして、その後のテスト生成を導くために用いられる。この用語は AI エージェントを契約に根ざさせる:仕様駆動のテスト生成の実証評価 で提案されている。
用法
この手法が付け加えるのは一つの成果物である。すなわち、どのテストよりも先に作成され書き留められる、コードの契約の記述である。その動機は、直接的なプロンプトに起因するとされる失敗にある。テストを直接求められたエージェントは、コードとその根底にある契約について推論しそこない、その結果、テストの品質に関わるエッジケースや振る舞いの境界を見落とすことがある、というものである。
適用される場面
この手法は既存のコードに対するエージェント型のテスト生成のために提案され、その設定のもとで Google の本番環境のバグを用いて評価されている。従来のテスト生成エージェントに対して報告されている改善は、バグ検出率で 9.8 パーセントポイント、分岐網羅率で 2.5 パーセントポイントである。モデルによる判定での比較では、そのベースラインに対して 77.8% のケースで、人間が書いたテストに対して 56.7% のケースで、この手法のテストスイートが好まれたと報告されている。
ここでこの用語が指すものは限定的である。仕様はエージェントによって、すでに存在するコードについて書かれ、実装を駆動するためではなく、そこから生成されるテストに根拠を与えるために用いられる。提案論文の発表の場がこの手法を位置づけている、より広い実践については 仕様駆動開発 を参照。