連載
» 2016年07月01日 07時00分 公開

山浦恒央の“くみこみ”な話(85):猫でも使えるソフトウェアのテスト網羅(2):パス網羅の種類と内包する問題点 (2/4)

[山浦恒央 東海大学 大学院 組込み技術研究科 非常勤講師(工学博士),MONOist]

3.パス網羅の種類

 ホワイトボックス・テストの代表がパス網羅で、パス網羅はホワイトボックス・テストの王様です。パス網羅にもいろいろありますが、代表がC0、C1、C2の3種類でしょう(*3)。前回(猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ)の表を以下に再掲します。

表.1 パス・カバレッジの詳細
パス・カバレッジ 詳細 達成難度
C0(命令網羅) 全命令語を最低一回はテストする 容易
C1(分岐網羅) 条件文の結果が「真」、「偽」になる両方をテストする そこそこ
C2(複合条件網羅) 条件文の「真」と「偽」の組み合わせをテストする 非常に困難
*3:この3つ以外にもパス網羅の種類はいろいろあります。最も時間がかかるのが「C∞網羅」です。いわゆる「完全網羅」で、取りうる全てのパスを網羅します。30分で書けるプログラムでも、完全網羅するには30万年かかるかもしれないというシロモノで、しかも「機能漏れ」を検出できません……。

 三者の網羅の違いを図1の具体的なパスで示します。

図1. C0、C1、C2が網羅する具体的なパス

 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.