In this still emerging age of ubiquitously networked computing, one thing is clear: there are going to be a lot of embedded and mobile devices populating our thing-connected world (billions and billions as Carl Sagan used to say ). They will all – both the hardware and the software – have to be tested thoroughly to guarantee reliable and safe operation.
The good news is that many of the techniques that are being used to achieve this are already familiar to you as embedded developers, such as the use of mock objects, test driven and Agile development methodologies, model-based and model-driven testing, and that old standby – software unit testing.
But the bad news is that these familiar tools and methodologies are now being used in a number of new and radically different environments to not only test the devices themselves, but the network protocols over which they operate. This means developers have got to keep track off and correct malfunctions in the interactions between these devices and with “The Cloud,” on line where many services and functions – even real time and deterministic ones – will in the future reside.
In addition to the examples of these new techniques included in this week’s Tech Focus Newsletter, several that caught my attention are:
Test-Driven Development Based on Mock Objects for Non-OO Languages. How to use test-driven development (TDD) techniques to test software written in non-object oriented language like C using “stubs” and mock objects.
A Regression Test Selection Technique for Embedded Software. A MatLab/Simulink model-based embedded system regression test selection technique that takes into account additional execution dependencies due to tasks, task deadlines, task precedences, and inter-task communications.
Automating GUI testing for Android applications. This about a set of testing techniques for Android apps that employ test and event generators to construct use cases as well as sequences of events that are fed to the app create testable scenarious that can be analyzed for potential bugs
Applying model driven techniques to embedded and mobile testing. Deriving tests from the model of an embedded or mobile system that used model-driven testing techniques to drive tests of continuous and discrete signals with real time constraints using either an object based or function oriented approach.
The use of such tools and techniques have long been a staple of Embedded.com’s coverage. One place to go to refresh your knowledge are the collections maintained there on Unit Testing, Test Driven Development, and Agile Programming, where we have archived a number of the more popular design articles and technical papers. In addition to the several links in this week's Tech Focus newsletter , my Editor’s Top Picks are:
Jack Ganssle has also written extensively about such tools. One set of blogs I find particularly useful are Part 1 and Part 2 in a series of interviews Jack had with James Grenning, the popularizer of the Agile and TDD techniques for use by embedded developers. Grenning is a regular lecturer on this topic at the Embedded System Conference, now a part of EE Live! held in San Jose, Calif. each year.
If you missed a chance to hear him speak, here is the link to a You Tube video of one of Grenning’s classes there. I regularly go back and listen to it, mainly because it is an excellent high level review of these techniques, their importance now and in the future.
But the second reason is a bit more selfish: there seems to be so little sanity and clear thinking in the world. So, it is consoling and refreshing to listen to someone like him speak so clearly and directly, with a lack of marketing BS on a topic with which he remains enthused. Enjoy! I did.
Embedded.com Site Editor Bernard Cole is also editor of the twice-a-week Embedded.com newsletters as well as a partner in the TechRite Associates editorial services consultancy. He welcomes your feedback. Send an email to , or call 928-525-9087.