TDD for Embedded C
2016-10-05 18:53:52 UTC
Most useful learnings:
Personally I felt I learnt most in the area of step by step refactoring. I think I have been doing the right things but still taking too big a step. I was also well reminded of the importance of good names.
Concepts v exercises:
Presentation v discussion:
I wonder if a few slides on version control and CI would be beneficial. In CyberDojo it is easy to step back if a small step goes wrong, how to step back outside of cyberdojo, may be able to use editor, may want to very frequently commit. Should this be to a local branch or pushed (I'm thinking git). As far as CI, I think it could help to show what tests run on a build server look like, and how metrics could be used.
I also wonder about touching on code coverage. Personally I usually enable gcov within UnitTest applications. I don't tend to worry about the level of coverage, TDD keeps that high, but on bug refactors it can help to see that functionality hasn't been inadvertently added. Also I find it useful when bringing in legacy code - it helps to see that you have covered the bits of code that you think you have.
I wonder if there is a way of splitting the longer exercises by holding back a little of the prep material and injecting it part way through. I'm not sure if this would help or have a moire negative impact by stopping people getting in to the TDD flow.
I personally find your style easy to learn from. You make your points well and obviously speak from experience.
Bring it on!
No - I started using TDD regularly on the 31/10/2012 the last day of the first time I went on your course. I will continue to improve.
Challenges to applying:
I have real trouble performing TDD in IEC61131-3. For TDD on embedded C/C++ the only problem I face is persuading some customers of the benefit
I must admit I was surprised how smooth the remote delivery was (apart from getting locked out at the end of the first day). I think for the lockout case it may be worth having an alert box on your presenting PC that customers can use if their connection drops. I couldn't raise your attention when I was kicked off the webex. Perhaps a link that we could have followed from the attendee page that forced a pop up on your main monitor.
Legacy code workshop:
Recommend to others: