Software testing is inherently multifaceted. However, the recommended approach is not to pick and choose a single tool. Instead, modern-day safety and security critical verification testing guidelines propose that campaigns should incorporate multiple strategies. The icing on the cake is to leverage the results of one tool to inject as an input into another. The cherry on top is to construct an automated cyclic toolchain where multiple tools complement and feed into one another. In addition, by adding an automated test case generation aspect into the mix we can help ensure the campaigns remain dynamic which encourages growth in the test suite across the life of a program, from development to deployment and eventual decommissioning.
Unit and Fuzz testing are complementary technologies that very much fit the bill.
I spoke with Brandon Lewis from Embedded Computing Design about fuzz testing and the added assurance benefits of chaining Unit and Fuzz testing campaigns.