Applying TDD to writting embedded software