コード、テストのカバレッジソフトまたはプラグインを知りたいです。
そもそもカバレッジってどういう仕組みになっているのかもわかりません。
ご存知の方がいらっしゃいましたら教えていただけるとありがたいです。よろしくお願いいたします。
言語が分からないとツールの紹介は難しいかも。一般的な解説です。
テストカバレッジ
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件)