I'm quite new to programming design patterns and life cycles and I was wondering, what should come first, code review or testing, regarding that those are done by separate people?

From the one side, why bother reviewing code if nobody checked if it even works?
From the other, some errors can be found early, if you do the review before testing.

Which approach is recommended and why?

Developer unit testing first, then code review, then QA testing is how I do it. Sometimes the code review happens before the unit testing but usually only when the code reviewer is really swamped and that's the only time he or she can do it.