We tested each of our three prototypes extensively to make sure they were (reasonably) bug free
First prototype: We tested the first prototype by making test cases that would hit vertices, edges, and faces of standardized triangles.
Second prototype: We tested the second prototype by make a vault in which we placed accessible faces, edges, and vertices. The ball then bounced around in the vault for over 30 hours, given random initial center and velocity values, without escaping.
Final game: We tested the final game by playing it extensively and testing after each iterative advance in the code. When we found a problem, we specifically searched for all reasonable boundary cases.
-- AndrewGarrison - 02 Nov 2004