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?
0,5 2,5 C Python - I love being outdoors Building, uploading and running it, and then create a situation where changes in the code will show. Sometimes I need to provoke the system or even introduce another bug to see how the system reacts. Then, if the change seems to work, test the change in multiple different situations/over a period of time Robot firmware mainly Git, Jira, Microchip studio, VS Code 1-5 minutes We try to follow the same standards in code style and git use - We review git merges, or when someone is unsure about something 60 20 20 It's challenging and the feeling that you create something Getting stuck with an annoying bug which you can't figure out Not very much Because I'm new to the concept, and me and my team think it's a good idea to join Show
2 20 C Labview None On bench setup or in real application. Autostore cube storage, automated logistics solution STM Cube IDE 11-30 seconds 50 10 40 Show
8 8 c assembly none . Tested manually. Bare metal embedded plattform. Clang, Git, GitLab 1-5 minutes Ongoing, recently agreed on a proposal for a code standard. . Multiple reviewers are approving the code changes before merging into the master branch. 40 20 40 Solve problems and develop products. . Basic knowledge. Hopefully to expand the toolbox to be able to develop more robust firmware. Show
6 15 C Python None I like pizza. With the goal of uncovering issues and bugs as early as possible. Basically i'm doing manual unit testing. Manually manipulating input to modules/functions by any means in order to test all edge cases that I can think of. In addition to this I would also do targeted/specialized integration testing before merging any code. Robot firmware running on STM32-controllers. Requiring high degree of robustness and stability while also keeping focus on functional details. Aspects related to performance and durability of the robots are important as well. Git. Jira/Confluence. SonarQube. A bunch of internal tools. 5-30 minutes Not well established at the moment. If a reviewer complains about it. If sonarqube complains about it. Partly good. 10% 70% 20% Being able to make things behave exactly the way you want it to behave. Not being able to make things behave exactly the way you want it to behave. That we should consider using it. I feel it will benefit me in doing my job more efficiently. Unit tests may help reduce overall workload in the long run. TDD may help with tracking progress and keep focus on the important aspects of the code. Show
0.75 30 Rust C, Python, C++ cargo test I am into amateur radio, maths and cryptography cargo test STM32Fx ( and some NXP ) gcc , VS code, git, rust Under 10 seconds rustfmt , still learning Autostores C standard It is less clear what purpose it serves, cyclomatic complexity gets high, line count. All merges should be independantly reviewd and pass CI 7 2 1 Pushing the boundaries of what the hardware is capable, coming up with elegant solutions to complex problems. (Not) dealign with tecncal debt, restraints on what refactoring activity is "allowed", or there is to much siloing that prevents refactoring and streamlining APIs and integration. It is a SW dev. methodology that emphasises writing test early, and having complete (unit) test coverage. I think it will also provide useful information on HW and OS abstractions, that I believe will be useful for our code base. I will be following the course closely to try and capture some of the momentum that it may impart and continue pushing for it. Show
2 6 C C++, Python Cpputest, Unity/Ceedling Nah Some unit testing, a lot of manual testing STM32 microcontroller VS studio Code 11-30 seconds More or less Linux style guide When I have to scroll Merge request before a branch is merged to master. Reviewers will look through the code and accept/decline. Build server makes sure the branch builds, but does not run any tests. 20 50 30 Getting things to work Meetings Did TDD actively in my previous job Get to know more about how to organize unit tests. Show
1 10 C Matlab Simulink C++ Python Matlab Simulink Test utest.h (C) Catch2 (C/Cpp) Controls Engineer. Simulation via Simulink - Requirements tests, integration tests, baseline/equivalence tests. And on target hardware / system. Embedded control system. Compiler Debugger Code Editor Version Control (Git) Simulator (Simulink) Under 10 seconds New. Based on experience. Often slow. But thorough. Don't know Don't know Don't know To solve a problem, requires a deep understanding of the problem. The understanding is acquired through study, experience and testing. It's fun when it's fast to test new ideas. When it's slow to test new ideas. tdd = write test before code. So the company becomes better at unit testing. Show
1 20 C C++ Python GoogleTest, Robot Framework Software developer with great experience in the automotive industry. Testing directly on the target hardware. No unit tests as such. Embedded system based on STM32 MCUs for controlling robots for storage system. Eclipse Visual Studio Code GCC 1-5 minutes Development of code, and testing and debugging. Functions should not exceed 4 parameters (not to overload the stack) and not too many lines to make the overview of the function better. Code review are done upon merge requests by another software developer (lead) 60 20 20 Challenging, innovative and technology is changing rapidly. Setup of development system and testing can be very time consuming and frustrating. Not enough I am afraid of. Because the company wants to improve automated testing and believe it is a good idea to introduce software developers to the idea. Show
1 27 C Python and C++ (looking at Rust) Google test and pytest. (Looked at Catch2) I like golf and beer (hear you are on Untapped :)) System tests, automatic jig tests and local happy testing. B1 robot is a multi CPU system with real-time requirements and a fair bit of dynamics (motor control). gcc, VS Code, pytest (for integration testing), Confluence for doc, Jira, git, Gitlab. Clang-format checks on commits (new). SonarQube for analysis 5-30 minutes We're working on establishing a coding guideline for C as we speek, currently at draft level. We have established enough to automate clang-formatting, but we are still discussing parts of it. We have complexity measures in SonarQube - the problem is that the legacy code is way to complex so in practice it doesn't work at the moment. In my opinion it should be when it has more than one responsibility. We have MR (Gitlab merge request) that needs to be approved before they are allowed into the master branch. We have some preliminary checklists of what to check and are currently requiring 1 approver and preferably also a second reviewer. 2 2 6 To create something Struggling with seemingly random faults, bad structure and I2C. It's a process where you develop tests before code in an iterative manner. Because I think we have a lot to learn as a group and an organisation! Show
0 13 C++ C, RUST, ASM Gtest, Gmock, munit (unit with a greek mu) I'm also a musician, I enjoy running and the outdoors. I read a lot of books. I enjoy making hardware-firmware hobby projects in my spare time with micro-controllers and embedded linux systems. GTest Not sure, I'm a new engineer at this company. VSCode, mingw, gdb/make/ninja, arm toolchain. 1-5 minutes Not sure, I'm a new engineer at this company. Too many levels of indentation. Or - it's difficult to unit test (in that it's difficult to test it as one "unit", and requires convoluted integration-level tests to cover all codepaths. Not sure, I'm a new engineer at this company. 40% 40% 20% Solving complex problems, and the joy of a functioning system. Time constraints! I've watched (and read) some Uncle Bob (Robert Martin), and his red-green-refactor method. I also followed strict TDD methodologies at my previous company. Self improvement (really!). I've seen the direct benefit of TDD in embedded systems at my previous company, and would like to continue my growth in this area. Now that I have this knowledge, working in a legacy untested codebase is so nerve wracking. Show
9 months 15 C C++, C#, Python, ASM, Ladder, SFC, FBD, ST, IL. GTest All my experience is on embedded systems, worked with several micro-controllers such as PIC's, AVR's, etc. Main experience with DSP, energy management, motion control. Gtest, GMock Bare metal Arm Cortex-Mx MCU's VS Code, Eclipse 11-30 seconds We are in the process of implementing a company code standard. I don't have a strict standard, I try to follow as much as possible the legacy code standard. When I need to scroll the monitor to see all. But I aim for functions of not more than 20 lines. Before any merge request there is always min. 2 colleagues which go through the code for style and compatibility. 50 10 40 It's very rewarding. The sensation of accomplishment when we make something work as intended never seems to fade off. It can be very frustrating, specially when we handle hardware that does not behave as expected/intended. So in short: Debugging. I've read your book. I'm eager for knowledge. I want o see what is the process of tackling the challenges and try to learn by seeing what I do right and what areas can I work to improve on my flow. Show
2 5 C Python C++ None I've never written tests for my code beofre By running it on the target. With debugger, print statements or normal operation depending on how much has changed. Embedded systems, STM32 Git, Gitlab, Jira, Eclipse, Visual Studio Code 11-30 seconds Mostly focused on whitespace, naming, styles. When it becomes too complex to keep track of what it does. One or more relevant persons will look through the changes and confirm it does what it is supposed to and adheres to the defined coding guidelines. The author is responsible for testing the code and making any requested changes. unknown unknown unknown Lots of interesting, unique challenges. Debugging situations where unknown physical phenomena is affecting the result. You start by defining the interface, write test that test that the output is correct, then write the actual code. Because I was assigned to attend it. That sounds unenthusiastic, but it's the simplest truth. I hope to learn enough to begin with test driven development and reduce time spent debugging and confirming a change didn't break something unknown. Show
3 6 C only C Use C++ only as needed , so not very much NA Love to learn and ask questions. Bench testing (have a std set of instructions and debuggers) + we have dedicated team to do unit testing Linux Different IDEs 31-60 seconds Our company and team has coding guidelines depending on what it is for If there are redundant repeated parts, we create sub functions Also make sure the function does not hold the controller( should be interruptible) We use code collaborator to do code reviews. Usually 2-3 reviewers+ moderator are present 4/10 4/10 6/10 Its fun Its sometimes very stressful. When there's a deadline no I am good at C , but wanted to see if I get more understanding of C++ Show
1 8 C++, C python, Java cmocka, gtests suite n/a Depends on the feature/issue I'm working on. For feature, I use T32/lauterbach to add breakpoints and verify the states of the variables. For issues I re-run the failing tests and recommend adding additional tests to increase coverage. ARM R8 based embedded system. Bare metal programming. lauterbach, ARM toolchain 1-5 minutes c++11 per coding standards if it exceeds 50 lines n/a 4 3 3 it helps to create a path in my mind. N/A develop testcase first and expect it to fail, then build SW to make the testcase pass. to refresh concepts and try to accommodate the knowledge in my project Show
5 20 C/C++ Python, ARM assembly . . Running on actual HW that has attached debugger Pre-commit tools Simulator Enterprise SSD Visual Studio GCC / GDB ARM cross compiler / assembler T32 debugging 5-30 minutes . Check the readability of written code Peer review with review system 20 30 50 . . . . Show
5 26 C++ C, Assembly None Working as embedded software architect. Run test cases SSD Lauterbach T32 emulator 31-60 seconds We have a long list of coding rules. Not sure. Our code need be reviewed by at least one member from each of 3 groups. 4 3 3 It can automate operations. None. It improves code quality and reduce development time. The job needs architecture design and TDD skills. Show
4 10 C++ Python Bash C None background in Firmware/Embedded. bench test, some regression test cycles ARM based SOC lauterbach t32 UART Firmware traces 1-5 minutes Standard CPP codebase based on operations that belongs inside the function. code collaborator, standard review process with 2 peer and 1 moderator 2 2 6 exciting work and find something new always could get frustrating and time consuming when its dependent on multiple factors and people. not much learn and improve development methodology Show
5 10 C++ C, Python, Assembly Proprietary solution, Isolator++ I like dogs, games, and pancakes, in no particular order Targeted testing / injection on real devices and in simulation environments, plus automated sanity test suites Proprietary SSD devices ARMCLANG, SlickEdit, Git, Visual Studio, make 1-5 minutes Not comprehensive and selectively enforced. Based on internal preferences and design choices When I have to scroll to read the full function Some automated coding standard checking, but loosely enforced. Emphasis on correctness and functionality over style. Quality and scope varies depending on factors unrelated to the code (schedule, reviewers, etc.) 80 10 10 Working on challenging problems that change daily, writing low-level code to interface with HW Unclear or changing requirements, prioritizing schedule over quality It emphasizes converting requirements to tests first and using the tests to evaluate software quality/completeness instead of coding first, then writing tests later I'm under the impression that it's mandatory Show
1 16 C C++, Python Only loosely explored python unittest, C unity ~13 years of C experience at prior company; using C++ at new company with prior experience in grad school. Regression testing various: SystemC model Python models/parsers NVMe SSD device FW VS Code, GDB 11-30 seconds Loose for modeling code. Have not studied for firmware yet. When it takes effort to find specific functionality within prior studied function (multiple page ups/downs). varies: For model development, optional Bitbucket centric reviews. For FW, code collaborator required. 40 20 40 Like working on a puzzle, and feeling good once it is solved. Processes (when more effort to check code in, than to write it). I like the idea in general of heavy unit testing, but have not been exposed to it much in practice, outside a few smaller self-driven projects. Registered as part of company training. I have had past interest in TDD, but my exposure has been limited to this point due to company culture in past (I can't speak for Samsung yet). Show
0 25 C/C++ C++, python, perl, bash cpputest, Unity N/A bench tests, debugger manipulation, integration tests Many CPUs, lots of hardware acceleration. VSCode, Trace32, home made. 1-5 minutes it's reasonable. when the function name stops describing it. use of review bots is handy. can take a long time to get a review completed. 40 40 20 N/A scrum. some. required. Show
6 8 C++ Python N/A N/A Bench test and putting breakpoint in the code I used Linux and windows both as target systems Source Insight for C++ development 1-5 minutes I intend to follow the company-wide accepted coding standards if a function has many repetitive actions then I try to break it down and add another function to reduce lines I make sure to file a bug if I see an incorrect implementation 30 40 30 Try to solve problems in SSD FW is my main goal N/A N/A I want to get better at C++ programming and writing unit testing to catch low-level software issues beforehand that could cause defects in the long run. Show
10 16 c C++ I would say not really used any recently I like to read architecture and design books using host applications developed by third parties or internal test teams Linux, windows based systems connected to SSDs ARM DS5, VS studio, Source Insight 4-8 hours I follow coding guidelines set by company. Alone i have my own preference to see my code structure. prefer smaller functions, encapsulated. if i have to scroll page. Also company has standard set for lines. I look at code structure first then logic 30 30 40 I like built systems. In process of development I like architecture, code design & debugging Requirements not being clear at starting, patches to fix requirement mismatch issues. Very new to it for embedded system, have done CPP-Unit at start of career but not too much. I used to write dummy test functions using cpp-unit to test my code ( module, function level) I would like to learn how to write and test my code without target system available. Also expecting approaches help me in writing more clearer and leaner code. Show
2+ 5 C/C++ python cGreen Firmware engineer, looking to strengthen my skills in C++ different team does the testing. no unit testing Samsung ASIC ARM, Bash, batch 1-5 minutes -- -- reviews consist of syntax and logic verification. 60 10 30 i like to see my code in action especially when target device is mobile. language complexity that we write tests first and then write code so that we know if code is in compliance i have less experience in C++ than C so to learn C++ better and OOP concepts Show
23 35 C C++, C#, Assembler, Python Self written, cmocka I am working as a SW architect and depending on the project, also develop components. Often analyzing issues with rare occurrences and develop test strategies for long term tests to find a solution. Test applications using the APIs of my code. Mostly embedded devices based on a ARM solution, with Linux or ThreadX. The toolchain for our targets based on the supplier delivery (SCons, bitbake, gnu compiler chain for the build system. Lint and CppCheck for static code analysis. 5-30 minutes Depending on the project, we use some team generated coding standards or we take over the standards from the supplier delivery. When i have to scroll up and down too much to understand the code. We mostly use GitLab. On older projects based on ClearCase, we use a ms-word review-template. 40 40 20 It's always a challenge to create new functionality, to create fast and short code, to create power saving enhancements. Too much feature requests from the management without a real interest regarding the required efforts. From my understanding: Define an API, create a dummy and test code for that and the next step is to realize the real functionality. My team leader wanted me to attend and i want to see, if i already "live" the tdd approach (at least partially) and i hope to learn some more for approvement. Show
6 10 c used cpp and java earlier, currently limited to c python based My role was customization/support of protocol stack delivered from a supplier. Therefore I wasn't coding much in my current role, and I now perform the role of scrum master additionally. build, and afterwards by flashing the module, Wireless module, with a lwm2m client, connects to a web server and helps with provisioning of an embedded SIM. source insight, vim/gvim. +Qualcomm tools to debug. 5-30 minutes most of my changes, I start from existing files, so the standard is more or less defined. during debug, when I find it difficult to track the flow. normally done in gitlab 2 3 5 I like solving problems. In my current role of scrum master, there is a lot of overhead to sync multiple topics/ people etc. causing so much of context switches. the software is delivered from multiple teams, so too much dependencies. Nothing much. Planned by software head. I'm not shy to try new things, an idiot who finds it difficult to say "no", all things added together possibly.. Show
21 21 c language bash, python (few), c++ (few) Sw Department wide: Jenkins, Bash Scripting, Artifactory for storing logs, firmware versions, crash dumps. I have only partially experience with Jenkins. engineer for telekommunication, but not for informatik, I got used to programming in the company for hardware related topics, like power saving, battery charging and the last year to support the audio functionality in our projects. As unit test with bash scripts, with intention for automatisation in CI (jenkins). If not possible only manually. Especially for audio topics to recognize if audio path really enabled we have few sensor options to realize woking software. Embedded system with mostly ARM processor, main software delivered by processor producer, do we advancing the system and make it compatible in the customer environment. Source Insight, Notepad++, propiritary tool of the the processer producer (Qualcomm, Mediatek), git (last years), before clear case as version management 5-30 minutes Department wide defined standard. At the moment it becomes unreadable or if it obviously that more functionalities are covered by on function. Review of sequences of the whole concept is very timerequesting and often no doable. Reviews in git lab: Check for syntax problems or obviously better to handle functions. To get deeper in the right 6 2 2 To get features realized. To see final functionality. Build times, upload times, briefing of management about unfinished states. Nothing in detail. Delegation of software department. Show
23 30 C currently none. Over the years ... project dependent. ASM/C/C++/Java/Pascal cmocka -- As I am mostly bugfix others code or just enhance vendor code, tests are usually very specific. Often this is done by individual agreements (case-per-case) with system test department. several SoC's form Qualcomm, MTK, ... plain text editor + vendor specific env. 1-5 minutes company internal rules. depends on development style. Some functions are really long but good to read. But yes: most functions are too long. project specific. Currently: most changes are to be reviewd by at least one another developer using gitlab. 30 10 60 -- -- -- manager decision; but I think it is a good idea Show
20 20 C Python Jenkins CI server Working since years in embedded software development mostly in hardware related areas. Jenkins CI server 64 bit ARM/Cortex processor for 5G products GIT,Jenkins 5-30 minutes There is a confluence page which contains all rules. if function code doesn't fit on the monitor The code review is automatically initiated by pushing the code changes to the server. Sometimes it is challenging to understand the functionality when the review contains a lot of code. 7 2 1 solving problems missing deathlines, documentation not so much. Each coding step has to be verified with a testcase? I got a invitation from my boss. Show
20 20 C C++ Java, Perl Jenkins cMoka i am working for HW related issues. Ci, Jenkins Several Base band Processor systems gcc, make, cmake 5-30 minutes from supplier company If it not efficient and do much more than it should. Gitlab tools 60 20 20 introduction of my own ideas in to dev sw. Challenge to resolve problems long compiling and test times learning more about tdd. Show
20 25 C C++,Java,Python,Perl Jenkins, Android CTS Since several your in specialized in hardware related software development. Jenkins, CTS Android Compiler, Source Insght, Lauterbach debugger 5-30 minutes Defined by the company Hard to say bcause we mostly work on existing code Organized with Jira tooling 20 60 20 Its creative type of work Sometimes not easy to understand and debug existing code Partially already used in our company Hopefully we can improve the ttd we use. Show
many even more C ASM, C++, CMM (JTAG debugger control scripts), Script Languages for Win Command/Power Shell and Linux Shells (Bash), Python, Perl Jenkins CMoka I'm a specialist for hardware related software (Device Drivers in general, Interface Driver and Protocol (e.g. USB), Operating System) and system debugging (Multi-Core real-time debugging via JTAG, Post Mortem Analysis). manually Mobile Phone SOCs several 30-60 minutes Most of the software we handle originates from external suppliers. We mainly commission and stabilize, only sometimes adapt or extend the software. We have a collection of articles relevant for our work in confluence. A function is to long if it is further divisible on a given abstraction level (or layer). Rule of thumb: a function should fit on a screen. GitLab based merge requests documented in Jira 33 33 33 Always new challenges, never gets boring. Being given incomplete requirements too often. Start with describing testable functionality. Define Test Cases by splitting down functions as far as it makes sense from the point of view of the user/customer. Having defined Test Cases start thinking about software design and implementation. Because my department leader asked me to stand-in for a sick colleague. Show
20 37 C Perl, C++, Clojure, Racket, Java cmocka I'm an old man if you know what I mean ;-) unit tests, on target tests various vendors using different OS, e.g. Siemens, TTPCom, Qualcom, MediaTek, Intel gcc,g++,vendor compilers, ... make, cmake, scons, ... gdb, Lauterbach, language debuggers vim, emacs, SourceInsight, Eclipese, ... gprof, gcov ClearCase, git, mercurial Jenkins, Gitlab, Jira, Confluence, ClearQuest ... 1-5 minutes company provided one when it is longer than a typical editor window using Gitlab merge requests 50% 30% 20% being creative when I have to use boring tools I bought your book some years ago ;-) my manager forced me Show
0 33 Powerpoint :) C++/C/C#/Java if I have to/ruby/python/etc CppUnit, JUnit, Nunit, Xunit, all the little units I hope you know me by how :) I write every line of code imaginable, as fast as I can, and use a binary search to find the bugs sdf asdf 11-30 seconds asdf When it is more than one line asdf 45 45 10 Building something out of nothing that serves someone's purpose Java :) A thing or two. We may have learned it about the same time... So I can help coach the team in the long run Show
18 30 c/c++ not much else ? I don't code much anymore - in management unit or bench test by developer and then test cases by test group Linux Debian or VxWorks workbench 30-60 minutes it is old candidly doesn't fit on 3 screens or less performed with each release 0 0 0 everything nothing have some ideas - but i am probably wrong get exposed to TDD Show
10 0 python na na Manager of HW/FW group internal group cellular tracker devices with various sensors for perishable and healthcare market na Under 10 seconds na na internal 0 0 0 na na nothing to learn different agile approaches Show
23 28+ C++ C, C#(D♭), Objective C, Pawn None I've lived a number of places, NC, NW Jersey, Chicago, SLC, Fl, Madison Wi, pvt pilot, musician, Married with cats! Testing by running on target - testing function and unhappy paths. Linux on arm, VxWorks on X86 Eclipse, Workbench/Tornado 1-5 minutes We use an internal standard partially followed these days When it more than a couple of pages. We do them, from an internal check list enumerating items to check. 35 50 15 It's fun to breath life into systems, the creation process. Not having firm and correct requirements. nothing I believe we were asked if we were interested or drafted, I can't remember... :) Really, always interested in learning more and improving - sharpen the saw. Show
4 12 C# Java, Structured text, Ladder Logic NUnit Optimistic developer - still believe my code should compile on first try and run without bugs the first time :-) I build my own testing classes/blocks/methods/functions to unit test my code vs expected results. Windows, PLCs/Controllers For my current job I use ISaGRAF, VS Code, Visual Studio and StarTeam for version management. 1-5 minutes We have a team developed code standard we follow. Can't fix in one page/screen. Code reviews with peer developers. 25 45 30 Always fun to tackle a new programming task. Scope creeps late in the game. Very little: Code well-defined pieces of code and test them right away. When they passe testing it can be re-used/called by other function/modules without re-test. To hopefully learn something to add to my arsenal as a developer. Show
5 2012 c++ C,JS,QT/QML None I really enjoy mountain biking. Most of my project history is embedded oem projects where I am the hardware and firmware engineer. The firmware tests are functional when bringing up a board. When writing the application firmware the testing is done with some rough data simulations and then validated on the machine itself in our lab. As features are added the firmware is sent to customers so they can begin using their equipment and provide feedback. Typically embedded boards with 32bit microcontrollers. I also work quite a bit on embedded ARM Linux platforms. Visual Studio MPLAB Atmel Studio QT Creator 11-30 seconds I try to keep the functionality modular to aid in complexity. I like keeping the main loop very clean with other functionality occurring in related threads or interrupts. When you find yourself getting lost in for and while loops and various case statements. Before a project starts or a new complicated phase I will have architecture reviews with another engineer to get second opinions on my intended approach. On collaborative project reviews would happen before a release. 50 25 25 It is fun making things work. When the project requirements change over time and don't match the original functionality the code was written for. The design is no longer the most efficient or elegant way of solving the problem but you don't have time to start the project over. Very little other than what the concept implies. My boss is using it as part of an effort to incorporate agile development into the engineering process. Show
1 7 C Python, Java, C#, ect... None My favorite color is green Lots of hands on testing. Make a change, test it. Arm Cortex M0+ and M4 MPLABX, SEGGER, NXP, Logic Analyzer, Oscope, DMM 11-30 seconds Try to follow industry best practices. Use some stuff from standards such as MISRA but don't follow any single standard strictly. If its doing more then one or two things. Code reviews are test driven and informal. 30 40 30 I enjoy the interaction between the hardware and software and being able to bring the hardware to life. Tracking down difficult bugs. Its a test driven software approach. To learn something and hopefully improve programming skills. Show
19 29 C++ C, Basic, Fortran, Pascal, various Assembly Languages JTAGS, emulators I have worked in various coding environments during my career Debuggers - test code Embedded Linux Linux VM, Eclipse, cross compilers, GDB 1-5 minutes I try to follow basic coding practices including variable naming, checking memory allocations, defaulting variables. do some static analysis When it is difficult to follow. When there are too many conditionals. Look for patterns to fix. memory leaks, potential errors, some static analysis 30 50 20 making things happen with code cleaning up after others It is a methodology for writing test code to test what you are actually implementing I was signed up for it Show
8 12+ IEC 61131-3 Within IEC 61131-3 we use Structured Text and Function Block Diagrams. I have also develop in C# as a hobby. With C# I have looked up tutorials on NUnit, XUnit, and MSTest. I enjoy development and spend a lot of time looking up tutorials and attempting projects to expand my development knowledge at home. Debugging on a device. Our required IDE for PLC development does not allow code to run unless loaded on a device, so we have to load it on a device and debug in order test the code. In the past I have attempted to translate the ST code to C# to help develop some functionality, but testing the C# code not mean the ST code does not have any issues. I write code for a PLC (iPro). Custom version of ISaGRAF as the IDE and StarTeam for VSC. For my hobby, I also use VS Coe and Visual Studio with their tools like nuget, git, etc... 1-5 minutes I tried to create a coding standard for our PLC development group. It has rules like not using globally scoped variables in function blocks, variable name standards and casing, addressing of variables for external use, and many more. When it tries to do too many things. Not frequent and we don't often have the time or knowledge on a project (3-4 devs working on 3-4 projects) to do thorough reviews. It is often only reviewing code that has issues. 30 70 70 Automating tasks. I like creating tools that my team and other teams can use to make our tasks faster. I like learning and using new development technologies. I do not like the limits of the IDE or the simplistic languages used for our PLC development. I have gone through C# tutorials for my hobby to learn it. I understand the concepts of running code and testing for expected/actual values and designing tests for the good/bad paths of a function prior to writing the function. I received a meeting invite from my VP that just said it was a TDD training. I am interested in learning about it, although I am concerned about not having experience with C/C++ in either work or personal time. Show
13 10 C/C++ Java C#/XAML Python Junit I specialize mostly in embedded firmware but have written an app for iOS and Android. Debug sessions and manual testing Most of my target systems are small microcontroller-based systems. Some are connected (BLE, Wi-Fi, USB) and some are stand-alone instruments. Simplicity Studio Notepad++ Visual Studio MPLab X Android Studio XCode 11-30 seconds Coding standard, you say? I use the product and rely on my personal experience and expectations to determine if an operation takes too long. I have not had any code reviews, as I have historically been the only software developer on the projects I have worked on. 20 50 30 The magic of making things work. Post-sale support I took a course on tdd at university in which we were introduced to Junit. It is believed that this training will be beneficial to our engineering group--so much so that we will be able to meet a looming deadline that currently seems unattainable. Personally, I am hoping to learn how to apply tdd to embedded projects. Show
15 3 C++ C#, pawn NA I like to work on cars in my free time. Make a development build and bench test it. I primarily work on our SS/E3 platforms they are a building control system for HVAC, Refrigeration, and lighting Eclipse 5-30 minutes I typically try to copy the standard that our current code is wrote in. When it starts to do too many things. I schedule a meeting with my team and walk through the changes I made to the code. During the walk through I explain my thought process on why I made the changes I did. 50 10 40 I like working through problems, I tend to take things and break down how they work. I find developing software can be the same without having to really lift my hands. Sometimes the problems make my head hurt and I can't seem to work out how to fix issues. Nothing I was sent a meeting invite. Show
1 20+ Javascript Python, C++, C# Jest, jasmine guitar player manually Embedded Device Visual Studio Code 11-30 seconds Eslint file When it has too many concerns, when part can be used in multiple places (DRY) Ad hoc 70 20 10 The problem solving, and hands-on Changing Requirements I've heard that it will change how you produce code for the better but it's a long journey. Interest, but it was assigned by the VP Show
26 26 C# VB.Net, C#, C, C++ I have played around with some of the features of Microsoft .NET Framework. Been writing code for 26 years and everyday I learn something new. In association with the hardware. Microcontrollers. QT. STM Cube, 1-5 minutes Our business unit has a set of coding standards that have been developed over many years. Generally, I like my functions to do one thing. If my function starts doing multiple things, I will split those out. Peer reviews. 60 25 15 Always something new to learn. Software bugs. On a high level, I am familiar with the concepts, but have never fully implemented it. To become a better programmer. One thing I enjoy about software development, it there are always ways to improve. Show
7 2 C C Sharp, C++ none. I did a lot of testing, our group is going to do some automation test in the near future. I did some programming, but not a lot. Most test are done by testing with hardware and hardness. Few tests are done by some software unit test. it is a system, with a control software, a gateway and control boards. The cloud will be included in the near future. MS Visual Studio, and Eclipse Editor. 5-30 minutes Code Format should be uniform, easy to read. All the comments to explain what the codes do is preferred. Codes can be broken down to modules, so that they can be called by other modules. When it is too hard to understand, and when there are too many parameters, and too many logics in there. Sometimes I do, sometimes not. But I prefer to do it. To check the logic needs some more thoughts or not, and coding is efficient or not. 1 7 1 develop something, then test to see if the implementation is correct. To debug needs logic thinking which is fun, but sometimes it is frustrating when there is no clue where it goes wrong. I don't like it when the logic becomes too complicated to think through clearly, or too hard to test. no idea. To learn more about programming; to help implement the automation software/firmware test. Show
18 years 8 java t-sql, c#, .net, c, c++ junit, testng worked with qa team to automate some of our testing environment. not very well linux visual studio 2017, 2019, 202+, Eclipse IDE, intelliJ 11-30 seconds don't really have one when it can be broken into smaller functions. have had a few, but not very many. 60 30 10 challenge of solving problems in a different way. testing it is test driven, in that the test cases are created before any code is written, which really focuses on the development, being test driven, instead of code first. It will force us to think about testing before any code is complete. to see how the tdd is supposed to be, so that we may incorporate it in our development processes. Show
0 2 C MATLAB, C#, Visual Basic, Python None Engineering manager, electrical engineer background, so most of my code is built around data analysis of test data and implementing rough drivers to validate electrical signals. Running it against real data Wi-Fi IoT device, embedded 802.15.4 devices, mobile devices, and cloud systems As a manager... excel, windows, etc. 5-30 minutes N/A Unsure. N/A 0 0 0 n/a, manager. n/a, manager. Colleagues I respect found issues using TDD that they wouldn't have found otherwise. As a manager, I need to continually improve and develop my team. I'm not sure TDD is what we need to excel, but I do know our current development process is unacceptable. I need to understand it better so I can estimate the cost and schedule. Show
15 11 c c# Not used any off-the-shelf harnesses. I have some custom test code for unit test Started my career as a hardware engineer designing lock control circuit boards. I transitioned into firmware role 10 years ago developing c code for access control logic. Custom unit test and functional testing are my primary test methods. I also occasionally use UART prints to log things for longer tests. ARM processors code composer by TI, CubeID by ST, Eclipse Under 10 seconds Modular coding with separated hardware layer and application layer files to promote portability. my rule of thumb is not more than 25lines of code in one function 2 to 3 engineers participate in reviews. For changes we use beyond compare to identify modified code sections and those are reviewed in a meeting with peers. 60 30 10 The process of solving complex problems bugs that get past QA and end up in the field Not much Improve automated testing skills and hopefully learn about of-the-shelf testing tools available for c developers Show
10 14 C Delphi, Java none I like firmware development because I interact direclty with the hardware. I can see my code directly changing the state of physical devices. Unit test with Debugger Automated tests using serial port to inject data. Mostly STM32 mcu IAR Workbench J-Link debugger 1-5 minutes We have a few rules to try to detect bugs before the code is executed. When the function is more than 150 line of codes. We have mostly offline peer review to verify that the developper did not do any obvious mistake and the the code is consistent with the design. 6 2 2 I like creating something that will have physical result on the hardware. The process of releasing a software into production. nothing To learn how to more efficient in developping software that will be easier to test. Right now, the software takes a really long time to test, we want to reduce that time. Show
6 10 C++ C, C#, VHDL, Python, Java none i am a functional software manager and enjoy coding when i get the chance single step, use print statements, use an app to check functionality various microprocessors Keil, Visual Studio, Eclipse 1-5 minutes based off Misra when it does more than one thing use online code reviews where everyone can comment on the code 3 5 2 i like designing the code and seeing that my design works debugging it is where you write the code based on tests vs writing tests based on the code, it reduces the amount of bugs that can build up in the code i think that better unit testing will make our code less buggy and hopefully reduce total time to software release Show
3 20 C C++ Python C# Proprietary, H/W electrical Career focused on development. Company culture and career has not been so much focused on test in 'commerical' non-safety critical settings. Ad-Hoc test using debugger. Write simple test code or scripts along with developed code, but not systematically done. Embedded IOT device with cellular, WIFI, Bluetooth connectivity Eclipse-based compiler, debugger. Infrequent use of Google-Test. 5-30 minutes Has variable/function naming and style conventions for consistent look. Some rules regarding modularity. Process mandates code review. More than two screen pages or function does multiple things which start to become unrelated. Use JIRA to review most if not all changes and features. 90 10 10 Like to make things work and see things run Unsure Development is performed around the question, how can this be tested and/or verified? A lot of my career has been focused on development not test, need to develop skills from unit-test to functional, script driven test. Wish to lean good practice methods and accepted 'standards' for doing this. Show
6 20 C++ C,C#,Java Google Test I am currently in a position where I no longer develop much code but I am a technical lead for embedded code development. Some level of unit testing, white box testing (single stepping) and functional testing Mostly work on developing autopilot systems for small drones. Largely use STM ARM Micro-controllers running u-COS. Also embedded Linux Visual Studio, Eclipse, Keil uVision. 31-60 seconds Mostly following MISRA guidelines with a set of exceptions and additions. Currently don't use a good mechanism to enforce the standard. Have used tool like PC-Lint but they are cumbersome. It is also difficult to deal with legacy code If it can't fit in the length of a standard screen. If its purpose cannot be understood on a single read through. If it is not providing a concise single function. Use Crucible and Git for code reviewing depending on the code base. Crucible is most widely used but we are trying to migrate from SVN to Git 50% 20% 30% The ability to influence the functionality of a product. Software is the central piece in robotic systems. I like having the ability to experiment with algorithms and be able to quickly test and iterate on them Developing prototype code is easy. Developing production code is hard as it needs to meet certain standards. All the processes associated with developing code to a certain level of quality are a burden to developers when they cannot be streamlined I know that you first develop a test and then you code to the test but I have never developed under this paradigm We currently don't practice TDD for embedded software development. I am interested in this course as a way to learn about TDD and see if this is something that my team should move towards Show
1 5 python C C++ C# N/A I am a Morehead State University graduate with a Bachelors in Computer Science Test after development Lock system Python, Testrail 5-30 minutes Clean, well-documented code When it becomes difficult to debug n/a 0 100 0 Creating code Debugging It is used to find and fix bugs early To learn more about embedded development Show
5 16 C Assembly None I am not a robot. Write unit test. Single board computer using a STM micro. IAR tool chain. VScodium editor. 31-60 seconds Company coding standard. When the logic can't be followed. Usually with one other person. 90 3 7 Code design. Code implementation. Poor requirements leading to code redesign and implementation. It's a TLA. We may, if there is time, move to automated building of firmware. TDD can be automated and may find more bugs. Show
9 25 C C++, Java, C#, Python Java J-Unit, but it's been awhile. In-house methods to test Asic design via Linux PCs and automated scripting. I like to garden, lift weights. For our C code, alot of times we have done manual unit testing, or pseudo-automated, more as the real device. Embedded Fw running on ultra low power micros, such as ST micros. Visual Studio C++ for Sw Apps, IAR Ide for Embedded Fw 1-5 minutes ansi-c, misra-c. > approx 30 lines or so, goes off screen. any function that feels like the equivalent of a run on sentence, with multiple subjects/themes involved. We review C code for functionality, coding style, correctness on a regular basis. 40 40 20 Being able to create code to spec in an efficient, concise manner. It's also kind of fun just to code! The amount of test, debug time necessary to make basic code devoid of bugs, and operate smoothly, from a users perspective. The methodology seems to take more time up front to create, get in place, but once it's adopted, will probably save time and deliver more bug free code (up front), vs finding out issue later on. Get back into tdd concept and usage, and to know the benefits/drawbacks of using it. Show
0 5 C C++, Matlab, Java none I am an embedded systems engineer, my coding experience is primarily in developing hardware drivers for board support. With console printouts, debuggers, and analyzers I am coding for a circuit controlled by an stm32 microcontroller IAR embedded workbench, saleae logic analyzers Under 10 seconds I try to follow the coding standards outlined in Michael Barr's Book as much as I can. When you cant find the end easily? I am new to dormakaba, and have not yet had a code review. 40 20 40 I like getting opportunities to learn new things and bring up new hardware with supporting firmware. debugging hard to find issues very little. To learn how I can improve my code Show
3 38 C C++, C#, Java, bash None Married empty nester, 1 daughter Manual techniques: print statements, log files, observing behaviors, using a debugger if the IDE allows Embedded firmware in door locks and controllers. Operating systems are a combination of Linux, FreeRTOS and bare metal Eclipse, Visual Studio, vi 1-5 minutes In general I follow the GNU coding standards: If the function tries to perform more than one "function" Currently: Informal meetings, 2-3 participants Future: GIT pull requests 50 30 20 Making hardware perform it's desired behaviors. Making two dissimilar devices communicate with each other. Trying to develop something when the requirements are unknown / vague / ambiguous. Just from a high level: Develop the built-in test capabilities before or along with the code. To improve the quality of our products by improving our test processes. Show
10 30 C many others over the years ? Programmer in many different platforms and languages of the years. The last 6 years, I have been a manager of other programmers. develop/execute unit tests manually. Separate team does functional and integration testing. Mostly manual but have developed automated testing for some projects. Most of our products are embedded systems that deal in access control. Locally, our product line focuses on safe locking systems. IAR IDE, Visual Studio, others 1-5 minutes We have company best practices, and then run static analysis tools on code after written. extends for more than a screen page peer reviewed 40 30 30 seeing the function preform as expected analog effects on expected results of programming. minimal We are trying to move our overall SW and FW development to TDD when appropriate, especially in the embedded env. Show
2 9 C# VB Visual Studio I lead a group of SW engineers who are in charge of SW regression testing ( on application side). Hence my strong interest to understand TDD philosophy/methodology. I don't have any embedded background. Since we ( my team ) are not developers we don't deal with unit testing. We design and implement regression testing using frameworks such as Selenium, FitNesse Windows. Android Visual Studio 1-5 minutes I am not trained as a SW engineer and picked up coding throughout my career. I simply follow guidelines established by our department and am by no means an authority on this spcace. I do get help from my senior staff members during code review. Generally a function should perform one thing only. It should be written to perform a specific task and be easily understood by human reader. Mostly I am concerned with use cases and how best we are covering them as oppose to coding standards. I leave that to my senior SW team members 20 30 50 As soon as you hit build, you have a product!! I am trained as EE and to realize a product it often takes months and you are dependant on multitude of disciplines such as fab houses. Too many languages around :) Just basic terminology. Since my team role is testing the application and ensuring quality, I really want to understand TDD, its benefits, and how we as a department ( SW developers) can employ it to write more purposeful and higher quality code. Show
5 36 C C#, C++, Java, Groovy, Gradle, Pascal, Python, Awk, Javascript, GroovyScript, CppUnit, CuTest, Spock, Selenium, SoapUI, LoadBear, JUnit, Jasmine, NodeJs, Visual Studio Debate and Commit. I only need to hear your opinion once. If you have nothing new to add, saying it again louder does not make you more right. Developers use Brute force, Product Assurance (PA) does black box testing. IAR - STM32, MSP430 IAR, VSCodium, Meld, AStyle, Git (migrating from SVN). Visual Studio 2019, Corporate provides Git, Jenkins, Sonar Qube 31-60 seconds Defined set of rules for ASytle which are generally followed. That concept does not exist within the business. Up to this point had Subversion as VCS, are now in process of migrating to Git. Once we are on Git will be using pull-requests for code reviews. Up to now it was by using a patch or by examining changes once committed. 6 2 2 making code that: 1. does what it is supposed to do, 2. is easy to maintain 3. is easy to understand 4. is done right the first time Stake holders that tell how to write code to meet a requirement instead of stating the requirement. Usually preceded by "Can't you just" or "All you need to do is". 1. Will require more effort from developers 2. Will require change in the process followed. Because of the items listed, it is doubtful that it will be embraced. Will do just about anything in an attempt to change the current process. Show
0-1 20 C C++, JavaScript, Bash scripting CppUTest I enjoy camping and hiking. Unit test with CppUTest. Gecko Micros Docker, various IDEs, virtualization (VmWare, VirtualBox) 1-5 minutes MISRA and Barr with some exceptions. Exceeds a screen length. We conduct code reviews in Bitbucket. 20 15 30 Making software "talk" to hardware. Solving problems in an elegant way. Manual regression testing. "Working" on software when the new hardware is flaky. Learned about it when I interviewed with the company. Company is moving to TDD. Show
2 4 C, C++ C# for test app development Just standalone test apps. I wanted to take this course so I can adopt TDD early in my career. Currently I don't have that skillset. Initially when setting up communications - extensively use logic analyzer. Usually standalone test apps for other tests - to check data input crcs, frequency etc. Usually ARM based microcontroller (Mostly ST - F4, F7) projects. Uvision Keil, Visual studio, Eclipse Under 10 seconds MISRA C++ 2008 - AV also has a small subset that differs from the MISRA standard a little bit. The challenge in following these standards is legacy code lot of times did not follow these standards. When it is trying to do too many things in one routine. Also, if at all a functionality is reusable in other sections of code, it should definitely be a separate function so there isn't duplicated code in places. Usually we would do SVN Diff for modifications and do an informal review. We have started migrating to Crucible for formal reviews. It can pull the changes from SVN and track code review comments which are marked as unresolved until resolution. 40 30 30 For embedded software, I really like how closely the hardware interacts with software. To see a good end product with well tested software is really fulfilling. Working with convoluted legacy code at times (which has underlying unexposed vulnerabilities) My manager told me about it. As mentioned above, I just want to adopt TDD practices early on my career. Want to make good coding practices a habit! Show
1.5 20 C/C++ Minimal shell scripting. None My development background is mostly in telecom field (cable boxes). Run on simulator to check basic functionality since it's easier to control the environment. Then load and test on hardware to exercise the code. Embedded Linux on Xilinx Zynq, running on small air vehicle. Visual Studio, Keil IDEs. Git/Gitlab for source control and code reviews. 1-5 minutes Basic guidelines created by the larger development group. Focused on readability and general best practices (no hard coding, single return per routine, clear comments, etc.) Generally, I look at what it does rather then physical length. If it's going multiple different things, it's too long and could be broken up for reuse and clarity. Performed in gitlab by peers of varying experience levels. 50 30 20 Seeing the end result of code in action running the system. Spending lots of time trying to reproduce corner case issues. Very little in practice... As part of the Agile process, I think it's meant to improve quality with a marginal increase in coding time. Part of a relatively new development group trying to implement best practices and adopt some Agile methods and ideas. Currently no TDD, but as the group matures, we would like to start... Show
16 21 Harbour (CA-Clipper) Python, C#, bash, learning C C# NUnit, python unittest, little bit of CppUTest, little bit of Unity Since I'm 10, I've worked with my dad repairing cars, making cachaça and selling it in a bicycle. Then helped him making alembic used for distilling cachaça. Then I changed to programming, helped run an in-house internet provider. Always mostly self-taught with manuals. But I had to work so hard that made me forgot to study. also good books are pretty expensive here. All I learned was because some work required. I work in a small software-house with a POS software. Been there since 2005. Recently after a surgery recovery, I had some time so I've started to learn C because of your TDD for embedded C book. I bought it because of Uncle Bob's materials - where I came to know you. Fell in love with testing and clean code. Harbour, my main language, has it's roots in C. I can write C and assembly mixed with it. So I share many problems developers suffer with C. If I learn how to TDD in C, I might be able to do TDD, and SOLID in Harbour. At least improve vastly the code quality. I have a small legacy project in C#, that I was able to recreate the core using TDD and NUnit, also tried to apply SOLID, TDD guided by ZOMBIES and other advises from you, Uncle Bob and Martin Fowler. My main project, who pays the bills, is in Harbour, which does not have a Test Harness nor Code coverage. I'm currently writeing a free, opensource test harness for it inspired by CppUTest, JUnit, NUnit and xUnit. Mostly Linux and Windows desktop. For embedded I experimented with ESP8266. JEdit, VsCode / Visual studio community, docker, subversion, git, virtualbox 5-30 minutes I don't have one. One reason is lack of study. I don't know good resource. I try evolve my code in a way easy to read and refactor. for example, Harbour and python does not have tooling to rename like Java, so I try to use prefix as a namespace. A year ago, I never paid attention. Now, if it have more than 7 lines (not counting data setup), and/or makes me thing when I read it. I do a lot of pair, even before hearing about agile. So I avoid later code reviews as much as I can. And I always have a tight relationship to the user to avoid misunderstandings. 25 25 50 I like to learn and research. I find programming much fun and powerful, also it gives me a chance to create a product that will last and can sustain my family even if something happen to me. I only perceived what I did not like about a year ago, when I heard about Uncle Bob and TDD: I'm always tense, afraid of rotten, fragile code. It feels that only I could handle it. As I got ill (4 years in bed), this became even more dreadful. I know the basics. For me it's a way to ensure that my code is usable right from the beginning and keep all specs are written in executable form. It leads to better architecture. Sticking to it even when is really hard, it's worth. I need to get a better job for my family. I'm ill and I might not handle my current work for much longer. I need to try something that does not require working 10-14 hours/day. I'm confident that I can improve my life with this knowledge! Show
0 10 C C++ Java labview junit googletest unity I started working at astrocast few month ago. Glad to finaly work in a company where software testing is part of the work and not saying, if the software have bugs, that means that the engineers are not good enough. I enjoy a lot working in embedded software and Linux environment. I hate using debuggers, having good tests avoid loosing time with debuggers. Unity for unit testing and a hardware in the loop test with inhouse python scripts. A terminal using a stm32 mcu sending data from satellites. arm-gcc, cmake, unity, cppcheck. 5-30 minutes We have a company coding standard (with spaces, ident, ...). Try to code easy to test functions, avoid global variables, passing as much in arguments. When the function can't be tested. If the pull request is small, we found something to say. If the pull request is huge, sometimes, we juste accept it because it's too complexe to understand. 70 20 10 Learn new things every day. Complexe tasks. Embedded software became real software and not messy assembly programs. Using wrong tools. Try to use a code for days and finaly find that it's not working. including test in the development avoid the project to fail. Develop projects in a better way Show
6 21 C++ C, C#, PowerShell, Python Unity (ThrowTheSwitch), MSTest/VSTest MSc in Computer Science. Originally more of a C# developer (still actively developing with for non-embedded), dived into embedded software engineer for space systems 14 years ago for a CubeSat project. Unit Testing, low-level functionalities on embedded hardware (manual runs) and high-level functionalities on x86 HAL (partial emulation) in CI Integration testing with test procedures remotely commanding embedded software and verifying result of execution. Partial integration testing with software running on x86 emulation. Spacecraft subsystems, either FRAM-based MSP430 (12Mhz, ~40KB firmware size, ~12KB data memory), or Cortex-M3 (100Mhz, ~64KB firmware size, 64KB RAM). Visual Studio with VisualGDB extension GCC toolchains (x86, MSP430, ARM) and VC++ (x86) 11-30 seconds C++17 with strict subset (no dynamic allocation / no heap) -Wall -Wextra cppcheck static code analysis Short and clear code, "every line must be there for a good reason". Contains code that can be shared with others or duplicates existing. Contains more than one "functionality". Lost track of what it is exactly doing before reaching end. Through pull requests for major features, not always for smaller. Lot of room for improvements. 50 20 30 Creating something, innovating. Finding clever solution to challenges. Uncertainty of what is needed, changing requirements. Dependency on other parts not always in your control (libraries, hardware, etc.) Principles and theory from studies, lack practice. Practical TDD deep dive, how to improve our standards and test skills. Both as a developer point of view (what should I do correctly) but team lead too (how should I coach others, what should I require from team). Show
1 10 C VHDL, C# Cpputest some I recently started a new job after working on FPGAs for the past several years. So I am working on getting my C skills back a little bit On device testing/verification We develop on a variety of microcontrollers like the MSP 430 and 8051 chip IAR 5-30 minutes We use the Barr and Misra standard When additional functionality is being implemented outside the original limited intent We user PRs where our team members will review and approve PRs 20 50 30 I enjoy being able to create new things and solve problems that software allows us to do Probably the unknowns that can be time sinks away from valuable development Very little We use TDD at work so I am excited to learned more about it Show
10 35 C/C++ Python, C#, Matlab, Java, (learning Rust) Microsoft .NetMicro Unit Test I have most experience programming PIC microcontrollers and linux for arm chips. I also do some web programming with Python, and GUI development using QT. separate binaries and test scripts Linux on ARM SBCs, PIC Microcontrollers, and getting into ARM STMicro chips soon as well. Visual Studio, VS Code, QTCreator 31-60 seconds MBARI develops prototypes, and have no coding standards that we are asked to adhere to. Usually when I can't remember variable names from the bottom to top, or when sections seem repetitive. We typically do these ad-hoc, with usually 1 reviewer. 40 20 40 I've always enjoyed embedded software tasks, I/O, communications, and control software. Troubleshooting code at the debugging phase I understand the basic philosophy. To see how we can apply this to embedded software development at a workplace that only builds prototypes, often the phase to do a rev 2 of software doesn't get funded, so I'm hoping TDD can help me make better solutions on the first try. Show
25 40 C# C/C++, Matlab, Labview There is some unit test framework for C# and the .NET Micro Framework that we use but I can't remember the name. I'm a mechanical engineer who develops systems for oceanographic research. I've done a lot of electrical engineering e.g., instrumentation, signal processing systems, autonomous platforms. I was dragged into the embedded software development world kicking and screaming about 10 or so years ago. I started off trying to figure out what the "best practices" were and was appalled at the range of so-called best practices. I've been trying to develop a disciplined approach to SW development ever since and am really hoping this class will help. Unit tests, higher level functional tests, benchtop simulators that mimic the ocean in some small way, systems tests in our test tank, test at sea. Various ARM processors, currently developing a STM32H7A3 based system. Not a lot of heavy duty computing but we do need to run control loops at a deterministic rate (usually less than 100 Hz). And we have to interface to a lot of instruments. Visual Studio 11-30 seconds Wish I had some? Anything I wrote when I first started writing serious embedded code 10 years ago is too long. Now my functions are generally less than a 100 lines or so. I grew up as an engineer at a defense contractor where design reviews of all kinds were a critical part of my job. I've been at MBARI, an academic oceanographic research institute, for 25 years and formal design reviews are not so effective. 20 50 30 I think of my self as a systems engineer and need to have some knowledge about and experience with every part of the systems I develop. Well designed and implemented control loops are particularly satisfying. Not having a disciplined approach to software development and not having enough experience at it. I've skimmed your book and watched one of your conference presentation videos and understand the principles. I have a fairly disciplined approach to mechanical electrical and systems engineering. Developing a similar approach to software development has been painful. I'm hoping this class will get me much further up the leaning curve. Show
0 21 C Python, C#, Java CUnit, CppUTest - Unit testing, functional testing. - - Under 10 seconds Based on MISRA-C and the Barr group coding standard. Personally, when it's over a page or two. Done through Bitbucket, all team members are always included, requires a minimum of 2 approvals. 40 50 10 Its creative aspect. Development processes can be a bit tedious. Have used it in the last 2 projects. To learn more about unit testing and get more formal training on TDD best practices. Show
1 19 C C#, Python Unity I am a big fan of Embbedded FM, which is how I know of you. When visiting California I met Elicia for stickers :) Unit testing with Unity/FFF. Tests are generally written after the code. Tests are built into our CI pipeline to be run on commits. We also have Hardware In the Loop testing for integration level testing STM32L5 M33 based hardware; bare metal finite state machine based application; GCC/CMake toolchain; The product is a micro linked to a custom ASIC radio chip over SPI GCC, CMake, CLion, Azure DevOps Under 10 seconds Err, I don't know which standard it is similar to, but we do have a pretty tight spec. We have markdown doc in our /doc folder in the repo with the rules. Sometimes it is a bit arbitrary, but on the whole I like it and it seems good for quality A feeling. No static analysis tools, or even rules of thumb. Not ideal. We generally work in feature/bugfix branches, and then do PRs in master branch. The PRs need to be reviewed by the 2 other firmware engineers in the team. The obvious weakness to me is the lack of focus on "how good are these tests" in the review. 4 2.5 3.5 Simply, building code that does interesting things. I love building a product to do a specific task, and hopefully creating a good design, and bug free implementation. Not always understanding the entire system, and having unexpected factors cause problems. Also, having to be very pedantic about small issues in reviews. I think a reasonable amount. However...! I really want to know how to fit it into what sometimes feels like R&D - how can I write tests before code when I don't know what I'm doing yet, or how I will achieve something? Flexible process? I want to move my team to a point where we are confident about what we are delivering. We are making a module that may never get remote bug fixes, so we need to be very sure about the code we write. I believe you have some great insights into this. Show
23 23 Java Javascript, Python,C++,C JUnit,Pytest,Jest I have 7 kids, former musician. My aspiration is to get deeper into technical coaching. I work mostly in mobs. Most of my coding in my current job is during katas. We use TDD with cyber-dojo. I would like to take TDD katas to the embedded world. The embedded developers in my area do MIL/SIL testing. There also are validation teams upstream who do a combination of manual and automated testing. The area I work in develops Autosar based C code for embedded vehicle ECUs. 70% is model based, 30% is hand coded. Matlab, Embedded Coder, Simulink,BTC Tester, Target Link 1-2 hours There are strict standards based on regulations. I know there are coding stds but I dont have the details. If its more than half a page. Peer code reviews are a mandatory step for all code. They also review models and data dictionaries. 50 25 25 I like the feeing of accomplishment when something works. nothing Worked with it a lot in coding katas. Red green refactor cycle. It has a deep impact on the design of the system. Because I want to become a technical coach. My current job is in the embedded space and I would like to be able to help developers adopt TDD to improve the design, quality and fun in our systems. Show
3 15 C# C++, ASM Unity ( Unit Test (.NET) I love programming, as well as outdoor activities Unit tests, run the code use the device (user perspective) CubeSat VisualStudio, Visual GDB 11-30 seconds Orally defined, not real standards used By its number of lines or when you cannot keep its entire behavior in mind while (re)writing or reading it While reviewing git pull requests (MS DevOps) 50 30 20 There are millions of ways to do it, it's like an art, it offers concrete solutions to real needs and it can always be improved Finding faint bugs (those that "sometimes" happen) It helps developers having great sleep during night (or after programming session) It greatly helps code writing. It prepare your mind Once tests are set (takes most of the time) you "just" have to write code to make the tests pass (easy ^^) To improve my test skills and learn new technique(s) Show
5 14 C Python C# Assembly -Ceedling (Unity) -IBM Rational Test Real Time -An in-house custom framework -I used cpputest when going through the embedded TDD book, but not for real work I started my career as an embedded firmware tester, although I was isolated from the developers and only did unit and integration tests for the product. This gave me a bad taste for unit testing initially, because it was overly mechanical (just write tests to get full coverage). After changing jobs I read your TDD book and it made a lot of sense, and now I'm the "testing guy". I am a fairly careful/deliberate programmer, and I prefer to have a deeper understanding of what I am working on. I like studying new and different programming languages as a hobby (my latest interest has been Forth). I also like studying human languages (Esperanto, Spanish, Mandarin,...) For re-usable/library code I use Ceedling to do some unit testing, but it has been difficult to find a way to use this on our production code. Most SW testing is manual bench testing with a debugger, and integration/system testing in the product. I've used Robot Framework with python to do some automated integration tests on our products, but I would say that the majority of testing is done using a debugger or python scripts. The products I work on are embedded controls for electric motor protection devices or variable frequency drives. We run on bare metal with a cooperative scheduler. Vendor-provided Eclipse-based IDEs and build tools with various debuggers depending on the target. I use python for writing test scripts/tools. I use vim for more involved coding (I use Windows Subsystem for Linux to get vim and other Linux tools). 31-60 seconds My coding standard is pretty simple. It uses prefixes to functions to identify which file they come from, and variables have prefixes based on scope. No globals. I try to keep code modular with a single focus. If it does too many things, or nests too deeply. Sometimes a flat switch-case for a state machine might be long but fairly simple, so it depends on complexity. I use Microsoft DevOps to do code reviews via pull requests with git. Typically I look at diffs if I am familiar with the codebase, or I will look at the whole files more if I am not familiar with the code. 20 30 50 I like solving problems and making things work. I also enjoy making tools to make my life easier. I like the rush when I solve a complex bug (although wish I didn't have to do that as often). I generally like understanding how things work. I don't like the unpredictability and stress associated with debug-later development. I feel like SW testing is under-valued in the embedded sphere, and I see many instances where it would have saved a lot of time and money. I have read your TDD book and sparingly used Ceedling for several years, but I wouldn't really say I have truly used TDD outside of one small project and a few library modules. I want to learn how to apply TDD more in my day-to-day coding, not just for frameworks/libraries. I see a lot of potential to benefit from more testing, but can't find a path to achieve that. Show
1 1 C Python Unity: fff: I did a 6 months internship in Astrocast and one of my objectives was to add unit test to our codebase. It has been 1 year now that I work for this company and I try my best to make the most relevant tests when I add a new feature. We are doing two "types" of tests. Unit tests and Continuous integration tests. Unit tests are done by the Software Engineers when we add some code. Continuous integration tests are done by our Test Engineer. Our application runs on a STM32L5 MCU. We also ported it to x86_64 to facilitate the unit tests. Visual Studio Code on Ubuntu STM32CubeIDE STM32CubeProgrammer Azure DevOps 31-60 seconds We have in our team a file that describes the coding conventions we have. When writing this paper we tried to follow well known standard like: SEI CERT C Coding Standard NASA - C Style Guide Google C++ Style Guide A function is too long when I have to scroll to see everything. Usually we do a PR with several code reviews. We put comments where we want discuss something and when we agree on everything, we accept the PR. 55 15 30 I like the challenge I have sometimes when I am adding a new feature. Also I like to see the product evolving and getting closer to what we will release. I don't like settings up new tools. I feel like it is hard for me to discover something new and be efficient with it. I usually take time to get used to something. At the beginning of my internship I was not familiar with tdd, so I read as much as possible on this subject. I tried to follow those principles but I failed because I was not feeling very productive and it was not very natural to me. I hope I can improve the way I am writing my test currently and maybe learn how to use tdd in an efficient way. Show
8 months 8 years C C++, Assembly, Python, Matlab/Octave. Unity I am a micro-engineer specialized in robotics, and my main area of focus has been the miniaturization of autonomous systems. Therefore, I have a shared background in electronics and in software which I have found to be useful when delving into embedded software. Following my MSc, I have worked for a few years on nano-satellites and have been interested in the development of embedded electronics + software. I have then pursued a PhD in robotics and autonomous systems. Over the course of my thesis, I have tackled the development of integrated control for a small sensorless piezoelectric actuator. I have also had the opportunity to develop automated test environments for this type of actuator. Since then, I have returned to the world of embedded electronics and software by joining Astrocast as an embedded software engineer. After having written a code following a phase of planning, I write unit tests for the code and try to cover the possible outcomes of software units as extensively as possible. Nano-satellite subsystems powered by constrained hardware with space flight heritage (TI MSP430, some STM32 architectures). Used to working against code size limitations, to favoring deterministic behavior, and efficient CPU/memory usage tradeoffs. Git, IAR Embedded Workbench, Visual Studio, Visual GDB, GCC, Logic analyzers, Oscilloscopes, Matlab 11-30 seconds In addition of halving delved into automotive MISRA-C and DO-178B standards, I try to keep to these principles: - No dynamic allocation - Deterministic behavior - Code abstraction where appropriate Generally, a function is too long if it: - Is using logic that is present in other functions - Has control loops / structures that span several levels - Attempts to do more than one thing at once, - Has an unclear purpose They are usually only done when examining pull requests to the main development branch following the development of a feature. 20% 20% 60% I genuinely like seeing complex embedded systems coming together thanks to soundly developed software. I enjoy tackling challenges of code size restriction, execution optimization, efficient memory usage, and execution reliability. I don't like spending whole afternoons hunting bugs that are caused by minute mistakes in code implementation ! I am somewhat aware that increasing testing and appropriately planning for it will greatly reduce the amount of time wasted chasing bugs. It is my understanding that tests should be written before even the code itself, not the other way around. I always feel like there is a lot to learn in this trade, I want to know how to be more efficient with my time. I am also genuinely curious to know if there are possibilities of testing with hardware in the loop. Show
6 25 c python can't remember (Dyson uses unity but i haven't used that tool) I have been mostly working in testing for the past 10 years behave off target testing + on target (+ unity) various m0 / m2 boards IAR workbench, VM, scons, atlassian tools, git 5-30 minutes C coding standard based on MISRA static analysis tools? pull request in git reviewed by 2+ other developers 30 40 depends problem solving myself making stupid mistakes write the test first, then write the code and run the test to see if the test now passes. Iterative I would love to do TDD properly - and find out how much i don't know about it. Show
3 10 c++ c bash gtest I'm an external consultant on Rational as Davidson Consulting. It's my third big project. My jobs until now was always to help the software to grow from bad design to something better Generally compagny I worked don't use unit test. When I'm free I try to use TDD and gtest but I think knowledge are missing to do it right. I work mainly on the gui, so I cannot goes in details about the system. vim, linux command line, tmux... Qt creator to be able to debug it. 5-30 minutes Unfortunately on this project there are no coding standard. I try to tell we needs coding standard. Not easy to answer this. By feeling. More most of the time is when I cannot read them without scrolling down. ON this compagny code review is new, so not so much. On my previous job, I was lead developer, so I introduced code review. OUr quality increase a lot. The time to develop a feature grows by 40/60% but the bug report decrease to 80%. 3 1 6 Thinking to beautiful solution Really developing Going fast Debuging I think it the right way. I'm pretty sure I will adopt it when the knowledge will be enought. Get the answer of questions I have about how concretely doing and apply TDD. Show
1 2 C++ Python, C# GoogleTest Relatively new as software developer but very interested in the process Using Unit Tests to verify that my code still works after changes have been made cooking device with a modern user interface to provide an easy and automated experience for preparing meals in the commercial sector QT Framework 11-30 seconds If I have deeply nested control structures Usually done in gitlab over merge requests 60 10 30 If something was not programmed correctly I can debug it and it can be fixed without dramatically consequences for the production line. I can test the product without big waiting times for prototypes Changes in existing code can be quite difficult if its not your own code The basic concept is to test the functionality of your code base against changes and secure the stability of your main functionality if you add new features to your product. I would like to extend my knowledge about this topic and also to be more qualified for the sw development cycle Show
1 4 C++ Python, C#, Java not used yet 33% Software-Developer + 33% Engineer + 33% Designer write unit tests / QtCreator 1-5 minutes / Deeply nested control structures, display isn't big enough to display it, can't immediately determine the function's purpose i've used Pair Programming, Over-the-Shoulder and Merge-Request to help reviewing codes 5 2 3 make thinking logical debug is always struggle Test-driven development really want to improve my knowledge about testing code Show
3 3 C++ C#, Python None I enjoy listening to audio books. Predefined Test cases. Embedded Linux Visual Studio Code 5-30 minutes - - - 40 20 40 I enjoy problem solving and software development gives me an environment where I can do it creatively. Being stuck at one problem for a long time. Little to nothing. I am joining a new project at my firm and this course is preparation for it. Show
3 25 QML + C++ Python Google Test, 'homemade' Tools My background is the ruelless world of 'C' programming. New tools and methods are well appreciated. As Qt is platform independent, tests by the developer are ususally done in a simultation environment on a Linux Server. That is fast an convenient. Only after successfully testing the code, the code is cross-compiled and flashed onto the embedded target device. Embedded Linux, ARM CPU, Everything provided by Qt (Qt Creator, Qt Designer, QML Profiler etc) Valgrid, Lint, Jenkins, Git, Gitlab pipeline 11-30 seconds - If I as developer can not debug or even understand it. Very new. Not entrenched in mindset. Is seen by some as a hassle. But that is the wrong attitude. Code reviews can not make sure code is error free, but helps with architecture, style and grave mistakes. 70 10 20 Creativity, lot of different companies Often lonely endeavour. Bit nerdish Not much I strongly believe this company needs to double down on testing, otherwise quality of product will never improve. Current focus on features is not working. So I want to be part of the revolution, of putting test much, much higher in priority. Show
1 12 Python Whatever I need qtest, pytest Always interested in learning new things and getting better :) Unittests and AcceptanceTests Qt/QML UI, C++ backend, Python system tests VSCode, PyCharm, QtCreator 11-30 seconds Python PEP8 If I have to scroll a lot between things on the beginning and the rest. And if I have to many branches for the unit tests Currently at least 1 reviewer and the gitlab pipeline. Sometimes also pair reviews. 50 30 20 The range of possibilities we have. Sometimes also the range of possibilities we have ;) When software is some kind of unwanted. red green refactor :D Integration of UITests and wanted some knowledge about the UnitTests workflow. Show
5 35 C++ Python, Javascript, Typescript, C, Lisp, Dart QtTest, googletest, CppUnit Nothing special I am working most on legacy code, try to write some kind of unit tests to prevent regressions. Embedded System, working with C++ / QT / QML QtCreator / gcc / clang (code analysis), git, 11-30 seconds I try to use the coding standard of Qt for the c++ / QML coding. Otherwise it depends on the current coding standards for the module I am working on (can be different) It depends. Generally spoken a function/method shouldn't be longer than 30 lines. We started doing merge requests with coding reviews 40 20 30 Been creative to find clean and efficient solutions for a given problem. Working on legacy code (brown field) without having the chance to make it better. Some basic thoughts about I would like to find a way how to write code up from the beginning in a better shape than now. I would like to get some ideas / tools how to refactor legacy code in an easier way than now Show
<1 7 Qt QML, C++ C Javascript Python PHP Qt Qtest Electrical engineer with an interest in UX and UI Write test cases with Qt Test framework. Yocto based Linux on ARM Qt-Creator Clang-Tidy and Clazy 1-5 minutes Mostly Qt Coding Style as I use Qt-Creator as an IDE - If i can not explain what the codes does in a short sentence - miss red thread through the code Review over Gitlab MR 30 30 40 - Finding a solution to a problem/task. - Way to the solution. - Compile-time. - Debugging bugs, especially those, which are easily overlooked An approach of developing a software Write Tests -> Make test pass -> Refactor -> First, the Company is offering an opportunity to learn about TDD Second, improve my coding skills and use them on a daily basis. Show
0 20 c++ qml, python, html, javascript QTest, custom made I like to make the software scriptable and write test scripts in order to have complete integration tests. QTest, screenshot comparison Embedded linux QtCreator, Visual Studio 1-5 minutes Hungarian notation I don't understand anymore what the function is supposed to do git lab merge request. I prefer gerrit 30 20 50 Creating something new Debugging Not much. Maybe I am using it already but I just don't know the terminology To learn the terminology and concepts of software testing. So I can explain in the right words my testing techniques. To learn new testing techniques. At an interview once, the question was: How do you test a button. I still don't know the answer Show
0 7 C++ C, python, java QtTest I also use QML files for UI display and of course, Qt libraries. Most of testing is done by manual testing. Few unit and integration tests (via QtTest) are written. But it doesn't cover full code. Target system is under UNIX system. We have two main applications (frontend/backend) running and communicating between each other. QtCreator CMake 1-5 minutes New part of code is written in english following camel case rule. Comments are put if reason to write part of code is not clear. I know when a function is too long when I need to scroll in IDE to read it. We use merge request via Gitlab to validate or not modifications. At least two MMI members are put as reviewer. 30 40 35 I like to see the result. I don't like when classes are too much inter-depend, eg when you have to include many header files to develop your feature. Test should be written before implementation. Improve my skill to write tests. How to begin with new feature and how to proceed for correcting bugs? Show
7 13 C++ Java, Swift GoogleTest, qTest Tests with generated test data and recorded data. ? Manual testing, unit tests with qTest embeded linux with touch screen QTCreator 11-30 seconds KISS if it does not fit on my screen anymore - 60% 20% 20% Breaking down problems and implement solutions. Waiting for the code to compile. Unclear error messages. first you write the tests, then the actual implemtation Expand my horizont. SEe how other people would solve a problem. Show
4 8 C++ Javascript, C#, Python Mocha, GTest Over the last 4 years I tried many different programming languages and would say I am still not settled for a preferred/primary programming language. If applicable I try to write tests preemptively after creating a class skeleton/interface for example. As a seconds step fill it with the actual functionality and see if it fulfills the requirements. Embedded Linux Qt Creator, VS Code, Visual Studio 1-5 minutes Best Practises, Static Code Analysis If the function handles multiple logical tasks, that are not moved to own functions. Gitlab merge requests. If required, face-to-face / via video call) 50 25 25 Coming up with new new ideas, collaborative work, forging new functionality together If timeline does not provide the time for refactoring old code or sufficient testing cycles. Tests first, adjust/implement code to fulfill these tests, optimize code To learn more about tdd itself and how it can improve my daily work. Show
17 35 C++ SQL Google unittests, C++ Builder unittest - mostly manual with defined test procedures and unittest Commercial kitchen cooking appliances C++ Builder, DBSchema, QtCreator 5-30 minutes not systematic enough When I have to analyze a function for a long time when there is a need for expansion. rare 50 30 20 Analyze and solve problems. Create something new Requirements that are not systematically prepared. "Request concert" - I want to learn more about common practical methods Show
6 1 C++ python google test I like using new algorithms using small unit tests, debugging code with print-outs Our target consists of three parts of : basis, cooking system&application and mmi running on a linux machine VS Code gitlab 11-30 seconds formatting convention and commenting conventions it's a feeling ;-) guess it start getting too long around 300 lines every bigger change is review by a merge request 30 20 50 it's fun making things work. it's logical. everything is possible. searching errors. trying to understand confusing code not quite a lot. I want to be more effective in coding and write more reliable code. Show
16 17 c, cpp none, just a very basic python ? may be a typical (?) career from hardware developer, via vhdl, to (embedded)software developer testing on the machine using test cases; using logging outputs its a linux machine qt creator 11-30 seconds ? it's intuitively ( :) ); if I can't overview it, if it's too nested, .... sometimes I'll do a review with a colleague 60 10 30 to create new processes on my machine testing just the definition because I'm really interested!! I've never learned how to test software, whats best practice, ... Show
1 1/2 20 C C++ Java Python GTest JUnit Pytest SW Developer, Project Leand and SW Team Lead in many different kinds of project (for a couple of different customers) Highly dependent on the project and on the customer's wishes and needs. -- VS Code Qt Creator IntelliJ 1-5 minutes Highly dependent on the project and on the customer's wishes and needs. For me it's too long when it does not fit on one screen. Highly dependent on the project and on the customer's wishes and needs. 33 33 33 Solving problems and find elegant solutions. Waiting for the compiler to finish. Write a test for a new function, watch it fail, write and rewrite the code of the function until the test is green, refactor the code Interest. Heard a lot about it, but had never the time or the project to really try it out. Show
27 40 c / c++ many years ago pascal / fortran assembler 8051 cores ? i studied communications engineering. After my graduation my first job was in a company which was producing video-tape-recorders. A was designing hard- an software for electronic components. After 10 years i changed to RATIONAL company, as they were recruiting a software engineer working with controllers based on the 8051 core. From that on, i am working at RATIONAL company... i am testing my components either on a Intel-PC, or in a kind of simulation on the target. arm-single-core controller, linux, 2 main processes running (mmi and base), too less RAM, too less computing power,... tools provided by the OS, QT-creator, geany, gdb,... 1-5 minutes ? when i lose the overview we are designing components of the cooking oven. The collaboration in our system is the part, causing problems because in many cases the behaviour of these components cannot be foreseen. The big issue is not the SW, but the system behaviour... 20 40 40 ? missing understanding of non concerned people about the complexity of that... nothing, as there was no need know it. i did not subscribe to that training. (my personal opinion is, that such a procedure might be helpful to develop stable code, but it is not the solution for our main issues...) My boss asked me to do so... Show
10 30 c++ python qml qtest I like home improvement. - manually - some qtest module tests - embedded device qtcreator 1-5 minutes derived from qt examples Screen is to full are in planning to do 33 33 33 - it's not only coding, testing debug but requirement analysis, stakeholder diskussions and finding of best way to implement for customer (so the question above does not fit to reality) - more and more difficult tools and tools to wrap tools - real working together reduces when the team increases - not much - learn something new - it's for all colleages Show
4 17 C++ QML, Java, JavaScript, C GoggleTest, QTest, JUnit If i code more than 8 hours my head gets mushy and the resulting code is bad. Mostly by hand, because big chunks of the code are not testable apart from other big parts. weak hardware ARM device QtCreator, MySQL Workbench, Python- and Bash-Scripts 11-30 seconds Qt Defaults I prefer functions to cover about 1/3 to 1/2 of my (FullHD 22") display. At max the full display. Code Revies must not be done, but for middle to big changes i use them with other experts of this code modules. Usually I tell the colleagues how it should work and they comment. If needed, we do multiple rounds. 50% 25% 25% There is always something to learn and it is very satisfying to make code run more stable and/or faster. Clustering in coding standards/style, bad testability and everything else that makes me invest more time in understanding what existing code is doing instead of woriking on a problem/bug/feature. Wiriting tests before the program code. This means what exactly the code should do in the end must be known to develop a test that can 100% verify the code satisfy the requirements. There are multiple ways how to practically do this in a project. There is always something to learn and it's better if the whole team has the same knowledge input than only a few of them. Show
3 6 C++ python google test and a little bit of qTest Actually, I have studied physics and unfortunately I have never attended to a computer science course. Therefore, I am missing a lot of theoretical background and learned everything from the practical side. I am using google test. To bring the system in the right state and set the needed preconditions is most challenging for me. Furthermore, the test converage could (as always) be improved but lacks of setting up the test. embedded linux with ARM processor QtCreator 11-30 seconds Well.... there have been a few attemps to establish a coding standard in our project (documented on a wiki page). In the last week, we at least managed to integrate teamscale to have an static code analysis tool. If it does not fit on one screen, if it does too much stuff, if I don't understand it any more one week after implementing. I hate long functions. My colleague and me are doing regularly code reviews on the component we are developing. It helps us a lot and it would be great if we have more of it in the whole project. First attemps are made by introducing merge requests. 40 20 40 You see a result at the end of the day. Bug fighting, especially if the bug is not reproduceable I must admit... not much... I heared of it and it sounds really interesting and promising. My boss says so. BUT. I am happy with it since this is my change to get some theoretical background and to use the theoretical skills right afterwards in exercises. This is much better than attending to a talk about TDD or reading “only” a book. Show
2 10 C++ Python, Javascript Mocha/Chai for NodeJS, pytest and hypothesis for Python, only Googletest for C++ <script>alert("I like to break stuff")</script>;" When starting new feature: write Code with public interface, write gtest unittests for "happy path", write some more error/edge cases. If extending existing untested class: run executable on desktop and target. ARMv7 single core with Yocto Linux Visual Studio Code, remote ssh plugin, C++ plugin, Test Explorer UI plugin 11-30 seconds We try to keep it in line with existing code, so it depends on what I'm working on. For new code, i mostly use clang-format and we have some naming conventions Teamscale will complain about it. Without a tool, functions usually get too long when they do multiple things or have multiple depths of abstraction in one place We actually started doing those in the past year. I submit a MR in gitlab and get valuable feedback from my domain-colleagues 50 20 30 I like when software interacts with the real world: when something moves or does something. I don't like to leave work when something is not working. And I hate how systems become complex over time due to added features. I know I'm supposed to write tests first and I know I shouldn't write code that does not satisfy a test. I already tried to immplement some features in a tddish way. The tutorials I did usually worked with trivial examples like "int add_two(int)". I hope to get some experience with tdd that goes further than the easy tutorials you find on the web. I'm not sure I'll use tdd in my day to day work but it can't hurt to have one more tool. Show