Course code: CIR-1
  • Years with company: 2
  • Years programming: 10
  • Primary programming language: C
  • Other programming languages: Python
  • Unit test harnesses: PyUnit, JUnit, Embunit
  • Something else: I started my career as a test engineer, testing device drivers and firmware.
  • Test practice now: Existing unit tests, compliance tests, manual execution.
  • Target system: Embedded ARM Cortex
  • Dev tools: Keil, Git, Sublime
  • Build time: 1-5 minutes
  • Coding standard: ISO C99, ARM CMSIS Compliant with ANSI C and C++. Variables and parameters have a complete data type <stdint.h>. ISO C-99 + gnu extensions (where appropriate) (i.e., gnu99) compliant. Conforms to MISRA 2012, but not MISRA compliant.
  • Function too long: When you can't see all at once without scrolling. When it contains blocks of code that are used elsewhere. When it contains blocks of code that could be useful elsewhere.
  • Code reviews: Gerrit code reviews among team members. Need a "+2" and passing unit tests to merge. Most developers can give +1, except for admins.
  • Code time: 10
  • Test time: 30
  • Debug time: 60
  • Favorite thing about dev: Solving problems. Debugging (figuring out why something doesn't work). Reviewing other's code to learn how other people think and solve problems. Designing clever or elegant solutions.
  • Least favorite thing about dev: Deadlines, estimates, Agile. Poorly documented code, processes, tools, tests. Buggy tools that slow development. Lacking tools / debug features that would ease debug/test of code. Overbearing static analysis rules. Code coverage for its own sake.
  • Tdd knowledge: It can help break down the problem into manageable pieces and make it easier to test. Helps to ensure that all important aspects of the solution are tested appropriately. Has a reputation for being difficult to do in embedded projects.
  • Why are you attending: To learn how to best design unit tests for embedded projects. To become convinced on the value of writing unit tests so that I will do it more often. To have the chance to travel and meet colleagues from other offices.