Course code: WEB-20
  • Years with company: 2
  • Years programming: 15
  • Primary programming language: C
  • Other programming languages: C++, Python
  • Unit test harnesses: CppUTest, ceedling/unity
  • Something else: I am currently working my way through the "TDD for Embedded C" book. I want to learn more about how we can use TDD to streamline our regression testing process. I would like to know more about embedded C++, so I'd appreciate recommendations you have for good resources on the subject.
  • Test practice now: Manual regression tests; bench-top testing using the debugger; manually-written test programs that run on my PC
  • Target system: We use MSP430 microcontrollers and are transitioning to ARM.
  • Dev tools: We use IAR Embedded Workbench, SurroundSCM, and HelixALM.
  • Build time: 31-60 seconds
  • Coding standard: I just try to match the coding style of the preexisting code.
  • Function too long: If there is a lot of unrelated logic grouped together, I try to break it down into helper functions and use those helpers inside the original function to clarify intent.
  • Code reviews: Code reviews are performed separately using SurroundSCM.
  • Code time: 20%
  • Test time: 50%
  • Debug time: 30%
  • Favorite thing about dev: I like building systems that interact with the real world. I also enjoy refactoring code into something that is easier to understand and less complex.
  • Least favorite thing about dev: I don't like reading code that is convoluted or uses too many abbreviations
  • Tdd knowledge: You try to develop code by thinking about the responsibilities of a module first. Then you think of the tests needed to confirm those responsibilities, and then you write the code needed to pass those tests.
  • Why are you attending: I want to learn more about TDD; I was the one who pushed for this training because I think it can make our lives easier at work. I really hope this is the case.