Course code: SAND-1
  • Years with company: 3
  • Years programming: 15
  • Primary programming language: C
  • Other programming languages: sometimes assembly, Python, C#
  • Unit test harnesses: only heard about Unity and Google Test but have not used them; Unity seems like a good fit since it does not appear to require C++ but not clear why not simply to use our usual Design-by-Contract constructs (e.g. ASSERT) to create unit tests
  • Something else: n/a
  • Test practice now: end-to-end testing using CI
  • Target system: embedded C for micro-controllers only, cannot use C++ due to project restrictions (not even for unit testing)
  • Dev tools: IDE
  • Build time: 31-60 seconds
  • Coding standard: different ones, including Barr
  • Function too long: only read about different approaches on the internet but don't have a clear criteria that I apply consistently
  • Code reviews: GitLab Merge Requests or Fagan depending on project type
  • Code time: 60
  • Test time: 10
  • Debug time: 30
  • Favorite thing about dev: problem solving and seeing things "work" on the target hardware
  • Least favorite thing about dev: debugging intermittent/hard-to-reproduce problems that only show up after firmware runs for days on target platform
  • Tdd knowledge: read a few articles and watched videos; don't understand how to assess when there are "enough" unit tests since probably not all code variations can be covered (heard about Modified Condition/Decision Coverage but don't know how to apply properly)
  • Why are you attending: learn TDD for C-only projects; understand how to apply TDD to firmware that needs to run on hardware (e.g. TDD for DMA SPI driver that only has problems after the MPU comes out of a low-power state)