Okay, so now we're going to answer the question. So if we want
to consider all these inputs, and run them all on the software,
let's see how it will work. Let's assume that these are, 32
bit integers. So at this point what we will have is, a
number of combination, which is 2 to the 32, times 2 to
the 32. They're two integers. This is equal to 2 to the
64, which in turn, is more or less equal, to 10 to
the 19. So 10 to the 19 is the number of tests that
we need to run to cover the whole domain. Now let's assume
that we can run one test per nanosecond. So what that means
is that we can run 10 to the 9 tests per second,
and that's a lot. If we do the math, that results in 10
to the 10 seconds over all, because we have 10 to the
19 tests, we could run 10 to the 9 tests per second
so, we do the math, and we can run all these tests
in 10 to the 10 seconds. And what that corresponds to, it's about
600 years, so a lot of time. So even for such
a simple problem, a problem that takes two integers and adds them,
it will take more than 500 years to test it exhaustively. So
the bottom line here is that we just can't do exhaustive testing.