研究実績の概要 |
テストマイニングフレームワークの開発に向けてのタスクを次のように実施した. まず, マイニングフレームワーク開発のために, (1)公開リポジトリSIR(Software Infrastructure Repository)の3つのCプログラムのプロジェクトFlex, Grep, Makeを対象に, 必要なテストコード, テストモデル(パラメータ, 値, 制約条件式), バグ履歴, テスト結果を半自動で抽出できるところまで実施した. (2)また, 公開のパッケージ管理システムMacPortsに対しては, その設定ファイルから構成テスト用のテストモデルとペアワイズテストを全自動生成するプログラムと, テスト実行環境を開発した. 次に, マイニングフレームワークを用いたテストの品質向上へ向けた設計・評価に関しては, まず, (3)(1)で抽出した情報を用いて, 前年度に開発したテストとバグ履歴を入力としたベイズ推定に基づいてテストモデルのパラメータと値に対して優先度を表す重みを自動的に計算する基本アルゴリズムを更に発展させ, テストとバグの履歴に加えてプログラムのコードカバレッジ情報も追加してテストの優先度付けができるプログラムを開発し, 提案法の評価実験を進めた. テスト結果をデバッグとテスト最適化ヘフィードバックさせるために(4)テストの結果から回帰分析と機械学習の手法に基づいて不具合組み合わせを特定するアルゴリズムを発展させ, 必要な探索空間を大幅に削減しながら効率よく不具合特定を可能にしたアルゴリズムの開発と評価を行った. また, 開発したアルゴリズムをパラメータの重み付け, 及び, テストの品質向上のために活用し, 評価する手法の提案を行った. まず, パラメータの重み付け手法開発では, マイニングフレームワークによって抽出したパラメータに対して, 品質予測モデルを用いてテスト品質に影響する度合いに基づく重要度分析を行い, 重み付けする手法の開発を進めた.
|