Test Driven Development For Embedded C by James W. Grenning