>>810883
Don't do unit tests. Do more full-scale tests (whatever you want to call them - functional, system, integration, etc.). Bang for the buck is WAY higher at identifying problems, but they take longer to investigate than unit test failures. But if you have that hooked to a CI system, usually the programmer that fucked up immediately knows what was wrong.
I built a test system for our networking product that boots the firmware in several instances via KVM, ties their interfaces together, sets up a virtual network, then does iperf across them. It's a simple test but it stresses a huge amount of the product and it catches 90% of fuckups all by itself.