Building on that, the second principle is that exhaustive testing is impossible. You cannot test every possible input combination, so you have to be smart about it — that's where techniques like equivalence partitioning and risk-based testing come in.