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 C JavaScript and Python Jest I have been working as an embedded software developer for almost one year, using Node.js and C. In my previous job, I designed PCBs and developed firmware for microcontrollers using C. Since my last job, I was looking for implementing agile in hardware projects; that's why I got interest on this training. Using Jest to perform unit testing Embedded devices running Linux for streaming applications, commonly using C/C++ Visual Studio Code, Bitbucket, Node.js, Jira, Azure IoT Hub 1-5 minutes In my last job I started to use SEI CERT C Coding Standard When it is performing a lot of tasks not related directly to the intended functionality. Also when I see that I'm mocking a lot of dependencies to test the function. First I pull the code and try to compile it. If the compilation finished successfully, I review the implementation and look for border cases. 70% 20% 10% That I'm doing something useful to make people's life more comfortable When I spend a lot of time fixing bugs on production environment, which could be avoided with proper tests Developers do not only know about technical details, but also business requirements. By doing so, developers create first the tests cases according to business requirements. To improve my professional career by having more insight on how to develop applications faster and more reliable, particularly in hardware projects Show
15 25 C C++ JAVA VHDL SystemVerilog Python none I am mainly an FPGA / ASIC / SOC and embedded systems design and verification engineer using system and module level Testbenches Communication systems, Wireless comms, Video and image processing, Cybersecurity Vivado, Quartus, Keil, Visual studio, Workbench, ARM and TI tools as and when needed. 5-30 minutes adhoc or to company standards such as IEEE more than one side of A4 between 30 minutes to and hour. 50 20 30 It can be a very creative and interesting activity. Always interesting to be able to learn new languages and techniques. To much adhoc techniques involved and guesswork as per how long things take. Testing can be tedious ! just read James book ! To gain a much deeper understanding of why how and when to use TDD. Show
11 18 C C++, Python, Javascript - I am an Embedded software Engineer started with TCP/IP stack in real time operating systems, then Wireless systems on microcontrollers. Last 10+ years working on SetTopBox software development in Linux OS with Mips and ARM architectures. My interests are Operating Systems, Networking, Security and Virtualisation. My dat-to-day role involves software integration, I depend on integration tests. But I would like to learn Unit testing and I think that is the right way to do. Linux based System on Chip. Our development is in Userspace Middleware. GCC Python Behave Gherkin tests 30-60 minutes - - We use gerrit 15 10 75 - - For my previous project - we used BDD. I really like the way we wrote the test first and then realise the feature by passing the test. - I really want to learn Unit testing and make it like my second nature regarless of the language that I use to program. Show
3 months 3 years C/C++ Python/Matlab - Relatively new into programing, trying to learn the good habits and techniques We are using google test for unit testing and a proprietary system for integration testing Set-top-box I'm personally using VSCode 5-30 minutes We are following Google C++ style guide for the current project - We use gerrit 30 30 40 The satisfaction when your logic works as expected. Can be frustrating sometimes when you don't have all the knowledge about certain tool, system, library, etc. First write the tests and then write the code that accomplish these objectives To fully understand what TDD is. To learn the good habits and techniques and to be able to apply them in our current project Show
2 1/2 2 1/2 C/C++ Python Cpputest Googletest This is my first job outside of university where I studied Physics with Astrophysics. unittesting using Cpputest/googletest and DMS testing which tests the whole code base. Linux embedded system built on Set Top Boxes Visual Studio 1-5 minutes New current project we are sticking as close as possible to the google coding standards. Old/main project we have some outdated standards ~10years old. When there is too much logic the the function and it can be easily separated. Code review using gerrit. 20 60 20 Creative, build something that has an end functionality. Testing can be tedious and maintainablity of tests is sometimes difficult. Write the tests before implementation. Never tried TDD, we are starting a new project (~2months old) it would be the perfect time to learn and implement a more efficent method of developing. Show
0 3 c Python None. Besides work I typically enjoy programming quad-copters and designing control systems. Currently I use several test tracks There are several different targets depending on the region and Visual studio code, putty, build server. 5-30 minutes MMT coding standard. Typically if a function is larger than 100 lines of code or the function has become too complex with more than a single exit. Our code reviews are done via gerrit 30 30 40 Programming is always a challange and continuous stream of problem solving. The development enviroment may not always be ideal(particularly for c) which can result in a lot of complexity and difficutly to acheive a very simple task. TDD is a short development cycle where test cases are written first and the code is improved to pass the tests. I wish to improve my workflow and be able to create more reliable code. Show
9 10 C C++ google test, custom C component tests I am a software developer. Most of my experience has been working on embedded C and very recently C++. Have worked for companies that develop middleware for set top boxes like Sky in Europe (similar to Comcast in US). Have spent a few years in-between as a fullstack integrator. Recently spending a lot time in interface designing type activities with the architects. unit tests, integration tests and some times fullstack Set top box We use a whole lot of custom tools mostly lunix based. Git for version control, gerrit for review, jenkins for dev-ops Under 10 seconds Mostly follow google coding standards with a few exceptions It depends on the use. If its something like a thread function which is handling 20 messages it will be long yet difficult to shrink. On the other hand there could be one thats only 10 lines and 5 lines are repeated in 10 other places, thats long use gerrit 30 50 20 Visualising how things work, writing code make it work writing tests unfortunately Not much, just the name Test Driven Development Want to know more than just the name. Its recommended by a lot of colleagues, want to understand how it can help me and my team Show
0 6 c/c++ Python, Haskell CUnit Finished MSc in Computer Science at Chalmers last year, been working as an embedded software engineer. I like playing video games and breaking them ;) Test at module/component/multi-component levels. Embedded linux Coverity static analysis Vim Neoclide/coc (clang completion) vim ccls 1-5 minutes Permissive to allow for code readability yet there is a structure to follow when concered with certain things. If it performs too many computations which could be defined externally. We use gerrit - code from a team member is viewed by all, but only 1 person is required for sign-off. A bot also performs checks on the change. 10 55 35 The feeling I get when I get to implement a design, and also the feeling I get when I find a illusive bug. idk :| test-driven-development: writing tests to define acceptance criteria before hand. I came across your website a year ago when I was working at a different company where testing was all done manually, ugh months and months of filling in test steps and results in a excel sheet. Show
1 1 C++ Python and JavaScript 0 Scrum Master coming in from a Lean health administration background N/a N/a N/a 1-5 minutes N/a N/a N/a N/a N/a N/a Problem Solving learning curve blurs the lines of QA and development Want to learn TDD Show
1 10 C Python CppUTest Haven't done much programming the last few years. Starting to get more involved in it. I have just started to unit test. Very new. Previously manual. Embedded processors CppUTest, IAR 11-30 seconds Internal When there is repetition and not targeted Mostly line by line, peer review. 30 30 40 When it works Debugging someone else's code Just started working with it Starting to get more involved in firmware development. TDD seems like it will save time and catch edge cases hard to implement on target. Show
3 10 c python none Ten years developing firmware. Five years developing hardware. I've spent the last five years as an engineering manager. I haven't spent much time programming over the last ten years. Evaluating this course for my team. functional tests Gas detectors using STM-ARM cores and SiLabs 8051s Eclipse based or IAR 31-60 seconds Our coding standard is based heavily on Michael Barr's coding standard: https://barrgroup.com/embedded-systems/books/embedded-c-coding-standard Serves more than one purpose. Every member of the team reviews code and makes comments on compliance with the standard and business logic. 30 30 40 Seeing something come to life. Constant feature creep. I understand the concept. To gain deeper understanding of TDD which allow me to justify sending the rest of my team to training. Show
3 7 Ruby,Java Go, React, Python PHP, Flutter go_test, rspec, pytest, php_unit junit, flutter_test cucumebr, cypress, selenium I teach XP practices to client. ATDD, TDD, Exploring manual test. web app, ios-app jet brain IDEs. Under 10 seconds make it work, make it right, make it fast. static analyze see the code quality viewer face2face every 1 hour 50 40 10 fun no value software one of working style of developing. including test and design. I usually work by TDD. then I'd like to know how to apply embedded software. example learn good mocking practice. Show
3 15 C C++ & Python None Debug later Embedded C running either bare metal or FreeRTOS on an MSP430 IAR and CCS 11-30 seconds No formalized or documented standard. Programmer has freedom to write the code as they see fit using some best practices. When it starts to do more than a small, well-defined task. Peer review 30 30 40 Working though the logic of creating and designing a system and seeing it perform as intended. Finding hidden bugs and edge cases. It's a process to build code through automated tests. The tests check each path of a decision tree, verify memory allocation, as well as force the writer to think through the function's external interface. It also keeps the functions targeted. I heard about TDD from a co-worker whose been using it on his own developments. I see the benefits to it and want to learn more. Show
5 3 C/C++ Python cpputest I am originally a hardware engineer, turned software engineer to accomplish work tasks. Starting to use cpputest, but sometimes difficult. Our main way of testing is flashing to the target unit and running automated tests with real stimulus. It takes tens of minutes to hours to complete a test. ST Micro, low power, arm IAR 1-5 minutes Starting to use industry standards, such as MISRA C/C++, but not widely accepted I don't None 3 2 5 I like developing new software and testing software to its limits. Being stuck with legacy code with a bug I can't find. I know it can help get debug time down from 50% and possible push that towards testing and developing time. It will also allow me to modify legacy code with more confidence as test case can be developed around them. I want to write better software. Show
15 12 C C++, Matlab Vector Software, Custom I enjoy the mountains of NM through mountain biking and skiing and my family (wife and 2 kids) keeps me busy. Jenkins Continuous Integration, bench top and functionality testing STM32L4+ microcontroller with various communications interfaces and SAM4L microcontroller RF system IAR Embedded Workbench 1-5 minutes Ad-hoc When it does more than one thing and the actions are unrelated Informal 50 25 25 The feeling of accomplishment when you start with just ideas and slowly implement functionality to make a whole system work. I also like how you get to create distinct functions and then put them together. When I have to fight the development environment, debugger, etc. I also don't like when I have a vague requirement on what I'm being told to do and have to guess at what the customer or product owner want Not much, I've heard it's a paradigm shift in that you think/write the tests first before writing the software I have an interest in this and it's corporate provided training which makes it easy to take and pay for. I also like the Agile methodology and am interested in seeing how TDD fits with that. Show
4 11 C Python, C++, Java, etc - wide not deep. None I enjoy running, board games, and watching big 12 sports. On the fly, how it seems appropriate at the time. (hoping to improve this :) ) Low power custom embedded board (variety of ARM Cortex-M micro controllers) IAR EW, Ozone 11-30 seconds Flexible - quick turn prototyping group, some efforts made in recent years to introduce a coding standard, generally run through lint and correct egregious errors only. Can't view it (100% zoom...) all at once. Fairly informal, conference room, go function by function. 30 30 40 I like using the simple set of tools a language provides to slowly plan out and solve a larger problem. The errors I inject. Some embedded debugging tools can be a pain to get actually working - but they are also needed due to errors I inject. It stands for test driven development. To change my current quick and dirty (probably ineffective) testing habits, replacing them with a methodical system. Show
4 4 c Python None I am searching for the meaning of life. We build test in python and run the in Jenkins. Hard to cover all corner cases when building the test. Our CI systems is something like this: get code from repo, compile code, lint code, flash hardware with new code, run test then email results to developers. I would rather not say. IAR,QP, Git, and Vault 1-5 minutes We use PC Lint which we run on Jenkins. When we are trying to do more than the original intent of the function. When software gets to a point we feel at a good state, we schedule a code review and invite our peers. We try to give people plenty of time review. We highlight pieces of code that we might have questions about ourselves so that others can help. 25 50 25 It's fun. You are creating something! Pointers and having to debug. lol Not much. I want to learn about TDD and how it can help me improve the software I deliver. Show
2 8 C++, C Python, C#, Java CppUTest, Ceedling Originally from New Jersey. Collection of unit test cases, tested on development boards. ARM Cortex M3/4 microcontrollers, low-power environments, baremetal software GCC, Cygwin, Eclipse, IAR 31-60 seconds Very similar to the Barr Group Embedded C standard, with some updates to better work with our team. When it's single purpose isn't clear, or can't be read without scrolling. Code reviews aren't often used, getting started using Gitlab's review feature. 30% 30% 40% Solving unique problems on systems that impact the real world. Setting up development environments. TDD provides a better software development methodology to develop testable code for high reliability environments. TDD seems like it will make me and the team better software developers. TDD is a positive trend for the software development community. Show
3 15 C sometimes assembly, Python, C# only heard about Unity and Google Test but have not used them; Unity seems like a good fit since it does not appear to require C++ but not clear why not simply to use our usual Design-by-Contract constructs (e.g. ASSERT) to create unit tests n/a end-to-end testing using CI embedded C for micro-controllers only, cannot use C++ due to project restrictions (not even for unit testing) IDE 31-60 seconds different ones, including Barr only read about different approaches on the internet but don't have a clear criteria that I apply consistently GitLab Merge Requests or Fagan depending on project type 60 10 30 problem solving and seeing things "work" on the target hardware debugging intermittent/hard-to-reproduce problems that only show up after firmware runs for days on target platform read a few articles and watched videos; don't understand how to assess when there are "enough" unit tests since probably not all code variations can be covered (heard about Modified Condition/Decision Coverage but don't know how to apply properly) learn TDD for C-only projects; understand how to apply TDD to firmware that needs to run on hardware (e.g. TDD for DMA SPI driver that only has problems after the MPU comes out of a low-power state) Show
4 10 python, c/c++ java, gradle, matlab, python unittest, cpputest I like programming and learning using continuous integration mcu gcc, make, iar, 5-30 minutes N/A if I have to scroll down to read the whole function what are those? 60 20 20 seeing it work in action documenting it. I read the book and have written unittest in python Improve delivering quality software Show
1 8 C++ Python I perform without the aid of a harness or safety net. I still can't find my normal toilet paper. I write some short functional tests and try to capture the different use cases. n/a IAR, Eclipse. 31-60 seconds Just get it done. Refactor later. Structurally, the function is too long when there are 3 or more nested conditionals or loops. However, another way to think of it may be that it takes more than a few seconds to look at it and understand what's going on. n/a 50 25 25 I enjoy the end result when a device works as intended. I wish customers always knew exactly what they wanted and what is within reason. Changing requirements/priorities and the entire area of customer management is the worst. tdd is short for test driven development. Don't you know what's going on outside? Show
2 30 lolcode c/c++, python, bash, xjtag this space intentionally left blank in production i have different targets vi 1-5 minutes do we have one? i put everything in main does it compile? 1 1 98 getting something working when it never does work at first nothing i was "encouraged" to Show
17 15 C C#, Matlab, Python Starting to work with Ceedling enyoy playing ice hockey breakpoint debugging instrumentation test gpio Watch windows Memory windows Cypress PSoC 5LP, PSoC 6, Microchip PIC18s, dsPics, SAME family, other processors over the years. IDEs, Programmer/Debuggers, Logic Analyzers 1-5 minutes team defined, based off of Barr Group's published coding standard when i have to rotate my monitor 90 degrees! seldom, working to incorporate into new designs 20 30 50 Solving technical challenges tough question, pass! just scratching the surface, reading through TDD for Embedded C, applying an iterative test process early on, preferably automated. Thought not quite there! Improved software development velocity, decrease expensive debugging sessions. Reduce the reliance on breakpoint debugging. Show
0.5 3 C Matlab, LabView, Python. I've been trying out Ceedling. I'm an early career EE. I have done a fair amount of circuit design and hands-on lab work. My new position is almost entirely embedded software focused. I definitely have a lot to learn, and would like to be able to work faster. Before ceedling I'd often test code using print statements or toggle pins if testing on hardware. For timing critical testing I might throw test data into an array and print it all at the end. But that took a bit of extra work and system overhead. I really like Notepad++ 11-30 seconds My team uses a modified version of the Barr group's Embedded C Coding Standard. We kept most of the rules with technical rational and modified the more subjective stuff. I try to build functions that do only one thing. But, that is easier said than done, and pinning down what "one thing" really means can be tricky. My team only just formed and hammered out our code standard. We haven't had any code reviews yet, but plan to. 40% 40% 20% I like using logic to solve complex problems. I also really like the results, getting hardware to perform tasks and/or automate processes. It's time consuming and can be somewhat tedious. I've been watching Bob Martin's Clean Code videos and have started using it with Ceedling. It seems like a good practice and I'd like to develop a proficiency using it. As my software team has just formed we decided since we are just starting out we might as well try to establish good habits from the start. Show
6 14 C C++/Bash/Python VHDL/Verilog QSPY I also have experience doing FPGA and linux kernel module development. Testing scripts which attach to the target via debug UART. These use python and Q_SPY Cortex M0/M3/M4 and Xilinx Zynq IAR/GCC SEGGER JTrace/Ozone for tracing 11-30 seconds A coding standard exists, but it's loosely adhered to. When it spans longer than the length of my portrait monitor or is littered with really long switch statements Depending on the speed of the project, code reviews and architecture meetings are held with varying frequency. 20 30 50 Watching my code cause a desired effect on the target hardware. Hunting down really obscure (rare) memory corruption bugs. Co-Workers I have a lighter project load during this apocalypse. Show
23 30 C/C++ Python Custom, QUTest, Rational Test Realtime I like mechanical keyboards Unit test, system-level test ARM Cortex M4/A5/A9, TI MSP430, TI DSP IAR, gcc 1-5 minutes Internal lots of mouse wheel scrolling Sparse ? ? ? It's fun to build something that helps someone / solves their problem Tight schedules / rush resulting in product with questionable quality / reliability Test cases are written before code Lots of new developers in my department. Want them to do software engineering not just programming and create better products in less time. Show
8 40 C++ C, Matlab, C#, F# I write what I need. I started out doing embedded code in C and assembler. I do lots of analysis code in Matlab and desktop apps in C#. I'm now getting back into doing embedded code. Most important is to design code as separate testable modules. I can then write a test program that pumps data through the modules and checks the outputs. ARM processor, battery powered, lots of sensors, radio communications. IAR (maybe Green Hills also) 1-5 minutes I strive for correctness, test-ability, and readability. I try to use best practices for each language. When there is excessive scrolling to figure out what it's doing. It's not necessarily dependent on the number of lines. Project dependent. Some have none. Others have full up reviews in TeamForge + Gerrit. 70w/design 20 10 It's both creative and logical. It produces tools that increase our productivity and quality of our work. I work in science and engineering software, so I don't have anything to complain about. If I had to work on web sites, then that would be another story. Tests are written first, then code modules to pass the tests. Our group is trying to do things better. Show
8 17 C Python, C++, sh/bash None-- create by hand I have a collection of items from Pea Soup Andersen's restaurants/gift shops Manual unit tests; full unit testing over time, sometimes with the aid of continuous integration with the embedded systems in the loop Various custom boards with mostly various ARM Cortex-M3/M4-based microcontrollers; FreeRTOS, bare metal, or QP, depending on project; mostly C, but sometimes C++ IAR or GCC 11-30 seconds We have one, but it does not seem universally followed; Different projects/leads in our group place different levels of importance on the coding standard Contains multiple unrelated functionality or too repetitive Usually small sections get reviewed line-by-line 10% 60% 30% Sense of accomplishment and creating something new Tool issues, differing coding style (beyond just what standards cover), dealing with legacy code Tests/testing are developed along with the actual code TDD seemed like something, since already offered, I should at least be exposed to, since at least in theory, it seems like a good idea. I will decide whether it is something I actually want to integrate into my development process. Show
5 15 Java Python, c++ pytest, mocha, gtest, junit I like gardening. unit tests, functional tests, performance tests c++, python xcode, visual studio, pycharm etc. 31-60 seconds Standards followed by programming language More than 25 - 30 lines. Each code change is reviewed by reviewers of that code area. 70 15 15 Code can help users perform some tasks/activities and make their life easier. NA I have taken some trainings on TDD long time back (5+ years). To learn more/refresh about TDD. Show
3 25 C++ C#, JavaScript, HTML, and (a tiny bit of) Python uTest (barely), nTest (but it's been years) I like to cook. Italian cuisine is my favorite but I've been experimenting with French and Thai a bit. I write tons of runtime asserts, step through the code, then manual verification. This is followed up with black box testing. It's a cross platform (Windows, Mac, iOS, and Android) video editor. I work on the Win and Mac UI and a library that's shared across all platforms. Visual Studio, Xcode 1-5 minutes It's mostly about how to name variables and functions. Not a lot about logical structure. When it takes an average programmer more than ten minutes to understand how it does its thing. When it does a bunch of disparate things. We use browser-based tool called Code Collaborator. It's not a good tool, and is downright hostile for reviews that end up having multiple revisions to any file. 40 30 30 Making beautiful new things is great. Solving real problems that real people face. Coming at old problems from new angles. Balancing multiple competing factors. Performance optimization. Changing requirements. Creating documentation. Most meetings. Poorly written code. Diagnosing bugs, especially in unfamiliar and poorly written code. Not much beyond you're meant to write tests before writing the code to be tested. Several people I know are quite enthusiastic about it being The One True Way. The boss is making me do it :) Show
1 20 Java C++, kotlin JUnit i am an android developer working in Java but have worked in C++ bit while ago. I am doing some C++ work now for the last 3-6 months. manual app testing, Unit Testing Rush Android application Android Studio, Perforce, gradle 5-30 minutes using internal guidelines, fairly good lines of code, number of things it is doing inside the body, logical name vs functionality our reviews are fairly good 30 10 60 develop new possibilities long cycles for small change writing tests for requirements before implementing functionality suggested by management Show
13 35 c/c++ python not much, looked at UMock and scripting recently I have been a developer all these years. blackbox Win/Mac VisualStudio, XCode 1-5 minutes I follow whatever the coding style the team prefer. when it tries to achieve more than one logical task it's required 60 10 30 write code, debug code testing read about it, team tried about it briefly, but no one really like it organization push development adopting TDD Show
21 26 Objective-C C++, C, Swift, Lua, Ruby Ruby's "RSpec" (but not extensively). Prior to working here, I worked at a small Design of Experiments training company, writing statistical software. Most testing is done by walkthroughs of the actual app (no formal testing infrastructure). Since my work has a strong focus on custom UI implementation, and less focus on data models or computational engines, unit tests have less immediate relevance, and I haven't yet seen a UI testing framework that was worth the hassle. iOS 12 and 13, both compact and regular layout. I work on a cross platform app team (Mac/Win/Android/iOS); my work is almost exclusively in iOS, though I do deal with much code that is shared between the platforms. Xcode, Perforce (soon to be git), macOS command line. Python scripts which generate the Xcode projects. Collaborator by SmartBear for code reviews. 1-5 minutes Don't understand the question. When I can't clearly describe what it does in a sentence. All submission are reviewed by at least one other person, using Collaborator (by SmartBear). Check in comments must include the review URL. 30 10 60 Opportunity for creativity in designing object responsibilities and interactions. Optimizing for performance. Debugging semi-reproducible (or not reproducible) bugs. If I can consistently reproduce the bug, I'm 90% of the way to fixing it. I've dabbled with it, and enjoy what little training I got on it (in Ruby), but I don't believe our current work environment (C++ very large code base) is as amenable to it as a small scripting project. Was asked by management. Not my first preference. My opinion: the company needs to increase the resourcing/infrastructure for automated testing before asking developers to just "write more tests". Show
19 19 C Assembly J-links and St-link for debug Embedded designer for lighting and now working on motorizes shade controls mainly use target PCBA build and use with debug interface based on product features target is product PCBA with debug interface SWD IRA and SEGGER STUDIO 11-30 seconds Follow company SOP as coding standard if it move out side one full screen shot Bitbucket code review with Pull request 30% 40% 30% kind and enjoyable as you can confirm results by myself quickly and make changes if there is need. Doing same functions for many products without reusing it over and over again so that reduce test/debug time nothing much To learn on what are the test methods and process use by others witch and standards in the firmware industry. Show
3 15 Java Decades ago: Pascal, FORTRAN, C, Ada, 68000 assembler, 80286 assembler, Python, bash JUnit Friend of Bas and Craig. Rusty at coding. Established https://fansofless.com . n/a n/a I used to use emacs, ant, Eclipse. I started learning IntelliJ. 11-30 seconds n/a When I can't understand it after a few minutes -- typically a page, though I prefer shorter. n/a 0 0 0 Back when I did it, it was fun to see something working and be able to change it. I enjoyed seeing it go live. I always seem to struggle with getting third party libraries and tools to work. I'm also not crazy about bad code. Some experience doing it in Java. Often it was not pure TDD. I'm feeling kind of useless as a Scrum trainer and wondering if it's too late for me to go back to a normal programming job. Show
5 8 C N/A N/A From Syracuse, NY. Avoiding snow by living in San Diego. Functional testing. Write a bunch of code to do something, then test all the code as a whole. Nordic nRF52 platforms ST platforms Atmel platforms Sensors, switches, relays 802.15.4 (BLE and 6Lo) VS Code, IAR, Sublime 31-60 seconds Legrand coding standards When I get to the bottom and forget what happens up top Peer reviews in Bitbucket 60 20 20 Developing unique ways to solve problems. Making LEDs blink. Invisible problems. Hard faults. Memory allocation. Test (sometimes). Communication protocols. Nothing :( I want to write more robust code! Show
20 15 C Python None I live in San Diego Regression/Unit Contiki based firmware running on Nordic NRF52 built using Gcc for Commercial Lighting Control applications IAR Visual Studio Segger Embedded Studio Segger j-link 1-2 hours In-house When my fingers get tired. Peer Review though BitBucket Pull Requests requiring at least 2-3 sign-off depending on the code base 33 33 34 Creating solutions to problems that are new Having to re-write code Not much, writing units tests is (currently) not a requirement. I would like to help myself (and team) get better at creating sustainable code. Show
1 5 C++ C, python embUnit, robot framework for black box testing. (a little bit of Catch2) I worked 4 years on the embedded software for a stm32f4. Right now I am working for 6 months on a nrf52 based sensor platform. I have a degree in micro electronics engineering. We manual test the code with gdb and evaluate the quality of the data. For logic we use small catch2 based tests that only run on development laptops so not on the target. A build pipeline checks if the code compiles It's a nrf52 with no uart clang-format, gcc, sonarcloud (for static code analysis), vim, jlink, gdb, cppcheck 31-60 seconds It depends on the person who reviews/writes the code. clang format needs to be executed. Before pushing you should do a small 1 min recording with a new configuration to check if the chain works. In theory sonarcloud tells us that but for now it's disabled because there are too many errors/warnings At least one person should have a look at the code and mark it as ready for merge in github. 2 3 5 the challenge to create/adopt abstraction that can be used in a clean way in the rest of the code. GDB debugging (in c it was fine but in c++ it's tedious) I saw most of Robert C. Martin clean code videos and read Test-Driven Development with Python and read the first chapters of TDD for embedded C - To better understand what are 'good concepts'/'way of working' to create testable/tested embedded code. - What environment is needed for good (unit)tests (Do they need to run on target? With(out) the RTOS? Show
6 7 C C++ from time to time and I'm starting to use python. Ceedling, started to use pytest for python. In the team the hardware/firmware guy so I also design the schematic and PCB. So coding is only one part of my work. Before reading your book I was writing code, building the code, pushing the code on the target and verifying in debug mode that the code I just wrote was working as intended. After reading your book I started to use ceedling to unit test my code. So now I'm coding and testing my code on the computer and when a bunch of module are ready to work together I to the same as previously but with less step by step debugging and more global verification like verifying the outputs with oscilloscope or logic analyser. I'm currently using STM32F3 and F4 microcontroller families. Eclipse + gcc for arm + openocd. 11-30 seconds I'm using coding style based on the Linux Kernel coding style with some modification to better fit embedded world. When making unit test for a function is too hard I try to reduce the size of the function. We don't have code review as we are a small team. 50 10 40 Adding new functionalities and seeing them working as expected. Debbuging hard to reproduce event which are reported with only few information by tester / customer. The goal is to write test before the functional code. Every code functionality should be requested by test. This allow to find errors at the moment they are introduced and ease their correction. I'm not happy with how many errors I introduce to my code at the moment. I started coding in a TDD way but I'm too slow at it. So when deadlines approached I skip TDD and more errors are found latter. So my goals are: better and faster. Show
2 10 C++ C, python CppUTest, Visual Studio unit test, VectorCast, Parasoft, Quantum leaps QUTest I have mostly worked in safety-critical medical device embedded software. My current project is mostly C++. Before this I was at Illumina, using C. I have an MS in CS from UCSD. My undergrad degree is in Bio-engineering however my first job inspired me to transition to SW development. Quantum leaps QUTest, custom framework for automating on target tests, VectorCast and remaining adhoc/manual tests on legacy code My team develops FW for medical feeding pumps - the project I work on has 2 embedded Stm32L4 MCUs IAR, Visual Studio, Surround SCM/Helix for version control and requirement management, Jira/Confluence for planning/tracking, Quantum Leaps QM for state-machine modeling 1-5 minutes The coding standard was created before I joined: C++. No go-tos/exceptions. Some specifics on naming - Nouns/objects Verbs/functions. We do not use Hungarian notation. Specifics on braces/spacing. If it is trying to do more than 1 thing. Required. We do them every "story" - present company has a longer turn around than I am used to. 80 10 10 I like how collaborative it is. I like the quick turn-around time from creation to test compared to other engineering disciplines. Working with remote teams can make communication challenging. Maintaining legacy code can be challenging when there are no automated tests set up. I have read and use your "TDD for embedded systems" book as a reference. However in practice, only one of my projects followed TDD and that was because it was primarily algorithm implementation (pre-determined golden references for all inputs). My team is not happy with the unit testing approach on other projects. We are trying something new on this one. I want to make sure we are on the right track and get ideas for improvement. Show
0 5 C C++, pyh None EE degree, I am generalist (no specialization). I bounce around between tasks, so I am not writing firmware all time. Code reviews, system testing, pre- deployment testing (code then test) ARM-M, MSP430 IAR 31-60 seconds I have customized the Barr’s Group coding standard. When I have to scroll back up to look something up. The are painful, long, and don’t catch the bugs that matter the most. 20 10 70 I like the problem solving and making electronics due usefully things. debugging close to a deadline. Nothing. I want to develop firmware fast, reduce debugging time, be lest paranoid that a fatal bug is going to make it to deployment. Show
12 15 C I've used C++, python Google test I enjoy collecting vinyl records and I belong to an Olympic weightlifting club. A large part of our code is tested manually as part or a larger system. We're starting to adapt unit testing and a small portion of our code is unit tested. Embedded systems. Gcc, PC simulators, VS code. 1-5 minutes The coding standard is a little hard to follow and seemed to be setup before modern IDEs were available. A function is considered too long when it does one more than one thing. Code reviews are done before every patch is submitted. A developer isn't allowed to review their own patches. 30 30 40 I liked seeing the code/projects I work on end up on devices that are used by customers around the world. I enjoy digging into bugs and trying to solve the issues for our customers. The manual testing process and vague bug reports that are hard to track down to root causes. I know TDD means developing tests first and that more time is spent up front so that less time is spent tracking down issues in the field. We've started to adopt unit testing. I'm interesting in learning new strategies to help with this. Show
2 7 C C#, Python Gtest Recent graduate from software engineering, looking to develop my technical skills in the workplace. We mainly use manual system level testing. We've recently started developing automated unit tests using the Google test suite. Fitness devices. vscode, jenkins 31-60 seconds C standard If a function is performing more than one important action, then it is too long. A function's name should explain what it does, and that is difficult when it does multiple unrelated things. Each commit is reviewed by the team before it can be pushed to any remote branch. 4 2 4 I like the ability to be able to build new things from scratch and the speed at which things can be developed. The time required to debug nested issues. I have only heard from others experiences of TDD, however have never done it myself. I believe a great benefit of TDD is that it forces you to think more about your code design before writing the code, as you need to think of how the tests will run. I want to learn TDD as our company begins to ramp up our testing frameworks. I believe that having a strong understanding of TDD can not only improve our team's testing abilities, but also improve my own coding skills. Show
13 32 C python ctest (Chuck Allison), Unity Test API Wrote open source libraries http://bacnet.sourceforge.net/ and https://github.com/skarg Contributor to Wireshark Using CTest and CI via github, bitbucket, travis, gitlab. Manual validation. Typically ARM microcontrollers, Atmel AVR, PIC Microship, and others, usually bare metal, sometimes with RTOS. Some target systems are Linux or embedded Linux. Some target systems are Windows PC. GCC, Make, IAR, Rowley Crossworks, Segger Embedded Studio, Atmel Studio, STM32 Cube IDE, MPLab X, and others. 1-5 minutes Wrote it based on Westinghouse, Barr Group, Ganssle, Robert Martin Clean Code, and Wireshark. Follow Ganssle Naming Convention. Follow Clean Code principles. When it is beyond my screen height. Pull request or merge request online via bitbucket (or gitlab or github). Typically check for adhering to coding standard, and adhering to high-cohesion low-couple architecture for code placement. 50 25 25 Creative outlet, helping others, calming and enjoyable to write code. Managing changing API for releases in public open source software/firmware I started using TDD for embedded firmware 2000 after reading an article by Chuck Allison. Learn methods of applying TDD to legacy code, particularly separating GUI and other views from the process and presenter. I usually end up re-writing large amounts of code to add TDD. Show
10 20 C C, C++, Python, Cpputest I wrote my first embedded application on a basic stamp module when I was 14. 24 years later I'm still at it! Manual testing mostly. Most target systems are embedded STM32 based devices although it varies from project to project. Mostly Arm Cortex-M processors. A wide range. IAR, KEIL, STM32CubeIDE as the primary toolchains. 31-60 seconds mostly follow Misra-C. Also have a personal style guide designed to make code easy to read and follow format wise. I use a cyclomatic complexity metric tool. I typically keep it to 10 or less but occasionally an 11 or 12 is ok depending on the function. It varies project to project based on the client I am working with. I often have a colleague review code that I write if possible. Many times I'm reviewing client and other developers code. 75 10 15 Design and architecture development. Debugging. Just what I have read in the book. To learn how to improve the way that I test code. Show
3 3 c++ c unity, cpputest I had a TRS-80 and an apple IIe as a kid. Designed/programmed a medical claims entry system using the PCjr. Wrote a children's animated ABCs for the C64. All that was decades ago. Gave up programming to become a mechanical engineer, which I enjoy. 3 years ago I stepped back, part time, into the programming role. I don't. ARM & AVR uCs sublime, GCC, AVRDude, 1-5 minutes Self imposed, following google's style guide for c++ If it takes more than a 'page' of code, or if it takes more than a few minutes to understand what it does. Weekly, peers outside the company, using zoom. 20 30 50 Bringing an idea to life. When things get non-deterministic. I don't mind a good challenge, I hate looking at the same line of code until I realize that the previous programmer forgot to use one more set of parenthesis. I read your book, twice. Did the exercises a few times. Tried to go further but most to the information I found on the web isn't for embedded TDD. I hate debugging code, especially my own. Show
1 8 C/C++ Python, MATLAB GoogleTest, UnitCPP I work with autonomous underwater vehicles to support oceanographic science. combination of printf(...), and running on target and seeing if things break. Some 32-bit micros, a QNX 4.25 based RTOS system, and hopefully soon, a more modern custom linux image. Micro development in NXP Studio (Eclipse-based, uses gcc). QNX development with VS Code IDE, and on-board Watcom 10.6 C/C++ compiler/debugger. 1-5 minutes To my choosing, which is to say my organization doesn't have one. Smell, and if I need to put too many fprintf's inside during development. Boss and I do high-level structure overview, and then go through more thoroughly as we deem necessary. 60 5 35 Creating new deterministic, or provably-stable systems (I do some state estimation & algorithm work). Setting up tool chains, build environments, etc. Easy in theory, harder in practice. Heard about you from Elecia White (I did a show with her and Chris a while back). Learned more about TDD, decided it was a good idea. Show
6 35 Python C++, Java, C#. Very occasionally C. None in C. I've used Catch with C++. I don't really consider myself a C programmer. My first curly-brace language was C++, which I programmed in for many years. I've never needed to build a system in C from scratch, and usually reach for C++ if that's an option. Unit tests where possible, running off target. I've tried using drivers, and test doubles, but found it difficult in C. I'm not normally doing embedded outside of hobby projects. Most of the embedded programming I've done is AVR ATMega based using the gcc-avr toolchain. I've tinkered a bit with STM32. In this context, gcc CLion, CMake. 31-60 seconds n/a When it fulfils more than one purpose without delegating to other functions. Ad hoc. 50 30 20 I enjoy solving difficult problems. Occasionally I'm good at it. Hard to reproduce bugs. Red, green, refactor! I practice TDD when I'm uncertain about the direction I want to take. To learn about how to deliver training over the Internet, with strong curiosity about how the pros do embedded programming. Show
0.5 25 C C++ Java Gtest XUnit Junit I have been a mainframe programmer for a long time before my current job, so I'm used to working with a tool chain that is a couple of decades less "modern" than what most developers are used to. I'm also used to having to spend a substantial amount of time, making very different systems talk to each other. When working from a spec, often there is an official test vector set that can be used for validation. Sometimes there is an alternative implementation for a different piece of hardware that can be used for reference. If neither is the case, Various hardware security modules (HSM's) programmed in C or C++. We develop code in MSVS, but each target has its own proprietary C compiler, usually building in a Linux Docker image. Compiled binaries are then hand-loaded onto the target platform. MSVS IntelliJ 1-5 minutes We have internal coding standard that focuses on correctness and security of our software. I have been part of organizations that spent a lot of time on natural language, but in my opinion that has mostly been a waste, so I much prefer readable code. When I can't see the whole thing in a standard text window, or when the list of parameters contains multiple optionals controlling multiple code paths inside the function. In my opinion, code review is more about sharing knowledge than anything else. You can have great discussions about architecture and style, but it is uncommon for bugs to be found in the review process. 30 50 20 I like the art of imagining something inside my mind, and eventually prove it is logically consistent. I dislike working overtime trying to finish multiple projects with the same deadline. Especially when there is never time to consolidate/refactor an old codebase, but always time patch systems that have not been properly maintained. My experience has been that it works great when using the most modern/mainstream toolchains. When using older tools, it's much more of a chore, and so requires much more discipline to do. I'm new to the team, and some of the other team members have recommended the class. Also, some of the coding standards and development processes adopted by the team are inspired by the course - so it makes sence for me to adopt as well. Show
6 21 C++ C, Ruby, C# CppUnitTest for testing embedded C code.... 10 years Doing embedded SW in a real world with users, step motors, mechanics and other things, which imposes a lot of challenges. I Live North of Copenhagen in small village with my wife and two kids (8,10). Rides mountainbike and is chairman of Trailbuilding group Apllication code: Simple intergration test, but nothing automated. In the present team we are 3 embedded developers and 4 PC application developers. Two testers, one manager, a PO and a SW project manager Platform code: cppunit test of some parts of the code base Embedded system for Food analysis NXP LPC4357 with multiple modules internal CAN communication 480*800 touch display SQLite database Data upload to a Foss Cloud solution Green Hills Multi 7.1.6 compiler and debugger Visaul Studio 2017 as IDE and simulator Ues "Rant" for building 5-30 minutes what???? Nothing formalized and no static check besides the compiler When it is hard to understand and the function uses global/external data. All code is reviewed, since last summer. The current project has run since late 2017 :-/ We use Azure Devops and I am quite happy with the this 30 40 30 Solving problems in a real world with many different and complex inputs Finding bugs, repeating coding erros, finding errors made by others I have read "The Book" (and lost it) Heard several of the embedded.fm podcasts, where you particiate I hate making erros and hate event more finding erros mad by others. I want to spend my time being productive while trying to ship fewer errors. I want like some kind of defensive measure, which helps me in find my own errors early. Show
3 5 C/C++ Python None I have been involved with the algorithm team in my company and I hope someday that I will be competent enough not only to develop software, but to be involved in the algorithm development too. Manual Mostly ARM ATMEL Studio, Keil, MATLAB and Simulink 31-60 seconds NONE. But I'm currently working to adopt the ISO standard for C++ When it does more than one thing The design is reviewed with the software architect. I use sonarCube to verify the code 3/10 2/10 5/10 I like when Software are developed to be SOFT. Easy to change and reusable in different hardware. It takes to much to debug the code. Especially when there is no hardware available to test on. Testing and Development grow together. Write the test first, then write the production code. I have been having a difficulties with testing in general when developing embedded software. It takes so much time to test. Show
2 3 C c, python, c++ Automated tests Looking for improving my software skills. Manually updating impute values for a function and compare the output values with the expected ones. Confidential Eclipse, Keil, IAR 1-5 minutes coding standard of the company when it contains many lines Code review by senior developers 40 20 40 I like learning new software development strategies When the code is too long and not optimized helps to save a lot of time in the testing phase To learn more how to develop a good software. Show
1 30 C/C++ VHDL,PERL,TCL,K-shell,awk haven't - usually build my own I've been doing electronics for 38 years and I have three degrees in EE I incrementally add functionality to the target code base, then submit customer programming to the code under development Printers big and small momentics and GNU compiler chain 1-5 minutes * Use camelcase for variables * name the code module the same as the class described inside * re-use code as much as/whenever possible When it takes up more than a screen or two They're fair but until one has been through a couple it's really hard to do much more than try to write code like everyone else wrote something similar 20 20 60 Seeing stuff work wrangling side effects from tough-to-completely-understand APIs nothing formal my boss asked me to sign up and take it; other folks said it was pretty good. Show
19 >25 C C++ C# Java gtest cpputest aceunit junit We write code both for embedded systems as well as code for communicating with these systems. The code integrates with headers/libraries, and is build using the compiler and toolchain supplied/endorsed by the vendor. The architecture of the code is usually composed of an abstraction layer covering the differences between the various platforms and an application layer that is (should be) neutral to the platform. The tests are partly unit tests and partly functional tests. Unit tests are run off-target. Functional tests on target. Test of algorithmic code and code integrating with the libraries offered by the vendor is tested on target. This approach has been chosen to ensure that differences in endianness, size of basic data types etc are sufficiently covered by tests. The target systems are based on a number of different architectures. In general, debugging support is lacking - commonly reduced to output only when execution of the code returns 'nicely'. Mainly Microsoft Visual Studio, gcc & IntelliJ 5-30 minutes Not formally. We try to avoid pointer arithmetic by writing functions encapsulating that kind of operations. Then we 'only' have to test those function to avoid many of the common pointer & overflow pitfalls. Do I have enough fingers to count the statements? ;-) -more seriously, all statements in a function should be at the same abstraction level and the function should so simple that a) no unit tests are needed or b) unit tests should be simple to write Code is reviewed by a colleague - sometimes by the colleague sole - othertimes as show-and-tell seances. 3/10 3/10 2/10 Making stuff work. Debugging and Maintaining documentation Some prior knowledge - Have tried practicing TDD and have read (parts of) your book "Test-Driven Development for Embedded C" * To get a common language regarding test and code in our team * To get a common understanding on good/bad tests in our team * To refresh on TDD habits Show
10 16 C Java, C++, C# CppUtest, googletest, aceunit I love to make things easier, more efficient and more fun. I like sharing my skills and knowledge and seeing people improve in all areas of life. * TDD unit testing for small well defined functionality. * Using a software implementation of the hardware abstraction layer. Hardware Security Modules of various brands and different CPU architectures with down to 1MB RAM. The same code has to work on all platforms, therefore all code is written in C. Visual Studio, IntelliJ IDEA 5-30 minutes We are in the process of developing some common code guidelines. Before, the primary focus has been on making readable code that clearly signals what is going on. In addition some unwritten rules about how to program defensively. When it is hard to give it a concise name that describes exactly what it does and nothing more. Code reviews should make sure: * The intended task has been done and that nothing is missing * Relevant tests are present * The code is: - Secure and follows guidelines - Easy to understand - In the right place - Better than it was before 70% 20% 10% Solving problems "automatically" or more efficient. Seeing new functionality work, seeing something run faster. That I can make working with something feel good/better. Sometimes you are forced to create solutions that you are not proud of. I did the TDD online course some years ago and have been teaching the rest of the team some of the principles. To refresh my knowledge on TDD and because I want the team to have a common understanding of the principles and values of TDD. Show
4 26 c C, C++, Java, C# AceUnit, CppUnit, Google Test, JUnit Lots of experience in software development. Eager to learn new stuff. Enthusiastic about my work. Automatic unit tests, integration tests and functional tests. Test code mostly in C and C++. Embedded C code on HSM (Hardware Security Module). Focus on security, correct functionality and performance. Visual Studio, IntelliJ IDEA, QT Creator 5-30 minutes Code base is developed over time. Coding standard have some variation througout the code base. If it is hard to see what it does, or it is hard to explain shortly, then it is too long. All code is reviewed by a peer programmer. 40 50 10 Develop a piece of code that has this aura of quality. Maintenance of old code is not as fun as device new functionality. Write test before code. Do small baby steps. Repeat sequence: Make a test, see test fail, write code, see test succeed. A colleague have recomended the course. Show
0.5 6 C C++, Python CppUTest I did the layout/assembly/programming of an alarm clock for a class project that I'm a little too proud of (and I never implemented the actual alarm feature). I'm just starting to use CppUTest and TDD, moving away from the 'Debug later' approach. It has a wide range of peripherals: an LCD, Ethernet, SD card, etc. GCC, GDB, VIM, MPLAB X, Eclipse Under 10 seconds I don't have a specific coding standard. When I get confused by looking at it. I haven't had much experience with code reviews, I've primarily been a solo developer. 40 5 55 Organizing ideas, automation, making something happen on hardware Organizing project files, compiler/linker include management, breaking changes It's based on unit testing, where each function/feature has one or more tests that are run on each build cycle. Focus is placed on writing tests first, then writing only enough production code to make tests pass. I felt that I need to have hardware mocking explained to me, reading the TDD book exposed me to a lot of ideas at once and I need help focusing on what's important. Show
5 6 C++ C Not sure? Keil ULink Pro debug tool? I like coding and music We have a test actor that can work as the sending and receiving end of each code execution. This can be scaled from single events to full features. We leave #ifdef-ed in case we ever need to reverify code that we make changes to. Embedded Atmel microprocessor Keil IDE with the Keil ULink Pro Under 10 seconds Tried to stick closely to the BARR Group Embedded C coding standard Generally when it takes up more than the screen. Our initial code drafts were brought in without much review because of time constraints, we're working on cleaning up now. Anytime we merged new code we used BeyondCompare to see exactly which code has changed. 65% 15% 20% If it breaks or doesn't work I can fix it When code is time dependent so you can't put in breakpoints. Code is broken up into sections that you can independently test? It's one of my employee goals. I want to be more effective at my job and generate easy to read/modular code effectively Show
15 15 C C# none Doing work based on Active Object based OS inspired by Miro Samek's work Progressive debug, usually confirming HW simultaneously as FW, and extending the FW to full feature MCU based RTOS Keil MDK UlinkPro 11-30 seconds In house, consensus styling, but programmatic framework constructs help to reinforce. When it loses semantic clarity within its layer Delta comparison in BeyondCompare with verbal intention walkthrough on each item 30 40 30 Solving problems with powerful tools Library indeterminism It is a formalization of holding both ends of the problem gap together before descending into the implementation My manager made me Show
5 6 C Python None I'm a manager at TTI Functional testing Consumer electronics IAR, Vendor Specific IDEs Under 10 seconds It's based on the Barr coding standard When it doesn't fit on my screen Informal 60 10 30 It's an interesting puzzle Testing Basically the Wikipedia description To learn TDD concepts and determine if it is right for our group Show
1 3 C++ python sometimes CppUTest I'm passionate about aviation and I love coding. I moved from Montreal, Canada to work at Dynon Avionics last year. Using CppUTest Aircraft PFD in C++ running on a raspberry pi VSCode, CMake, Git 1-5 minutes My coding standards are mostly formatting. For example: I prefer snake case, allman formatting. Also, I'm not a fan of the auto keyword. When I notice that I need to search for code I just wrote minutes ago. I put out pull requests when I'm done working on a feature and wait for my coworkers to comment on it. Its the same thing when my other coworkers submit PRs too. 7 1 2 I just love creating and solving problems It's easy to overthink things and spend too much time and energy on something just for the fun of it. - You have to write test for any code that is shipped. - You should write the test first so it fails and then write the code to make it pass. Because my coworkers took it last year when I wasn't an employee yet and they offered me to take it and I said yes. Also, I'm curious to know what this training looks like. Show
0 3 C++ C none Fresh grad, just got my B.S. degree. All programming experience are from HW and projects. Run it and see if it works. linux based eclipse 11-30 seconds Have not established any standards yet. Clean and easy to read? when it does several very different tasks in 1 function Have not done any code reviews yet 30 40 30 Coding it and seeing it work Coding it and seeing it not work and don't know what's wrong. Have to read thousand lines of code without a single comment Test driven development. Pawel says it's a good opportunity, I have no idea what TDD is, and it's for Embedded C/C++ Show
0.1 2 C++ Python Google Test I like artificial intelligence, robotics, working out, and going outdoors I test my code using basic principles of TDD, but I would like to learn more It's a vacuum cleaner robot that runs on an OS based on Linux Yocto Eclipse IDE, Atlassian Stash Under 10 seconds At my company we started the transition to TDD in our new code base When it takes longer than half an hour for someone at the company to understand what that function does We do the code reviews using Atlassian Stash git platform 30 30 40 That there is virtually no limits of what kind of system and functionality can be built It can be tedious to navigate and test large code base, and to also figure out how the code that other people developed works I know that TDD implies writing tests in parallel with the development process. It also encourages cyclic development - that is, write tests for an intended function, write source code for the tests to pass. Then pass the tests and repeat the cycle It's because my manager told me told, and also because I want to learn more about TDD Show
5 34 C C++, Assembly Just custom built solutions Been in Embedded System Development since 1993, but started coding in 7th grade w/ BASIC. Was in Electronics Technology competitions in High School and won state VICA competition as a senior. Undergrad in 1993 from Auburn in Computer Engineering. Mostly functional testing w/ hardware. Occasionally I will write a short test program that will fully exercise inputs of a function, etc. I design Lithium Ion Battery packs for power tools. I also design some tools for use on the packs occasionally. IAR is my preferred compiler and debugger. Also, all the normal EE bench tools, Osc, DMM, etc. Lately been using Parasoft for static analysis. 11-30 seconds We (our EE development department) developed our own coding standard which is a modified version of the one developed by Barr. Our coding standard calls for 100 lines or less. Coding reviews are not "mandated" by our procedures. When we do have them, many times they get caught up in the minute details on a particular portion of code and become less effective. 45 35 20 I like the logical nature of coding. I like coming up with innovative ways to make code smaller and easier to understand/read. It can take a lot of time to develop "good" code. Many times the extra effort taken to make code better is not appreciated by decision makers, etc. Not much. My manager recommended I attend. Probably because he doesn't think I do enough testing. Show
1 25 c python, matlab, vhdl minunit Living near London, worked on industrial and defence projects, mainly on the realisation of Matlab code to embedded c, VHDL on FPGA. Umm.. use a lot of printf, and simulator Most projects on Xilinx ZynqMP SoC, most of them are baremetal, then Linux and VxWorks. gcc, clang, make, Simics, QEMU 11-30 seconds nothing formal, as long as it works.. :< when I cannot read it on my screen (font size: 6) peer review on an ad-hoc basis 20 40 40 when it works as expected, such as LED on and off When it break or need to take ownership of other people's code define test before coding and preform clean up without breaking any test like to learn more and read James' TDD code before Show
3 5 C Python, C++ Unity, xUnit Embedded software engineer for a home appliance company. Fun Fact: Recently spent 6 months on an assignment in China living at our production facility. Purely system testing PIC32 MPLABX 11-30 seconds N/A If it does too many things Completed by a small software team 4 1 5 Building the "brains" of a system. We currently don't implement good software tests Breif introduction through the books "Test Driven Development for Embedded C" and "Dealing with Legacy Code" I believe we don't test our code well enough. I'm looking to learn more about test methods which will increase quality and confidence in our system. Show
3 9 C Python, C++, ASM, XML and JAVA I have made my own and tried Ceedling I always strive to write the best code for everyone unit testing, and run time testing with hardware embedded 32bit ARM and 8 bit IAR, eclipse, notepad++, visual studios 11-30 seconds we took the barr coding standard and modified it for our company It doesn't fit on the screen, we also have a static analysis tool that will not let you go over 100 lines in a function It is currently up to the engineer of a project to start a review. the are starting to become a requirement 40 30 30 being able to create useful things for anything It can be written in such a way that it is unreadable. testing each function to validate that it works. I tend to work like this We want to see if this will be a good learning experience for our group Show
3 10 C C++ None No thanks! Barely Smart meters Eclipse, use, visualstudio 1-5 minutes We have rules Defined in coding standsrd When there is time to 30 5 65 Making devices go alive Crashing and buggy code Coding technique to test first, debug later I like the concept if getting working code quickly and reduce bugs Show
1.5 4 C Python, MATLAB, Java Ctest, mCRL2 I am an Electronics Engineer with a MSc. in Embedded Systems. When I was studying my degree I discovered my passion for programming and I found in Embedded Systems the perfect topic to do what I like without forgeting my background. We do functional tests with Ctest I develop code for both a Renesas RX65 MCU and the ZON M3 and P3, embedded in a smart meter. I also code for PC. CrossStudio for MAXQ30, IAR Embedded Workbench and Visual Studio Code Under 10 seconds The C style guide from the company and MISRA-C rules. When you already forgot the type of a variable by the time you reach the end of the function. We don't have standarized code reviews 40 40 20 I like that you can solve the same problem in several different and creative ways. I don't like it when it gets repetitive. Nothing The company is giving us the chance to do it, and I think it is a great opportunity to learn how to perform robust testing. It can save a lot of time and it can help to gain confidence on the code you write. Show
1 10 C C++, Python, JAVA, PHP, C#, Assembly, JS and others. Cppunit, Google Test I am a person who enjoys understanding every aspect of the technology. I like also sports but as I have very few free time I usually go to the gym. I try to be proactive and I never give up once a problem comes up. Good question... In every company I have worked for, testion is a recurrent word that appears but, because of the tight delivery times the testing has been always avoided. Here, in ACLARA, our team leader is trying to change this. I had the chance to use CPPTEST but not in production. Only about one? Right now the Renesas IC is a bit unknown. I now it is a 32 bits system, its endianess, some aspects of its configuration using its registers, peripherals... But all this, or most of all, is handled using a HAL layer. Here in ACLARA we use IAR compiler for the target and MinGW for the tests using CMAKE to handle the tests and to build each of them. I like to code using vim (using cygwin now, because the use of Windows is mandatory) or VS CODE. 5-30 minutes For testing, it should take just a few minutes (I am not currently using the CMAKE testing environment that is being used) I try to use the cyclomatic complexity as metric. I try to have only one return point if it is possible. Besides, if I think the function is complex I try to break it down just thinking a bit There are not code reviews right now. I have worked before using pair programming method and it worked well. 10 60 30 Everything. I like how developing SW helps you to think in a different way. Finding a solution to a problem or implementing a feature makes me feel good as I see the code working. I like to find the best way to reach to a solution. Sometimes you cannot understand everything. I don't like to have blind points... Because, usually those points turn out into serious problems. Just some theory. I think that is pretty hard to use it, or use it well, with the preassure and tight deadlines we have in our sector. But I am willing to see it being applied just to grant that our code is developed properly. I want to learn how to organize and reach to our goals in a better way. I have been following Barr Group for years and I think I could learn a lot from your trainigs. That is why I recommended Barr Group's trainings to the company. Show
2.8 4 C Java, Matlab/Octave, Python We have used CMAKE with mingw32 for genereting unit test I am very curious, always willing to learn new things that can make me grown, not only as an engineer, but also as a person. I try to make new functionalities as isolated as possible so that we can then make unit testing on them. Thanks to Cmake we are able to launch our libraries and check if new changes in code have broken other modules. We make Smart meters => embedded system IAR embedded, Cmake, mingw 5-30 minutes We have a document describing our coding standard. They can variate a bit between projects but the idea is to have the same in future work When it has many lines and you have to scroll. When you see that some functionalities can be extracted as other functions. I try reviewing every little time what I am coding. Performing unit test helps. 30 20 50 I like "the creation of something". The feeling when you have started from something that was not even existing and then you start seeing how it gets "live". When you get stuck with long/boring repetitive task. (Sometimes you can turn this into an entertaining task, making a program to do those repetitive and boring tasks ;) ) I know little. We had no TDD a year a got and we are in the process of introducing it. As far as I know, it consist of developing using a different approach where you program smaller functions (isolating functionalities) to test them correctly. As I said, we have started with TDD not long time ago. I want to attend it so that we can learn more, see what we are doing wrong, what should we change, new approaches, etc. Show
6 6 C python, perl, ... IAR Under 10 seconds More than 100 lines 2 3 5 Show
2 3 C Python DK/DA I am a telecommunication engineer, working as a junior firmware engineer. At university and in my previous work I used to program FPGAs using VHDL. I have been programming smart meters since I joined this company. PC testing and testing in target device. Renesas microcontroller and ZON P3S IAR EW for Renesas and CrossStudio for MAXQ30 5-30 minutes We have a coding standar defined for all Smart Meters division, based on Barr Group standard. When it has more than one objective. DK/DA 30% 50% 20% I like doing things work properly. Working with slow develpment tools. DK/DA To learn and improve my software developing skills Show
1 21 C Python Bash Shell CTest Home made frameworks I've been programming for 21 years and I love it although nowadays I spend more time helping Junior programmer to grow and to do things in the right way or at least avoiding classical pitfalls. Creating tests on PC. I usually create single unit tests (when possible) and sometimes I create more complex test that involves more than one component and tests complex behaviours (entire module). This forces me to abstract hardware pieces and let me create single components(C modules) that works indendently each other. This also allow me to debug on a PC that is much easer than the embedded system. Actually is a Renesas Chip (Rx651). Its a 32bits CPU at 120Mhz with 1.5MB of internal Flash, 640KB of RAM and 16MB of external Flash. IAR embedded workbench (forced by company policy) VIM as my favorite editor 5-30 minutes We have some rules inherited/copied from some standard (Barr group,I think). Appart from this we have MISRA-C enabled in IAR IDE but we disable lot options. For me a page of code begins to annoy me. We seldom perform code reviews. 3 6 1 It's a funny work!!!, I love create products that works and I love solve technical problems. Work with slow/wrong tools/build systems. Nothing at all appart from what I can deduct from the name Because my boss wants we improve our work quality and I also think it's good for us. Show
One One C Python None I am a junior programmer and predisposed to learn good code practices! :) PC and platform testing. Smart energy meters. Visual Studio Code IAR EW for Renesas 5-30 minutes Aclara's proprietary standard One function should have responsibility over a single part of the functionality provided by the software. dk-da 20% 40% 40% When firmware works properly, it is really rewarding Dealing with frustration when bugs appear Unit testing is one of the strongest pillar when talking about maintainable and good quality code. Once you start working in a business do a good quality job or simply do not do it. I like doing good quality job. Show
1,5 1,5 C C++ None I am a junior programmer and I am ready to learn better coding practices. PC testing and in the hardware directly Electric meters IAR Embedded Workbench IDE Visual Studio Code 5-30 minutes I use the same coding standard as it is used in the code I am programming When it does more than an action I do not know what is this 40% 30% 30% It is very rewarding when the program does what you want It can be a bit frustrating It is more important to desing a good test than to code fast I think it is neccesary to know TDD to be a good programmer Show
0 3 C Matlab in the past None I am a telecommunications engineer, I worked for 9 years in a research group at University of Deusto, part of it developing image processing software in Matlab, and the last 2 years programming applications for embedded systems. Recently I joined this company, and I'm enthusiastic to become and expert in embedded coding Manually, debugging and checking that the firmware acts as it's supposed to do. I develop libraries and code mainly for ZON P3S and a Renesas microcontroller, but also for PC CrossStudio for MAXQ30, IAR, Visual Studio Code Under 10 seconds I use a standard based on Barr Group Standard If it takes too many lines of code and it can be separated in functions by functionality I don't have any 30 20 50 All the process, from the design based on the needs of the project, implementing it in the target device, understanding how the microcontroller works and executes the program, and making a robust and clean code The learning curve, sometimes to steep and frustrating Just a general idea, that it's a methodology in which you start designing the tests first, and continue deeloping the software in order to pass those tests. In this way, anything that is added to the code is continuously checked and tested I want to learn this technique to be a better programmer. I have been wanting to have this type of training since I started to follow Barr Group, so I'm happy I got the opportunity. Show
6 27 C python, C# none I have been developing embedded systems as a firmware development engineer (C and assembler) for 27 years. I have experience in firmware development and also in wireless communications, especially in GSM/GPRS. design , write and later test the small pieces of code written Renesas RX651 MCU. Threadx RTOS IAR embedded workbench 1-5 minutes We have an internal document with a selection of rules to write C code based of one by Barr Group when I can not follow what the function makes We do not have code reviews 30 50 20 I like the creative part of developing projects get old firmware and dive into it to find bugs I have started read the TDD for embedded C book I'm interested in improving my C development skills Show
0 5 C C++, C#, java Tessy with jenkins I've been working on developing safety related SW and as the developer could not test his own code other people was in charge of doing it. So I knew more or less how they did it but never created any test. I haven't been long enough in this company to start testing my code. But as far as I know ADO pipelines are used to execute the unit tests. Renesas RX IAR, visual studio, eclipse 5-30 minutes Company coding standards based on MISRA-C rules. It is stablished in the company coding rules. But personally I try them to have less than 20 lines if possible Not yer done in the actual company. But before I have used code collaborator to review the code of my colleges and my colleges reviewed my code with it. 5 0 5 Is not a mechanical work, every task is different so you can hardly get bored in software development. Sometimes it consumes a lot of time to solve a problem that at the beginning didn't look such a problem. Not much, if I'm not mistaken the procces consist on creating and executing the tests first and developing after if needed. The company has offer to do it and it looks interesting Show
6 15 C C++, Perl, Python None I had my first computer in 1988, when I was 9. It was an Amstrad CPC 6128. I started to write small programs in BASIC for it. Since then, programming has been one of my hobbies. Functional testing. 32 bit microcontroller. 640 KB RAM. 1.5 MB Flash. IAR Embedded workbench 1-5 minutes We use a standard based on "Barr Group Embedded C Coding Standard" When I have to scroll to read the whole function. We don't do code reviews regularly. 50 25 25 I like to understand how things works. I hate the changes in the requirements. Nothing. I'm curious about how TDD works and how it can be used in embededd systems. Show
1.5 6.5 C/C++ Python, Java TDD I am an early career embedded software engineer who is motivated to learn more and become more effective in my role. Depending on the project we employ TDD or just test different areas of code via CLI commands and debug from there. ARM microcontrollers for the most part. IAR Embedded Workbench, Eclipse, Simplicity Studio, git, Jira, gitlab 31-60 seconds We have a document for our group on various aspects of our coding standard detailing naming conventions for variables, comments formats, the version of C we try to use, etc. If it exceeds 50-100 lines or if it tries to accomplish too much and can be broken down into smaller sub-functions to make it more readable. We have coding reviews typically. They vary from project to project, some are very detailed and the whole team reviews added features, others only require very little review. 30 40 30 I like the challenge of figuring out novel ways to accomplish problems or learning a new way to do something I previously new. Debugging issues sometimes, merging code with other areas of code, version mismatch issues. I know that it involves developing test cases for your code to pass and to then write code that satisfies those test conditions. I want to learn more about this so that on future and current projects I can employ it and have it benefit myself and my team during our development process. Show
2 10 C C++ Python Java HTML/CSS/Javascript In college we used Google Unit Tests briefly After / alongside my engineering career I want to be a professor. Basic unit tests for Python, static anaylsis tools for C. Primarily ARM platforms with a host of peripherals, something like an EFM32 or EFR32, as well as some FPGAs with hardcores like the Zynq. VIM+GCC (sorry) IAR 1-5 minutes I (try) to spend most of my time on a whiteboard planning out before I start to work. Much of this time is spent hunting down what the current code does. When you can't describe the work it does in more than a sentence or two. I've pushed for some more formal review processes on programs to leverage our on-site Gitlab. So, an issue tracker is created as a work order, a merge request is put in and tracked by an engineer. Two other engineers have to review and approve 30 20 50 The planning and architecture phase. Understanding a design that isn't there, left by an engineer who has poor communication skills. It's going to make me handsome and solve world hunger. (sorry for the delayed flight, hope you're having a good day) Spend time upfront to plan and commit to tests, iteratively run them to make sure your code keeps its promises. I want to follow best principles like these to be a better engineer, and to teach others around me. I like carrying lessons forward. I hope to apply the skillset to other work with Python and C++ as well. Show
5 15 C Vala, Python, C++, Matlab Python's unittest, C++'s mock, GLib's gtestsuite I like experimenting with cooking and nutrition, and seeing its effects on exercise performance. After code is written, I go back and write unit tests to verify functions and conditionals with expected outputs. Most target systems are ARM-based embedded boards, ranging from snapdragon-like systems, to more GPU enabled, like TX2s. Visual Studio Code, valgrind, gdb, vim, gitlab, mattermost 11-30 seconds I follow GLib's coding standard for the most part. I think this could use an update. I think functions should be concentrated on one idea, and either singularly do a single task or aggregate several sub tasks together into a convenience function. If this isn't the case, it is too long. I usually code review other's code, and should spent more time doing this as well as have my own code reviewed. 70 15 15 I like the freedom of expression, and trying to achieve elegance and simplicity, as well as correctness. Tight deadlines. I want to be able to "do things right", but I'm often forced to move onto the next thing quickly. It is a mechanism to thinking about, scope, and design your code with the test written first. The goal is to write a failing test, get it to pass, and refactor to the state wanted. I'm interested in this paradigm in practice to potentially make it a standard for our development teams. Show
0 6 C C++, VHDL, MATLAB, Python, shell scripts 0 Ok In the lab. Embedded: ARMs or microcontrollers Cross-compilers, IDEs, debuggers 31-60 seconds We have one. When the function is trying to do too many things. Gitlab merge requests. 100 100 100 The challenge. Long build times. Start by designing tests that will enforce the requirements and check edge cases. Then write code such that it passes all the tests. Growth as a SW developer. Show
5 7 C/C++ Verilog/VHDL Ceedling I'm starting training for managing a project. Also, I have a golden retriever/yellow lab mix. Full system regression tests ARM (zynq systems) Current project - none 1-5 minutes Current project - none No reason/system Full sw team review (3 people) through gitlab 25% 45% 30% It's like a puzzle, challenging but interesting. Coding is also versatile and can help in variety of ways. Determining how long a task will take. Finding/fixing large bugs on short deadlines. Based on 1 project of experience, I know that it's best to enforce modularity that can be easily tested and integrated with other "modules." Also, tests should be written before the functions and should be run every time there's a change. After chasing bugs in legacy code, I'd like to implement tdd structure for that project. Also, I'm starting to manage a project, and I've seen the benefits of tdd in my other project. Show
10 8 C Vala, Matlab gtester suite I am an electrical engineer by training and I sort of fell into software development out of necessity. unit tests via gtester Most of my work is targeted towards various linux ARM (Cortex A53) processors gcc, gdb, vim, tmux, vscode 31-60 seconds Currently, coding standards are fairly loose. There are definitions for formatting, i.e. spaces/tabs, typographical convention If the function is performing too many things. Code reviews usually consist of reviewing tests and test results. Ensuring that the developed feature is operating as intending. Also reviewing impact, i.e. memory/cpu usage. 70 10 20 I like creating something that performs its intended task, efficiently and accurately. debugging and testing can be tedious I know that TDD involves creating application software based on well defined tests, where the tests are developed first. I am hoping to develop some best practices for embedded development. Show
2 15 C C++, C#, Java, Python None, really. Some PyTest no thanks custom main files that run specific tests for unit testing Embedded devices / micro controllers and microprocessors PyCharm Visual Studio Community Edition Simplicity Studio 5-30 minutes PEP8 When it starts to repeat itself Usually non-existent, possibly one during merge request 30 25 45 Logical Thinking Repetitive Tasks of defining the system over and over Not much, except that it can be powerful and useful. I want my code to have less errors and be able to re-check itself when I make changes. Show
3 7 python C, Matlab None I work on embedded applications, and also data analysis software Unit test functions, or I'll use python or other scripting language to test parameters I mostly work on micro-controllers Simplicity studio, IAR 11-30 seconds Our group at the lab has a coding standard that they publish When I see that there is reusable or redundant code within that function I haven't ad many. The few that I'v had have been one on one where I walk the other person through my code. 5 1 4 Being creative to build and develop new tools Getting the software environment up and running Nothing at all I want to improve my overall embedded coding skills. I haven't had any formal instruction on how to test embedded systems, so this seemed like a really useful class. Show
1 9 C Python, MATLAB JUnit, Ceedling I have some background in Machine Learning and Automated Testing, but my work is mainly focused on Firmware Development. I mostly test my code in small steps at a time. After developing a function, I typically test it immediately. This process continues until a new feature is fully developed, where I then integrate the feature into the system and perform integration testing. Unfortunately, system-level tests become repetitive following this approach due to the incremental nature of integration. I want to develop a better way to perform system-level tests that can check if previous work still functions as intended after integrating each individual new feature into the system. - Mostly IAR Embedded Workbench Under 10 seconds We use an internal coding standard which is heavily based on the Embedded C Coding Standard published by the BARR Group. If it can be divided into smaller functions which have functionality that can be used repeatedly throughout the code, then it is too long. Otherwise, it may be too long due to unnecessary code complexity. This is likely to be determined during review Code reviews start whenever a feature is first prototyped and continue up until it is approved for merging with the codebase. 20 40 40 It's satisfying to see systems that behave according to the code I write. It's very time-consuming, and often times testing and debugging can be stressful. You always start developing code with a failing test and you code just enough to make that test pass. This process is repeated many times while developing a codebase following TDD. My superiors have taken this class before and they recommend it to all junior staff. Show
20+ 20+ C++ Python, C, Julia, Matlab, VHDL Google Test, Python unittest Am an electrical engineer that does a lot of programming, mostly for signal processing and command and control. I like to build an abstraction layer into my code that allows it to run on PC or embedded. Then I build a bunch of test cases that I run through it using a Python script. Output is generally plots of signal processing performance Varies from embedded Linux to FreeRTOS mostly on ARM and x86 platforms. Visual Studio Code, Cmake, Docker, and Atmel Studio. I prefer to develop using Linux. 31-60 seconds I follow a one page standard provided by an associate. I sort of eyeball this... Often there are no code reviews, I am the only person doing software. 20 20 20 I like independent work and figuring out the details to accomplish a task. I like signal processing jobs starting with a simulation and working to deployed code. Poorly defined requirements that change during the project. Hardware that is not suitable for the task. Unrealistic deadlines. Delivery of test code to a customer. Working with difficult people... Nothing I'm working with legacy code for an embedded micro-controller that has no unit test strategy. I would like to test parts of it on a PC and I'm looking to learn techniques to apply. Show
6 18 C Python, Matlab, LabView, C++, Java, & Other domain specific. Primarily self-built unit test code. Enjoy the mix of electrical and software skills used in embedded software development. Feature specific unit testing during development. Hardware in the loop testing suite for system software as a whole. Primarily ARM Cortex-Mx platforms. IAR, GCC, Atmel Studio, & Simplicity Studio. 11-30 seconds Internally developed standards based on "Netrino Embedded C Coding Standard" Hard to follow or implements logic for multiple features or multiple parts of a complex feature. Reviews with relevant team members for feature branches before merging with development branch. 30% 30% 40% Finding clean and elegant solutions to problems. Getting to the bottom of troubleshooting exercises. Seeing things you developed doing what they were designed to do. Working with legacy code that was not written efficiently or flexibly enough for it's applied use. Dealing with bugs while working against deadlines when they should have been identified earlier in the process. Developing software with testablility at its core. Incorporating a framework for testing early on and not as an afterthought. I would like to expand my toolbox for embedded software testing and learn the skills to more easily integrate TDD into my projects. I also want to learn to efficiently reduce the number and scope of tests requiring hardware-in-the-loop testing. Show
5 9 C C++, Python, Rust Unity, GTest, Catch2, Doctest I have two rescue dogs: a puggle and a lab mix. Using a combination of CMake and CTest (usually with Catch2) or using ceedling with Unity and FFF ARM Cortex-M microcontroller vim, IAR, cmake, gcc, clang, VS Code Under 10 seconds Our company (for C) uses an adapted Barr Group coding standard. For C++ I tend to use LLVM's style guides and try to follow the ISO CPP Core Guidelines elsewhere. When it takes up more than one page in vim. Different projects use different solutions. Embedded work tends to be using Collaborator, but other projects have used Crucible since it *can* integrate well with JIRA (though often not that well in practice). 20 20 60 I like solving complex problems. For embedded specifically, I like that it has a real, physical impact outside of the computer. All the paper cuts and difficulties that come with writing software that works well and consistently. It's exhausting having to go through 20 searches and try 8 different solutions before finding the vaguely documented solution for your problem. I know that it is a methodology that revolves around writing the test code first, then writing the implementation to satisfy the tests. Strict TDD would require writing test code that fails first, then fix it as simply as possible. I want to improve the software quality of our organization. I've tried using TDD on previous embedded projects but the time required to look up how to do things in C and adapt build systems meant I couldn't do much due to time constraints. Show
5 6 C Python Ceedling Python Unittest Besides the two required intro C programming classes in EE undergrad, I'm a self taught programmer (like many embedded folks?). Ceedling for unit testing as much code as I can on development machine. Integration and system testing for rest of functionality. Usually ARM Cortex-M4's. Sometimes Zynq platforms. IAR EWARM Eclipse 11-30 seconds Based on an older version of Barr Coding standard When it reads poorly... this could be due to too many LOC or inconsistent levels of abstraction within the function. Depends on project, but usually non-existent. When existent, use GitLab merge requests for comments/discussions/etc. 80 80 80 Architecting and even writing the code to be readable and maintainable is an art/craft that's fun to hone. Re-using code from other projects. Read TDD for Embedded C. Applied it to a project that involved a from-scratch rewrite based on an existing project. To have more formal training on the subject. I really like what I've been able to gain from my own reading but wanted to go further. Show
3 6 C C++, MATLAB, Python, Java GitLab CI I'm interested in biomedical devices/robotics. SystemView, RTT Print logging, manual testing Microcontrollers with ARM processors (EFM32, NRF52, STM32) IAR for Embedded C, Eclipse IDE 11-30 seconds Project-dependent It performs multiple lengthy tasks Code for a specific task is reviewed before being merged into the main development branch. 30% 40% 30% Algorithm development, debugging Testing You develop the tests from the start of code development. Gives you the ability to test modules separately and ensures consistency in test results going forward Want the ability to run more comprehensive tests on code Show
4 19 c/c++ asssembler - - unit/system tests arm based with multi core arm ds5 ..... 1-5 minutes we have Software framework coding standards When it can be divided into smaller parts swarm 60 30 10 all stages - - Arranged by our company. Although we apply test driven development it would be good to look into what new concepts the TDD can bring in. Show
6 17 C/C++ Assembly Own test harness. Experience software engineer. I am good at running speed optimation, debugging. Write a test code to test new functionality. Regression test runs verytime before submitting new code. ARM embedded system. Eclipse cmake 1-5 minutes company internal coding standard. It is too long to read. Peer review 40 40 20 browse source code easily. N/A I know a little about it. Colleague recommended. Show
1 36.5 C C++ Java Pascal Oracle V6 sqlplus, pro*c, sqlforms v2.3 Informix SQL & ESQL/C Lisp Prolog C-shell, Bourne shell, Perl, HTML Yacc, Lex, Awk Forth Basic Assembler (various) tcl VHDL Python Perl JUnit test Various proprietary harnesses at companies I've worked at I like classic cars. ctest u-blox test harness 4-5 ARM cores, embedded, flash file system, proprietary RTOS, communications applications. ARMCC, gnuc, vi, ctags, perforce, swarm. I'm very old skool. 1-5 minutes It's quite a standard C coding standard. When the disk space runs out. ;^) We use Swarm, and do it online. Usually 3-5 reviewers. 35 25 25 It pays well and can be quite interesting. Some jobs can be quite tedious. It's a way of sharing a communications channel by splitting it up in the time domain. Because my boss told me to. Show
5 37 C/C++ Python / Groovy / Arm assembly ctest I am married, two kids and I enjoy writing embedded software, reading scifi and watching movies Depending on the problem, I work to a predefined API, create the framework and then write a test to exercise this API. Fixing as problems occur. Or start working on a problem, developing / optimising the code and then write the test to exercise the final API, fixing as problems occur. multi-core ARM based modem Eclipse Jtag debuggers Software emulators 5-30 minutes The coding standard is designed to keep the code looking the same between users to reduce 'pickup' time. reduce the number of "stupid" programming errors by making things more explicit I cannot read it on a single (portrait oriented) monitor Use Jira to invite multiple interested parties to look over the changes. Typical reviews rely on trusting that the originator has passed regression tests 50 25 25 The challenge of taking a problem and coming up with an elegant solution AND being given a failure case and having to triage it to the point that the problem is identified and it can be fixed. Poor tool support my understanding is that you start with a problem, write the tests, then implement the code, passing the tests as you develop. To see if there is a way to improve my test coverage without significantly impacting on the time to run sanity checks. Show
2 35 C python arm assembler none Currently PHY firmware engineer Handcrafted unit tests in custom real-time and hardware emulation environments Custom multi-core ARM/DSP/Hardware based SoC MSVC ARM Eclipse 1-5 minutes Locally quite pragmatic standard, not too restrictive. When I don't understand how it works ! Using Swarm 40 30 30 Every day is a new and unique challenge ! As above Nothing yet ! To enable a common testing methodology in the office as each group has there own way of doing things currently. Show
1 35 C C++, matlab, Python, various assembly languages self written ones I ride a bike and play chess (though not at the same time!) Visual Studio simulation to step through the code to verify functionality, followed by running a regression test suite prior to commit to ensure nothing is broken. In house designed embedded multiple uProcessor with dedicated hardware for DSP algorithms. Simulation of target processor h/w developed in-house to verify code will work work on the target h/w. 11-30 seconds Coding standard last updated 2015, I think. C Code is laid out 'Allman' style with 2 space indation (no tabs). Variable names depict their use and type e.g. 's' prefix for static variables. Experience Short and casual! 50 30 20 Challenges and that I'm doing something different every day. Trying to understand poorly written code Isn't it mainly commom sense? There was a spare space at short notice! Show