In a current project I do mostly exploratory programming (figure out the code structure as I go), but I will probably also have automatic tests that exercise large chunks of the application at once, from user perspective, without going into any detail. These are supposed to serve as smoke tests, ringing the alarm if I broke anything big.