Course code: SLB-13
  • Years with company: 2
  • Years programming: 4
  • Primary programming language: Embedded C
  • Other programming languages: C#
  • Unit test harnesses: CppUTest
  • Something else: I'm an embedded software engineer, have been doing embedded C and trying to understand and implement Uint tests rather than TDD because the project I'm in is in a mature state. I would like to learn more about TDD and how we can implement it in other languages such as C# for application software rather than just embedded.
  • Test practice now: Unit tests, deployment on hardware, regression test on hardware
  • Target system: TI TMS320F2812
  • Dev tools: CCS, Eclipse
  • Build time: 1-5 minutes
  • Coding standard: Company standard enforced in the tech center, focuses on the safety and readability of the code
  • Function too long: lines of codes, high stack usage, big scope, generic name is used where you cannot pin a specific functionality to the function
  • Code reviews: Reviews are mainly using version control system, locally, within the project team, often more formal reviews are held which include members from other teams and some subject matter experts
  • Code time: 20%
  • Test time: 40%
  • Debug time: 40%
  • Favorite thing about dev: - improves creativity - cheap in terms of what you can do with what you have. - continous development and improvement in IDE making it much easier for the developer to focus on writing efficient code.
  • Least favorite thing about dev: embedded software has limit resources, often we have to have some hardware ready in order to test or implement a functionality. Some problems that we see (like complete lock-up issues or driver lock up issues) are not repeatable
  • Tdd knowledge: Test Driven Development, used to drive the unit code from the test itself. Highly beneficial when the unit is a new code that is being developed. However, I usually end up writing unit tests rather than TDD for legacy code.
  • Why are you attending: understanding more and more about TDD, how to implemenet it in legacy code or in other languages and platforms, not only embedded C or C++.