I think I understand the difference between fuzzing and symbolic execution especially when it comes to having a program that expects specific values (in this case symbolic execution will work and fuzzing probably won't).
However, is there a reason why we won't just use symbolic execution instead of fuzzing when we can (that is, if we are not really dealing with a big program) and not use fuzzing at all?
When should we use both?