So you are performing code reviews habitually. How do you know if they are worth it? How can you tell if you are performing the reviews effectively?
To know for sure, you need to have a couple of simple metrics in place. The metrics are the number of found defects in code reviews and the number of found defects in testing downstream.
A low absolute value in the number of defects in code reviews indicates that either the code is created without defects (A Good Thing) or that the code reviews are being conducted ineffectively (A Bad Thing).
A high absolute value of defects in testing hints at ineffective or non-existent code reviews. If the number of testing defects is much higher than the number of defects in code reviews, you can be sure that your reviewers are not performing the code reviews as well as they could.
Defects found in testing - bugs - are often caused by complexity in code. If the code is not written understandably it is very easy to forget something essential. Simple code offers no hiding places for bugs.
Testing tries to verify that the intended functionality is in place. The code reviews shouldn't try to do the same thing. What should you check for in code review then? In Qualiteers Code Inspection you concentrate on removing the unnecessary complexity from the code. Without the complexity it is harder to make mistakes with functionality. At least it is more straightforward to fix simple than complex code.