Taking an Automated and Test Driven Approach During Embedded Development

Embedded software development has become a global and large scale endeavor, with significant engineering challenges. Many development teams are huge, consisting of developers, third party vendors, outsourcers, chipset partners, not to forget open source contributors. But our development practices and methods are still remain what they were ten years back, especially in the realm of testing and integration.

Embedded software development is becoming increasingly complex, which means it requires a more scalable and reliable approach, involving early testing by developers and automated verification by software. One solution is to create reusable tests that can be shared and automated throughout the cycle.

Clearly, embedded development needs a more effective and scalable testing strategy. But before you implement such a system, several objectives must be reached. First, minimize manual testing. It is time-consuming, tedious and error prone. The answer is, automate the tests and reuse them whenever the code changes. Ideally, you should create tests before you implement the code. This also helps flesh out the system design. Second, the tests developed should be uniform. All the tests should make use of the same error recovery mechanisms.

If you implement these steps, you can transform your development process. A single common framework will become available to manage and automate tests from different locations. Anyone on the team can reuse/execute tests on the code at any time. Even incrementally implementing this strategy or applying it only to some development teams, can lead to dramatic impacts.