Unit testing embedded and Arduino projects
When you’ve got more than the simplest embedded program for Arduino (or any other framework), it becomes much harder to test that it’s working properly by purely running it. For something like Blink, testing is simple because all we need to do is upload it and see the LED turn on and off; there’s little risk of missing anything significant. However, let’s skip forward to a menu based application with Serial or Ethernet control, there is very little chance that you’d catch all the edge cases by manual testing.
Stabilising an existing Arduino or embedded product
Sometimes the situation arises where a product is built (or gets close to being built), before any concerns about it’s stability are discussed or proper planning arranged. Often this leads to code being written without any proper test plan in place. Combined with very tight deadlines there’s often even no plan to go back and fix things up. Once this situation occurs, it’s probable that the product release will be compromised.
Getting started Unit testing with Arduino platform
This article discusses how to unit test a simple project with Arduino, if you’re not used to writing unit tests, or need more background, then first read this guide on unit testing embedded projects. Presently, all our testing using a custom test framework that is built into IoAbstraction, it can be considered as the least number of components that implement a test framework. It works pretty well overall, we wrote this because we needed the testing to work on all Arduino boards, and even mbed boards too.
tcMenu designer 2.2 with improved IoT support and more automated tested
It has been quite a bit more than a week since the last update, but a lot has happened in that time! First, we released version 2.1.3 of the library, and switched the designer to use the 2.1 plugins by default. That means that we’ve opened up themes for everyone to use. We’ve also made it really easy to rollback too. However, let’s take a look at where we are now, since the move to a single code base for designer.