主に、コードレビューが、テストがキャッチする場合もキャッチしない場合もある潜在的な問題を拾い上げることは事実です。しかし、私の意見では、あなたは本当に安定した(事実上バグのない)コードを持っているかもしれませんが、それでも非常に読めないか、まったくメンテナンスできないような方法で書かれています。そのため、実際にコードに問題がなければ、コードレビューではバグが見つからない可能性があります。
そうは言っても、なぜコードレビューをしたいのでしょうか?それが重要である単純な理由は、コードをより読みやすく、保守しやすく、進化可能にするために改善する必要があるということです。多くの人は、よりクリーンなコードを読み、それを理解できるはずです。その意味で、コードレビュープロセスの最も単純な目的は、クリーンなコードを生成することです。したがって、有効性の尺度は、コードがどれだけきれいになったかです。
あなたが測定可能な有効性を持ちたかったので、ここに私が提案するものがあります:
リワークの量に関連するメトリック-同じ特定のモジュール/オブジェクト/ワークアイテムにリワークが適用される回数は、そのコードが保守性の面でどれだけ貧弱であるかの尺度です。効果的なコードレビューが適用された場合、同じモジュールでの再作業リクエストをどれくらいの頻度で減らすことができますか?
すべての変更要求が被る変更の量に関連するメトリック。変更要求が発生するたびに- 因数分解が不十分なコードでは、常により多くのモジュールが影響を受けます。おそらく、コードレビューの後、過去の同様の変更要求に対するこのような変更の広がりが減少したということでしょうか?
変更要求に応答できる平均速度に関連するメトリック。コードがきれいになったら、必要な変更に対応するのが速くて良いです。レビュープロセスでコードがクリーンアップされた後、同様のサイズのリクエストへの応答がスピードアップします。
正確な測定単位を入れているわけではありません。おそらく、このアプローチからこれについてより正確な測定値を作成できます。これに関する上記のアプローチには、より多くの拡張形式があります。
基本的に、私のポイントは、コードレビュープロセスが特定するバグの数ではなく、コードレビューにより、コードをよりクリーンで無駄のない、維持しやすい状態にすることができたかどうかの観点から有効性を測定する必要があります。したがって、将来同様の変更要求がより効率的に応答されるようになった場合、その有効性を評価できます。