猫でも使えるソフトウェアのテスト網羅(1):基本のC0パス・カバレッジ:山浦恒央の“くみこみ”な話(84)(3/3 ページ)
ソフトウェアのバグが全て取れたか?は開発における最大の関心事でしょう。網羅的テストはもちろんですが、その前に単体テストが必要です。代表的な手法である「制御パス・テスト」の基礎を紹介していきます。
私の感覚や他のエンジニアの話を総合すると、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.
関連記事
- 統計の食わず嫌いを直そう(その11)、5分で残存バグ数を予測する方法
「回帰分析」は統計分析の有力な手法であり、Excelさえあれば5分で統計的に根拠のある数字を出せます。今回はExcelのツールを使って簡単に残存バグ数を予測する方法を解説します。 - 統計の食わず嫌いを直そう(その10)、ワインを飲まずに品質を予測する方法
統計アレルギーの解消には、身近な分野で考えてみることも大切です。今回は「ワインを飲まずに、ワインの品質を予測する方法」を例に統計に触れてみましょう。 - 統計の食わず嫌いを直そう(その9)、昼休みにタダで統計分析をする方法
「統計分析」と聞くと面倒な感じですが、何を証明するか明確ならExcelで簡単にこなせます。Excelさえあれば追加費用はかからず、しかもランチタイムに終わるほどカンタンなのです。 - 統計の食わず嫌いを直そう(その8)、統計的に「王様の耳はロバの耳」と言うために
「王様の耳はロバの耳」と統計的に判定するには、どうすればいいのでしょうか?ロバの耳かも?という仮説を“検定”するための基本的な考え方を学びます。 - 統計の食わず嫌いを直そう(その7)、「鎌倉時代の平均ワイン消費量」と「平均値の検定」
「効果がある」と言うためには比較が必要です。新旧開発プロセスの生産性や品質の平均値を比べるためには、「平均値の差の検定」が必要となります。