Exhaustive testing (testing all possible input combinations and preconditions) is impractical because the number of possible test cases is infinite or astronomically large. With even simple inputs, the combinatorial explosion makes it impossible to test everything within reasonable timeframes. This is why we use risk-based testing, sampling, and test design techniques.