Training Preparation -- All Questions

Years with company Years programming Primary programming language Other programming languages Unit test harnesses Something else Test practice now Target system Dev tools Build time Coding standard Function too long Code reviews Code time Test time Debug time Favorite thing about dev Least favorite thing about dev Tdd knowledge Why attending?
1.5 4 Java Python, C, C++ Mockito, PowerMockito, Robolectric Passionate guy who likes solving problems Write code. Write unit tests for it. Fix broken tests. Repeat. Head Unit in car running the latest Android. Android Studio, VS Code 1-5 minutes MISRA, AOSP Java Code Style When i don't immediately understand what it's supposed to do Checking for mistakes in logic, non-optimized code, making sure business requirements are satisfied 60 30 10 Problem Solving Process Nothing Boss Show
2 11 C++ Shell, Python Gtest Inquisitive about the Impact of TDD Vs BDD in real world scenario. Aim to develope less buggy code with the use of techniques like TDD, DCSA, Valgrind, etc Gtest, Manual Test Arm Embedded Source Insight, Teraterm, MobaXterm, Vi, LTTNG, Trace Compass, etc 31-60 seconds We try to follow the MISRA Guidelines for Coding Try to keep a function between 50-70 LOC Standard Code review Checklist. Check for any Dynamic Memory allocation and its life cycle. 3.5 3 3.5 Problem Solving Skills are enhanced. using different approaches to the same problem.(Optimization) NA Red-Green-Refactor- repeat Until Done I am aware of TDD basics, want to know about the internals or any complexities associated with TDD. Show
5 10 C Java JUnit - Writing JUnit test code. Functional testing with reference devices. Android - 1-5 minutes Android Coding guideline it has too many nested control structures. - 30% 30% 40% Implementing new things. - New to this. Have been nominated. Would like to know more about TDD Show
2 10 C, Scripting C++, Python, Shell Scripting CppUnit, GTest I am an Engineer with SW development & Quality Professional. Main contribution is in delivering the SW for n/w domain (Telecom) and mostly embedded systems. Unit Testing Android GTest, Gerrit, Eclipse 11-30 seconds USe HARMAN and standard coding guidelines complexity Effective mostly 2 2 2 Challenges Repetitive tasks Its technique of developing the feature and testing it together Implement TDD in HARMAN, I need to train the engineers after this training. Show
1 7 Java C++ power-mock for now NA unit test and functional test Android Android Studio, VS code 5-30 minutes Standard Google Android guidelines for Java when the lines are too many, and too many return statements. Done on Gerrit 5 3 2 Building solutions. process just know TDD is for writing testable code, focus is on test first. To improve unit testing at work Show
3 9 C C++, JAVA NA I have majorly working on kernel drivers. Writing Unit test, and executing those. ARM, X86 vim, Android Studio 1-5 minutes NA Number of lines. NA 40 30 30 Its interesting, and the outcome is always pleasing Time taken for compilation and sometime load on target we need to write unit test first and then start developing and progressing on passing the test To understand what is TDD, and how to apply in my daily work Show
1 11 C C++, java, JavaScript NA NA By Writing a test Application to test the functionality Mostly Head units Eclipse. Visual Studio Code. 1-5 minutes NA 1) When it has too many control statements. 2) When it does multiple things. NA 60 20 20 To see the code written by me is getting used somewhere Preparing documents( HLD, DLD) NA TDD let you write better code. I want to learn more Show
5 11 c,c++ Java(Android) gtest I completed my Bachelors in Computer Science. I am currently working as Architect for a project which mostly has c,c++ code. Majorly Manual testing . Small libraries using gtest Linux, QNX,Android IDEs 5-30 minutes Generic If multiple functionalities get into logic, then that function is too long. 2 level reviews. 1 peer review and 1 architectural review. 60 20 20 Possibilities Nothing much. Pretty new to this term To improve delivery time and quality Show
17 25 C/C++ Perl/Python/Rust/Java Gtest Working on Android for 6 years Android test frameworks IVI Headunit. QC and Samsung ARM processor Visual Studio Code 1-5 minutes Pretty conventional. Follows misra Does more than one thing. Scrolls off a single page Use Gerrit for code reviews 10 5 5 A truly creative exercise Long compilation cycles Develop tests first, then when tests pass, pretty sure you are done (simplified) Invited to join. Want to guide junior engineers to focus more on tests, not just because told. Show
22 16 C C++, VBA none Line Manager and Process Owner for Software Construction the team uses unit tests by using a test framework embedded target for incar usage different C compilers for IO Controller (AUTOSAR) and Wakeup Controller 30-60 minutes MISRA rules plus customer metrics plus company internal coding styles. we have different KPIs dealing with lines of code and complexity of a function. Peer review to check the code before submit 0 0 0 Making new things possible and making things easier. Coding without having a proper Design. Not taking care of impacts of software. Think about and develop the test before you create your code. The test has to pass at any time. Get kown to TDD, incorporate it into software construction process and act as a multiplier in team. Show
9.4 10 C C++ Shell Scripting GTest System Performance, Systemd GTest Embedded System Linux QNX Momentics, Eclipse, Vim 5-30 minutes MISRA Line of code in function Gerrit 30 30 40 Requirements on Paper designed to actual practical system. Preparing the exact simulation environment to avoid testing on hardware is difficult. Writing the test case first and developing based on each test case. To improve upon my coding skills and reduce time on debug issue. Show
10 25 C++ C, Python, Javascript CPPUnitTest, The Boost Test Library I work in C++ Use some unit tests. But not cover full code. Linux, windows and QNX visual studio 5-30 minutes custom coding standard for the company If it cannot be seen on a single screen. we have an official code review tool 40 30 30 The creativity nothing it is test-driven development, we create tests before the actual development To learn about TDD and how to use it practically Show
7 10 C++ Java, C Junit, GTest Interested to learn new ways of coding and also making it less bug-prone before testing. I usually did manual testing of code. I have started using UnitTest recently and I feel it's more time-consuming than implementing the actual features. First manual testing on the Hardware then write the unit test cases to mock and test different scenarios Infotainment running on Android. I work in middle layer, interacting with HMI & Android frameworks. Android IDE 5-30 minutes Using the basic coding standards and best practices to keep the code clean and more readable Firstly based on no. of lines and also when the debugging of the function takes longer. Code reviews are done thoroughly, from identifying the various use-cases and errors, to redesigning 50 30 20 Adding a unique, cost-effective design with no warnings. Making it work for all the use-cases Complexity as and when features increase, managing is difficult. Need to make sure no regression I have no idea I think it might change the way I look towards developing a code. Fewer bugs than the usual way. Show
4 15 C++ C, MATLAB google test Embedded Software Engineer google test Android Automotive Linux 5-30 minutes C++11 code coverage tool like code sonar Git, gerrit 8 4 8 implementing logic how to test software Have used once. learn about TDD Show
4 15 C++ C, MATLAB google test Embedded Software Engineer google test Android Automotive Linux 5-30 minutes C++11 code coverage tool like code sonar Git, gerrit 8 4 8 implementing logic how to test software Have used once. learn about TDD Show
5 12 C C++ gtest I manage the tuner domain in the automotive infotainment systems gtest customer Hardware Gtest and gmock 5-30 minutes NA when it becomes too difficult to read and understand We use predefined checklist 5 5 5 NA NA This is part of shift left strategy to write test case before code. To understand and implment TDD in our organization Show
3 3 c++ python gtest A 25-year-old enthusiast who still wants to develop unit tests, manual testing during development ubuntu 20.04 visual studio code, gcc, 5-30 minutes c++ core guidelines is large in case of lines(>60) and does at least 2 independent things at least other developers are reviewing my code with every change request 40 40 20 Opportunity to develop something new and see how it performs. I don't know to be honest, sometimes it's just boring when I have to re-implement something existing All I know is that TDD exists and is invented to help developers. I was asked by the manager and I agreed. Show
3 4 c++ Python gTests I am c++ programmer especially interested in computer vision programming. I'm writing unit tests and I am doing manual tests to check, if algorithm is sufficiently accurate Ubuntu Git, cmake, Visual code 5-30 minutes c++ 17 When I have to scroll to see all function, than it is too long. To merge code required is positive review from one software engineer and one senior engineer. 50 25 25 Challenges to figure out how something should work. Develop feature, which had incorrect prepared tests. It is kind of good practices of development pipeline, which includes tests I was chosen to take part in this course. I have hope, that it can speed up my work Show
.7 6 c++ python not used A cpp developer. I rate myself as an intermediate level. Run it in visual studio No comments Visual sudio, Code blocks 31-60 seconds Intermediate based on the operations it performs Not much review comments since i have only done customizations so far 40 40 20 Converting the requirements to code Extensive testing Not much I dont have much idea about tdd. Would like to know more about it and how to achieve a better coding Show
40 40 F# C, C++, VB, C#, Javascript, BASH, Java, Python(a bit), OCaml XUnit, NUnit, Selenium, Expecto I'm a photographer The last large-ish project I wrote, I used Expecto dotnet core (multi-platform) VS Code, VS Studio, Notepad, Various web IDEs Under 10 seconds SOLID, lint, Clean Code, Functional Code Smells When I have to write it. (Ha!) Seriously, 5-10 lines and I start getting worried Everything from inspection to mobbing 80 0 20 Everything, especially the constant humiliation Everything, especially the constant humiliation A good bit Because my boss made me. That guy is a real jerk! Show
2 6 C++ C, Java GTest I'm an associate engineer and have 2 years of industrial experience. In my time with Harman, I've worked on unit testing, satellite radio for Mercedes and now currently working on announcement feature in FM and DAB for Ford. In my current project, we do not have a unit testing setup yet so the testing is done by executing use cases and looking at the output and logs to determine if everything is working as expected. We execute our binary on the Ford PCBA Board We mainly use git as our version control. Gerrit for code review. 5-30 minutes We have a static code analysis setup CodeSonar and for our current Project we are following MISRA. Mainly after reviewing logs Code reviews are done on gerrit. +1 and +2 are needed for merging changes. +2 rights are limited. 40% 30% 30% I like the coding part of it. How the problem can be solved. Documentation. Just the basic that the software is developed through continuous testing process. To get an introduction into the process side of the software development. Show
5 years 14 years C language C++, Python Google Test Hard work Do Unit Test with Google Test DSP SOC platform Visual Studio, bitbucket, NXP MCU IDE, Hifi4 Xtensa Xplorer IDE 30-60 minutes MISRA Based on experience Review with bitbucket system 3 3 3 It is interesting. Engineers don't talk much and lack the pleasure of communication. Not too much, and I plan to learn it from this training. My manager requests me to learn it. Show
1 10 c python, c++ unity/ ceedling I m a power electronics engineer primarily. I have transitioned into an embedded engineer's role over the past 6 years. Over the course of the last 6 years I have worked in air quality sensing, waste management and now z-wave mostly tdd. I rarely write the source before writing a test first. mostly arm cortex ( stm32 series ). I do use an arduino with the atmega328 or mega2560 for PoC mostly arm gcc with libopencm3, sublime text, gdb, platformio 1-5 minutes none if it exceeds a screen size, roughly 90 lines on a monitor in portrait mode. none 30-35 15 40 problem solving. the joy of seeing an idea come to life with a (not so few ) hours of coding. :-) debugging, incomplete requirements, undefined behavior of code very little. I read some books and try to follow tdd but I still feel like lacking in some areas to get a holistic understanding of the problem solving approach and apply tdd to it Show
3 8 C C++, Python, C# Nothing I love to learn embedded systems and electronics. With hardware using debugger. Mostly STM32. STM32CubeIDE 31-60 seconds I am trying to use MISRA C standard. If it does not fit the screen. I am not reviewing codes most of the time. 40 10 50 I like to see my codes in action. Finding bugs. I started to learn it, but I am at starter level. I want to make my code less buggy. Show
7 39 C C,C++ CppUnit, Cpputest, googletest I've swum in the arctic ocean under the midnight sun :) CppuTest and specflow various, typically stm32 these days Current favorite is vscode Under 10 seconds Contributed to MISRA C:2012. Standard depends on client When it's doing more than one thing Depends on client, preference is frequent small reviews 4 5 1 Creativity, problem solving Fighting legacy code It helps me write better code So I can teach it :) Show
<1 5 C C++,Python None I just started my job 6 months ago from college so I'm trying to develop good habits! I read your book and loved it, so I want to start implementing it into how I work. Using either our test scripts on our emulators or through stepping through the debugger to see our values are what we expect them to be (which has been a painful way to test) We use an ARC based processor which has 2 cores and a finicky debugger. It uses a ccac compiler Jenkins, parasoft, Metaware (eclipse based IDE) 5-30 minutes Haha wish I knew, I don't think this is strictly defined in our group. Visual inspection, if it looks too complicated, you need to scroll down, etc. I've only been here for 7-8 months. Haven't had a code review yet- I know it happens though. 2 5 3 I like coding and solving difficult problems. I also like fixing bugs. Being deep in the debugging process and not knowing what to do resolve it. It is incremental and about not writing code that doesn't have a test(I've read your book) I read your book and I want to learn how to implement your concepts in my daily work Show
20+ 35+ C C++, Ruby, ARM assembly CMock, Unity Have spent the majority of my career in embedded systems - medical devices, automotive and data communications. Unit test using CMock and Unity ARM Cortex-M3 and Cortex-M4 IAR Embedded Workbench 31-60 seconds There isn't a set coding standard for our group. When I have to continuously have to page down/page up to read the function. For my current project, there isn't a set code review guidelines. 40 30 30 I like solving problems. The overhead - documentation, design meetings, etc I have had some experience with TDD theory and application. I would say that I am a novice. Wanting to decrease time spent on test and debug. I'm hoping to accomplish with TDD. Show
6 11 C C# Google Test, Fake Function Framework, Unity, Custom Interested to learn more about this Unit & Simulated Verification Testing Cortex-M3 Sublime Text Saleae Logic Analyzer DS-5 Debugger w/Trace 31-60 seconds We setup a standard for developers to follow When its no longer simple and to the point Paper and Functional testing based 25 50 25 the "it works" moment Setting up infrastructure for development, debugging the tools instead of the code Have used it before for verification testing Process improvements to catch issues earlier Show
8 12 C Lately, just C. Not sure, I believe we use a homebrewed unit tester. Married with a cat and a dog. Powerlifter in my free time. Unit testing, Manual and Automated verification testing, low level integration testing. Implantable cardiac devices. Eclipse, IAR for ARM, SVN, CVS, Git. 1-5 minutes We try to keep code re Doing multiple steps, repeating instructions. Typical formatting rules. Keep code simple/readable to limit risk. 50 30 20 Enjoy the challenge and creativity. Rewarding seeing a project grow. Debugging hard to reproduce problems. Spending time trying to hit weird edge cases. Create a test first and design until the test passes. Want to broaden my knowledge on different design philosophies. Show
1 20 C/C++ C# Assembly, Script Log, debugging message embedded software programming Log, debugging message, debugger Embedded devices Dedicated EDA tools 5-30 minutes Clear Code Standard Over some lines Multiple team member review 55 30 15 Understand System Without understand system a little Requirement Show
18 40 C C++, Ada 95 (!), Assembly (rare) Home-grown I have been developing on embedded systems & protocols nearly my entire career. I really enjoy it. I use debug trace statements to follow the execution path and log variables. I use a tool to send messages to exercise the paths/features. ARM M3/M4 MCUs controlling some discretes & peripherals (Bluetooth, USB, I2C, SPI). Soft real-time. Keil MDK, Segger System View, VS Code, Coverity static analysis, MS TFS, custom tools. 31-60 seconds We use an edited version of MISRA C. When the cyclomatic complexity is over about 50. When I have to scroll the screen more than 3x. Independently performed by one or two individuals, usually by diffing. 55 20 25 The creativity, learning something new, the challenge of doing it well. Documenting/specifying it. Getting into something over my head. Just the basics. I used to think it wouldn't work for embedded systems. I think TDD is a good way to combine test with development. I like that it's a process, not a tool. Show
18 40 C C++, Ada 95 (!), Assembly (rare) Home-grown (my own) I have been developing on embedded systems & protocols nearly my entire career. I've been so focused on work the last 10+ years and been surprised by Git, DevOps, and Rust, e.g. I have some catching up to do - including with test frameworks and TDD. I use debug trace statements to follow the execution path and, when needed, log variable values. I use a tool to send messages to exercise the paths/features I'm interested in. Such testing is not readily repeatable. ARM M3/M4 MCUs controlling some discretes & peripherals (Bluetooth, USB, I2C, SPI). Soft real-time. Keil MDK, Segger System View, VS Code, Coverity static analysis, MS TFS, custom tools. 31-60 seconds We use an edited version of MISRA C. We need to adopt the updated MISRA C now. a) When the cyclomatic complexity is over about 50. When I have to scroll the screen more than 3x. Independently performed by one or two individuals, usually by diffing versions. 55 20 25 The creativity, learning something new, the challenge of doing it well. Documenting/specifying it. Getting into something over my head. Just the basics. I used to think it wouldn't work for embedded systems. I think TDD is a good way to combine test with development. I like that it's a process, not a tool. Show
9 18 java C++ javascript C# junit C# unit jasmine I am your son unit tests and manual tests AWS integration or Here location platform integration Intellij IDE Sublime Text Gitlab 11-30 seconds it is perfect When I don't understand it requires someone else to verify every change but it can be cheated by +2ing it yourself 30 50 20 Solving problems Using someone else's API or tools that are poorly documented What you taught me I'm not. Show
28 38 C++ C, C# CPPUnit (a little) I used to develop device drivers using assembly language. Using Development tests which execute individual use cases. It is an embedded ARM based system. Keil Compiler, Segger tools. 1-5 minutes MISRA when you can't view the whole thing without scrolling. We use peer reviews. 50 25 25 Being creative Bugs Not enough. To learn more about how to apply TDD to firmware development. Show
2 29 C++ C, Python, assembler CPPUNIT trying to do more with less code. set of requirements tests iPadOS, Windows, RTOS, bare-metal XCode, Visual Studio, Keil uVision, PyCharm 31-60 seconds MISRA standards for C, ad-hoc internal C++ coding standard when it becomes difficult to understand formal, mandated by FDA rules 15 10 10 most fun way to make money, as opposed to law, medicine.... Plus it keeps the brain exercised dealing with buggy tools, dealing with legacy code... just the hype within the company about James Grenning 50% to support the team direction, 20% curious, 30% skeptical. Show
21 35 c none really homegrown not sure what to say unit and integration custom arm 31-60 seconds ad hoc gut feel manual 60 20 20 pays the bills schedules very little boss required it Show
2 6 C++ C, Python mostly, lots of others for fun! Pytest, cpp-test I play rugby and even though I'm from the UK I have scored a try in the Big 10 league for Purdue! :) Unit testing with cpp-test and a lot of systems testing with Python integration and hardware etc Device for preparing sample for DNA sequencing VSCode, Cypress, Xilinx ISE/Vivado 5-30 minutes We don't have an active coding standard I'm not sure a function can be too long but there is a point at which it tries to do *too much* Merge reviews are monitored as and when they come in and we do our best to keep things tidy 3 2 5 Making things happen in the real world beause of code that I've written! When you can't figure out why the computer won't do what you want! Useful for making changes more confidently and preventing regressions as project gets more complex To learn from someone who knows their stuff about how to write really good firmware code Show
1 5 c c++ java ceedling from colombia ceedling - system test space microcntroller -vorago keil 1-5 minutes nasa modularize - reduce complexity reduced 10 10 10 nice profession pressure basic concepts space programs certification Show
2 weeks 4 years C++ C, Java, Python n/a I enjoy running and playing chess. I don't. Target system? If you mean what OS I use, then Windows and Linux, but Linux for developing. VS Code mainly. 1-5 minutes Not sure what you mean. When it is doing more than what it was originally meant to, or more than one thing. I haven't really had a proper code review with my company yet. 4 2 4 Problem solving. Debugging (mainly, not knowing how to debug). Not too much, just the definition really. Mandated by my company. Show
7 20 C Python None Too vague here. Testing team STM32F405 32 bit CortexM4F GCC Notepad++ 11-30 seconds I am the only firmware engineer so I have not had a strong need for a standard When I can keep the entire functionality in my head. Once per month. 5 members (entire team). We go through an interesting a complex file. 5 3 2 Instant gratification Distractions It works for my software team The rest of my team have become true believers and I am the lone holdout. Show
1.5 4 C C#,Python cmocka I feel comfortable working with embedded devices Most of the time manually System in Package device which include ARM application processor and GPS receiver GCC 1-5 minutes Company internal which is formed using BARR group recommendations Generally if it has more than 20 lines of code Internal agreements for reviews. Fallowing google & gitlab style/recommendations 50 40 10 Facing and solving challenges Dealing with changing requirements TDD is a practice in which unit test is written before actual production code I want to create high quality project by reducing the number of bugs our teams are producing Show
3 6 C C++, Python CppUTest, GoogleTest Currently working with Telematcs devices which use embeded devices, but wish to transition to Embedded linux in the future. Currently studying masters in Electronics and Telecommunication Technologies and specializing in GNSS receivers. Using CppUtest framework. Tests are built and ran in Docker environment running on Linux/Windows machines. Cortex-M4 SOC with integrated GNSS receiver. VSCode, CMake, gcc, gdb, git, clang-format 31-60 seconds Have standardized header/source layout, coding style Function does too many different tasks or indentation level get too high Every change goes into development using pull request which are reviewed by at least 1 developer. 40 30 30 Solving various complex problems (not bug fixing) Finding causes of bugs and fixing them. Recently started applying TDD in some cases, but not everywhere. I know how TDD supposed to work. To establish mental model how to apply TDD in everyday development tasks. Show
1,5 about 4 C Python, Bash, JavaScript CppuTest I'm electronics and programming enthusiast. I like to solder and program in my free time. My passion is learning new technologies. With CppUTest Arm core, LTE modem and GNSS module gcc-arm-none-eabi toolchain, cmake + make build system, docker container for build env, vscode Under 10 seconds We have certain rules that we should follow while developing When you need to scroll to see all of the function lines Code reviews are done before merge requests 60 30 10 I like figuring out the best way to implement certain things When algorithm that seemed good in my head does not work in code as expected I know basic principle of it, more or less how it should be applied I want to master TDD and improve my development toolset Show
4 13 C python, C++ Just getting started with Google Test In my free time, I like to work with my hands (wood and masonry projects for hardscaping and landscaping) Mostly manual integration tests - Develop new feature - Compile and deploy to target - Exercise system to observe intended behaviour Very limited automated integration/unit testing - Work on multi-device embedded systems with real-time constraints - Medium-sized legacy codebase - Emacs for text editing - GCC-like tool chains - Git - Jira/Confluence/Bitbucket - Jenkins 1-5 minutes - well-defined - New code must conform - Difficult to enforce clang-tidy/clang-format - >3 indents of complexity - >50ish lines - >1 responsibility Engage appropriate domain SMEs (1-5 people) Turn-around (1 day - months) Diff 1-5000 lines 40% <10% >50% Always a new challenge & lots of room to improve workflow and quality of output - Wasting tons of time drudging through legacy code - Breaking brittle code - Poor architecture - Write a test to make your code fail - Add code to make the test pass - Refactor Hear the pitch for TDD to see if hype is real See example & understand methodology/thought-process Show
0 2 C Python A little cpputest in the past I live in Hamilton, ON, Canada. I have a wife and 3 kids. I am a new programmer and work as an embedded SW designer. I have only been at my company for 4 months. I have heard that the company is starting to use Google unit tests. ARM Cortex M4 (Kinetis) and also SOC boards (with ARM and FPGA) VSC code for IDE make, gcc gdb Jira, bit bucket Git -on Linux laptops 1-5 minutes We use the standard company approved standard. I believe its based out of the book "clean code" When it starts doing multiple tasks and also makes the code hard to read or very long. We use bit bucket to generate PRs and it is then reviewed by 1-2 people. 50 20 30 - Being able to physically control machines with SW - Fast feedback - I love challenges/learning - When debugging takes too long - When there is too much code to wrap my head around - write a test first before design - test first mentality leads to good designs - I have heard good things and want it in my tool kit. - I want to be a better programmer Show
4 6 C Python, Rust Pytests, google test, rust test suite Tinkerer first, software engineer second Unit test, manual test, static analysis Embedded vision system with mechanical components and real time control Emacs 11-30 seconds C99 About 25-50 lines Bitbucket pull request 40 10 50 Rapid development, reusing robust architecture Esoteric/time wasting bugs Prove each step as you take it To help inform best practices and improve code quality Show
2 10 C/C++ Python, Java, C#, and Javascript Most experienced with Java/C# Junit a little bit, but primarily have not done unit testing Outside of my embedded day job, I like to work on mobile and cloud computing side projects. When I'm not programming I enjoy traveling and playing board games & video games. Not in a systematic way. Pass in extreme values to the function and verify I get what I expect. I step through the logic with each expected value (usually by "hand") and then work through it to verify it's correct. Primarily 32 bit ARM Cortex-M MCUs IAR 1-5 minutes We pretty closely follow the Embedded C Coding Standard written by Michael Barr. If it does more than one thing, break it up into smaller functions. Long funcs usually do too much. Mostly informal - with a few other software devs reviewing the code and walking through it. 40% 20% 40% Debugging. I like trying to figure out what's wrong with the code. I also like building new things. Analysis Paralysis. It's easy for me to spend too much time trying to find the best architecture. I know that test-driven development is very iterative and can potentially save a lot of time. I want to find out how to write tests efficiently so I can get the benefits of TDD Show
5 40 C++ C, C#, Python, Assembly (various processors), bash, MatLab, Mathematica cpputest, home-grown Python test harness I'm a stickler type safety and using the compiler as another tool to one's advantage. It's not just a hurdle to overcome to get your code running. The team I am affiliated with uses parasoft but I've never used it. 4 interconnected arm based micro processors. Each one has a forth interpreter exposed via a UART. IAR, gcc, clang, make, Jenkins 30-60 minutes Well... I'd love to... if we had one. When I can no longer keep up with all the code paths in it. Time to refactor. Peer review per code change. 10 50 40 The challenge of making code truly reusable. Not just salvagable but reusable without change. The short schedules to achieve unreasonable accomplishments you should define your code with test cases before implementation whenever possible To see if my ideas of TDD match up with industry standards and scoff at the deltas :) Show
0 15 C/C++/C# C#, Python Google Test Unity NUnit I have been doing embedded and application level development in industry for 10 years. Integration and Functional/System Tests. stm32F429 with motors, pumps, and various peripherals. Keil MDK Segger JLink VS Code 1-5 minutes MISRA C99, C++11. Violates SRP and I have to scroll down too long. We are developing software development workflows which are now including Code Reviews with associated Git Pull Requests. 4 2 4 The persistent challenge and seeing how software can control devices. Bugs and defects. The challenge and communicating the challenges to others. Test-driven development. The tests drive the implementation. 1. Write a failing test 2. Add implementation 3. Re-test 4. Refactor 5. Retest 6. Continue cycle until "all" the tests are covered. When working in application development (C# .NET) unit/integration testing was integral to software development workflows. I would like to bring that into my current role of developing embedded development. Show
18 25 C++ Python, Java, C#, APL, ... CppUTest, xunit variations for C/C++, Boost Test, etc. Think of myself as programmer of scientific instrumentation. (20 years) More of an Agile/Scrum trainer these days, wanting to get back to more programming again. Want to apply it to eco sustainability challenges. Personal projects: largely TDD Professional projects: a bit of TDD Current: Multi Arduinos used on a NASA project for photovoltaic R&D, to improve power output for the Lunar Gateway project. Simulated sun system for testing PV's on earth, plus balloons to 120,000 ft to calibrate things in space. Eclipse, Arduino IDE, 11-30 seconds By discussion of three main people involved Lack conceptual. Duplication. Hard to test. Rare. Usually when there are questions. Or at end of completion of a new feature area. 30 30 40 Creativity. Impact via important work. Fast feedback. Debugging. Hurriedly trying to learn necessary new things. Setting up complex toolchains before making simple progress. Many uses over the last 20 years. (simple level) Received training. Done training. Paired. Paired with Ward a number of times. Created a few simple test frameworks when one wasn't found. (Old Matlab, Basic) Made a variety of simple C/C++ frameworks. Increase fluency. What to get better at making rapid TDD progress in legacy codebases. Less late nights and weekends getting a framework in place... Show
6 30 C/C++ Ada, Java, C#, VB, Python CUnit Former Naval Officer, 23 years in software industry unit test, integration test Embedded Visual Code 1-5 minutes No formal coding standard Try to do too much in a function Thorough code reviews 50 35 15 Enjoy the puzzle-solving aspect, enjoy being in the lab and running the code on the hardware documentation light tangential experience, want to learn a lot more about it! Interested in learning more about TDD Show
2 15 C C++ None Taking a risk-based approach to developing device software reminds me of previous experience mountaineering. I also find that association amusing. Our testing is done manually. Manually writing test cases for functions and modules. Arm Cortex-M4, mainly STM32F4s Keil uVision MDK, Parasoft C/C++ Test 30-60 minutes Currently undefined for the organization. Trying to st When I need to scroll up or down to find relevant portions of information within the function, it's cause for me to reconsider if anything done in the function is needs to be moved into its own function. Reviews are done during pull requests of our git-based repository. 30 40 30 When approached properly, developing software can be intentional and deliberate to produce amazing things the world has never seen before. The misconception by other groups in multifunctional teams that developing software is quick and easy. It is quite easy to walk down the wrong path and write software quickly and haphazardly to produce code that functions for only "right now". I know that it relies to requirements as its pillars and testing against these requirements to consistently produce functional and purposeful code. In previous organizations I've worked, there wasn't a focus on testing. My co-worker shared 'Test-Driven Development for Embedded C' when he joined the org and I ended up purchasing a copy. After found this training while looking for more resources. Show
5 ~10 C, C++ Ruby Python Rust Check - C CUnit - C CxxTest - C++ Boost::UnitTest - C++ Rust - built in to the language! Isn't just having your Python/Ruby script run without exception enough of a test? I really enjoy music - both listening and recording. Since I also like writing programs for embedded systems, I have written a program for a Raspberry Pi that will rate the quality of a vinyl record on a scale of 1-10. I sometimes enjoy writing python scripts that generate music that only a computer could reproduce, but the music generated is never good. C production code is tested using CUnit. We chose this library because it was very easy to compile with our custom toolchain and does not require an OS. C++ production code is tested with CxxTest. We chose this library because the python script that auto generates the test harness is easy to configure for use without an OS. All unit tests are run on the target system. This allows us to unit test things like GPIO assertions and interrupt handlers. SoC with a custom MIPS processor. Custom C and C++ compiler and toolchain (gcc patch). CMake for defining the build rules, which generate Makefiles we use for building. CUnit for C unit testing. CxxTest for C++ unit testing. Emacs 1-5 minutes We don't really have a coding standard. We use CodeSonar as a static source code analyzer/linter/good practices checker. If it can be made shorter and clearer. If it would be better split up into two or more separate functions. If it is a reroll of std::find. If it is a reroll of std::accumulate. If it is a reroll of std::transform or std::for_each. Usually involve 4-6 reviewers, each reviewer spends 2 weeks annotating the code. We use a custom tool that allows reviewers to collaborate and make in-line annotations without modifying the code. 50% 40% 10% Software is really about automating things. It's about spending x amount of time today to save yourself and others 10x amount of time or more in the future. My favorite thing about software is the feeling of time saved. I'm not convinced documentation is as important as everyone says it is. When there's too much, there's a sense of ease but you often miss the important parts. When there's not enough, there's a sense of panic but you can always elaborate more. *Write tests before you write code. *Unit testing should be able to hit ~100% code coverage. *Tests should follow the setup, act, assert pattern. *Unit tests should never depend on test ordering. *Test feedback should be immediate and readable. I'm interested in TDD, and especially interested in bringing it to embedded systems programmers. I've used it in my projects, and have had success bringing it to my group, but I want something to be a success story for TDD in other projects. Show
5 4 C python unity cpputest I love to learn, I'm always reading to improve my practice unity test harness running on simulator, manual with debugger Microchip dsPIC33, ST stm32f4, multiprocessor safety-critical system MPLAB X, Keil uVision, Visual Studio Code, batch files 11-30 seconds Existing but not really enforced when it accomplishes more than 1 logical function Not optimal 33 33 33 bending matter to my will, muahahaha no universal rules and good practices attended EOC2021 workshop, currently reading James book, just finished a project test-driving it I want to make better software, faster. I want to spend less time doing manual testing. Show
0 15 ASM C, C++ None I was educated as an electrical engineer and learned programming along the way as a necessity. Testing the end product directly, with a human. Various avionics systems, some of which are ARM microcontrollers, and some which are x86 embedded linux systems. VSCode, Various IDEs for different microcontrollers, svn, git 5-30 minutes Match style that already exists, be self documenting, dont leak memory Functions should only do one logical thing. Using crucible currently, but not very experienced with it 50 20 30 Being able to develop software lets me create just about anything imaginable. Remembering syntax for languages I don't use very often. Fighting with different IDEs and Debuggers. Very little, this is the first job where I have encountered tdd. Required training for my position. Show
17 10 Java C/C++ None I have spent the last 17 years working as a Sales Engineer where my programming duties were 1/4 of my workload mostly centered around developing SW to automate testing of HW, creating demo/POC applications to reveal ROI of business use cases for HW/SW solutions, and creating demos for development teams. Recently I accepted a position with Engineering as a full-time Firmware/Software Engineer, this recent move will allow me to build upon the basic programming experiences that I have had to date. So some concepts of this course will be new to me and I am eager to jump in and learn. I have a BS in Computer/Science and Engineering. I generate a test plan independent of the SW project based on user requirements/use-cases and then manually create a test document to run the SW through the tests x86/ARM Visual Studio, Eclipse, Android Studio 1-5 minutes I try to write code in a way that is easy to understand avoiding additional complexity when it is not needed for efficiencies and also making use of models/patterns. Also, I tend to test frequently to keep debugging complexity low. When the scope of the function grows to large In my prior position as a Sales Engineer I lacked access to really experienced mentors for code reviews. I'm hoping to get a lot of feedback from code reviews in my new role in Engineering. 60% 30% 10% I enjoy the constant state of learning, the opportunities for creativity, and the complex problem solving opportunities. When feature creeping gets out of hand Not much I am a new hire in the Engineering organization and eager to start learning and adapting to including these important concepts in the projects that I get to participate in. Show
0.5 4 C++ C#,C,Java,JS,Python,Perl Boost Test Framework in school I was in web development using C# and JS for 2 years before moving to embedded systems development Test using the product and multiple different inputs to see if I get the desired result. Zebra mobile printers running on c/c++ QNX Momentics 1-5 minutes I always try to keep things as simple as possible and reuse code that has already been tested in other areas of the application. A function should really only complete one task, so if a function is doing too much it should probably be broken up. I call another developer that is an SME in that area and show them my changes. They ask me to change something or give their approval then and there. 20 40 40 The feeling of solving what feels like a difficult problem and creating something that can help a customer. How long it can take to find bugs sometimes I haven't heard of it, so just what I can gather from the name. My boss signed me up, but I am excited to gain a new skill and learn something new. Show
18 21 C XML cmocka, Valgrind I studied electrical engineering and worked as a hardware developer for 7 years before starting software development. The most important are functional developer tests. Automated testing is carried out in development with cmocka. Our system test writes much more extensive automated tests, mostly in Python. Our target systems are 2G / 3G / 4G radio modules. Qualcomm Build Environment, Qualcomm tools like QPST, QXDM and many more. 5-30 minutes - When it becomes confusing and difficult to maintain. Are done together with colleagues. 25% 25% 25% You can work in a logically structured way. That one renounces quality for reasons of cost. TDD, perhaps in a different form, we had many years ago. The idea was: you write the tests first and then develop. That didn't work. This training was assigned to me by my boss. Show
20 37 C awk, assembler, some more here and there ? I really know what a stackpointer is and what an interrupt is. In most cases: pepper with Debugs, run & check, remove debugs Embedded multicore systems editor, compiler, debugger 5-30 minutes Avoid unnecessary lines, so that a loop fits to one screen page I don't know In most cases I am involved in advance and know the changes. 50 25 25 Freedom & creativity. Understanding & changing code I have not written by myself. Limitations by advice / tools. I think I know what it is about On advice Show
20 40 C python cmocka My programming focus is on hardware related stuff of embedded systems, mainly audio. 1) compiler as static code analyzer 2) cpp check as static code analyzer 3) source code review 4) manual tests 5) cmocka on a daily base via jenkins 6) system test cases on a daily base via jenkins Embedded system with multiple cores, typically based on ARM 32/64 bit. Source Insight Beyond Compare CPP Check 5-30 minutes Full awareness that the person who will maintain my code might be a manic serial killer who knows where I live. Never change the coding style of an existing file. If comments are needed which are not related to a single line. Very useful. The skill is to invite people which are able to give useful feedback. 20 60 20 It is creative. If time or money are wasted for any reason. The idea is quite obvious. It is not the only but maybe the best way to get meaningful unit test cases. I would rate this a helpful if code is under your control. It is difficult to apply if only minor changes are added to a suppliers code. I get the chance to do this. Being a senior engineer team members ask me each day for help. If I am not trained I cannot tell what is useful and what is not useful. It is not the question whether it makes sense. I am convinced that it make cents :) Show
20 40 C C#, CPP, Assembler Jenkins CI ? Jenkins CI Debugger Logging Embedded ARM Some 5-30 minutes yes Need to scroll Gitlab ? ? ? ? ? ? Company training plan Show
22 40 C/C++ VBScript, Powershell, Java, Perl. None I'm the only one within my software department who doesn't work at the software inside our products. Instead I'm responsible for more or less everything else. These are of course external drivers to access our products but also factoring tools, test tools, adminstration tools etc.. Testsuites provided by OS manufacturer (Windows kernel drivers), self written test suites (Android and Linux drivers), manually (everything). X86 systems with Windows or Linux, Android systems. No embedded systems! Many, depends on the kind and target of my current task. 1-5 minutes ? If it doesn't fit to the screen in a whole, although that sometimes cannot be avoided. ? 50 25 25 It is well paid. It could be paid better. It must be something between undriven and panic driven development. I have no choice. Show
21 ~25 C/C++ python, shell if necessary: java, perl propriatery ones, sharness, python unitest I am doing a survey right now :) cmocka (job), by using it (private) in general: embedded platforms in detail: embedded C or Linux based linux and google Under 10 seconds still trying to find one that I like so much that I follow it without thinking about it. if I had to press 2 times page-up because I forgot what happend before. I try to take them serious. if I can't read it like a book or simply do not understand something, I complain. 3 3 1 I can automate stuff that I do not like to do again and again and again or solve issues where computers are simply faster than humans so many bad code, so many new hypes. it stands for "T_est D_riven D_evelopment" and if really done then it can help to make someone think before starting to code 1. boss told me so 2. see the chance that I can learn something or get some new ideas Show
21 21 C - for GCf tests: R&S test equipment, for LwM2M: our LwM2m client on our device connected to our test server, dedicated tests are performed by out test team protocol stack developmnet for cellular technologies 2G-4G, e-CAll development, LwM2M directly in client - server scenarios - - 5-30 minutes - if it doesn't fit to one screen ;-) - 50% 30% 20% - - Nothing, this topic is new for me. - Show
0 10 Rust C, C++, Python Cargo, CMake (ctest), gtest, gmock I also work on open source Rust crates I typically add unit and integration tests when I am working on something that could have runtime errors that could result from my code, like parsers, algorithms, etc. In Rust I often avoid writing tests by using the type system to make certain error cases impossible. I typically develop on Ubuntu, but I recently got a Mac with Apple Silicon, and I also use Windows. Basically, everything. I typically use VS Code + Rust Analyzer + Cargo. 11-30 seconds I like to see the open source ecosystem reused where appropriate and contributions upstream rather than internal forks. If it is hard to read because the comments and code aren't sufficiently high-level to make reading easy then it should be split to improve code readability. We often develop in a mob, allowing for live code review. 80 15 5 If we develop reusable, clean, and maintainable software, it can be evergreen and build upon the existing work of others to get us to a higher level of coding abstraction. I don't like when coding is performed without a plan for the overall architecture and code reuse. I am familiar with the process of writing tests in advance and making incremental changes to avoid getting ahead of yourself. I only do it when I am trying to implement something that is non-trivial. For work and to learn =) Show
Half Year 6 Python C, C++ Pytest I'm a relatively junior engineer and am interested in learning how to develop software more efficiently and cleanly. Using some flavor of test driven development. No specific system in mind, usually application-specific. Primarily VS Code and everything that comes with it. 1-5 minutes Coding standard is relatively ad-hoc. Tends to depend on the situation and the project I'm adapting to working on. When it does more than the functions purpose. Currently depends on the project, but generally pretty high-level. 60 20 20 There are endless ways to approach many problems, there's satisfaction in doing it well. It isn't all exciting- keeping up on new standards and methodologies can be hard to do. Nothing officially, just a general understanding of the design methodology from some books. Basically that you structure your developed code around pre-written tests. I've used TDD before, but I wanted to get a real understanding of what that means to become a better developer. Show
4.5 15 C C++ utest, gtest i work in Ypsomed in the product development department. we are developing a insulin patch pump. i currently do not implement software anymore, as i have taken the role of the PO for the embedded SW. gtest unit tests Cortex M4 dual controller system with BLE my collegues can answer this better than i could. 31-60 seconds own coding rules, heavily based on MISRA when it is hard to understand and maintain. my collegues can answer this better than i could. 20 20 20 creating behaviour for a product and creating value out of that. running out of time and deliver unfinished (incomplete and buggy) SW to the customer i have started reading your book and we had discussions inside our company about it. but havent worked according to it so far. i think that i previously have worked a little bit like this: adding a litte functionility => testing => adding a little more functionality. it would be great to work according to a "professional" method, to get better Show
4.5 15 C C++ utest, gtest i work in Ypsomed in the product development department. we are developing a insulin patch pump. i currently do not implement software anymore, as i have taken the role of the PO for the embedded SW. gtest unit tests Cortex M4 dual controller system with BLE my collegues can answer this better than i could. 31-60 seconds own coding rules, heavily based on MISRA when it is hard to understand and maintain. my collegues can answer this better than i could. 20 20 20 creating behaviour for a product and creating value out of that. running out of time and deliver unfinished (incomplete and buggy) SW to the customer i have started reading your book and we had discussions inside our company about it. but havent worked according to it so far. i think that i previously have worked a little bit like this: adding a litte functionility => testing => adding a little more functionality. it would be great to work according to a "professional" method, to get better Show
2 5 C C++ and VHDL CppUtest I have started my career as a Hardware developer and decided to change to Embedded Linux device driver developer. After a year, I started to work with SoC (VHDL + Embedded Linux + C programming), where I spent 2 years. Nowadays I work mainly with C for embedded environments. For newly created software units, unit tests are applied during development ( first the logic is implemented, then tested). For legacy code, tests are done by looking at the integration level. Low power Microcontroller 32-bits. Eclipse, IAR , Visual studio, azdo, EA. It depends on the project. 1-5 minutes We use Misra C standard and additional company-specific code guidelines When a function starts to have more than one scope and logic. Rule of thumb, around 50 lines of code. Done via Pull request 20 50 30 The ability to create value by translating human needs into lines of code, that can be easily maintainable, scalable and flexible so that new needs can be effortlessly added to the existing solution. Nothing comes to my mind now. Improve software maintenance and flexibility I am very interested in the TDD approaches, but I am still not sure about the limitation and challenges of this approach. Show
2 14 C C++ CppUTest, GTest I like collaboration instead internal competition unit-tests, integration-tests medical embedded devices VS-Code, Docker, gcc (cross compiler), gdb debugger, git, microsoft azure for change management and continuous integration 11-30 seconds MISRA 2012, using internal coding guidelines when the body of the function could be easily split based on the separation of concerns principle or when the function is not easily unit-testable one reviewer, using pull-request workflow 50 30 20 clean design, modularized, automatic testing for continuous integration reverse engineering spagetti code; long feedback loops for (test) results the philosophy of writing first the test cases before the implementation and having the corresponding tests for the implementation which locks a module functional behaviour, making then easier to change without being afraid of introducing regressions I want to have a proper reference of what TDD means and which news and advantages brings, including the practices on what is the best way to apply the TDD theory. Show
0.5 3 C C++ Rust Python Javascript I don't think I've used one? I've written test *benches* with test vectors for SystemVerilog before, but that might not be the same. I have a lovely Bengal cat who occasionally uses my legs as his scratching posts and my arms as his chew toys. Currently, either Cucumber or just running the code against CI when I push to Git. Small evaluation board from ST fitted with a custom display Visual Studio Code STM32CubeIDE 31-60 seconds - Red, green, refactor (I'm not entirely sure what else this entails) If I forgot what I wrote earlier... We do mob programming, so we don't *usually* do code reviews as everyone is generally in the loop. Sometimes when we have to do solo work, though, we'll pull 1-2 people in to ensure the code is sane. 15 15 70 I like living in the embedded layer of coding, where it directly influences hardware. It's nice to see changes in software map to changes in real life. Debugging. Sure, I might be the same as the majority (as stated in the intro video), but, yeah, the abyss of debugging can sometimes be a little deep. Write the test first, watch it fail (red), make it pass (green), and then improve it (refactor). Start from the simplest possible tests. Make it pass in the most direct way. Mandatory by the company. I'm also personally invested as TDD is a standard we've been using and I'd like official training on it to improve my understanding. Show
1 40 f# c#; rust; fsunit; sunit; nunit; xunit; junit; cucumber jvm; cucumber ruby; cucumber rust; fitnesse with smalltalk fixtures got into tdd (desktop, smalltalk) 20003 and it breathed new life into my career; ten years ago worked on an eXtreme programming team on smalltalk and c++ embedded linux, first exposure to TDD embedded linux. We used fitnesses. This is my first TDD bare metal time. Enjoying rust. Left C/C++ in the rear view mirror a decade ago, hoping I can pivot back to them in class, or pair in or use rust. ideally most of my day -- above 80% -- spent in the happy place of the red-green-refactor micro loop. 3 months into job here, about 5% in that place, 95% in what Geepaw calls GAK activity, others, yak shaving. bare metal rust some kind of STM processor (new to this space I am) rust; c++ for the legacy bits; applying strangler pattern to eliminate that, in hopes of 100% rust 0% C++ Under 10 seconds I apply Beck's 4 definition of done (passes test? reveals intent? no duplication? fewest elements?) I come from cultures (Smalltal, F#, Lisp) where a ten liner is a long one. we mob - reiews are real time; asynchronous review (I'm looking at you, Git PR) are for those sad souls who default to solo. 10 45 45 getting paid to think; and pairing in to think together? joy squared. bugs - best tester in world taught me to call them mistakes I've been coaching whatever team I'm on in it the past decade, but I am still learning. Recently F# way -- and to an extent Rust -- lean on compiler: can my compiler be my unit test? Can I write code in such a way if it compiles it probably works? I want to learn TDD in embedded rust; I've a hunch the principles are the same (decouple I/O from branching logic) but, looking at our code base, shake my head: why are we so dependent on hardware for every little thing? What am I missing? Show
0 20 C/C++ Python, Rust, Assembly Catch, Rust unit tests Experienced Embedded Software Engineer, Technology Translator and Woodworker Wannabe unit tests, integration tests, regression tests ARM Cortex M VSCode/Vim, GDB, STLink, Rust/C++ 1-5 minutes C++: currently none Rust: all enforced by Rust Clippy and Fmt cannot fit my (27" portrait) screen... done by Mob/Pair Programming 3 4 3 Create new things; solve difficult problems; eliminate duplication/repetition repetition of implementation and bugs/errors think/write test before think/write code create a failing test first only implement enough code to pass the currently failing test i am still a newbie in TDD. would like to learn more Show
2 20 C/C++ some python, little bit of lua and javascript. google test, cppunit, cmocka university degree in computer science ~15 years ago. embedded software engineer in medical and space business. Using google-test. Write code, then test. Target is 100% coverage, for application logic down to device drivers. Embedded ARM device CLion VS-Code docker clang, iar, git gitlab 31-60 seconds there is no defined standard. when it does not fit on the screen (maybe 40 lines of code). I know there is room to improve ;) we do a code-review per pull-request. review is done by second person, a pull-request holds code from 3-5 days of work. 40 30 30 You never "know" it. There's always something new to learn. Building bigger things out of small blocks. debugging ;). badly formatted code (different styles from different authors in single file), actually non-tool-formatted code. writing documentation. project managers that trade (initial) development time for quality. for each new "thing": write test first. then write code to pass all tests. cleanup. Got an invitation from my contractor. Remembered your name from the book I bought maybe 5-6 years ago. wanted to attend. Show
0 8 C Python, C++, C# Tessy, Parasoft, GTest, VS Native Unit Test I have worked before starting at Ypsomed as a working student at a Cyber Security Department. Where I have been working on the generation of generic IDS rules. I am working as a DevOps Engineer at Ypsomed. As a DevOps engineer I mostly write scripts, and then by executing the script, I would see, wether the script works as expected or not. (In my side projects I use gtest and the Visual Studio native unit test framework, and the debugger) n/a GitHub, Docker, Azure 1-2 hours n/a Deeply nested control structures and when you cannot determine the purpose of the function in a reasonable time Done through pair coding and at the pull requests 50 30 20 Complex challenge Finding errors/bugs The idea behind it is clear, but I have never used this approach before. There was a single free slot, and it is a class, where I can learn a lot. I have been working at Siemens also on the automatisation of the debugger and had to use code coverage to generate IDS rules, but TDD is new to me. Show
16 20 C++ Python Infrequent: java, c#, ruby, javascript, ... Many including CppUTest googletest, boost, assert, junit, nUnit, custom, ... I like the challenge of getting unit tests working in legacy code. I'm humbled that more programmers don't currently do TDD. Combination of class-level unit tests, automated integration tests and system tests, plus manual exploratory manual testing. Arduino, embedded linux, embedded Windows, desktop exercises. Mix: Macbook, Eclipse, AtmelStudio, Aduino IDE, TextMate, Visual Studio 31-60 seconds varies by project. Usually minimally specified and syntax vs semantics/design. Rarely "C++ Coding Standards: 101 Rules, Guidelines, and Best Practices" by Herb Sutter et al When it's hard to quickly understand or could be clearer if refactored. Could be as little as a one-line wrapper with a good intent-revealing name. Probably no bigger than one screen full. varies by project, from zero to by weekly to pairing 10 40 50 Quick tangible progress. Quick feedback. What software enables in the world. Feeling on not fully understanding things. Risk of small mistakes having big consequences. The common perception that programmers are already doing the best they can using limited approaches. I've studied and practice TDD. I use it on my projects. I use it on client projects when possible. It's common that I'll demo some examples in a code base but that the teams will not take it and run. Reasons cited include: no time, too hard, fragile. To grow more fluency with TDD for embedded. To grow techniques. To learn ways to explain and motivate the use of TDD. Show
0 0 python shell script 0 Started my career in SW industry as QA (4) then did MS and CS and worked as technical support engineer for a couple of years. R&D application engineer for last 6 years where I was using little bit of shell scripting while working on linux platform for network adapters. Role at GF is of verification engineer and where I have to automate tests using python and need to do database integration and use Github for CI-CD. VS code 4-8 hours 8 5 7 It helps to automate which helps with an accuracy of test readings and less human error chances. My understanding is that first we need to write the testcases based on the feature requirements and then in order to pass that testcase we need to write the code. I am a software verification engineer and I hoping that TDD will be beneficial for me from testing and automating tests point of view. Show
5 5 C++ C Sharp, Python, Java Karma, Jasmine I like technology but i really enjoy unplugging Writing unit tests for existing code Uses java script and python VS Code 5-30 minutes Depends on which language is being used When it has too much functionality They go through peer review processes 33 33 33 Seeing the results that the code creates Sometimes hunting bugs can be tedious I know it can save time in the long run We were just doing unit testing for my project and I struggled with writing them Show
6 9 C# C++, Javascript na Im into paleontology Test in development environment, code review, test on target platform, then whole system integration testing. Laptop running Windows 10 Visual Studio, git, VMWare Under 10 seconds Varies per project When it does more than one thing Peers review code individually and provide feedback prior to an online meeting where we review the code, what its supposed to do, and what it actually does 60 20 20 Problem solving Sometimes simple things take a lot longer than they should Nothing Developer testing is very ad hoc and I'd like better methods Show
1 30 years C Sharp None NUnit TypeMock / NMock I have been in the SW industry for over 30 years. Mainly working on embedded systems in regulated environments. Most recently I was Head of R & D at Conduent CH, makers of Fare Collection Systems. My coding experience start in C++, then moved to Jave and then to C#. Most of my work over the past 10 years has focused on leading teams and driving organisations towards agility. I am a certified in SAFe, LeSS, Scrum. Currently at Ypsomed I lead a team of Embedded Software Engineers but most of my time is working as an Agile coach supporting the Agile Transformation. We are using Google Test / Google Moack for Unit testing and we have own frameworks for end to end testing. TDD is encouraged but not implemented correctly in the company. STM32 The team can provide information 5-30 minutes The team can provide info When it is performing multiple activities and cannot be shown on one screen We use the four eyes principles and all code is checked before being committed. We have recently moved to using Git Pull requests for all activities (last week ) 40 30 20 Writing some code and getting some reaction in the hardware, be it a simple light operating or reading in data. This gives me a thrill Documentation Read all the books, know the principles and how to do it in C#, Scrum teams Know it needs a mind set change to realize it correctly. Know it is not about writing tests in parallel to coding :-) I want to move my team to use TDD correctly and to address some of the inherent difficulties to use the concept in C Embedded environments. Need the suppor tof an expert Show
8 30 C - C++ - C# - Visual Studio Unit Test - Googletest 55 years old / married / 2 children / electrical engineer / SW for telecommunication, automation, ATM, medical technology in the past / like reading and cooking / will become a ypsomed team member beginning of next month - Manually on the target according test reports New development of a laser system for eye surgery - responsible for the FW in distributed system (Win10 (GUI); Linux (System controller); 7 x FW w/o OS). Subsystems with FW connected as slaves over USB to the System controller - STM32CubeIDE - Enterprise Architect (UML/SysML) 11-30 seconds "Copy-Paste" with some minor adaptions from Embedded C Coding Standard by Michael Barr ( If the function contains many different functional aspects. E.g. reading file > processing input data > writing data. Only if searching a bug or if listed as a step in test report. No formal procedure defined. 70 10 20 With very few effort you can dramatically change the behaviour of a whole system. Because you can dramatically change the behaviour of a whole system with very few effort, everybody thinks everything can be fixed by changing the FW Some internet researches about the basics. Test case first followed by implementing the functionality Training organized by my new boss for his whole team. Show
0 8 C Python, C++, C# Tessy, Parasoft I have worked before starting at Ypsomed as a working student at the Cyber Security Department at Siemens. Where I have been working on the generation of generic IDS rules. I am working as a DevOps Engineer at Ypsomed. As a DevOps engineer I mostly write scripts, and then by executing the script, I would see, wether the script works as expected or not. (In my side projects I use gtest and the Visual Studio native unit test framework, and the debugger) n/a GitHub, Docker, Azure 1-2 hours MISRAC2012 Deeply nested control structures and when you cannot determine the purpose of the function in a reasonable time Done through pair coding and at the pull requests 50 30 20 Complex challenge Finding errors/bugs The idea behind it is clear, but I have never used this approach before. There was a single free slot, and it is a class, where I can learn a lot. I have been working at Siemens also on the automatisation of the debugger and had to use code coverage to generate IDS rules, but TDD is new to me. Show
2 1 1/2 Python LabVIEW, C++ PyTest, UnitTest I am an Electrical Engineering graduate who shifted into Verification work and enjoys it more than what came before it. Programming was once a dreaded thing to practice but has become one of my favorite things to do. PyTest, UnitTest, other test API, and trial and error I am currently developing test software using a Windows 10 Lenovo x64 machine, but plan to create tests to be deployed and triggered on Raspberry Pi 4's for actual CDCI. Visual Studio Code IDE, Thonny IDE (for Pi Pico or lightweight Pi 4 work), GitHub Actions 1-5 minutes I am usually writing interface code for equipment that's later tested so a standard is that regardless of the protocol being used on the equipment, we name our functions similarly. By doing this we basically know all functions for all equipment. When it does more than one thing towards the target. I do not have code reviews as a Verification Technician. 40 40 20 Being able to create something very specific for an custom application. Later being able to modify my programs and reuse them for an entirely different application but slowly building a collection of personal libraries that make my job easier. Packaging, setting up environments, and troubleshooting something to later realize the problem was somewhere else. Off the top of my head, I understand it to be the practice of consistently testing every other line of code you write assuming everything is a modular piece. R&D Director (at the time, he is no longer with us), encouraged that the Verification Team attend along side the the Development Team due to how valuable it could be for overall progress made. Show
30 10 c/c++ Java, Swift, Ada, SQL none Play Chess? yes embedded platforms Tornado 2.2 31-60 seconds C\C++ do not know this peer 33 33 33 create capability the lack of documentation This is my first instruction in Test-Driven Development To learn about TDD and how it can be applied to automated testing. Show
2 7 C C++ only for unit testing Google Test 30 years old Swiss, who lives in Bern (Switzerland) and enjoys playing online chess. By unit tests using Google Test Insulin Pump System with two MCU's (stm32l476xx & stm32wbxx) - Visual Studio Code - SEGGER J-Link - Azure DevOps 1-5 minutes The rules are based on the MISRA C: 2012 standard When the nesting has more than three levels. The code reviews are done by a reviewer using the pull request feature of Azure DevOps. 30 50 20 I love the variety of the work. There is always plenty of opportunity to learn, either through your own research or through courses. The search for the cause of an annoying bug that is almost impossible to find out about. Not so much, so it makes sense to attend this training class. Because my boss signed me up. But it certainly makes sense to increase our quality. Show
4 6 C Java JUnit CppUTest GoogleTest I like riding bikes! On unit-test level we are using CppUTest. We are using a 3 cpu system Eclipse VisualStudioCode 11-30 seconds Interal Coding Guidelines and MISRA2012 I do not like to scroll in functions, so if i have to scroll i easaly loose the context. Code reviews are done in Pull Requests of Azure Dev Ops by a technical leader. As a basis there are review report templates bound to our internal processes. 30 20 50 I like that there are almost no limits of what you can do. I made the experience that even if you think you got the best solution for something, there is another guy around the corner which has a better solution for it ;) Due to the fact that a lot of people belive that software can always and at any time be changed easily there are most of the time a lot of changes during development. I do not like to fight with a fragmented software that grows and grows. There was once a motivation in the team to switch so i bought actually your book and tried it out in small examples. But it never made it "fully" to the project. What i tried to keep for me is to think first about what i really want before coding. In my small exercices with TDD i saw the benefit of thinking about testing in advance to not get untestable code in the end. It even influenced the way to design software items. I would like to get a deeper knowledge ecspeccialy when it comes to HW. Show
1/2 3 C C++, Python No unit test harness used in the past. Rudimental steps with CPPUTEST done. I have a background of mechantronics and electrical engineering, but during studies always focused on the "hardware/software interface". I don't have much experience of nice greenfield SW development (e.g. creating a SW Module from scratch). But I consider myself to have good debugging skills, as I worked in a very late stage project in the atuomotive area, where had a lot of bugs and little knowledge about the ideas behind different implementations. We are at the moment in the setup phase of our project. We plan to use Google Test for Unit tests. And we want to have automated integration tests by using Robot Framework. In my past projects testing was mainly done directly after implementation, but for my feeling mainly rudimental tests. There was a seperate System Test deparment. Embedded platform for ethernet fieldbuses. The plan is to use C++ where possible. Static Code Analysis Azure DevOps 31-60 seconds Plan ist to apply naming conventions according to "Clean Code" for example. Technically we want to conform to MISRA C and AUTOSAR C++ Guidelines It doesnt fit on the screen anymore. Currently in setup phase of the project and no fixed process is implemented so far. 40 20 40 The whole workflow from simple requirements to functional products. I also like the complexity of the whole topic. From build environments over source control to actual coding. It is hard to tell if a the way we choose to do things will be considered as a good decision in the future. SW modules always seem to be fine in the beginning as long as they are small and the person who created is available. That it is a really different approach of development, where you have to get used to it. It is one of our best shots to create maintainable software It is part of the companies strategy to allign the development approach, therefore it is mandatory for every new developer. I'm glad about that, as it is hard to convince a non-software aware manager of the importance of such a training :) Show
8-ish 40-ish C++ these days C, Java (and long time ago, Lisp) CppUTest I'm passionate about developing quality software, done "right" the first time so it can be used forever. What better way to save time than to reuse software you know you can trust? Unit tests are executed during the build. Higher-level tests are still largely manual and/or ad-hoc. I'm seeking to improve this at the organizational level. Military vehicles, ranging from microcontrollers to desktop-level machines. Eclipse. 11-30 seconds It's centered more around good software practices than syntax. When it's doing more than one thing (although "thing" isn't easy to define in this context). We need better participation. Authors need to do a better job making it easier for others to participate. We also fundamentally need to reduce the need for them by adopting better, more modern practices that include a lot more testing. 60 20 20 The creativeness of a good design. Technical brainstorming sessions. Communicating verbally with others. Maintaining poorly-written software. Throwing documents over the wall. Doing anything that doesn't add value. My understanding is it's based on tight time loops between developing code and the associated unit tests. I'm a big fan of design-by-contract (interfaces first), so I'd like to get a better understanding of how these ideas relate. As a new technical lead at the organizational level, my goal is to bring automated testing into our processes at every level. I see code-level TDD as one piece of that, and I'd like to get ideas for extending those techniques to higher levels. Show
2 20 C Python pytest I'm an embedded software engineer. I worked several years in with real time hard-constraint software for radio communication. I'm now working since 2.5 years in the medical field. Depends on the project. In the project I am now: program the device, hope it works. The testing team will do the unit tests later. Medical device containing two microcontroller (one main, one supervisor) and bluetooth connectivity. It injects drug. VS Code / Eclipse, Parasoft, C, Azure Dev Ops, conan package manager 5-30 minutes MISRA C 2012 + internal coding guidelines The coding guidelines of the company says: max 100 lines, and I think there is a max of 3 indentations. But this is not checked. Usually it's more an impression: can my function be split into several smaller functions? Am I comfortable with it? Done in Pull Request in Azure Dev Ops. Sometimes thorough, sometimes not. 4 3 3 It's "easy" to do anything. Depending on how the project is lead, it can go wild very easily and the "anything" of above can be changed to "crap". I used it in Python, but not as deeply as it is explained it your book. But I love the concept. My manager thinks it is good that the entire team attends it so that we will work better together. Show
21 2 LabVIEW, Python C++,Rust python-bdd, pytest, unittest involved in instrumentation system testing, regression testing, R&D development prototype testing pytest or unittest embedded instruments, proprietary serial bus interface, gui is touchscreen, outputs are relay contacts, 4-20mA analog signals Rust software, C++ embedded, python system integration test automation 5-30 minutes python PIP use clean code principles (do only one thing) team reviews 4 1 2 forces you to be logic and follow rules too many configuration options and unique rules basic principle that we need to write code that incrementally passes test units and will in the end be itself considered the documentation and verification tasks fulfilled. as a tester, I want to use proven method to deliver quality software with less bugs and in short time. Show
3.5 14 C# C, Bash Script, Python None I like PC games, strong lift training I test it manually and we have a test team Congatec QSeven imx6 running Linux VS 2019 for C# 5-30 minutes I try to follow If I need to scroll to see the whole function then it is too long. Code review is done mostly if there is a big change. 50 25 25 I can be creative and have fun while doing it. Lacking of documents. Bad software design. I know the principles. To learn how it should be used in embedded sw Show
9 30 C C# C++ bash script Matlab - I like to work with software close to the hardware. As a hobby project I have built some smart home gadgets that I control with OpenHAB. I test the code manually before I pass it on to the test engineers. A YOCTO linux systems that communicates with nodes that contain STM32 microcontrollers. Visual Studio Qt Creator STM32CUBE IDE Texas Instruments CCS Matlab 11-30 seconds Previously I worked with MISRA C 2004, so that is still a bit back in my mind :) Other than that we have an unofficial coding standard: If it does not fit on the screen. We work with GitLab. When we want to commit larger changes, we normally create a merge request and ask a colleague to review the changes in GitLab. 40 30 30 I like it that you can come up with smart solutions for complicated problems. Writing documentation. Not so much. I know that the idea is to write tests before writing the code. I am curious to learn about TDD and I would like to introduce it from the start of the next project (which is coming up soon). Show
5 8 C# C, Python, Javascript, Powershell Unit Tests using MSTest Framework I work on N-Tier client-server applications, including microservice architecture, Database integration via ORM Unit Tests, UI and integration tests are done manually Windows, Linux, Mobile Devives Visual Studio Under 10 seconds writing reliable, clean and secure code if I have to you the mousewheel more than once I dont have time for code reviews nowadays, they were done when I started programming 70 10 20 Being able to code software and develop solutions that make things easier to handle. Often solutions are not properly developed because of time constraints Basic concepts I was asked to join the course. I was happy to join because I always strive for self improving my coding skills to become a better programmer Show
15 20 c vb manual scripting work closely with hardware, system and manufacturing to make the products friendly, reliably and meet customer's uses fully from user standpoint Blackfin BF537 DSP VisualDSP++, Visual Studio 2019 1-5 minutes loosely enforce 200 lines rarely review 2 2 5 keep my mind fresh, demonstrate hardware working pressing deadline, issues happen last minute require staying late solving it fully feedback cycle to speed up development and testing software without actual hardware incorporate ideas to allow parallel developments, reduce test at each release and delivering something that i can be proud of. Show
6 20 C# C, Java, Python, Shell Ceedling (CUnit), NUnit, JUnit, Google test I enjoy being active (hiking, running, golf), (re)learning to play guitar and travelling Currently NUnit and Ceedling (CUnit). Write failing test, write code behind the test, make the test pass, commit, refactor a bit where necessary. (I could use more discipline on the refactoring bit). It's kind of a typical pre-web embedded system comprised of a microcontroller for data acquisition (embedded C) communicating to a single board computer running a Windows C# application via a CAN bus. For the embedded bit, use Atmel studio (now MPLAB X), but found that CLion is a more navigable IDE (refactoring tools inclusive). For the C# side it's Visual Studio with the Resharper plugin (for unit testing and refactoring/autocomplete tools). 31-60 seconds We don't really have a coding standard. Part of this was practicality based as products were accreted from acquisitions - not practical to rewrite large aspects according to coding standard. My efforts are for smaller/testable sprout features When a function seems to do more than one thing, it's too long. When it handles multiple product variants as well as other things, it's too long. We don't currently do any code reviews. At best in Valley Forge, it is one developer per product/product line. Would like to start - emphasis on readability/testability over style. 15 30 55 I like that ideas and pure math are the 'materials' to characterize the world around us, as well as the process of trying to adopt sound (read economical and succinct/correct) engineering practices. It's hard to clean up and 'pay' (via code rework) for messes by quick-fixes made in the past. I try to look at it as more of an opportunity to look for ways to not predict the shape of the code beforehand, but make it easy to work with when needed. I know that Kent Beck wrote a TDD framework for Smalltalk in the mid-90s. The practice makes sense and gives me (and the business) more confidence that something will work, and shortens the time to resolve what bugs do crop up. I've been doing TDD for about 15 years, but I want to make sure I am doing it properly, and learn more techniques (test-wise and design-wise) to build up a catalog of strategies to use for new designs so I don't burden the business with risk/cost. Show
21 19 C/C++ C#, VB None N Manually functional with unit or simulation Windows PC and embedded windows PC Visual studio 31-60 seconds Not sure More than 100 lines By my self 60 15 25 Logical thinking Knowledge gets outdated too soon Not much Want to learn the agile concept and apply in work Show
14 17 c c++, matlab unity, googletest I'm a softwaedeveloper with focus on algorithmic development unittests, software in the loop for Signalprocessing Devices: Digiphone, ESG, Ferrolux Software written in C on a Blackfin from Analog Devices Visual DSP, Cppcheck, Jenkins, Matlab 1-5 minutes i'm using "my standard" refactor to max 60 rows using ccpcheck to find defects 40 40 20 i like to make a better product there is no teammate to review my written software to improve my skills i use it checking my self trained skills Show
14 17 c c++, matlab unity, googletest I'm a softwaedeveloper with focus on algorithmic development unittests, software in the loop for Signalprocessing Devices: Digiphone, ESG, Ferrolux Software written in C on a Blackfin from Analog Devices Visual DSP, Cppcheck, Jenkins, Matlab 1-5 minutes i'm using "my standard" refactor to max 60 rows using ccpcheck to find defects 40 40 20 i like to make a better product there is no teammate to review my written software to improve my skills i use it hecking my self trained skills to Show
8 13 VHDL C, C# Non . Manually check the functionality. Self-developed PCB board, controlled by an FPGA. Intel Quartus II, Visual Studio 31-60 seconds I code only a few lines and then test the function. Admittedly when I get the feeling that the code has become too long. I don't have any rules for that. I'll give the code to a colleague to test. 20 40 40 Develop software to make difficult and complicated tasks be solved. Be creative. Long debugging sessions. Not very much: Before coding you define tests the function later must pass. These tests are automated. As part of the Meggerwide SW Group and as a firmware developer I am interested in improving code quality and easing the test procedure. Show
6 20 C++ Bash C C# GML Java Matlab Custom frameworks Outside of work, I also enjoy writing software. I have recently started experimenting with the game programming. I hold the code written in my personal time to the same high stanadards that I hold the code written at work, and share many techniques and processes between the two. Working in different problem domains gives me new perspectives which can help me solve new problems. When I'm not writing software, I enjoy camping with my family, and snowboarding with my friends. A combination of automated unit tests and manual testing on hardware. Historically, this has skewed mainly towards the latter, but in the last couple of years I have begun to test as much as possible via unit tests. As a project team, we are looking to perform more automated testing on hardware. This is not something I have been involved with personally yet, but am looking forward to learning about it. We typically develop hand held products used for electrical test. These products often involve multiple processors, and need to be designed with safety in mind. Hstorically, IAR tools, but we're moving to GCC and other open source tools that play better integration with CI tools. We develop primarily on Windows, although there is some Linux/WSL work (particularly with CI). We also use Matlab/Simulink. Under 10 seconds We had some vague coding guidelines that were mostly suggestions, and mostly ignored. I developed a coding standard with input from the whole software team. This new standard is followed more closely than the old one. It is overdue for a review. If it's performing multiple distinct tasks it should be split. If it doesn't fit comforatbly in the editor window on a small monitor with other tabs and editor panes open, it should probably be split. We try to review all code that is integrated with the develop branch. There is no formal process for how. Sometimes it is done via screen share, sometimes via Bitbucket pull request. Reviewees nominate a reviewer familiar with the subject. 70 20 10 Solving problems Creating clean/flexible solutions Seing a project come together Hunting for bugs in poorly written code Weighing up the pros and cons of tidying up poorly written code Making the same points over and over again in code reviews I know about the basic cycle of test-code-refactor. I have tried to practice this where possible, however, we currently have a lot of legacy code that cannot easily be unit tested. I am trying to refactor this code so that it can be unit tested. The company is looking to adopt Agile processes for software development. TDD is a crucial part of this. I have shown an interest in the subject, so was nominated for the course. Show