テストデータを、AI に作らせる

テストを書くとき、いちばん手間がかかるのは「どんな入力を与えるか」を考える部分です。網羅しようとすれば数が膨らみ、絞れば見落としが出ます。

この研究では、敵対的生成ネットワーク (GAN) を使ってテストデータを自動生成しました。GAN は「本物らしいデータを作る側」と「本物と偽物を見分ける側」を競わせて学習する仕組みで、画像生成でよく知られています。これをテスト入力の生成に応用しました。

過去のテストデータを学習させると、それらしい入力を大量に作れます。人が思いつきにくい組み合わせも含まれるため、欠陥の検出につながります。

拡散モデルを用いる手法へと発展しており、生成 AI をソフトウェアテストに使う流れの出発点になった研究です。

元になった論文

Automated Software Test Data Generation With Generative Adversarial Networks

IEEE Access (2022)