現在、ほとんどの人がステートメントカバレッジよりも品質メトリックとしてブランチカバレッジを使用していると思いますが、私があまり見たことがないメトリックの1つは、テスト自体の品質です。
たとえば、コード内の多くのブランチを実行するテストを作成できますが、どのテストもアサートを実行しません。そのため、多くのブランチを実行しましたが、返品条件を適切にチェックしていません。この「アサート」メトリックをキャプチャする方法はありますか?
人々はテスト自体に何らかの指標を使用していますか?
ブログ投稿コードカバレッジは実際にはどういう意味ですか?この質問を扱います。調査結果は、単体テストのコードカバレッジが一般に回帰テストの信頼性の良い指標であることを示しています。システムテスト(ソフトウェアシステムの大部分を実行する)の場合、コードカバレッジは信頼性の有用な概算ではありません。
ミューテーションテストは、テストケースの有効性を評価するために使用できます。アイデアは、障害を導入することによってソースコードを変更し、テストケースが障害を検出できるかどうかを確認することです。通常のアプローチは、単一のメソッドにミューテーション演算子を適用し(たとえば、コード行を削除する、加算を減算に置き換える、ブール条件を反転する)、すべてのテストを実行し、テストケースの少なくとも1つをチェックすることです。失敗します。失敗したテストケースは、壊れたコードを明らかにすることができました。ミューテーションテストの欠点は、計算が複雑で、同等のミュータントが結果を歪めるという問題です(同等のミュータントは、構文的にミューテーションされたが意味的には変更されていないコードチャンクです)。ピテスト は、業界で使用されているJavaのミューテーションテストシステムです。
アサーションを含まないテストケースに関して、MartinFowlerは次のように書いています。
アサーションフリーのテストはほとんど冗談ですが、完全に役に立たないわけではありません。[...]一部の障害[nullポインター例外など]は、コードの実行を通じて表示されます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加