人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【カバレッジソフト】
コード、テストのカバレッジソフトまたはプラグインを知りたいです。
そもそもカバレッジってどういう仕組みになっているのかもわかりません。
ご存知の方がいらっしゃいましたら教えていただけるとありがたいです。よろしくお願いいたします。

●質問者: mukoubuti
●カテゴリ:コンピュータ インターネット
✍キーワード:カバレッジ コード ソフト テスト プラグイン
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● garyo
●60ポイント

言語が分からないとツールの紹介は難しいかも。一般的な解説です。

テストカバレッジ

http://blues.se.uec.ac.jp/mt/swtest/archives/000081.html

http://www.sessame.jp/knowledge/terms_main_files/terms-ka.html

ソフトウェア開発の世界でカバレッジというと、ソフトウェアコード(パス)に対して「どの程度テストを実施したか」というテストの消化具合を表すために使用します。ここでミソとなるのは「どの程度」をどう定義するのかということです。ソフトウェアテストを実施する為に、どれ位の網を掛けるかと言い換えることもできるでしょう。このため、もし何の定義もせず「100%のカバレッジにてテストを完了した」と言い切ってしまうと、全てのエラーを排除できた。つまり完璧なテストを実施したという全く夢物語のようなことを意味してしまいます。完璧なテストがどうして「夢物語」なのかは以下のカバレッジの説明から理解してください。

では、よく使われる定義から説明していきましょう。

まずは、C0,C1,C2というのがあります。

* C0:命令網羅率(ステートメントカバレッジ):コード内の全てのステートメントを 少なくとも1回は実行

* C1:分岐網羅率(ブランチカバレッジ)コード内の全てのブランチを少なくとも1回は実行

* C2:条件網羅率(コンディションカバレッジ):コード内のすべての条件を少なくと も1回は実行

カバレッジの定義については、1970年代中盤から使われていたようですが、C0,C1と言い出したのはエド・ミラー:Ed Millerさんで、1976年位のことです。この定義はほぼ時を同じくして、ご本人から我が国のエンジニアに伝えられたそうです。

テストの終了判定に用いるという意味においては、テストの設計度合いを示すものと実行度合いを示すカバレッジに分けて考えられます。

* 設計カバレッジ:設計するべきテストケースをきちんと設計したかを示す

* 実行カバレッジ:実行するべきテストケースをきちんと実行したかを示す

パスカバレッジを用いるC0,C1,C2基準は後者に当たります。

では、どれ位テストを実施すればよいかといえば、C0やC1については、単体テスト/ホワイトボックステストレベルで100% 網羅するべきです。しかしながらカバレッジ測定を人間がするとなると大変な手間がかかることは想像に難くありません。

メジャーなプログラミング言語には大抵 無料/有料のカバレッジ測定ツールがあり ますので、いろいろと試してみると良いでしょう。


ツール

http://www.swtest.jp/tools.html

テスト漏れを防止する「カバレッジ分析」C#

http://www.atmarkit.co.jp/fdotnet/tools/devpartner/devpartner_04...

C++test がレポートするコードカバレッジ分析

http://www.techmatrix.co.jp/products/quality/ctest/feature/cover...

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ