トップエスイー: サイエンスによる知的ものづくり教育プログラム
文部科学省科学技術振興調整費 産学融合先端ソフトウェア技術者養成拠点の形成 トップエスイー
~サイエンスによる知的ものづくり教育プログラム~
トップエスイー ソフトウェア開発実践演習
トップエスイー サイエンスによる知的ものづくり教育プログラム
動的解析の網羅率向上を目的とした DB アクセス に関わるテストケースの補強
株式会社富士通研究所 倉田涼史
分析対象とその性質
開発における問題点 手法・ツールの適用による解決
テストケースを用いた動的解析は,静的解析でが難し い,
DBアクセスを含む
Webアプリケーションの機能間の 影響調査に用いられることがある.しかしながら,テスト ケースが機能の振る舞い
(DBアクセス
)を網羅しているこ とは少なく,機能が持つ
DBアクセスを見逃し,動的解析 による影響調査に誤りが発生してしまう問題がある.
Web
アプリケーションの多くが
DAOを用いた構成であること やその構成では
DBアクセスは必ず
DAOを介すことに着目 した.既存のテストケースを実行し,画面と関わりのある
DAOとそれらが変化する条件を特定する.その条件のうち 実行されていない条件をテストケースの補強によりに実行 することで,見逃していた
DBアクセスを網羅する.本演習 では,本手法を実際のシステムに適用して,テストケース の増強が可能であることを確認した.
手法の流れ
DAO
クライアント側 サーバ側
HTTP
DB
DAO DAO以外
〇
× DB
DAO を介さずに DB アクセス
が行われることはない 入力は特定のオブジェクトに mapping される
画面 入力(QueryString等)
object
呼び出し
・・・
画面
DAOの特定(動的解析)
テストケースの実行
入力
(QueryString)object
呼び出し
・・・
DAO 群
DB
DAO
の一つ
特定
DAO
を選択するメソッド
・・・
・・・
if( 条件式 1){
サブクエリを追加する
DAOのメソッド}
・・・
if( 条件式 2){
別テーブルにアクセス する
DAOのメソッド}
特定 特定
実行されるDAOが変わる 条件式の特定(静的解析)
object
呼び出し
・・・
DAO 群
DAO の一つ
・条件式
1・条件式
2QueryString(
画面入力
)が
mappingされているデータ依存関係 の逆向きに辿る