4. Add edge-case tests to less critical code whenever someone has time to kill.
3. Whenever you find a bug, write a test case to cover it before fixing it
2. Test the edge cases of a few unusually complex code that you think will probably have errors.