【要約】AIにテストを書かせると、決まって同じ場所が抜ける [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者がAIにテスト生成を依頼する際、AIが実装の欠陥を正解として学習してしまう問題に直面している。AIが生成する期待値(オラクル)が、バグを含む実装の動作をそのまま写してしまうためである。
- ・LLM Oracle問題:実装の欠陥を正解として固定し、検証が成立しなくなる。
- ・独立性の欠如:同一プロバイダのAI同士では、認知バイアスが共通するためレビューが機能しない。
- ・網羅性の偏り:AIは要件に忠実すぎて、明示されていない境界値や異常系を見落とす。
// Approach
著者は、AIに「妥当性の判断」をさせるのではなく、規格に基づいた「項目の数え上げ」を行わせる手法を採用した。主観的な判断を排除し、規格が定義する項目が揃っているかを機械的に照合するためである。
- ・技法別エージェント:ISTQBのブラックボックス技法に基づき、役割を分担させる。
- ・構造的独立性の確保:権限をRead-onlyに制限し、親のコンテキストを引き継がない。
- ・数え上げへの特化:判断を禁止し、規格の項目が揃っているかを数えることに専念させる。
// Result
AIが生成した78件のテストケースを監査した結果、規格に基づく網羅率が63.12%に留まることが判明した。AIは整ったテストを書くが、特定のパターンにおいて構造的な欠落を繰り返すことが明らかになった。
- ・欠落の型:validは書くがinvalidが抜け、上限は見るが下限を見落とす。
- ・複合条件の欠如:単一条件の変更に終始し、複数の条件が絡むケースが検証されない。
- ・状態遷移の不一致:自作した遷移表と、実際のテストケースの内容が矛盾する場合がある。
Senior Engineer Insight
> AIを「テスター」としてではなく、「規格の項目を揃える作業員」として扱うべきだ。判断を投げればバイアスに飲み込まれる。監査側も「全数調査」ではなく「系統的サンプリング」である等の限界を明示し、人間が最終判断を下す「ハイブリッドな監査体制」の構築が、実戦における現実的な解である。