ソフトウェア工学-ホワイトボックステスト
ホワイトボックステスト
テスト対象ソフトウェアの内部パス,構造,実装に関する知識を前提としたテスト
=プログラムが読めないとテストできない
適用範囲
– 単体テスト,統合テスト,システムテストの3レベルに適用
可能(受け入れテストには向かない)
制御フローテスト(control flow testing)
プログラムコード内の実行パス(path)の識別をする。パスを網羅するテストケースを作成し、テストの実行・出力結果の分析を行う。
制御フローグラフ(control flow graph)
フローチャートをもう少し抽象化したもの。丸と矢印のみが用いられる。
■構成要素
– 処理ブロック
• 逐次的な処理系列
• 途中からブロックに出入りできない
– 判定ポイント
• if-then-else, switch-caseに対応
– 合流ポイント
• 複数の制御フローが合流する点
カバレッジ
– レベル0からレベル7まで
・レベル1 テスト対象であるプログラム(モジュール)の中の文が少なくとも1回実行される=制御フローの丸の部分をすべて通る。
・レベル2 分岐カバレッジともいう。すべての分岐条件判定に対し,true/false(case)が少なくとも1回ずつ評価されるように実行=制御フローの矢印をすべて通る。
・レベル3 条件(コンディション)カバレッジともいう。すべての条件が少なくとも1回ずつtrue/falseに評価されるよう実行。 条件節中に複合条件がある場合、各条件が少なくとも1回ずつtrue/falseになるようにする。
・レベル4 分岐/条件カバレッジともいう。 分岐の各出口を少なくとも1回ずつ通過し,かつ分岐内の各条件が少なくとも1回ずつtrue/falseと評価されるように実行
・レベル5 複合条件カバレッジともいう。 複合条件がどのように評価されるかを加味して実行。 制御フローグラフをコンパイラの評価方法を加味して再構成し,分岐/条件カバレッジを達成するテスト入力を選択。
・レベル6 パスカバレッジ(制限付き)と考えられる。 繰り返しの存在がテストケースの作成が不可能になってしまう。→ 厳密なレベル7から繰り返し回数を制限する。最小回数(と繰り返しなし)、典型的な繰り返し回数、最大回数(とその前後)など
・レベル7 パスカバレッジともいう。 制御フローグラフ内のすべての経路(パス;path)を通過するように実行。 各判定ポイントでのtrue/falseの全組み合わせを実現するテスト入力を選択。ループがある場合は、組み合わせが無数になってしまうため、100%のカバレッジを達成することは不可能。
カバレッジ率
制御フローグラフ中でテストしたいカバレッジレベルをどの程度達成したかを表す。
例• C0カバレッジ50% などと表す。
開発前に、どの程度のカバレッジ率を目指すのか決める。