Test Driven Development for Embedded C (Pragmatic Programmers)