There is a typical development strategy that I believe a lot of developers use to debug and test their embedded software, namely: compile, program, debug, spot test, adjust and then repeat. I used this process myself for years, after all, it seemed natural and made a lot of sense.
Unfortunately, there are a lot of issues with this type of development strategy such as hardware dependence, wasting time programming hardware, too much time spent debugging and spot checks. Regrettably, the latter are often manually intensive “cross your finger” tests. In today’s post, I want to talk a little bit about a self-improvement project that I’ve been working on for several years to improve the way that I write and test my own embedded software.