私の感覚や他のエンジニアの話を総合すると、C0パス・カバレッジでは、80%程度まではスカスカと調子よく消化できますが、それを越えると、急激に網羅が難しくなり、多大な時間がかかります。これは、「隣町のスーパーへ行く途中で電車が事故に遭って……」のような複雑な組み合わせのテストを実施することになるためです。この傾向を図2で示します。
C0パス・カバレッジは比較的簡単に網羅できる点がメリットです。ですが、あくまで命令語だけを考え、パスは考えていないため、テスト未実施のパスがあります。図3で未実施パスを解説します。
図3で丸で示したのが命令語で、実行した丸に色を付けていくのがC0パス・カバレッジです。この場合、丸に色を付けますが、矢印(パス)は考慮しておらず、パスの全部を網羅してはいません。これがC0パス・カバレッジの弱点です。全ての矢印に色を付けるのは、C1パス・カバレッジで、C0よりさらに面倒な基準です。
C0パス・カバレッジの、というより、パス・カバレッジの最大の弱点は、「仕様の抜けを検出できない」ことです。膨大な工数と時間を注ぎ込んで命令語やパスを100%網羅しても、仕様書で定義し忘れた仕様を検出できません。仕様書を基に設計書を書き、設計書からソースコードを作るので、仕様書に書いていないことは、当たり前ですが、ソースコードに反映されません。従って、命令語を100%網羅しても、ソフトウェア開発で多発する「仕様の抜け」を摘出できないのです。このことは、十分認識しておくべきです。
C0パス・カバレッジという言葉は知っていても、有効性を理解していても、実際に測定したり、100%網羅を基準にしているプロジェクトは多くはありません(というより、パス・カバレッジを導入しているプロジェクトはかなり少数派です)。パス・カバレッジは、非常に「分かりやすく、説得力がある基準なので、うまく導入すれば強力なツールになります。
紙面が尽きたので、C1、C2パス・カバレッジは次回で解説します。
『ソフトウェア開発 55の真実と10のウソ』(ロバート・L・グラス、山浦恒央著、2014年、日経BP)
『この1冊でよくわかる ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践』 石原一宏、田中英和、田中真史 著、2012年、ソフトバンククリエイティブ
『ソフトウェアテストの基礎:ISTQBシラバス準拠』 (ドロシー・グラハム、エリック・ファン・フェーネンダール、イザベル・エバンス、レックス・ブラック著、2008年、ビー・エヌ・エヌ新社)
東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)
Copyright © ITmedia, Inc. All Rights Reserved.