SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

テンプレートから学ぶ 受注する開発者のためのテスト仕様書

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

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

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

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

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

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

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

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
3. 考慮点

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
テンプレートから学ぶ 受注する開発者のためのテスト仕様書連載記事一覧

もっと読む

この記事の著者

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4433 2009/10/19 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング