Training Preparation -- Current Practices of 100 Attendees

How do you test your code? What is your target system? What development tools do you use? What is your code review practice? How much time does it take to do an incremental build, load, and start running your code so you can start to test it? What percentage of your development time is spent coding? What percentage of your development time is spent testing? What percentage of your development time is spent debugging?
Depending on the project, either with Ceedling or GoogleTest for unit tests and Python for tests that interface with hardware. Usually a microcontroller that's either running FreeRTOS or a custom Linux image built with Yocto. Atmel/Microchip Studio, VS Code, PuTTY, CMake, hardware JTAG debuggers, GitHub Copilot or ChatGPT We create pull requests and if a reviewer flags an issue we discuss it, though issues are rare. 1-5 minutes 25 25 50 Show
Manually Various Various IDE DevOps Pull Request 30-60 minutes 50 10 40 Show
Unity The next target I know of is called the Platform Development project. IAR, Codewarrior, MPLab Done online through DevOps Under 10 seconds 30 30 40 Show
TDD ARM cortex-M3/M4 Keil IAR e2-studio DevOps 31-60 seconds 30 30 40 Show
right now its non existent arm32 bit embedded systems running linux vscode, make, scripts for upload very informal, usually a small amount of discussion and a pull request soliciting teammates comments 1-5 minutes 10 10 80 Show
Just look to see if what I wrote does what I want it to do. I'm not sure Visual Studio E^2 IAR Arduino IDE Unity3D Not what they should be. 1-5 minutes 45 5 50 Show
using debugger temperature controller pcb with ARM microcontroller Renesas E2 Studio Code reviews are done using DevOps. 1-5 minutes 50 25 25 Show
unit tests around Cunit framework embedded linux device running on beagle bone type hardware VSCode with gcc toolchain code is peer reviewed through git Pull Request from dev branch into feature branch for testing 1-5 minutes 40 30 30 Show
Using framework-less unit tests. Telematics device for transport refrigeration systems VS Code, Git, CMAKE, MAKE. reviews based on logic, best functions, comments, variable types, magic numbers, use of enums, etc 5-30 minutes 70 10 20 Show
Yes, but not unit tests. Generalized I/O systems, capable of running various peripherals. VS Code, some kind of Terminal, some Eclipse-based IDEs for platform-specific development. We don't conduct code reviews. 31-60 seconds 20 20 60 Show
CUnit arm VSCode, git 2 approvals/reviwers per merge request 11-30 seconds 40 30 30 Show
Ceedling Bare-metal ARM Vendor provided tools Conducted during PR review 1-5 minutes 60% 15% 25% Show
Code first, unit and integration tests later. Mainly an ARM Cortex M processor from STM32 VIM for writing code, VSCode for debugging. VM and Docker environment for building and unit testing. Find potential bugs, suggestions for cleaner code, tests run in CI Under 10 seconds 50 20 30 Show
Unit tests running on target using ucunit framework, and partially the same tests on PC with the same framework. Also there's obviously debugging and manual inspection. TI C2000 Code Composer Studio, Visual Studio Code, LDRA. What can I say, they are performed by other team members. They are OK I guess? 1-5 minutes 50% 10% 40% Show
unit and integration test embedded systems for automotive and aerospace lauterbach gcc eclipse beyond compare we have 1-5 minutes 10 70 20 Show
zephyr ztest, unit, integration and system test Lock platform. python, zephyr, jlink, VSCode, docker, and others. Review all code that is ready for contribution. 5-30 minutes 60% 20% 20% Show
Unit tests with ztest / fff. Integration and system level testing on real hardware with Robot. Locks, readers, door automatics Tools provided by the Zephyr platform Every change is reviewed in merge request using Gitlab. Each merge request needs 2 approvals Under 10 seconds 40 50 10 Show
I started strictly programming through test driven techniques 5 or 6 years ago. Before that, I used to write some tests or partially going through something like BDD. Making many common testing mistakes though. My job is about web environments, and part of a personal project is about microcontrollers and comm. From many years ago I have the personal license for all Jetbrains tools. CLion for C/C++ I'm a bit strict but at the same time I understand that there is not only one way to do things right Under 10 seconds 40% 50% 10% Show
Debug x86 microprocessor. 48K RAM. 4K ROM Visual C Happen when an engineer expresses difficulty or requests a review. Also when a debugging. 1-5 minutes 40 20 40 Show
TDD until it breaks down because we were not doing it right. Mostly water heater controls Eclipsed based IDE (KDS, MCUXpresso, starting Renasas E2Studio). Used others. We have used several tools most recently DevOps for pull requests. Under 10 seconds 20 20 60 Show
Unit tests and integration tests. ARM processors in general. VS Code We have a classical merge request/review/approval process. We need at least one approval to merge. 31-60 seconds 50 20 30 Show
unit tests using the unity framework stm32 M4 core, AM335x beaglebone VS Code and platformio, and Buildroot A pull request is made on the repo, then all developers view and comment in the code in Github. 30-60 minutes 4 2 3 Show
Debug Embedded software on MCU's for the medical market and certain tools for testing on Visual studio IAR, Visual studio, LabWindowsCVI done through PR's on GitHub 1-5 minutes 50% 25% 25% Show
We write unit Tests for new code or sometimes modified code. We test our robot software in the lab, where we have a robot emulation or we simulate it in a docker container. These tests are defined in Azure DevOps testplans Industrial PC with Debian Linux Docker Containers VS Code, CMake, Pull Request in Azure DevOps. Often it is not completely asynchronously but we have a call Under 10 seconds 50 10 40 Show
On my current python project (3D camera calibration analysis software) I use a combination of unit tests and manual testing. For the camera side we develop Linux drivers and c++ demo and test applications, and this is tested by developers. Nvidia Jetson with Ubuntu Linux, but also other similar SoC Linux platforms (NXP, TI ...). Visual Studio Code, Git, RhodeCode They are informal if any, we have been exploring making it part of the process but no consensus yet. 1-5 minutes 33% 33% 33% Show
unit testing/googletest ARM A53 buildroot We go through a robust review process with experienced reviewers. 5-30 minutes 3 3 4 Show
Test after programming. Microcontrollers (32 bit Arm Cortex) IAR, MPLABX We have reviews after the delivery of the code. Any review items are corrected accordingly. 31-60 seconds 70 10 20 Show
I recently tried to have a TDD approach. (lower effort) For long I did "custom main test". Tests with hardware, simulating components to validate the system (higher effort) ARM cortex M4 ARM gcc toolchain Makefile "build systems" IDE: VSCode Gitlab CI with Docker Debugger: Segger We do merge reviews (enforced by Gitlab workflow). 1-5 minutes 50 25 25 Show
Google Test Linux, bare metal VS Code, Vim We use PR (push request) review on Github. 1-5 minutes 30 40 30 Show
The python script executes commands on the controller via serial terminal. I check the return code and if execution is incomplete, it throws an error and stops further execution. High performance controller. It is for supporting industrial automation. Visual Studio Code, VxWorks OS, Eclipse IDE. Check for code readability(comments, variable and function names) Edge test cases are covered 1-5 minutes 30 20 50 Show
Manual test cases Sensor data collector 32bit ARM microcontroller vscode, gcc, python, debug probes, logic analyzers Through, spanning from 1 day to a couple of weeks depending on the size, complexity and impacts. 31-60 seconds 30% 30% 40% Show
pytest arm64 board cmake, gcc, g++, make none Under 10 seconds 33 33 33 Show
Manually Embedded. Typically 8 or 32 bit. Usually just a syntax highlighting editor. Vendor tools if needed. I'm usually solo on any one module. For anyone affected I usually review over screen share. Under 10 seconds 33 33 33 Show
We design code that tries to traverse all the functionalities of the code that make up a SW module. A main() program is designed to try to test the functionality and its outcome is recorded for comparison with a template. Embedded systems and microcontrollers Autotools, Make Code is double checked by two reviewers and a Gitlab CI/CD pipeline checks compialtion,run tests... 1-5 minutes 9 1 9 Show
informal, started unit testing recently QP State Machine Code Generator in C++ on Linux with QT/QML pcs, scopes, logic analyzers, power supplies, protocol analyzers, ides, compilers, cmake (many more) depends on project, mostly informal 1-5 minutes 40 40 20 Show
in each commit gitlab executes developed tests in the project get a coverage of 80%. but it is not always done we use internal tools. we generate test reports or show test coverage Must be reviewed by two reviewers. (since 2 years ago) 31-60 seconds 6 1 3 Show
Manually. Sometimes I also implement code aside aimed to test specific functions within the main app. Final product are protective relays placed all along the electricity distribution network. Virtual Machine with Linux. Visual Studio Code. Gitlab. Every feature/bug is reviewed by 2 reviewers. We leave comments in Gitlab. 1-5 minutes 3 4 3 Show
Attempting to get started with TDD. Prior testing has mostly been manual (with debugger, etc). Embedded control system MPLABX Segger JLink CMake Lab equipment Not yet 1-5 minutes 50 10 40 Show
automated integration tests + manual functional tests Battery powered tracking device with a lifetime of multiple years, without easy way to update. J-Link, VS Code extensions Almost none, currently only firmware developer in the company 1-5 minutes 30 40 30 Show
Function test, module test Embedded, not mobile, control system and user interface IAR, SonarQube, min 2 devs remarks written down in Excel template and graded on severity follow up according 1-5 minutes 30 10 60 Show
with MStest Linux with Windows emulated VSCode and Visual Studio I work alone Under 10 seconds 6 2 2 Show
With our company tool. Embedded systems programed in C languaje. gcc Other programmers review my code and I review others code. 1-5 minutes 50 20 30 Show
Currently with a self made Unit Test Its a Debian linux system. Using C++, QP,QT/QML and Redis. N/A 31-60 seconds 7 2 1 Show
Automated java test JBOSS Eclipse Peer review and external review 31-60 seconds 30 30 40 Show
We have unit tests that were set by a previous developer a machine that runs on C vs code and gitlab I need to work on that 11-30 seconds 20 30 50 Show
Sometimes, I extract some pieces of code testable and generate some new C files to test them with some framework like cpputest. Most of the times, I need to upload the FW of the device and test the application with traces, files or I/O and oscillo. I don't understand well. Arch? Tests? I want to test small SW pieces in PC (unit-testing). IDE:VSCode Linux system Docker Doc: Markdown Style:clang-format Code complexity:lizard VC: Git I usually use cppcheck, flawfinder and lizard. We also have a human peer review in our process. 1-5 minutes 30 30 40 Show
I usually just debug and make sure the code is operating as it should. I am not sure what a target system is Debugger Code reviews usually consist of renaming variables 1-5 minutes 30 30 40 Show
No unit testing, only behavioral. ARM v7 IAR, Clang-Format Review by peers using pull requests 5-30 minutes 30 40 30 Show
Will be using cpputest very soon stm32H745 controlled PCBs STM32CubeIDE and later VS Code, but hopefully it will become VisualGDB on Full Visual Studio 2022 Have not participated in one yet 11-30 seconds 23 10 7 Show
With external windows program I maintain test software for aircraft systems. Visual Studio Quick and not very thorough 1-5 minutes 2 3 5 Show
Very new to this so nothing as of now Not familiar GitHub Just started 11-30 seconds 20 30 50 Show
For C++: using dependency injection, passing in mocks and monitoring behavior For c#: using dependency injection, passing in mocks using a mocking framework (Moq) N/A Visual Studio Not done often enough due to shortage of people 11-30 seconds 50 25 25 Show
Unit tests, Integration Tests, End-to-End Tests N/A Git, Docker, Gradle, Jenkins N/A 1-5 minutes 30% 40% 40% Show
Manual Tests, Some unit tests C++/C# Visual Studio Code Have others test/review code for things that I write and vice versa. 1-5 minutes 40 20 40 Show
There is an option in the software to run in debug mode where hardware calls are simulated. Test cases are performed during run time. They first run in debug mode, then in real mode. Target operating system is Windows Visual Studios 2008 Change existing code as needed: * errors found * new crucial functionality needed to old classes 31-60 seconds 50% 25% 25% Show
number of complexities (n**2) - 1 different companies have different target systems. IDE, database (object & relational), UML tool, JavaScript, JavaFx. I do code review but not very strict. Most coworkers do not because there is no process about it. Under 10 seconds 45 45 10 Show
I don't test my code, other than seeing at run-time if it performs the operations i want it to do NA Visual Studio NA 1-2 hours 40 10 50 Show
Trial and error. What do you want to know? Visual Studio No one wants to do them. 1-5 minutes 20 0 80 Show
Running the code Windows Visual Studios 2022 little to none 11-30 seconds 40 20 40 Show
trial and error test equipment visio pier reviews 31-60 seconds 2 2 8 Show
1) Running real tests that were written 2) Manual execution Windows 11 laptop & desktop Visual Studio, Linux clang/gcc toolchains, git CR done through Gerrit. Team members provide feedback. An official reviewer has to approve 1-5 minutes 50 25 25 Show
LogEvents, Prints, if reasonable google unit test Multiple targets, intel architecture primarily VS Code, SmartGit, SmartSVN, Jenkins, GitHub Small groups of Developers review and test before a push to development software is allowed 31-60 seconds 10% 40% 50% Show
Manual testing with hardware on my bench or in a product Embedded system of several microcontrollers used to control commercial cooking equipment STM32Cube, IAR Code reviews are done prior to merging any focused branch into the main branch in a repository. 5-30 minutes 35% 45% 20% Show
Manual testing with hardware on my bench or in a product Embedded system of several microcontrollers used to control commercial cooking equipment STM32Cube, IAR Code reviews are done prior to merging any focused branch into the main branch in a repository. 5-30 minutes 35% 45% 20% Show
Unit tests, some integration tests, end-to-end Secure website. React front-end, Java Spring back-end VsCode, Intellij Pair programming for real-time review, 1 or 2 person review before merge 31-60 seconds 50 40 10 Show
Test Classes Windows Visual Studios Code Our code is goes through a review process through our coding architect 31-60 seconds 20% 20% 60% Show
Basic functionality tests Embedded System written mostly in C++ and ADA Visual Studio, Windriver Workbench Only done for merges into development. Review by at least 1 other person. 30-60 minutes 20% 60% 20% Show
By making test to ensure coverage To have full coverage with little to no vulnerabilities VSCode We usually bring in another team member to examine the work as we explain why we implemented it. 1-5 minutes 6 2 2 Show
NUnit,GoogleTest,Manual Embedded C++, Desktop C# VSCode Done via Gitlab Merge Requests. Sometimes async via the website. Sometimes sync over Teams 5-30 minutes 50 25 25 Show
I run the Java tests on VSCode and I use "npm test" command to run the React tests AWS Linux VSCode We review code every two weeks Under 10 seconds 60 20 20 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method and class functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
Write unit tests to test for correct method functionality Not sure VSCode and Visual Studio 2019 All code is reviewed by our lead before getting merged in 1-5 minutes 25 25 50 Show
I use TDD. Currently using Java VS Code, Git My code reviews look for any errors in the way the code was written. 5-30 minutes 50 20 30 Show
NUnit Windows VSCode, Visual Studios Lead reviews our code 31-60 seconds 70 15 15 Show
NUnit Windows Visual Studio, VS Code, Gitlab A reviewer review our code and provides feedback. I update my code resubmit for another review. 11-30 seconds 50 25 25 Show
Most recent projects have been completed with Python. Current technique is to describe a class and methods, it's inputs and outputs. Write unit tests for it then write the code blocks. Adjust testing if new methods or functionality are added. For our C++ code the target system will be an embedded system. VS Code (primarily), Visual Studio, TI Code Composer. Currently code review is done by person marked as approver of the open pull request. 31-60 seconds 30 55 15 Show
N/A N/A VS Code Pair Programming 1-5 minutes 4 2 4 Show
NUnit Windows and Embedded System Visual Studios and Visual Studios Code We push onto GitLab and have our main architect review it. 31-60 seconds 50 40 10 Show
unit and e2e tests using jest and junit Linux and Window OSs. bitbucket, jenkins, AWS, SCA tools Conducted at the end of each sprint, any needed changes made and approve before story marked done. 1-5 minutes 60% 20% 20% Show
Running the code on hardware (or a dev board if no hardware) and observing the behaviour. If I encounter a problem as the device runs I will single out a function or functions and maybe write some code to explicitly test them. Very much test-after. STM32 micros, typically for IoT style devices. STM32CubeIDE, Git. We have a rough procedure for performing code reviews but it isn't really done. 31-60 seconds 49 2 49 Show
Bench testing on hardware. STM32F205 processor with attached ADCs, EEPROMs, etc communicated with via SPI. VSCode, STM32CubeIDE, JLink, Git Also loose code reviews on merge requests. 11-30 seconds 70 10 20 Show
N/A N/A N/A N/A 31-60 seconds 60% 10% 30% Show
Application testing and bench top testing. Multiple boards with STM32H745 STM32CudeIDE and VisualGDB In the past there were in frequent the aim forward is to have code review before pull request. 31-60 seconds 40 30 30 Show
N/A N/A N/A N/A 1 day or more 0 0 0 Show
Manually running test cases. Most recently, ARM core micro-controllers (M4) in a Body Control Module (BCM.) Eclipse, target-specific tools (MANY are Eclipse-based), Visual Studio Code, MathWorks tool chain Manual inspection of individual code components against design and prior version, static analysis. 5-30 minutes 50% 35% 15% Show
Mostly run-time testing by developer, using real hardware and IDE breakpoints, watch windows, etc. Subsequent end-user type testing in our labs before official release. Mostly ARM Cortex M3 (STM32). For ARM: STMCubeIDE, Atollic, some legacy IAR projects Largely non-existent on existing projects. Often self-reviewed and approved. 11-30 seconds 60% 10% 10% Show
Ad hoc developer testing STM microprocessors - Platform will also create libraries of tools for future development VS Code Cube IDE (eclipse) Henny Penny has traditionally been a single developer per product line company, so they were minimal 1-5 minutes 33 33 33 Show
N/A Its a fryer or simulated fryer Eclipse, Bitbucket, Jira N/A Under 10 seconds 0 100 0 Show
Manual checking. Controls a fryer (RTD ADC input, switch input, Relay outputs, etc.) STM32CubeIDE NA 31-60 seconds 20 50 30 Show
I don't, I fix bugs. I work primarily with Nordic Semiconductor MCUs and NCS/Zephyr Rtos Vscode, Jlink Generally, no code review unless my company pays for outside review. 11-30 seconds 60 20 20 Show
I am too new to Henny Penny to fully know the testing process. Embedded Development Jenkins, Visual Studio Code, Cpplint, Clang-format, Cppcheck... I am too new to fully know the code review process. 1-5 minutes 30 50 20 Show
- Minor unit tests - Unit tests generally are done as CLI commands - Various embedded nodes -- STM32, NXP Kx Family - Various SoMs + SBCs running linux - STMCubeIDE - MCUXpresso - VSCode - Segger J-Link - Saleae Pro 16 Channel PRs in BitBucket; conventionally informal, but trying to change that. 1-5 minutes 25 10 65 Show
- Minor unit tests - Unit tests generally are done as CLI commands - Various embedded nodes -- STM32, NXP Kx Family - Various SoMs + SBCs running linux - STMCubeIDE - MCUXpresso - VSCode - Segger J-Link - Saleae Pro 16 Channel PRs in BitBucket; conventionally informal, but trying to change that. 1-5 minutes 25 10 65 Show
traditional debug and uart console stm32 esp32 cube ide vscode jlink mainly we dont do review we do functional testing 1-5 minutes 30 0 70 Show
The tag cloud words are from attendees 'Current test practice'