From Unit Tests To Defensive Programming