ソースコードの類似性に基づいたテストコード自動推薦ツールSuiteRec

倉地 亮介


ソフトウェアの品質確保の要と言えるソフトウェアテストを支援することは,重要である.これまでにテスト工程を支援するために,様々な自動生成技術が提案されてきた.しかし,既存技術によって自動生成されたテストコードは,テスト対象コードの作成経緯や意図に基づいて生成されていないので,開発者の保守作業を困難にさせる.この課題の解決方法として,既存テストの再利用が有効であると考えられる.本研究では,オープンソースソフトウェアに存在する品質が高いテストコードを推薦するツールSuiteRecを提案する.推薦手法のアイディアは,類似するソースコード間でテストコードを再利用することである.開発者からの入力コード片に対して類似コード片を検出し,その類似コード片に対するテストスイートを推薦する.さらに,テストコードの良くない実装を表す指標であるテストスメルを開発者に提示し,より品質の高いテストスイートを推薦できるように推薦順位を並び替える.SuiteRecの有用性を評価した被験者実験では,SuiteRecを使用した場合とそうでない場合で,テスト作成をどの程度支援できるかを定量的および定性的に評価した.その結果,SuiteRecを利用した場合,(1) 条件分岐が多いプログラムのテストコードを作成する際にコードカバレッジの向上に効果的であること,(2) 作成したテストコードはテストスメルの数が少なく品質が高いこと,(3) 開発者はテストコード作成作業を容易だと認識し,自身で作成したテストコードに自信が持てることが分かった.また,SuiteRecは開発者が参考にしたいテストスイートを上位に推薦できることを確認した.