TDD for Embedded C++
2018-10-29 11:08:54 UTC
Most useful learnings:
To construct software one step at a time by determining what each step should achieve, write a test to prove it and then implement it thus resulting in a system that is fully tested and always works as intended. This is the basis of true incremental development.
Concepts v exercises:
Presentation v discussion:
I thought that the materials and approach worked well, but given that some people on the course complained that this approach would slow them down, maybe there is a way to address this concern?
I thought that the exercises were very good at getting across the core concepts.
James is a good presenter who knows his material well and has the experience to back it up (with examples and anecdotes). He is easy to listen to and engaged with the attendees well. I think that everyone was attentive and interested.
I will certainly be encouraging the team to apply these techniques to improve the quality of our test code and of our production code. I will also be discussing the most appropriate recommendation for the wider software team.
Challenges to applying:
The main challenge is ensuring that techniques for improving code testability do not impact the efficiency of the production code that runs on the target device. The initially daunting prospect of figuring out how best to extract software modules for independent testing is another (although the approach to this was helped by the workshop part of the course which got the process started).
There were questions about industry examples of where this approach has been seen to be successful. Certainly the approach is something that individuals do to be better at their development, but it would be good to know if there are any examples of where this has been applied successfully in an embedded environment. This is more of an informational thing rather than a course comment.
Legacy code workshop:
Recommend to others: