方針
保有技術
科学的知識に基づき,独自の知見を活用して,実社会で役に立つ技術を創出します.
ミューテーション解析
ミューテーション解析とは,テストケースの欠陥検出能力を測定する手法である.
- 開発者は「テスト対象プログラム」と「テストケース」を実装する.課題は「テストケースが対象プログラムの欠陥を検出できるか?」である.
- 本手法は,対象プログラムに「開発者が実際に作り得る欠陥」を人工的に挿入し,欠陥プログラム(ミュータント)を生成する.テストケースが対象プログラムの欠陥を検出できるならば,この人工的な欠陥を検出できるはずである.
- そこで,テストケースをミュータント上で実行し,「テストが失敗する」(つまり,欠陥を検出できた)ことを確認する.
- テスト実行の結果から「ミューテーションスコア」を算出できる.開発者はこれを元に,テストケースの欠陥検出能力を定量的に評価できる.
- さらに開発者は,未検出な欠陥を検出できるようにテストケースを改良をすることで,その欠陥検出能力を向上できる.
開発者は「テスト対象プログラム」と「テストケース」を実装する.課題は,“テストケースが対象プログラムの欠陥を検出できるか?”である.
ミューテーション解析はまず,対象プログラムに「開発者が実際に作り得る欠陥」を人工的に挿入し,欠陥プログラム(ミュータント)を生成する.テストケースが対象プログラムの欠陥を検出できるならば,この人工的な欠陥を検出できるはずである.
そこで,テストケースをミュータント上で実行し,「テストが失敗する」(つまり,欠陥を検出できた)ことを確認する.
テスト実行の結果から「ミューテーションスコア」を算出できる.開発者はこれを元に,テストケースの欠陥検出能力を定量的に評価できる.
さらに開発者は,未検出な欠陥を検出できるようにテストケースを改良をすることで,その欠陥検出能力を向上できる.
生成・検証プログラム修正
自動プログラム修正とは,欠陥プログラムにおいて少なくとも1つのテストケースが失敗した際に,全テストケースをパスさせるプログラムパッチを自動生成する手法である.
- テストが失敗した際、開発者は欠陥の除去に多大な労力を要する.課題は「欠陥を自動除去できるか?」である.
- 本手法は,欠陥プログラムを変異させることでパッチ(修正候補)を生成する.パッチ生成の課題は,欠陥位置を推定と適切なプログラム変異である.
- 本手法はさらに,修正候補上でテスト実行し,全てのテストケースをパス(欠陥プログラムを正しく修正)するか確認する.パッチ検証の課題は,効率的な修正空間探索とパッチの過剰適合回避である.
テストが失敗した際、開発者は欠陥の除去に多大な労力を要する.課題は「欠陥を自動除去できるか?」である.
自動プログラム修正は,欠陥プログラムを変異させることでパッチ(修正候補)を生成する.パッチ生成の課題は,修正箇所を推定と適切なプログラム変異である.
自動プログラム修正はさらに,修正候補上でテスト実行し,全てのテストケースをパス(欠陥プログラムを正しく修正)するか確認する.パッチ検証の課題は,効率的な修正空間探索とパッチの過剰適合回避である.