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.