ソフトウェア工学 ホワイトボックステスト2

前回

issunno-koin.hateblo.jp

構造化テスト(structured testing)

制御フローグラフのトポロジ分析に基づくテストケースの選択手法。トポロジは、モノのつながりをモデル化する数学の分野。比較的小さい部品の単体テストに向く。

①制御フローグラフの作成
② グラフのサイクロマチック数(C)を計算する

C=リンク数-ノード数+2
– グラフの形の複雑さを表現するメトリクス
– McCabe尺度(測度)とも呼ばれる

グラフ内の条件分岐がすべて二値判定(出力
リンクが過不足なく2個)の場合
C=p+1 でも可

③C個の基礎パスの組を選ぶ

ループを含まず制御フローグラフを通過するパス
④ 各基礎パスに対応したテストケースを作る

⓹テストケースに従ってテストを実行する

 

※適用範囲と制約
・コード量が多くなると非現実的

・テスト実施者にプログラミング技術を要求

・時間的なコストが大きくなりがち
・ コードに書かれていないことはテストできない

データフローテスト

制御フローテストの拡張したもの。 制御フローに沿って変数ライフサイクルをテストする。 静的検証と動的検証と両方可能。

 

定義→使用→消滅

これが制御フローの中で正しく出現するかをテストする。

 

定義・使用・消滅をどの要素に対応付けるかはプログラミング言語の仕様に依存
– 定義
• 変数宣言(初期化されない場合は除外)・明示的な生成(new)
• 代入(式の左辺として登場)
• 仮引数宣言(=呼び出し時に実引数による初期化)
– 使用
• 右辺値として参照
• 実引数,返値としての参照
– 消滅
• 明示的な消去(delete)
• 有効スコープ(ブロック・関数)からの抜け出し