We are kind of pushing boundaries here!

- NKF

That's where the bugs usualy are.

Lets say we are testing a calculator that's got add, subtract, multiply and divide with a 10 digit screen.

Here are some tests we would do.

**Basic Tests. count:4** expect to find about 25% of all bugs this way.

1. add two numbers

2. subtract a number from another

3. multiply two numbers

4. divide a number by another.

**Boundary Tests. count:20** Expect to find about 70% of all bugs this way.

1. add two numbers that will be the biggest number the calculator can handle.

2. add two numbers that will be ONE MORE than the biggest number the calc can handle.

3. add 0 to a number

4. add the smallest possible negative number to one.

...and so on for all the operations. including divide by 0.

**all other possible combinations. count:about 15 million** expect to find 5% of all bugs this way.

1. add 1+1

2. add 1+2

... and so on.

A few of interesting things. One, we can find a lot of bugs by just doing the normal, expected things with a program. Two, most of the bugs lie at the boundaries. Three, to test even a very simple program requires a really large number of tests to completely test it all. Four, if you are smart about what you test, you can find a lot of bugs with a small fraction of full test coverage.

Now think about this, every screen in xcom is at least as complicated as the calculator.