Unit Testing
Unit tests are snippets of test code developers write to prove to themselves that what they are developing actually works. Think of them as codified requirements.

They are powerful because when combined with a continuous integration process they enable us to make changes to our software with confidence.