Testing the smallest components of a program (usually some kind of code) to ensure that each individual function works on its own.Usually done by the developers themselves.