【要約】AIに仕様書ではなくテストだけ渡したら、隠しテストまで全部通った。なのにテストでは固定できなかった既定値は5回とも40にならなかった [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がAIにコードを生成させる際、仕様書作成の手間を省くためにテストコードのみを渡す手法の有効性が問われている。検証者は、テストのみの指示がコードの品質やコストに与える影響を調査した。
- ・テストに記述のない既定値などの仕様が制御不能になる。
- ・テストの範囲外の挙動を「成功」として見逃すリスクがある。
- ・AIが仕様を推論するために思考コストが増大し、料金と時間が跳ね上がる。
// Approach
検証者は、文字列折り返しプログラムを題材に、指示内容を3パターンに分けてClaude Codeによる生成実験を行った。
- ・条件A:文章による仕様のみを指定。
- ・条件B:仕様書にテストコードを付加。
- ・条件C:テストコードのみを指定。
- ・検証方法:隠しテストによる汎用性の確認、既定値の測定、実行コストの計測を実施した。
// Result
検証の結果、テストのみの指示は、隠しテストを通過する汎用性を持つものの、仕様の制御には失敗した。
- ・既定値の再現:条件A・Bは100%成功したが、条件Cは0%であった。
- ・コスト面:条件Cは条件A・Bと比較して、所要時間・料金・トークン量のすべてで大幅に高騰した。
- ・結論:テストは検証には有効だが、仕様伝達には不完全であり、コスト面でも不利である。
Senior Engineer Insight
> AIへの指示において、テストは「検証」の道具であり「仕様」の代替にはなり得ない。テストのみの指示は、AIに過度な推論を強いてコストを増大させる。実戦では、境界条件や既定値を明文化した仕様書を主軸とし、テストはそれを補完する形で併用すべきである。テストが「緑」を示すからといって、仕様が満たされていると誤認してはならない。