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?
1. Unit testing for individual or a small set of classes 2. Integration testing in a simulated environment 3. Integration testing in a real time environment 4. System testing in a simulated environment Many product specific targets for simulated and real time environment 1. C++ editor, compiler and debugger 2. Matlab / Simulink All pull requests to master branch must be approved by one colleague 11-30 seconds 20% 60% 20% Show
depends on the project. Hardly even pure TDD, a bit of mixture of soft TDD and test created after coding. Both unit and integration tests on PC, the same on HW + System test. Embedded (ARM, etc.) All sort of Editors (depends on client) used a number of tools 1-5 minutes 40 30 30 Show
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
Unit tests with Catch2, tests with simulated embedded SW Target system is a variable speed motor drive. Azure DevOps, Jenkins, Visual Studio PR needs to be approved. Reviews are usually online. 5-30 minutes 20 20 60 Show
Unit tests with TDD Host integration test Target end to end tests Embedded systems, some running CentOS or Debian Linux, some bare metal. C and C++ applications CLion, CMake, Git, Jenkins, Docker Not required very often as dev is done using pair programming. Reviewed by senior devs during dev. 5-30 minutes 10 40 50 Show
Catch2 unit test, end to end test using python varies CLion, Git, Gitlab continuous pair programming 11-30 seconds 33 33 34 Show
Post-hoc with heavy mocking STM32 series microcontrollers CMake, GCC, CLion, cpplint, sonarqube, gitlab Two mandatory reviews per pull request, one dev, one QA 11-30 seconds 5 3 2 Show
Unit and integration tests in Catch2 End to End tests running on hardware in Pytest STM32 microcontroller Clion STprogrammer and STlink Minimal due to heavy use of pair programming. However diffs are reviewed between releases. 11-30 seconds 20 30 50 Show
Combination of various ad hoc Embedded C on AMR M4 Eclipse Doesn't exist Under 10 seconds 70 10 20 Show
Catch2 with google mock Linux GCC use gitlab 31-60 seconds 40 40 20 Show
Unit test, manual testing with hardware, automated tests (unit tests and hw tests) Embedded system with ultrascale soc and different peripherals. Git, ide, debugger sw, confluence, build tools We have code reviews when pull requests are being done. 5-30 minutes 20% 30% 50% Show
Functional Testing. WPF Apps, and Embedded STM32 Devices. GitHub, Jira, Microsoft Visual Studio, STM32CubeIDE Short pull request reviews for minor changes, and a larger system review prior to first release. 11-30 seconds 50 30 20 Show
breakpoints; set up constants in code windows GitLab, Jira very unofficial reviews between peers 1-5 minutes 50 20 30 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
CppUTest STM32xx w/ on-target tests in IAR and GCC + on-host tests w/ 32-bit windows GCC build IAR, GCC Pull request + CI automation checks 1-5 minutes 30 30 40 Show
CppUTest This varies from project to project. IAR, VisualStudioCode Currently involves a select group of Software Engineers within a team who go through the code. 1-5 minutes 30% 20% 50% Show
By writing unit and integration tests Don't have one. It can change at any point. IDEs and Code Editors. Version Control. Package and dependency managers. Debuggers They go okay 31-60 seconds 40 50 10 Show
Java unit tests. Build C++ code for some testing Java in a Linux environment IntelliJ, Qt Essentially non-existent, we don't have the time. 31-60 seconds 30 20 50 Show
PC targets are tested using Unity, embedded software are tested also using Unity but using a PC simulator Multi-target, ARM Cortex-M KEIL Makefile Vendor IDE(s) : STMCubeIDE Small team so I am often my own reviewer 1-5 minutes 30 10 60 Show
TDD ARM cortex-M3/M4 Keil IAR e2-studio DevOps 31-60 seconds 30 30 40 Show
Debugger ? Keil MDK ARM, Visual Studio No review Under 10 seconds 5 5 5 Show
Custom test harness. hetero multicore SoC Linux tool chains Ad hoc 31-60 seconds 5 0 15 Show
CppUTest AMD X86 embedded, Arm V7 & V8, Alpine musl for static builds Make, CMake, VS Code, Sublime Text Unless I see a major reason for a change I generally only ask probing questions make recommendations Under 10 seconds 7 1 2 Show
Unit and integration Embedded PIC16,PIC32 and ESP32 Notepad++ What code review? 1-5 minutes 80 10 10 Show
TDD, testing locally before pushing to CI. Tests run in CI using Jenkins pipelines. Data diodes and their surrounding software for customer ease of use. Nvim, GitLab, Jenkins, Docker, Jira We use pair programming for the purposes of code reviews. 1-5 minutes 10 10 80 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
Test to functional specifications and ensure the device functions as intended. Additionally some longer term testing is setup but its all quite unstructured. Battery powered small embedded systems. Usually containing a sensor and RF STM IDE Every pull request to a develop branch or to release goes through a pull request and is reviewed. 11-30 seconds 20 50 30 Show
unit test Multiple peripheral system STM32 CUBE IDE 2 CYCLE REVIEW Under 10 seconds 30 30 40 Show
With IDE. STM32 Microcontroller. STM32CubeIDE I don't have a code review experience. 1 day or more 10 10 80 Show
Debugging tools STM32 and ESP32, we will have some other chips in the future. STM32CubeIDE Visual Studio Code and a variety of plugins At work they have been minimal I hope this course helps us establish better practices. 31-60 seconds 20 40 40 Show
Debugging on embedded hardware STM32 STM32CubeIDE, STM32CubeProgrammer, STM32CubePowerMonitor Peer reviews on pull request Under 10 seconds 40 10 50 Show
Manual testing STM32 STMCube IDE We dont have that process setup yet 31-60 seconds 4 2 4 Show
Limited independent peer review, personal stress testing for edge conditions and critical logical conditions Not sure what is meant here. I don't have any specific procedure. Stock IDE tools for code generation and basic debugging. Informal and without a written description. Reviews performed by developers of the code. Under 10 seconds 25 25 50 Show
unit test, system test embedded VS Code - 5-30 minutes 40 40 20 Show
Unit tests and SITL tests armv7/x86 qnx systems VS Code At lease two dev reviewers. 1-5 minutes 40 30 30 Show
Bench test, toggle IO, printf, hw in the loop testing. Cortex-M7 with external memory,sensors, xcvrs. VS Code GCC CMake cppUTest WSL2 MSYS2 AtmelStudio IAR Minimal 1-5 minutes UNDEF UNDEF NaN Show
Functional tests as I'm programming Linux VS Code GCC Docker Git We don't have a lot of them, and don't have a process established yet. 5-30 minutes 50 25 25 Show
Gtest Real-time Linux-like OS VS Code Linux clang coverity Done through bitbucket PRs 31-60 seconds 50 10 40 Show
Unit testing Armv7 SoC VS Code + language-specific extensions; git, Jira, valgrind They depend on who is doing the reviewing. 1-5 minutes 30 40 30 Show
Simple running and debugging the code I can't say for a certain VS Code for coding Just reading the code and test it 1-2 hours 20 30 50 Show
My role is not currently development, as I am mainly on Support and with some devops. I write code occasionally for demostrations an recreating customers issues. I normally write test cases. No target on this VS Code or JetBrains Tools. I have used others in the past. No comment Under 10 seconds 60 20 20 Show
Unit, Integration (HW + SW), and system verification QNX Armv7 VS Code to develop, Docker to build Code reviews are completed on the pull request 5-30 minutes 20 70 10 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
run it on Linux laptop. run it on robot. run automated test framework. HUGO Surgical robot -- QNX and Windows x86 systems. Linux laptops. VS Code. g++, cmake, Qt tools every line of code is reviewed, often by more than one person. 1-5 minutes 50 25 25 Show
Functional testing of the product Arm based real time control system VS code We do peer reviews (min 2) in pull requests 5-30 minutes 5 15 15 Show
Unit tests ATF Wind turbine converters VS code PRs 1-5 minutes 40 30 30 Show
gtest X86 & Arm A VS code, Cmake we do it in Bitbucket Pull request. 5-30 minutes 30 30 40 Show
Manual functional / behavioral test suite I started at Whisker as a FW QA Engineer in July, I have become familiar with Ceedling and am in process of adding unit test capabilities to FW team. Main MCU is PIC but is being phased out with STM32, all targets have companion ESP32 for Wi-Fi. VSCode Espressif's ESP-IDF STM32CubeIDE Have not participated in one, but have recently set forth a plan to make this a regular occurance. 1-5 minutes n/a n/a n/a Show
Write the code and if time permits write unit tests. Then update integration tests to make sure code base works as a whole. Run robot framework on the output to make sure the behaviour is correct. QA manually sign off that everything is working. The target is docker containers which run the data pipeline VSCode with Python Extensions Copilot Done through the PR interface. Usually offline but if it is complex, done on a call Under 10 seconds 30 10 60 Show
For C++ code Cppunit and using mocks for hardware drivers. For FPGA I use System Verilog with assertions to implement TDD to verify behaviours to reduce the risk of regressions when making changes. Almost all my projects have an FPGA and chips around them that we interface to. VSCode with TerosHDL for FPGA work and VSCode with C/C++ extensions for linting/code completion etc. Generally I like to use checklists and have reviewers read standards beforehand. 1-5 minutes 2 4 4 Show
QA Feature regession testing for functionality. Firmware engineer edgecase testing. ESP32 WROOM 32E SoC VSCode with extensions for C and python Currently we have 1 other FW engineer to a Pull Request 1-5 minutes 30 50 20 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
Unit testing with CppUTest before merging and periodically performing integration tests Testing features of medical devices VSCode, IAR, QtCreator, Bitbucket Reviews completed before merging code 1-5 minutes 35% 25% 40% Show
CppUTest custom embedded platform (Arm and x86) VSCode, Makefiles, git, Jenkins PRs are reviewed before merging to main. Who reviews is chosen by the PR author. 31-60 seconds 20% 5% 10% Show
BDD, Manual QA, Black Box, Automation Tests of functionality, Integration testing, System Testing, Regression testing. Any complex software application VSCode, Notepad++, SQL, Docker, Cucumber, I don't do any. 11-30 seconds 1 7 2 Show
On the current project we have a blend of Unit Tests, Integration tests, System Tests, performance tests and, unfortunately, a heavy contingent of manual tests still. Python Data Pipeline which pushes data into a Postgres Database fronted by a .NET / JS web app. VSCode, Visual Studio, Git, GitlabCI, Docker, Azure and associated tooling All code goes through peer review and gets signed off through a formal QA process on client data 11-30 seconds 50 30 20 Show
GTest / Pytest qnx 7.1.0, ubuntu 20.04 VSCode, WSL, Docker Comments about things not done properly, improvements in speed/robustness (why and how) 11-30 seconds 30 65 5 Show
CUnit arm VSCode, git 2 approvals/reviwers per merge request 11-30 seconds 40 30 30 Show
Unit and integration tests x86 and arm7 target nodes running an OS VSCode, target IDEs for smaller applications Deploy/test burden makes iterations a lengthy process 30-60 minutes 40 30 30 Show
Using TDD - unit, integration, e2e. Automated CI to run tests on hardware Linux based systems, Raspberry Pis, cloud VScode, Jenkins, Docker Usually pair program so the code review is done during development of a feature rather than after Under 10 seconds 3 6 1 Show
Unit tests Google Test framework. Functional testing and smoke testing with ABB's own testing framework. Uses μC/OS-II or FreeRTOS, NXP1060 with ARMv7 (Cortex-M7) VScode, Visual Studio, IAR EW for ARM, SCons 1 person must review the code that is merged into the master 1-5 minutes 50 30 20 Show
I test edge cases and then come up with a test plan for a technician to run. embedded devices VScode, eclipse based IDEs I have never done one 1-5 minutes 3 3 4 Show
Varies Varies, but mostly Linux VMs (not embedded) Varies Varies 1-5 minutes 50 20 10 Show
Manually Various Various IDE DevOps Pull Request 30-60 minutes 50 10 40 Show
For code touching hardware, most is done with custom code that allows hardware to be exercised to verify functionality Windows PC and/or embedded target Vendor provided (MPLAB / Keil) Visual Studio Code Internal use - informal or None depending on scope External - Formal peer reviews 11-30 seconds 30 40 30 Show
As I generate code, I create test functions at the bottom of the same file. The tests are intended to catch edge cases and compare function output to known good output. The test functions are wrapped in #ifdef for easy removal. Embedded C on microcontrollers & some scripting with Python Vendor provided IDEs (Code Composer Studio, STM32CubeIDE, etc.) After verifying functionality, I look to senior programmers for feedback on style and implementation 11-30 seconds 40 20 40 Show
Ceedling Bare-metal ARM Vendor provided tools Conducted during PR review 1-5 minutes 60% 15% 25% Show
GTest QNX 7.1 and Linux Vim, VSCode Done in the Bitbucket pull request. >= 2 reviewers need to complete; all comments addressed 4-8 hours 10 10 20 Show
Smoke Tests, Integration Tests, Ad-Hoc Tests, Unit Tests Linux and QNX OS, ARM and x86 arch Visual Studio We use atlassian tools for code reviews 11-30 seconds 40% 40% 20% 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
Mostly system level tests that are automated. Microcontrollers Visual Studio GCC GDB Bash Python Git GitLab to manage merge request. Colleagues will review the change. 11-30 seconds 33 33 33 Show
A mix of CppUTest and manual unit testing. I work on both embedded Linux and microcontrollers. Visual Studio Code, IAR Embedded Workbench, QT Creator, Visual Studio Currently, we conduct these via Bitbucket pull requests. 31-60 seconds 20% 30% 50% Show
individual developers define their own Ad hoc tests unless specifics requirements are defined by the customer Linux Visual Studio Code, Sublime, other IDEs. Gitlab/Github Over the shoulder/ virtual screen share code reviews. Usually limited to a few hundred lines. 11-30 seconds 70% 10% 20% Show
Creating Test Cases using the same language and IDE Microcontrollers (C/C++) and desktops (C#) Visual Studio, Spyder, Arduino I like to circulate code, then have an in-person review. 1-5 minutes 30 30 40 Show
"Automated" testing by writing code to test code, not using a unit test framework such as the one provided by .NET. Windows machines, Xilinx devices Visual Studio, Vivado, SDK Using either a lead dev on a project or a group of people to review code prior to merging to main. 1-5 minutes 15% 35% 50% Show
Mostly in a simulated system running on a PC or on target hardware. Unit tests when module is new or making modifications to module, which has unit tests. Embedded software running on a ARM Cortex A53 Visual studio, Visual studio code, GCC Every change to master requires approvals from at least 2 reviewers 30-60 minutes 25 50 25 Show
Unit, systemtests, tests with realHW electric drive Visual studio/code Via pull requests 1-5 minutes 30 40 30 Show
Test Benches, Prayer ARM processors on Xilinx MPSoCs Vivado, Vitis, Visual Studio, VS Code None 5-30 minutes 2 3 5 Show
manually game consoles, pcs, etc. all and any solo developer so it's new terrain 5-30 minutes 50 40 10 Show
static analysis unit-test functional-test system software in system qnx windows linux clang toolchain qnx toolchain we use Atlassian online tools to review the code changes. 1-5 minutes 2 6 2 Show
catch unit test python integration and end to end tests microcontrollers embedded clion gcc tool chain pair programming or formal document 5-30 minutes 30 50 20 Show
mostly in hardware tests single chip / embedded device code IDE pull request reviewed by team member 30-60 minutes 2 2 2 Show
see if it does what i want it to arm microcontroller code composer studio haven't done any Under 10 seconds 40 20 40 Show
Try to use TDD where Possible CN0510 https://github.com/graial/ad5940-examples-adjust-output cross core embedded studio (eclipse based) nil, one man team Under 10 seconds 3 5 2 Show
varied: Unit, integration, E2E tests. Very few human-in-the loop manual tests. varied: FPGA, MCU, Embedded C, Linux git, gcc, CMake, CLion, JIRA, Jenkins, Docker, Artifactory Pair program instead Under 10 seconds 10 10 20 Show
I try to cover as much of my code as I can with unit tests, and run functional and integration tests too. I primarily write code for embedded ARM processors in avionics systems. git, vscode, docker, gdb, github. My goal when going through code reviews is to keep them as small in size and scope as possible. 11-30 seconds 60% 10% 30% Show
unit and integration tests arm, x64 jetbrains suite, vs code, sublime text 3 reviewers on every change, 2 junior and 1 senior 1-5 minutes 5 3 2 Show
System level test. Unit tests Each product have a different target to compile meson, scons, vs code In each pull request a review is done. 1-5 minutes 4 4 2 Show
GTest + Adhoc RTOS = QNX; multiple nodes communicating over EtherCat bus; Simulink based motion control algorithms multiple... 100 % reviews Fish-Eye and Bitbucket 1-5 minutes 40 20 40 Show
n/a n/a n/a n/a Under 10 seconds n/a n/a n/a Show
TDD n/a pycharm I do them 2-4 hours 50 10 40 Show
gtest/gmock qnx/windows qcc Visual Studio git Atlassian tool suite Code reviews are mandatory for every commit, several reviewers both internal and external of teams 11-30 seconds 60 20 20 Show
googletest embedded various pair programming, walkthroughs, formal reviews. 31-60 seconds 30 40 30 Show
unittest module in python embedded linux devices vim vscode pycharm we dont do them 31-60 seconds 40 20 40 Show
Manual Just here to learn a better way to code. No current projects with target system. visual studio code currently limited in current job function 11-30 seconds 50 20 30 Show
Trial and error. windows and linux visual studio code review with other engineers on the project. 1-5 minutes 50 25 25 Show
On-target Embedded MCUs vscode, eclipse I get okay feedback but we don't have the software review culture I would have expected. 1-5 minutes 50 20 30 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
unit tests, function tests, system tests, manual tests IoT devices, embedded product with connection to cloud zephyr, git, cmake Mine are usually pretty small and concise, 5-30 minutes 20 40 40 Show
The tag cloud words are from attendees 'Current test practice'