web-dev-qa-db-ja.com

単体テストでコードカバレッジを確保しますか?

Pythonコードに多くのドキュメントテストがありますが、ここで説明する方法を使用してテストをトレースすると、次のことに気付きました。

traceit

実行されないコードの特定の行があることがわかりました。私は現在、traceitログをふるいにかけて、実行されないコードのブロックを特定してから、これらの特定のブロックを実行するためのさまざまなテストケースを考え出そうとしています。ご想像のとおり、これは非常に時間がかかります。これを間違った方法で行っているのか、この問題に対処するための他のアドバイスや提案があるのか​​どうか疑問に思いました。これは、ソフトウェアが普及するにつれて一般的になるはずです。十分に複雑です。

25
reckoner

coverage.py は非常に便利なツールです。とりわけ、それは ブランチカバレッジ を提供します。

28
Hank Gay

テストケースで100%のコードカバレッジを取得することについて独断的になるという経営陣からの義務がありますか?そうでない場合は、コードのすべての行に触れることが、コードのバグを見つける最も効果的な方法だと思いますか?無限の時間と人的リソースがないと仮定すると、開発者が書くのが難しい、またはエラーが発生しやすいとわかっている部分に重点を置いて、重要なコードをすべて合理的にテストすることに集中する必要があります。

コードの一部がタッチされるまでテストされているとは言えないので、コードカバレッジは素晴らしいですが、コードの一部に触れてテスト済みと呼ぶことと同じではありません。私はコードカバレッジに反対していませんが、テストがいつ完了したかを知るためのメトリックとしてコードカバレッジを使用することに陥るのは簡単すぎます。それは間違いだと思います。

18
Brad Barker