クラス間関係を利用した単体テストおよび静的検査の網羅率可視化ツールの試作と評価
卒業論文, 大阪大学
概要: ソフトウェアの品質のひとつの尺度として仕様と実装の一致性を
測る方法があり,それを調べる手段として単体テストや静的検査な
どがある.単体テストとは対象モジュールに対して設計された仕様
を満たすかどうかを確認するテストである.実際にはテスト仕様書
に基づいてテストデータとなるテストケースを作成し,テストラン
と呼ばれるプログラムを実行することでテストが行われることが多
い.この手法の問題点として,テスト仕様書で想定するケースに漏
れがある場合はその箇所のテストが行われないため,テスト結果の
品質がテストケースに依存することが挙げられる.一方,プログラ
ムを実行せずにソースコードを検査することを一般に静的検査とい
う.静的検査を行うツールの一つとしてESC/Java2 がある.これは
,メソッドが満たすべき性質を仕様としてJML(Java Modelling
Language) を用いて記述されたソースコードに対して,ソースコー
ドが仕様と矛盾しないか否かを判定するツールである.このツール
を用いた静的検査の問題点として,検査の品質が記述した仕様の質
に依存するということや,結果がクラス単位であり,かつテキスト
で出力されるため,クラス間の呼び出し関係が読み取りにくく,結
果が分かりづらいということが挙げられる.
本稿で行ったことは以下の通りである.単体テストおよび静的検
査の結果とクラスにおけるメソッド呼び出し情報を用いてこれらの
情報を総合的に視覚化することにより,より精緻なソフトウェア品
質の情報提供を可能にすることを目標に,重み付き有向グラフを表
示するツールをEclipse のプラグインとして試作をした.このツー
ルをJMLによる仕様が記述された在庫管理プログラムに対して適用
し,評価を行った.仕様と実装が一致しているかを確認するためク
ラスの呼び出し関係とUML (Unied Modeling Language) との比較
を行い,前述の問題点を解決するため単体テストの結果と静的検査
の結果の比較を行った.結果として,対象ソフトウェアのソースコ
ードにおいて不要な記述を発見でき,テスト品質および対象ソフト
ウェアの品質を推定することができた.
タグ: static, checking, class, coverage, jml, java, masu, metrics, visualization, esc/java2, unit, test, caller-callee, relationship, eclipse
@mastersthesis{武藤祐子2010,
author = {武藤 祐子},
title = {クラス間関係を利用した単体テストおよび静的検査の網羅率可視化ツールの試作と評価},
school = {大阪大学},
type = {Bachelor's Thesis},
year = {2010},
month = {feb}
}