検索
連載

猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ山浦恒央の“くみこみ”な話(84)(3/3 ページ)

ソフトウェアのバグが全て取れたか?は開発における最大の関心事でしょう。網羅的テストはもちろんですが、その前に単体テストが必要です。代表的な手法である「制御パス・テスト」の基礎を紹介していきます。

Share
Tweet
LINE
Hatena
前のページへ |       

 私の感覚や他のエンジニアの話を総合すると、C0パス・カバレッジでは、80%程度まではスカスカと調子よく消化できますが、それを越えると、急激に網羅が難しくなり、多大な時間がかかります。これは、「隣町のスーパーへ行く途中で電車が事故に遭って……」のような複雑な組み合わせのテストを実施することになるためです。この傾向を図2で示します。


図.2 C0パス・カバレッジの進捗傾向

 C0パス・カバレッジは比較的簡単に網羅できる点がメリットです。ですが、あくまで命令語だけを考え、パスは考えていないため、テスト未実施のパスがあります。図3で未実施パスを解説します。


図3 C0パス・カバレッジ

 図3で丸で示したのが命令語で、実行した丸に色を付けていくのがC0パス・カバレッジです。この場合、丸に色を付けますが、矢印(パス)は考慮しておらず、パスの全部を網羅してはいません。これがC0パス・カバレッジの弱点です。全ての矢印に色を付けるのは、C1パス・カバレッジで、C0よりさらに面倒な基準です。

 C0パス・カバレッジの、というより、パス・カバレッジの最大の弱点は、「仕様の抜けを検出できない」ことです。膨大な工数と時間を注ぎ込んで命令語やパスを100%網羅しても、仕様書で定義し忘れた仕様を検出できません。仕様書を基に設計書を書き、設計書からソースコードを作るので、仕様書に書いていないことは、当たり前ですが、ソースコードに反映されません。従って、命令語を100%網羅しても、ソフトウェア開発で多発する「仕様の抜け」を摘出できないのです。このことは、十分認識しておくべきです。

 C0パス・カバレッジという言葉は知っていても、有効性を理解していても、実際に測定したり、100%網羅を基準にしているプロジェクトは多くはありません(というより、パス・カバレッジを導入しているプロジェクトはかなり少数派です)。パス・カバレッジは、非常に「分かりやすく、説得力がある基準なので、うまく導入すれば強力なツールになります。

 紙面が尽きたので、C1、C2パス・カバレッジは次回で解説します。

【 筆者紹介 】
山浦 恒央(やまうら つねお)

東海大学 大学院 組込み技術研究科 非常勤講師(工学博士)


1977年、日立ソフトウェアエンジニアリングに入社、2006年より、東海大学情報理工学部ソフトウェア開発工学科助教授、2007年より、同大学大学院組込み技術研究科准教授、2016年より非常勤講師。

主な著書・訳書は、「Advances in Computers」 (Academic Press社、共著)、「ピープルウエア 第2版」「ソフトウェアテスト技法」「実践的プログラムテスト入門」「デスマーチ 第2版」「ソフトウエア開発プロフェッショナル」(以上、日経BP社、共訳)、「ソフトウエア開発 55の真実と10のウソ」「初めて学ぶソフトウエアメトリクス」(以上、日経BP社、翻訳)。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る