ダウンロード サンプルファイル (145.4 KB)
本連載では、具体的なテスト仕様書のサンプルを通して、さまざまなテスト技法を紹介し、開発のストレスとなりがちなテストをやさしく紐解いていきます。今回から単体テストの詳細に入ります。今回は前回に引き続きホワイトボックステストに関するもので、網羅率について取り上げます。
1. ホワイトボックステスト、その2
今回のテーマは前回に引き続き、ホワイトボックステストです。今回のメインテーマは網羅率です。網羅率はホワイトボックステストをどの程度実施したかを見る指標です。
網羅率に進む前に前回の途中から引き続いてお話をします。前回は「2.2.2. 条件」が終わっていました。今回は「2.2.3. 反復」からです。
1.1. 反復

反復は「繰り返し」や「ループ」とも言います。前回のサンプルプログラムで反復がどこにあるかを見てみましょう。図1に反復を示しました。図から分かる通り、このサンプルプログラムには2つの反復があります。

2つの「反復」の中身は図2と図3に示した「for文」です。
for (int i = 0; i < args.length; i++) {
earray[i] = args[i];
}; // rof
for (int i = 0; i < earray.length; i++){
earray[i] = "empty";
}; // rof
1.2. 反復の「内(インテリア)」と「外(エクステリア)」
図1の左側(図2のコード部分)の反復を取り出して詳しく見てみましょう。図4のように「内」と「外」があることが分かります。この「内」のことを「インテリア」、「外」ことを「エクステリア」とも言います。

2. 網羅率

ステートメントとセグメントは前回解説しました。また、ループは先述のとおり反復のことでしたね。
1つのプログラムは「ステートメント」の集まりとも、「セグメント」の集まりとも、「ループ」の集まりとも言えます(余談ですが、これは実はダイクストラ先生の構造化プログラミングに出てくる3つの制御構成要素に対応しています。興味のある方はいつか構造化プログラミングを紐解いてみてください)。
つまり、網羅率はプログラムの制御構成要素3つに対応した観点でテストしたことを表しているのです。
2.1. C0網羅率

C0網羅率は、「プログラムをステートメントの集まりと見た時、テストによってどの程度網羅されているのか」を見る尺度です。
2.2. C1網羅率

C1網羅率は、「プログラムをセグメントの集まりと見た時、テストによってどの程度網羅されているのか」を見る尺度です。
2.3. C2網羅率

C2網羅率は、「プログラムをループの集まりと見た時、テストによってどの程度網羅されているのか」を見る尺度です。
サンプルを用いた網羅率の計算例は、この連載の後で出てくる「ブラックボックステスト」までお待ちください。
この記事は参考になりましたか?
- テンプレートから学ぶ 受注する開発者のためのテスト仕様書連載記事一覧
- この記事の著者
-
山村 吉信(ヤマムラ ヨシノブ)
同志社大学大学院・電気工学専攻修了(工学修士)。プリンストン大学大学院・計算機科学科修了(MSE)。1978年、日本アイ・ビー・エム(IBM)入社。システムズ・エンジニア(SE)として、性能評価モデルの営業支援に従事。1983年、IBMサイエンス・インスティチュート(現東京基礎研究所)にて研究員とし...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
