連載
猫でも使えるソフトウェアのテスト網羅(2):パス網羅の種類と内包する問題点:山浦恒央の“くみこみ”な話(85)(2/4 ページ)
趣味ならとにかく、ビジネスとしてのプログラミングに「網羅的なテスト」は欠かせません。網羅的なテストの代表的な手法である「制御パス・テスト」の手法について、解説していきます。
3.パス網羅の種類
ホワイトボックス・テストの代表がパス網羅で、パス網羅はホワイトボックス・テストの王様です。パス網羅にもいろいろありますが、代表がC0、C1、C2の3種類でしょう(*3)。前回(猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ)の表を以下に再掲します。
表.1 パス・カバレッジの詳細 | ||
---|---|---|
パス・カバレッジ | 詳細 | 達成難度 |
C0(命令網羅) | 全命令語を最低一回はテストする | 容易 |
C1(分岐網羅) | 条件文の結果が「真」、「偽」になる両方をテストする | そこそこ |
C2(複合条件網羅) | 条件文の「真」と「偽」の組み合わせをテストする | 非常に困難 |
*3:この3つ以外にもパス網羅の種類はいろいろあります。最も時間がかかるのが「C∞網羅」です。いわゆる「完全網羅」で、取りうる全てのパスを網羅します。30分で書けるプログラムでも、完全網羅するには30万年かかるかもしれないというシロモノで、しかも「機能漏れ」を検出できません……。
三者の網羅の違いを図1の具体的なパスで示します。
C0パス・カバレッジは、命令語だけを網羅(実行)すればよく、図の命令語(図中のマル印)に色がつけばよいので、図1 では、「P1・P3」の1本を実行すれば「網羅率100%」となります。
C1パス・カバレッジは、分岐の網羅で、図の全ての「矢印」に色をつけることになります。図1では、「P1・P3」と「P2・P4」(あるいは、「P1・P4」と「P2・P3」)の2本を実行すれば「C1網羅率100%」です。
C2パス・カバレッジは、分岐条件の全組み合わせを網羅しますので、図の条件文Aと条件文B、全ての組み合わせを網羅せねばなりません。図1では、「P1・P3」「P1・P4」「P2・P3」「P2・P4」の4本を実行しないと「C2網羅率100%」になりません。
カバレッジに必要な時間(および、コスト)は、この例では、C0を1とすると、C1が2倍、C2は4倍になります。C0網羅でさえ100%網羅はものすごく大変なのに、C1さらにはC2カバレッジ実行の面倒さは推して知るべしです。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ
ソフトウェアのバグが全て取れたか?は開発における最大の関心事でしょう。網羅的テストはもちろんですが、その前に単体テストが必要です。代表的な手法である「制御パス・テスト」の基礎を紹介していきます。 - 統計の食わず嫌いを直そう(その11)、5分で残存バグ数を予測する方法
「回帰分析」は統計分析の有力な手法であり、Excelさえあれば5分で統計的に根拠のある数字を出せます。今回はExcelのツールを使って簡単に残存バグ数を予測する方法を解説します。 - 統計の食わず嫌いを直そう(その10)、ワインを飲まずに品質を予測する方法
統計アレルギーの解消には、身近な分野で考えてみることも大切です。今回は「ワインを飲まずに、ワインの品質を予測する方法」を例に統計に触れてみましょう。 - 統計の食わず嫌いを直そう(その9)、昼休みにタダで統計分析をする方法
「統計分析」と聞くと面倒な感じですが、何を証明するか明確ならExcelで簡単にこなせます。Excelさえあれば追加費用はかからず、しかもランチタイムに終わるほどカンタンなのです。 - 統計の食わず嫌いを直そう(その8)、統計的に「王様の耳はロバの耳」と言うために
「王様の耳はロバの耳」と統計的に判定するには、どうすればいいのでしょうか?ロバの耳かも?という仮説を“検定”するための基本的な考え方を学びます。