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)