Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

単体テスト計画書(3)
― ホワイトボックステスト(2)、網羅率

開発者のためのテスト仕様書テンプレート(4)

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/10/19 14:00

 本連載では、具体的なテスト仕様書のサンプルを通して、さまざまなテスト技法を紹介し、開発のストレスとなりがちなテストをやさしく紐解いていきます。今回から単体テストの詳細に入ります。今回は前回に引き続きホワイトボックステストに関するもので、網羅率について取り上げます。

目次

1. ホワイトボックステスト、その2

 今回のテーマは前回に引き続き、ホワイトボックステストです。今回のメインテーマは網羅率です。網羅率はホワイトボックステストをどの程度実施したかを見る指標です。

 網羅率に進む前に前回の途中から引き続いてお話をします。前回は「2.2.2. 条件」が終わっていました。今回は「2.2.3. 反復」からです。

1.1. 反復

テンプレート1: 「2.2.3. 反復」
テンプレート1: 「2.2.3. 反復」

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

図1:反復
図1:反復

 2つの「反復」の中身は図2と図3に示した「for文」です。

図2:最初の「反復」
for (int i = 0; i < args.length; i++) {
    earray[i] = args[i];
}; // rof
図3:次の「反復」
for (int i = 0; i < earray.length; i++){
    earray[i] = "empty";
}; // rof

1.2. 反復の「内(インテリア)」と「外(エクステリア)」

 図1の左側(図2のコード部分)の反復を取り出して詳しく見てみましょう。図4のように「内」と「外」があることが分かります。この「内」のことを「インテリア」、「外」ことを「エクステリア」とも言います。

図4:「反復」の「内」と「外」
図4:「反復」の「内」と「外」

2. 網羅率

テンプレート2: 「2.3. 網羅率」
テンプレート2: 「2.3. 網羅率」

 ステートメントとセグメントは前回解説しました。また、ループは先述のとおり反復のことでしたね。

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

 つまり、網羅率はプログラムの制御構成要素3つに対応した観点でテストしたことを表しているのです。

2.1. C0網羅率

 

テンプレート3: 「C0網羅率」
テンプレート3: 「C0網羅率」

 

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

2.2. C1網羅率

テンプレート4: 「C1網羅率」
テンプレート4: 「C1網羅率」

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

2.3. C2網羅率

テンプレート5: 「C2網羅率」
テンプレート5: 「C2網羅率」

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

 サンプルを用いた網羅率の計算例は、この連載の後で出てくる「ブラックボックステスト」までお待ちください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 山村 吉信(ヤマムラ ヨシノブ)

    同志社大学大学院・電気工学専攻修了(工学修士)。プリンストン大学大学院・計算機科学科修了(MSE)。 1978年、日本アイ・ビー・エム(IBM)入社。システムズ・エンジニア(SE)として、性能評価モデルの営業支援に従事。 1983年、IBMサイエンス・インスティチュート(現東京基礎研究所)にて研...

バックナンバー

連載:テンプレートから学ぶ 受注する開発者のためのテスト仕様書
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5