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?
15 15+ Visual Basic, LabView, C# C, PERL None Software that I develop currently are small-medium applications for internal use. Automation tools, etc. Consequences of bugs are low because software is for internal use by a small group. Testing is limited. I led MeterMate group years ago, and we did peer reviews of ALL code changes, and some white box testing, but nothing too structured. Generally Windows applications, but interested in meter firmware Visual Studio 31-60 seconds NA Should be limited to a single "function" or operation. Generally should fit on one screen. Author of change sits down with printout and explains changes to peer reviewer line by line. 75% 10% 15% Breaking down problems into logical pieces. I get a lot of satisfaction from creating neat, well organized, and maintainable code that solves a real business need. I enjoy solving problems for others with software. Documentation (other than code comments), spending too much time testing. Not much Show
2.5 years 20 years C C++, Perl, Pascal, C# VectorCast Play guitar, bass, and a little piano. Run new code with emulator, check variables using debugger to make sure the values are as expected. currently Atmel SAM4C IAR Workbench, Visual Studio, GNU Tool Chain 1-5 minutes Always check return values. If I see it can be broken down into smaller functions. Very useful. 33.3% 33.3% 33.3% Enjoy design new software, and satifaction of solving problems/finding bugs. Can be stressful. You write tests before writing code. Show
12 4 X X X X X z X Under 10 seconds Y Y Y 10 10 10 x x x Show
15+ 15+ C, C++, Java Applets, Perl Scripts etc some JUnit I'm from India, and now live in Pennsylvania Debuger Single Step , IO Traffic Monitoring, Protocol Simulators, Stress/Avalanche Tests, Sometimes built PC apps for testing, Simulated external interaces, Code instrumentation, Display Special characters on LCD panel, Change LED colors, Electronic Signal Injection/Monitoring, Debug Prints Smart Meters, Substation Gateways, Data Concentrators IAR, GCC/G++ 31-60 seconds Aspiration: Linux Kernel more than 1 Page Down operation Supported both Formal and Informal. Tend to be overly defensive 25 35 40 Variety, Creative Independence Variety, Creative Independence Examples in the book are not building a convincing case. Show
0 20 No primary one, use what fits the task C, perl, sh, batch, scripts None New hire for configuration management area. Not familiar with them at this company, yet. Not familiar yet. Visual Studio, Vim, Komodo, 5-30 minutes Not familiar with this yet Becomes difficult to maintain and extend Not familiar yet 40 30 30 Creating elegant, well designed solutions is very gratifying. Being hurried to get it done without thorough testing, covering all use cases. New to tdd, looking forward to learning more about it. Show
5 25 C Assembly, C++ none Engineering Manager w/ 25 yrs embedded software development, scrum master System and unit test. Unit testing is not automated and system test is about 60% automated. Cortex M4, Renesas Rx IAR, RVDS, Coverity, etc. 5-30 minutes GE standard, which is not the best when it does more than one thing and exceeds on page. We use code collaborator but not enforced 30 30 30 creating creative solutions Testing whatever I read in the book Show
5 25+ Assembler, C, Basic ADA, Pascal None I support legacy products that were developed 20+ years ago. Enulation NEC legacy controllers IAR-NEC 5-30 minutes Need one I can tell you when it's to short. WHen the number of cycles spent in the function are less than the number of cycles spent getting to the function, it's too short. They need work 50 25 25 Making code work Bugs and debug I read part of TDD for Embedded C and think it is a great idea. It's a new way of thinking and need to find ways to apply it. Show
4 30 embedded firmware variety as needed handmade I drive an all yellow Mini-Cooper with a license plate of WOODSTK code a little, test a little company made, last one had a Renesas, and before that Atmel ARM, IAR IDE, Cygwin, Windows 31-60 seconds What coding standard?? ;) for me 2 printed pages, with exceptoins We try to get some in officially, most are done unofficially if at all. 20 20 60 I get paid lots of money for playing on my computer all day!! :) Basically just love solving problems on embedded systems. Bureaucracy involved in some of the process steps we have at GE. Nothing til now. Show
5 30 C C++, Java, asm None I play the drums. Debugger. Some test code that runs on the target and typically gets discarded once everything passes. Dual core, Cortex M4 micro controller. 128K RAM, 1M of flash. NEC V850 micro. 8K RAM, 256K flash. IAR compiler, Visual SlickEdit. 1-5 minutes Presently non-existent. No tools to enforce one in place. Working on adopting one published by Michael Barr If I can't see both of the outer-most braces that scope the function without scrolling up/down. Weak. Review diffs between old and new with a couple of programmers. 30 30 40 Design & Debug. Coming up with clean, elegant solutions that are scalable (even though doing that is really, really hard). Trying to schedule its development time. I have read 1/2 of the book. I've also seen a couple of real-world examples of it being used at GE & Renesas which gives me faith that it really works. But I am really looking forward to experiencing it myself. Show
28 43 C Assembly, Ruby, C++, VB, Pascal, Ada, PL/1 None Not related to Robert E. Lee Start programming in 6th grade on a 110 baud accoustically coupled modem connected to a computer at the Berkley Lawrence Hall of Science Debugger, step through code 80515, H8, MSP430, V850, Rx, ARM Vendor, IAR 31-60 seconds Barr Group Embedded C Coding Standard It's like pornography--you know it when you see it. SmartBear Code Collaborator online reviews 30 20 20 Comradery of a team coming together to complete a project ,design death marches poorly structured code what I've read Show
25 20 C C none currently a manager, but I have developed firmware for much of my career not doing development currently Renasas V850 32-bit RISC micro not doing development currently 1-5 minutes not doing development currently even with a brace matching feature in my editor I can't follow the structure they are required as part of our engineering process, but we do not have a documented process. 0 0 0 creativity, it's more fun than management having to debug and fix defects that no one can reproduce. only what I read in the first sections of your book Show
4 25 C# Perl,VB MSTest Programs are mostly in house apps Debugger Windows 7 Visual Studio 2010 5-30 minutes None at this time Conditional statements included in function None at this time 60 20 20 Solving existing user problems Nothing beginner level Show
4 Many C/C++ Python Always rolled my own I like nature Self Test ARM IAR 1-5 minutes Impromptu It Becomes Unmaintainable Impromptu 50 30 20 Challenges Challenges I know how to spell it Show
5 40 C++ Assembly, Basic, Fortran, C, APL VectorCast Cover tool Firmware design with specialty in Motion Control and servo design. EVT/DVT and some experimentation with VectorCast harness. Did not get to step of actually running devices through full harness to determine code coverage. Card and Label printing devices with various hardware CCS, Altera Tools, SVN, SBM, GNU 1-5 minutes Documented, self enforced When it can't be understood or maintained by someone not intimately involved with the writing of it occasional peer review 50 25 25 Job satisfaction getting an idea/function executing and watching a machine/program perform a task as designed Maintaining poorly documented or rambling patched code Only briefly reviewed Wikipedia overview of the technique Show
3 6 C++ Java, .NET, Python, Perl JUnit, NUnit, testNG I like writing backend web applications in my spare time. C++: I mainly debug or use print statements. Java: TDD; I write tests first. QNX, desktop applications Eclipse, IntelliJ, PyCharm 5-30 minutes I'd like to think I can do TDD in my role If I write it from scratch it's too long if it's longer than 4-5 lines I do not have formal code reviews 40 10 50 I like being able to create anything I can imagine. There's always a tool for the job. There's also a ton to learn! I don't like having to conform to old or outdated standards. It helps accelerate development and maintains a fresh codebase by preventing developers from being scared to add new features or refactor rotten code. Show
7 20 c/c++ forth none I have master degree on EE. on the machine card and label printer Altera, QNX 1-5 minutes C/C++ actual run peer review 10 50 40 Achievement that things work, like motor runs, printer prints, etc. debugging nothing but what the name stands for TEST-DRIVEN DEVELOPMENT. Show
4.5 7 C++ C,Java,C# Unit test harness provided by QNX Momentics I love to develop software related to networking. Additionally, I like to use efficient algorithms and data structures in software development. By running unit tests and acceptance tests RTOS based QNX operating system QNX Momentics, Eclipse 1-5 minutes Standard C++ Programming style guidelines Excessive inter class coupling and overhead We do pair programming. So one developer do coding and another developer review code at a same time. 50 30 20 Collaboration between designing, development and testing Waterfall model of software development It is a technique to drive designing and development of software using automated unit tests. This will provide a suite of unit tests which can be run anytime to verify that the software is still working. Show
8 27 C/C++ none none I am new to the label printer group and am coming up to speed on their development environment on the target hardware mobile and card printers using FreeScale/QNX and Altera Nios II/uCOS respectively Momentix, Altera IDE 5-30 minutes Previous group ignored them, new group seems to adhere to a standard gut feel given the complexity of it Previous group didn't have them, new group seems to do reviews and/or pair programming 60 20 20 Challenging, working with others, interesting end products At Zebra, have not been given the opportunity to design prior to coding not very much Show
4 10 Python C/C++, Perl, PHP Python's unittest2, UnitTestHarness (which I just discovered was written by you) I like rock climbing, going to the beach, and playing with Kids toys with my son. Mostly with acceptance tests written in Python or a home-grown acceptance test tool. Some build scripts are just run with a debug flag and the output validated. Label/receipt printer that supports various printing languages and communication protocols. QNX/GCC toolchain + Perl deployment scripts to a printer/VM 1-5 minutes C/C++ code has documented guidelines, build scripts have no standard. It doesn't fit in one page of the IDE. Non-existent 60 10 30 I most enjoy solving problems and investigating bugs. I least enjoy API design as it can be frustrating to get the right balance of simplicity and flexibility. I don't know a lot about TDD but after working in engineering test, I know that the earlier tests are run the better. Show
13 35 C, C++ assembler I have not personally used any Enjoy challenging work. Force all paths to execute. Thermal printers VMware, SVM, SBM, Coverity 1-5 minutes Basic unmanageable, unmaintable, complex Informal with peers 20 60 20 Challenging. Make me use my brain. Too many untrained developers. It is supposed to be a method of developing reliable bug free code faster and smarter. Show
2 4 Python C++, Java, Obj C Not sure I am from RI and am interested in future tech and music. Unittests are put together after functionality is implemented and these tests are run before committing code and upon every build. Printer Momentics, Pycharm 1-5 minutes ... When readability is lost and the point is unclear Rare 40 20 40 I consider it to be painting logic. It is an amazing blend between creativity and technical skill. Non-trivial projects are enormous and generally old. Standards change and newer developers will modify improper pieces of code. I understand that it is faster and healthier coding. Show
3.5 12 C++ Python, C, Common Lisp Zebra's UT harness (C++), GoogleTest (C++), unittest2 (Python) I enjoy debugging and reverse-engineering. Unit and acceptance testing, and empirical tests QNX Eclipse, PyCharm, GCC/GDB, Clang, etc. 31-60 seconds Don't Repeat Yourself, Be Consistent more than 1 screen length; very difficult to test We don't generally do code reviews; mostly pair programming. 60 20 20 It's always a challenge and there's no end to learning new things. Debugging multithreaded code. TDD encourages you to develop an API to your requirements, and tests for the API before you write the implementation. You then implement the code to pass the unit tests. Show
0.5 10 C/C++ basic, assembly, bash cppunit (I think...) Avid outdoorsman Unit tests, auto-regression test, manual test Arm-based freescale custom boards lint, coverity, gcc 1-5 minutes Not updated/followed very often by many in the team Unable to understand what it does in three minutes N/A. Pair programming 40 20 40 Can create/modify features and products quickly without long lead times Poorly defined requirements It results in higher quality code, more cheaply, while giving the appearance of moving at a snails pace due to the amount of overhead required Show
10 10 sdfsdfg sfsdf sfsd sfsd sfsdf fsdfsd sfdsf 5-30 minutes sdfsf sfsd sfsd 11 11 11 xczc zxczc zczx Show
27 35 C/C++ Assembly None Saw a Coyote at Paramount ranch last night Add test code as needed to test various features. A lot of runtime testing, print various cards with different configurations. Embedded processor in printer. Altera tools, Code Composer Studio, emulator, logic analyzer, protocol analyzer 31-60 seconds Created by team around 2007, derivative from a standard used by one of the team in a previous company. difficult to comprehend periodic with team, maybe a hour. 70 20 10 Its creative. No major dislikes. Very little. Show
2 15 C++ C, C#, JAVA C++ I went to school for EE UTs, acceptance tests, etc QNX ARM Eclipse 1-5 minutes TDD, Agile, XP When it doesn't feel right Pair prog and code reviewed 5 4 2 Creativity Deadlines Write tests first, make them work, refactor Show
0.5 10 PLC program C & VB No I have more experience on PLC programing ,but no so much in C & C++. I can make only simple program by using C lauguage. we have simulation system to test our PLC codes , n.a. PLC software ( step 7 ,controllogix5000 etc.) 5-30 minutes IEC 61131-3 n.a. n.a. 50 25 25 using own idea to achieve the designed function is more proud . much thinking and much testing . get information from my manager Show
3 months 5 years VB.NET C++,C#,Coldfusion, HTML and so on Never used unit test Passionate in programming world. Love algorithm and programming very much. Coding is hobby User testing Sample input and output - Visual Studio, Eclipse 5-30 minutes No follow standard Looking at the code itself Never did before 30 10 60 Exploring new algorithm Code Maintenance No idea Show
6 1 I have been coding mostly in higher level languages (Java/C#)but now i'm shifting back to C/C++ for embedded C#, Java, Matlab (if you call it one), python None I have been a field engineer for 5.5 years. I have done some softwares while i was on field, but it wasn't always a part of my job. I recently decided to pursue my passion, engineering, so i asked for a shift back to technology development..and here i am! I build small airplanes as a hobby. Then i (try to) make them fly themselves :) I usually test individual classes using test cases before integrating them in the full program. I have never used a proper test framework, though. Mostly it's by calling the class under test though a small test program and checking that the response is as expected after giving it some inputs. Embedded systems in Seismic technology. Sometimes running linux, other times barebone applications. TI's code composer studio, Keil, etc. 11-30 seconds Yet to be determined When it's doing too many things (such that i can't easily give it a name based on the tasks it's doing) Yet to be determined 50 30 20 Softwares make people's lives easier and processes streamlined/elegant. Writing code is like putting life in dead things. The power of creation :) Sometimes some very small issues take up too much time trying to find out what went wrong. I understand that it's very important...testing lets you sleep well at night, knowing your piece of code is going to work out in the field. I can't say i know much about how to do it, though...and that's what i hope to learn in the course. Show
8 8 C C++ CppUTest, TestRT I like to write code. Write code, then, write test cases to test for the good and bad cases. arm CCS 5-30 minutes Corporate standard need to scroll the page Fagan 35 35 30 Challenging job. too much process. Write test cases based on the requirement of the feature. Then, do coding to make the test cases pass. To understand TDD concept and how it is applied in working environment. Show
14 14 C++ C cpputest, TestRT - Unit Test followed by Integration and feature tests. Arm9 and Freon processor FlatFile, RoseRT 11-30 seconds C++ Functions that go beyond 50 lines We review with other staffs 40 30 30 - - Write test cases and codes side by side. Write a failing test case. Write codes to make the test case pass. Then write the test case and codes incrementally until the full functionality is achieved. Show
5 5 C++ C and C# Test RT, CppUTest I like reading and do some sports when i'm not working. Spending time with family is my favorite activity as well. Using Unit Test or flash it into the product to test it. Real Time Embedded System IBM rational rose, clearcase, TestRT, Ultraedit, Notepad++ 30-60 minutes Corporate standard When we use quite a long time to understand it it's time consuming but it's somehow effective 20 40 40 I like solving problems. When there's a bug and it's very difficult to find it out Create a failed test case before produce the production code. To have the right TDD concept and most important is to get to learn some quick tips on resolving some difficulties in work. Show
4 9 c/c++ java perl test RT feel too slow to finish product feature do some ut when writing code on target test after code done radio scripts, sourceinsight 31-60 seconds not strict follow heavy process heavey 30 60 10 smooth, fast vice versa i think tdd just take us back to desktop dev, very fast to get feedback. i think TDD is good practice for sw dev. it can help use to move faster than before. Show
9 17 C++ C,Java TestRT, VectorCast, CppUnit I like reading. And I like photography. Bundle several highly related source files together and test them together Arm9 (ti omap 1710) VC, RoseRT, TestRT, source insight 5-30 minutes We have defined coding standard as part of process for C/C++ When I need scrolling the editor view to read it. Team was following fagon inspection for reviewing code. Now team is trying to find lightweight solution 20 40 40 I like creating things. Developing software just like other design activities like writing articles or songs. I am happy when I created the code that can give me feeling of beauty. I don't like dirty Using test to drive software implementation. Generally follow the circle of: test fail(RED)->coding to pass the test(Green)->refactoring. To have deep understanding of TDD. To clarify thoughts. Show
3.5 4 C C++ CPPUTEST Beginner to TDD Test RT Ergo CPPUTEST 30-60 minutes C and C++ when the logic become complicated Fagan Inspection 40% 40% 20% Coding Testing Is writing test case first then write the code. I want to learn about TDD method. Show
9 15 C / C++ Java CppUTest Despite decades of programming experience, I am still quite new to Unit Test Perform compilation, and test the code on product. Embedded Rose Realtime, CodeComposer Studio 5-30 minutes Motorola coding standard When it's doing things that can be done by other functions Fagan code review 40 40 20 It's flexible. Lots of things can be done/achieve by just writing a few lines of codes. Computers are dumb. The only do exactly what you tell them to do. Lots of bugs to catch. It's a methodology to use during software development. Supposedly to help testing all scenarios set by the requirements, and creates a more robust software. Curious to learn how TDD can help to improve my programming skill. Show
5 8 C C++ TestRT Prefer clean and simple code CPPUTest, TestRT, black box test, sanity test ARM RoseRT and CCS 30-60 minutes Motorola standard coding Need to scroll few times Fagan 30 40 30 Interesting and satisfaction build time too long Create test cases, implement code, then do refactoring. To understand more TDD Show
9 13 Java C, C++, VB manual Have been with Low-Level Display team, writing the display drivers. Now with Signaling team, handling of radio over the air protocol. Hard coded some values to inject into the function to see whether the result match with expected result. Test the overall feature whether it behave like what it should be. Radio Protocol Source Insight, Rose RT 5-30 minutes ANSI C a function which try to produce two result, line of codes FTR 50% 20% 30% Turn the codes into the real life software which use by the people day by day which can help them to complete their task. Testing Write small piece of test cases and developing small piece of code at the same time. Over the time, incrementally add on the number of test cases and code till feature complete. Replacement. Manager told me to attend this training and would like me to train the rest of team mates after the training. Show
5 months 7 years C/C++ I know a little bit about Java. But I haven't been using that for 4 years. None I modified code and built a robot combine harvester in my Ph.D. study. I test it by using the real tool. ARM 7 Multi-6 5-30 minutes Analyze requirements, write code then test it. Bugs may exist in the function and it's difficult to debug. Analyze errors, look into the code and debug. 30% 30% 40% Writing code and making it work is great fun. It's difficult to find bugs. I heard that main idea of TDD is to write test harness before writing the application itself. Write a test harness, make it fail and then write application to make it pass. Show
6 14 c++ c TestRT A programmer. UT, off target IT and on target IT. a radio basing on dual core chip. RoseRT 30-60 minutes Motorola coding standard by review formal review with process and tools supports. 40% 30% 30% creation. repetition A process which can help to improve software quality. TDD is considered to be an advanced software development process which can improve the software quality. I'd like to study, understand and master it. Show
4 15 C# C++, Siemens SIMIT, Siemens LAD (Ladder Logic) Microsoft UnitTest I'm an Electrical engineer that always worked with software development. My work scope right now include the development of small applications using C#. And develop simulation using the Siemens SIMIT software. Microsoft UnitTest and GUI test under the target system .NET and Siemens PLC Microsoft Visual Studio 2012 and Siemens SIMIT 11-30 seconds I dont have a well defined codding standard. Number of lines and number of arguments I review my onw code. 60 20 20 The challenges of making the software work with the feeling of accomplishment with the continuous development. And the freedom of been limited only by my own knowledge and ability limitations. The frustration when the development process is not going as fast as expected. Test Driven Development. The cyclic software development process of defining test functions that need pass by the development of the real functions. When the test functions pass a new test function is written and the cycle is restarted. Show
4 months On and off for 10 years Java C# - I just joined Motorola. So, my coding skills are very rusty and most of my job functions at present do not involve much coding yet. Defining test cases and see whether the output is as expected. Some of my colleagues use Google Mock Motorola LMR radio Air Tracer (similar to Wireshark), standard editing tools 1 day or more Based on Motorola's C Coding Standard When it is doing too many things in the same function Formal Technical Reviews 10 20 70 You can see the outcome of your work. Debugging TDD is the process where you code the test cases before coding your code. To understand TDD since I have to use it. So, I need to know how to apply it. Show
9 15 C/C++ Basic CPPUTest, TestRT, Customed VC project I want to improve test and coding effiency for the whole team and individuals. UT(Function test/class test), Scenario test(task level test, off target test); IT(on target test); feature test; expert test. Embedded system Rational tools, Visual studio, ultraedit 5-30 minutes Follow legacy code; Refactor by SOLID. I can't see all codes in the screen. Invite the right person is important. 30% 50% 20% Simple and effective Architecture and design; Parallel coding and UT/scenario test; Timely on target test; Small cycle of the above actions except for the architecture. Process Coding and UT are at the same time to quickly find the defect and fix them. I try to understand whether your TDD is same as what we do in work. Show
3 14 C++ C# Rational test, Visual studio test suite Average programmer. In target test. Embedded system Ultraedit , visual studio 5-30 minutes Moderate. Code complexity factor is high Fagan inspection 50% 30% 20% Creating software what works. Using different tools to test and compile the code. Slow build time and lack of debugging tools Conceptual understanding of TDD. Never applied practically in work. Because the company assigned me to this. This is my first training to date. Show
3 6 C++ C cpputest, rational testRT Dislike writing too much test especially function by function unit testing. on target freon rational rose real time, ccs 5-30 minutes nothing in specific other than naming convention hard to read and understand fagan 50 20 30 seeing end product behave like how I envisioned it when there are too many screwed up unknown dependency nil Need to do TDD since it is enforced now in our department. Show
1.8 4 C C++ Cpputest interest in embedded programming on target test ARM9 processor with RTOS Texas Instrument Code Composer Studio 30-60 minutes Motorola Code Standard Moderator will comment on it Motorola Process 30% 50% 20% embedded software object oriented write test case base on software requirement, only follow by actually production code. In future, we need to use TDD method for code development Show
10 25 C C++, Java, Perl, Python Rational TestRT, CxxTest, CppUTest I believe in TDD CppUTest, black box testing on target 2 way radios notepad++ 5-30 minutes pretty standard stuffs mccabe analysis tool - but seriously, nobody in the team uses that fagan inspection 30% 20% 50% i like problem solving long build times 1. do not write any codes before writing any test 2. write a test, fail the test, write the code to make the test pass to learn how to make use of tdd as a tool and practice to aid sw development effectively. Show
8 years 10 years C++ C CppUTest, Rational Test Real Time Low Level component Software Engineer. Unit Test, White-Box Testing and Black-Box Testing on the hardware ARM9 Rational Rose Real Time, Ultra Edit tool 5-30 minutes Internal coding standard The function cannot be fully viewed in the laptop's screen Fagan Inspection 50% 30% 20% The satisfaction, especially when the implementation is perfectly working on the hardware. Debugging. Information passed down from Managers. Show
5 9 c c# cpputest, test realtime - cpputest arm ccs 5-30 minutes - - - 60 10 30 fixed an issue or learn a new thing. when build server is down, build need longer time, requirement is not clear, do not have test targget to test, too much of process. write a test first, then only write the codes. to learn tdd Show
more than 1 year more than 7 years C++ C python cpputest googletest have some experience about unit test UT IT embedded C legacy code source insight 30-60 minutes I think I observe company coding standard more than 100 lines, too much conditions I think it's OK 50 30 20 Fast debugger or fast testing different hardware environment or different system environment between developing and running. write testcase at first. case will fail and you program the code to pass the case. Manager want to generalize the tdd to our team. I think tdd can help us to improve the quality Show
10 12 C/C++ NA no unit test working as software engineer since graduate, 14 years working experience, integration test, black box test, no unit test. two-way radio Rose RealTime/UltraEdit 5-30 minutes follow existing coding standard after review it manually we have formal review process 50% 30% 20% I develop something and someone using it! too much process to govern the software quality, debugging software I am beginner of TDD. In progress studying the TDD book, and trying to setup the environment to start TDD... learning TDD and clearing the doubts on TDD Show
4 4 c,c++ python CXX TEST SW developer working on DSP CXX test, Physical unit test DSP TI BIOS, ARM eclipse 5-30 minutes EUROSDOP When reading the code becomes complex Fagan and formal revies 50 20 30 Create new stuff, Ability to design review processes we use CXX Unit Test, We follow agile which promotes TDD To train as facilitators to bring in proper TDD mechanism to my teams Show
9 20 C/C++ Python, C#, Java CppUTest, Python unittest, Visual Studio Unit Test Framework Passion with programming and embedded system. Partially Embedded ARM system Eclipse, GNU GCC toolchain, vim, Notepad++ 5-30 minutes we have formal C/C++ coding standard document When it is difficult to comprehend the function by just scanning through the code. Formal fagan reviews 50 20 30 Ability to create software that changes people's live Debugging non-deterministic low level embedded software issues. I've some informal experience with TDD and unit testing To learn about TDD for embedded C++, to understand and clear some doubts about TDD for embedded C++ Show
3 13 C, C# plenty no Embedded hardware and software engineer Compile switch enables a special test mode that runs on simulated input Embedded systems MATLAB, Keil, Eclipse 31-60 seconds 1 1 small team. no review 1 1 1 1 1 1 1 Show
3 6 LDR STL, FBD none Sustaining existing codes, propose solution, troubleshooting Simulator, running case None STEP 7 5-30 minutes none It gets harder to debug none 10 60 30 Mind challenging, strong imagination bug and error A software code to test the written software To gain knowledge to improve on code testing and validation Show
0.3 5 C C++, Java Visual Test, Gmock Love to learn new things None ASIC with no OS depends 31-60 seconds Modularity more than 30 lines and performing more than 1 task basically looking for memory leak and coding convention 30 40 30 Freedom to express Hidden bugs that only show up months later A code to test another code Company Requirement :) Show
2 5 C# Perl, C, Assembly Language, LabView Never Test Engineer with experience in semiconductor. Functionally. Test System for Isometrix product Microsoft Visual Studios 2010 11-30 seconds Fair If it is more than 2 pages long of my PC screen Weak 60 20 20 Notion of bettering an existing problem with my SW product. Debugging. Nothing. To write better code in a faster way. To become an embedded SW engineer. Show
3 1 C C - I'm more a test hardware design person but not too much into doing programming. compile in CVI CVI CVI 31-60 seconds - - - - 1 hr 3hr have to think how can we structure, do code handling in a better way which reduce any unexpected bug happen - - i'm interested to know on the basic & best practice of TDD architecture & concept which may apply in the programming design. Show
1 2 C Verilog HDL, Assembly NA I have an electrical engineering background but I have had passion for firmware since my bachelors where I programmed microcontrollers in assembly language and in my Masters I programmed FPGAs in verilog HDL. Currently I am programming a DSP from TI in C. Using CCStudio debugger. I used test benches while working on FPGAs TMS320F2812 CCStudio. Keil 1-5 minutes Sclumberger standards If it does not fit on the screen NA 30 40 30 Its like a puzzle, a riddle that I need to solve for the hardware to function Waiting for code to build. It takes 2-3 minutes every time I clean my code on CCStudio. I heard its about designing test benches before you start coding. And from someone else that its about using test harnesses, but I am looking forward to what it really is. To develop as a good and efficient firmware engineer and use these techniques here in my projects Show
2 4 Embedded C C# CppUTest I'm an embedded software engineer, have been doing embedded C and trying to understand and implement Uint tests rather than TDD because the project I'm in is in a mature state. I would like to learn more about TDD and how we can implement it in other languages such as C# for application software rather than just embedded. Unit tests, deployment on hardware, regression test on hardware TI TMS320F2812 CCS, Eclipse 1-5 minutes Company standard enforced in the tech center, focuses on the safety and readability of the code lines of codes, high stack usage, big scope, generic name is used where you cannot pin a specific functionality to the function Reviews are mainly using version control system, locally, within the project team, often more formal reviews are held which include members from other teams and some subject matter experts 20% 40% 40% - improves creativity - cheap in terms of what you can do with what you have. - continous development and improvement in IDE making it much easier for the developer to focus on writing efficient code. embedded software has limit resources, often we have to have some hardware ready in order to test or implement a functionality. Some problems that we see (like complete lock-up issues or driver lock up issues) are not repeatable Test Driven Development, used to drive the unit code from the test itself. Highly beneficial when the unit is a new code that is being developed. However, I usually end up writing unit tests rather than TDD for legacy code. understanding more and more about TDD, how to implemenet it in legacy code or in other languages and platforms, not only embedded C or C++. Show
8 months 8 C/C++ Verilog, Assembly, MATLAB, Python, LabVIEW cpputest specialize in embedded and artificial intelligent controls cpputest, eclipse, mingw, sometimes Jenkins CI FPGAs, ARMs, DSP Eclipse, Visual Studio, Multi, VisualDSP++ 5-30 minutes relatively non existent does more than 1 thing or ~100 lines relatively non existent 40 50 10 I like the rush you get when you program a piece of hardware to work in perfect harmony as intended. poorly written legacy code you start by writing a failing test, you then implement only the code necessary to pass the test, write another test, implement, refactor, repeat 1.Required by manager 2.Self taught so I would like to know what I missed teaching myself 3.Have some embedded related TDD questions 4.Don't fully understand mocking Show
1 10 c c++ none I am an embedded software developer working on firmware for TI processors for high temperature high pressure safety critical systems. I am an xkcd fan. write my own test cases, dont use any formal test procedure firmware for TI processors for high temperature high pressure high reliability safety critical systems. Code composer studio, labwindows//CVI 5-30 minutes nothing in particular whent it starts growing claws ;) just kidding.. I guess it varies.. when it feels too long nothing in particular 30 20 50 The thrill of the chase, using creative methods to solve a diffciult problem Being dependednt on hardwar whose workings I dont know not much because I feel I can be a better developer by having better testing strategies and by changing the wayI think about testing code. and oh, free lunch for a week! Show
3 months 3 yrs C Verilog None I am not good in programming ,but I am taking this as challenge to improve my embedded skills as this is what I desire to be. In the Debug Environment MSP430 Code Composer 30-60 minutes SLB coding Standard If it does more than 1 basic functionality Variable name is not defined to understand the use of it 6hrs 18 hrs 12 hrs I like the logical thinking to accomplish a task .I would Like to improve my logical thinking by thinking of broader prospects of it,like improve my code size , my effiency , simplify things Testing the code which we know will work , but sometimes not thinking through the code where it impacts other systems. Its test driven development where the test case is written before developing the code. I need to know all the test case of failures even in simple code which in turn will improve my code ineffiecient and a robust way Show
7 MONTHS 1 year c program C # not applicable electrical background starting programming very recently not applicable str911faw42 - arm 9 Ride 7 11-30 seconds not applicable if it has too many lines or too much operations in it not had any yet 60 10 30 Problem solving, faster results takes time to debug testing how functional a code is and finding possible errors because it would give me good knowledge of good practices Show
4 3/4 5 C PHP, C++ none Electrical Engineer, recently switched to firmware, very new to TDD (0 experience) Live, on the target TI 28335, MSP430 CCS6 5-30 minutes There is a SLB code standard, I am aware of it. Basically - write code you can describe meaningfully. It is too long if I cannot hold it's structure in my head (forget the beginning by the time I got to the end) Had none so far 30 20 50 The process of creation, making the hardware do things Hard to say, it gets to my gut sometimes basic concept, really 60% - my metier required this course 40% - the idea of a software "testbench" is actually really cool, I wonder how useful it is in embedded environment. I am curious. Show
>1 ~20 C/C++ Python (some times) varies depending on company I prefer C++ You kidding! There are no unit tests written here. Development tests yes, but these get forgotten after rework etc. improve embeded skills Eclipse, and adb logcat 5-30 minutes There is one but it depends on the coding style of the changed file more than a page, but depends on context Gerrits, but most people +1 40% 30% 30% Creativity Debugging other peoples code with sufficient debug messages Test Driven Development; Always nice to talk about, seldom practiced. The team leader arranged it and I'm happy to attend because I want to know more about embedded coding. Show
8 18 C/C++ java gtest, pocket pc test suite i am developing NFC software stack and doing feature development for this technology. functional and unit testing only ARM based mobile phones. eclipse, klockwork, lint, Gdebug, 2-4 hours qualcomm internal coding guidlines not more than one page gerrits 30 10 60 i like solving challenging problems and work on new innovative technologies which helps me to sharpen my visionary and imagination skills and take me to further level to accept more new challenges. if jobs becomes repetitive and documentation. usually in practice we don't use it as we don't have time and resources to execute... to know how we can limit the time and utilise same resources to work in a TDD environment and how best we can use it for reducing bugs in our code; Show
2.5 years 7 c c++ Junit in java sometimes Embedded software development exp in NFC and other connectivity technologies i.e. AGPS and embedded development experience. 1) By putting logs in code. 2) Placing breakpoints if development environment supports it. QCOM MSM platforms. Android , Eclipse, MS visual studio , VI , git , perforce , SVN etc. 11-30 seconds I try to write code which are very specific in task they do keeping in mind readability of the code. 1) if having many nested statements 2) if the same logic is being repeated in the same function or in same code. 3) too many state defining parameters 4) many comments about the code lines in side the function. my codes are reviewed by my team mates and I get comments as per the team's understanding . They are generally related to the part of the code which are not very much clear to us. 60 30 10 Creating a code that runs on many devices and used by many people around the world. Tight dead lines. Basics only . Testing a code without having actual hardware at unit levels of code. To understand that how this methodology can help me to write a better code in terms of quality , ease of portability and helping me to reduce time on actual testing and fixing issues later. Show
1 8 Assembly C Platform Based Mostly programming in Assembly for Rela-time Systems On actual Target ARM based Mobile Devices VS 30-60 minutes We have an internal document detailing the coding practices we need to follow Based on maintanabillity and readability. It realy depends on the functionality We have aumated system where each change in the code should be reviewd by other devlopers before the changes can go in. 40 30 30 Solving complex algorithms and real-time issues Time spent on not doing the real thing Its a way of developing the SW via short deveopment cycles. To learn more about the best practices and techniques of C++ Developments Show
1 11 C++ C, Java, VHDL/SystemVerilog, some scripting languages CUnit I enjoy low level programming, the closer to the hardware the better. 1st stage: compiles correctly 2nd stage: code review 3rd stage: blackbox testing on target device Android / Linux Eclipse, vi 1-5 minutes We follow the Qualcomm specific rules for secure coding. Rule of thumb: If it is longer than one screen page. We use gerrit to review code of peers in the final stage of development, i.e. shortly before release. 20 30 50 I like the quick feedback when a new feature is finally working. Debugging unknown code written by the open source community with the "sparse" comment style. TDD is a coding style where tests are implemented first. During each step in development, all tests have to be passing. It gives direct feedback to the developer. Drawbacks are a false feeling of security due to weak test coverage. To have more arguments for a paradigm shift in my team towards earlier testing. To use test driven development in my own work. Show
1.5 4 C C++, Java, C# None C/C++ Knowledge with a passion for making things. Manual Testing Windows/Android Visual Studio/Eclipse 11-30 seconds Extremely High Does more than one thing Good 65 25 10 Being able to make machines do things. Bad code. Being able to test what you do. I really want to know how to write tests for code. Show
6 16 c++ c, perl, python, java gtest Senior Staff Engineer responsible for delivering Firmware features. Additional task of maintaining firmware released to customers Visual Studio Simulator and on real target CortexM0 Visual Studio, SlickEdit, RVDS 1-5 minutes Qualcomm internal coding standard It it does more than one thing it is meant to do. Or anything more than 500 lines Organised by developer via Code Collaborator 20 20 60 Coming up with design that fits customer requirements and seeing it actually work Overheads and paperwork Allows incremental development enough to pass just the test cases or requirements. Mandotary Show
1.5 4 C++ C, Java Not sure I have a collection of Lego mini figures on my desk Native g-test, sample applications Mobile device Develop in text editors with android compilers 1-5 minutes Average If you have to scroll through it too much Consistent 30 10 60 The sense of accomplishment of having something working perfectly. Tracking down those elusive bugs for too long. I just had to look up that acronym I was surprised by it but it sounded relevant. Show
1.5 3 C C++, Java - - Using logs NFC native lib for android Eclipse, VS 1-5 minutes As simple as possible. Divide and conquer when I can't understand what its functionaity is in 2 mins - 10% 30% 60% Well, developing. You write something and then you can see it in action You can get stuck in the most simple bug for hours... Not much I don't consider myself a coding "guru". So, if there is an opportunity to learn something new, I'm in! Show
7 30 C C++ None My whole carrer has been in embedded systems To the requirements Equipment on a bus used mainly for fleet tracking IDE 5-30 minutes Proprietary It does not fit on the screen Semi-formal 30 30 40 Immediate gratification. I love getting things to work. Writing documents (SDD) Nothing Want to learn about TDD and how it related to embedded development Show
2 7 C Java, Python NA young engineer that is eager to learn more write my own test function and run against the code to be tested ARM Source Insight 11-30 seconds NA NA NA 20 20 60 NA NA not much interested in tdd and hope to learn something useful that I can apply in my current job. Show
1 4 C++ C, Java, Python, BASH JUnit, and some C++ unit test framework from university I ski, and ride a motorcycle. Not at the same time. Manually creating conditions to test on bench, building, loading to drive, running against appropriate test suite tests. A multi-processor SSD drive, or a simulator in Linux. SlickEdit, GIT, SVN, vim, ARM compiler 5-30 minutes It is a word doc in the 10s of pages. It is fairly comparable to other standards I've seen. If it's more than a page, it's too long. Also, if there are repeated portions of code. Reviewed in CodeCollaborator by my team members and appropriate other teams 20 30 50 I like solving problems, keeping up with technology. Spending time continually debugging everyone else's code and not writing anything. It employs a short development cycle, and starts with building a test that meets the intended criteria. Then a minimum amount of code is constructed to meet the test requirements, which is then refactored. The real answer is that I will take any training that is offered and has a potential of advancing my knowledge and making me more marketable. I think this class will help me be a faster and more accurate developer. Show
3 10 C python,pearl, Vera, Verilog, don't know ASIC verification engineer moved to FW development unit testing, regression testing SSD NA 1-5 minutes Micron coding standard NA NA 50 25 25 The functionality required to ship a product beyond the capabilities of HW Too much emphasis on process and not on effectiveness of code and results none Need to refresh my coding skills Show
1 15 Java C/C++, Scala, Python, Ruby, C#, others Check, JUnit, Google Test, my own, and others that I can't remember atm. Programming is a hobby first, career second. Mostly unit tests. Embedded SSD drive. At this job, Sublime Text mostly, vim in a pinch. 11-30 seconds It mostly contains formatting and commenting info. When it does more than one "thing", or if it's hard to digest when reading. They're generally ok, but, sometimes they are huge, making the code review ineffective because it is hard to digest all of the information. 45% 45% 10% I like creating things. I especially like when everything fits together in an intuitive, easy to read, efficient, easy to maintain, elegant piece of code. Having to come up with high confidence predictions for large pieces of complicated programming work... Quite a bit, but mostly focused on the software development side as opposed to firmware. To help my other teammates that are also doing the training and to learn a thing or two (there are always more things to learn). Show
0.1 26 C++ C, Python, and some others much less frequently Google Test, Google Mock, CppUTest I learned most of what I know about Agile practices working for Pillar Technology for about a year and a half. For personal reasons I had to move back to Tulsa, so I worked for Garmin for a couple of years. Now I am starting a new position with more freedom to practice software development correctly, and to teach others to do so within the context of the work I do. I am just getting started at this company, but so far I am test-driving an implementation of telemetry encoding and decoding using Python, which I then intend to further test-drive in C and C++. I am looking for guidance on how to test-drive very low level code, such as direct hardware interface. We work with PIC and Cortex-M series processors at the moment Leaning toward using open source whenever possible, also ARM-MDK, MPLAB X 31-60 seconds We do not yet have one established When I can't understand it at a glance Non-existent at this point 80 10 10 I enjoy creating value and solving people's problems It doesn't happen fast enough I have practiced full time TDD in C++ for about a year and a half, ending about two years ago. In the interim, I have practiced TDD in Python when developing tools used in the software build process. I want to improve my ability to test-drive code for embedded systems, and to encourage my colleagues to practice TDD in their projects. Show
5 5 C C#, assembly NUnit (C#), home grown test framework I am my team's Scrum Master DO-178B's Requirements Based Tests. A lot of manual test procedures. Automated tests are generally not 'for credit' tests. Trying to enforce Vertical Slice user story "requirements -> code -> test" in a sprint. Traditionally, we have followed the "V" method, where test procedures come long after 'design and code' are done. Little to no automated test procedures. PowerPC based embedded computing system. Eclipse as an IDE. PCLint for static code analysis. 30-60 minutes MISRA-C 2004 No standards defined for size of function. Usually a 'does this function do too much?' gut feeling. Informal every sprint (static code analysis, Subject Matter Expert review). Formal review (Safety , Certification, Software Quality, etc... every release) 20 70 10 I love solving the puzzle. This often includes architecture, ability to test, and the actual implementation. DO-178B flight certification requirements for following a more Waterfall flow. Resistance to testing first because it hasn't always been done that way. I don't like that DO-178B requires independence (code developer can't be the test developer). I've read Kent Beck's TDD book, and I'm 70% through TDD for Embedded C. I want to try and convince my organization that TDD increases quality, decreases rework, and can be used in a certified software environment. Show
1 8 C C# I do not know what "unit test harnesses" is. I do not have a very narrow area of expertise, most of my career has required doing whatever is needed to bring an electrical/software product from concept to manufacturing success. I have never worked on a software team larger than 2 or 3 people. Work on functional pieces and with some combination of testing with oscilloscope, in circuit debuggers, printfs, and functionality/interface tests for the specific application. dspic, arm cortex mplab, keil Under 10 seconds I try make things modular, readable, organized, and flexible. From a hardware perspective, when it does not fit on one page of flash. But I suppose from a software perspective, when its trying to do more than what would be a logical functionality as an object. I'v never had one. 30 30 40 It's not a like or dislike for me, I enjoy product development and invention. Developing software is a needed tool to accomplish the reality of those ideas. Getting bogged down fixing weird bugs. I am a noob to "tdd" Dale recommended it to me, and I view it as a way of learning about ways to better design for and test software, and see if/how it can be beneficial. Show
21 26 c perl, python Google Test A tech guy trying to do mostly management Simulator, Functional on FPGA and Live Product 5 ARM core customer SSD controller ARM, GCC, Arium ICE 1-5 minutes Documented General Reviews Formal, Required, CodeCollaborator 0 0 0 Enjoy the ability to develop and deliver useful capability The ability to effectively predict time to capability availability A few technical articles that I have reviewed I have seen a number of process changes deployed and failed. I am looking to better understand what is truly required to effectively deploy and what to expect Show
less than 1 4 C a little C++ we usually use inhouse scripts and ISV's to verify our code functionality I'm an engineering graduate, been working as a firmware(security module) engineer for SATA SSD's for more than 4 years. We usually test our code with inhouse scripts and 3rd party scripts and tools. SATA SSD, ASIC based on ARM source insight editor, realview compiler and debugger, Lecroty SATA analyser, MS Visual studio, etc. 1-5 minutes Each product group defines their own coding standards, so it depends on the product. if hte functionis more than 25 or 35 lines, then i feel it is a very big function reviews include self review, peer review, and walk through. 50 25 25 Enabling a device or an app to do its intended function with my code makes me feel good. And the constant challenges and learning makes me go for it. almost nothing I heard about this acronym "TDD" very recently. I'm expecting that this session would be of some help in developing a robust code with minimum defects and offer me some guidance in keeping my code modularized so that the code can be re-used on future hardware platforms too. Show
2 30 Ada C, C++, Perl, Java Proptietary I worked in the defense industry for 27 years on very large systems. I have also work on software on several different satelites. I am now a test lead at Smiths Manual testing Medical infusion pump Visual Studio 11-30 seconds Minimal standard At Smiths depends I perform code reviews with a checklist and extensive knowledge base 70 20 10 I like the challenge making sure the software meets the requirements and is extensible when more requirements are levied against it. Not having all the requirements when I start. Very little. just started the book. I would like to be a trainer of TDD and to ensure our new project does not fall into the old habbits that is not TDD. Show
< 1 > 20 C C++ none/proprietary I train horses in my spare time. firmware verification medical drug delivery system eclipse 5-30 minutes similar to MISRA complexity 3 people, 1 recorder. Code reviewed at a meeting, prereviewed before meeting. 20 25 55 I like when I figure stuff out. Someone sitting on my shoulder Your book is my only reference. assigned training Show
6 4 C Java Junit I am a Sofware Test Engineer yes TI Code Warrior 5-30 minutes OK NA OK 10 10 10 fun debug not much sub for my peer Show
1.5 7 C NA google test I am embedded software engineer working on ST processor . For hardware tested , we write stubs and for application stuff , we use google test frame. STM32 , Arm processor IAR workbench 31-60 seconds Misra C after 30 lines of code Static tool analysis and peer reviews 30 50 20 Designing Documentation it emphasize on Testing a code more than writing a code. Testcase first and then main code. to develop and unit test new project and ofcourse learn a new approach toward writing a software with minimum bug . Show
15 25 C IEC61131 ST google test & CODESYS test manager Married, 2 boys, aged 7 and 10. Enjoy golf, cycling, fishing Conbination of automated unit tests (generally developed after code implementation) and manual tests CODESYS CODESYS, Visual studio 1-5 minutes We have one, and we have been enforcing static analysis rules for the last 18 months or so We don't (not really) Some are good, some not so good (depends upon the complexity of the code being reviewed) 65 25 10 (including debugging test code) the end result, something that works well nasty bugs (timing, memory or multithreading problems that can consume significant effort) attended your 2 day taster course several years ago (as part of Mark Green's training course) Interested in understanding how to structure code to make it easier to test - something which has been a real struggle over the last 18 months Show
28 24 C C++ java googletest I started out as an electronics engineer but decided to switch to software Mainly manual testing with some automated googletests Currentl ARM based IAR EWB 11-30 seconds Based on MISRA It takes more than 5 pages of my editor Performed by a peer 50 30 20 Putting intelligence into some dumb hardware Problems that are difficult to get to the bottom of. Had a brief introduction to googletests by a peer. Want to improve my software productivity Show
13 13 C ruby google test Looking into cyber security implications for industrial control devices unit tests, some TDD STM32Fxxx, ARM CORTEX, FreeRTOS, VxWorks visual studio, IAR Embedded Workbench, Windreiver Workbench 1-5 minutes Based on MISCRA, use klocwork static analysis when you can't see it on one screen Manual, functionality, common security issues, etc 60 25 15 Solving problems Wasting time debugging simple errors Complete course with James Refresher, not used TDD in anger, want to get better at writing tests Show
just started on 01/15 10 MATLAB C N/A I'm a control engineer. I use the programming languages mainly to design/build control algorithms, models and simulations, i.e. MATLAB/Simulink environment. I used the C language for the translation of the control algorithms. Design of experiments of the control algorithms that I have implemented. CODESYS Simulink PLC coder / CODESYS 30-60 minutes N/A N/A N/A 40 40 20 The possibility to use code to implement a mathematical algorithm. Facing numerical problems like the loss of significance. Because I am not a pure programmer and I don't have a pure software background, the TDD is new to me. Because following practices similar to TDD for MATLAB algorithm development would be beneficial for the quality of the results. Show
7 15 C language just minor works on code written in JAVA, C++, VB, Phyton, Lua, Perl, none In my little team I'm not only an embedded developer, but I also define functional specification, support documentation, support service and sales. So I'm not a "deep" embedded programmer. I test against test specs running the code in the defined condition and tacking note of the results. 8051, AVR ATMEGA32, ARM7 IAR Embedded Workbench, KEIL MDK-ARM 1-5 minutes working on code written by others I try to be conformant to the coding standard that I find when is too hard to understand the flux of code in the function code is reviewed by my colleagues by means of SVN compare tool 60 20 20 Find a nice way to make a machine solving a problem Have to do with inherited messy code very few: code dovelopment driven by test harness definition Think I can learn some very state of the art techniques Show
15 25 C Assembler, Google I qualified in hardware and moved to firmware 25 years ago. Currently I am working with legacy code maintenance and development of special versions. Ad-hoc Embedded instrumentation MS Visual C, various compilers 31-60 seconds Company standards for C It takes too much time from the executive. Peer review controlled by Trac tickets 70 20 10 Making things work Tricky debugging Nothing I was told to! Having said that it does look like a very interesting approach for new projects. Show
30 30 C minimal C++ google test - many years ago I generally work close to the h/w developing measurement system drivers Jtag probe debugger to debug realtime issues I usually write my own debug code STM32 microcontroller based analogue input module IAR workbench 31-60 seconds we have own own coding standards - enforced with Klocwork can't see the whole function on a page peer code reviews 30% 30% 30% writing the code documentation write the test code before writing the production code the whole s/w team is attending Show
10 2 C Java gtest I love spending time with my family and occasionally, I play table tennis with a group of friends. gtest and Klocwork static analysis Cortex M processor IAR WB 11-30 seconds MISRA when you get lost trying to find out what the code is supposed to do peer reviews 50 25 25 the challenge to create something useful the intriccies of the language not much, create a test first for the functionality and then create code to pass the test part of company activity and to learn more about TDD Show
3 6 Structure Text C, C++ Google Test I'm spending a lot of time doing Jitsu at the moment. CODESYS test manager unit testing E+PLC400 - PowerPC based system. CODESYS, visual studio 1-5 minutes We have internal coding standards that we follow. It's bigger than a single screen / does more than one thing. Code reviews are done at the end of the code / test development process and usually involve the engineer that wrote the code and an additional engineer. 20 70 10 Being creative, solving problems, everything coming together and working. Mundane but necessary tasks. Tracking down bugs. Maintaining bad code. Have read your book on it and try to implement it on a day to day basis but not as well as I would like. To improve the architecture of my program to allow for better testing. (Honestly!). Show
3 10 C python, bash, perl cheque I have a mixed background of HW (RTL design, PCBA design, signal integrity) and FW (storage and SSD embedded firmware design). we have unit tests for corner cases and api testing. We also use larger system black box testing scripts in python. ARM Source Insight, VIM, gcc, armcc, git 1-5 minutes it's evolving... We have a rather large document for developers to follow, but there is legacy code that doesn't follow it. On new code we follow it, but on legacy code we typically follow the file's main style. if it's doing to many things, that can be broken down into smaller re-usable functions. we use code collaborator to review code between domains 30 50 20 I get to solve problems, but be creative about it. It's like writing a novel, you have some general bounds, but within those bounds you can create something very unique. Documentation... :) I'm not real familiar with TDD, but I assume it focuses on early testing to catch bugs earlier before they become more difficult to solve later. My manager asked for volunteers. I heard the class was worth going to from previous attendees so I volunteered. Show
0.3 7 C Python, C++, C# none Just started here at micron, came from seagate doing the same kind of work. running automated tests, and bench testing my drive with already made tests testing done in linux on a drive or fpga eclipse, notepad ++ 5-30 minutes none when it becomes to long to follow we use code collaborator and atleast two reviews must be on them 30 50 20 I love problem solving jumping through all the hoops to get code checked in i know it is a development philosophy that puts writing the tests for code before writing the actual code. This is supposed to reduce time spent debugging and help stabilize code. Company is adopting this TDD philosophy for code development. I want to know how to do it properly so I cam rely it to my other team members. Show
1 15 C C++, Assembly in house developed I don't know... unit & regression testing ARM M3 slickedit, arium 1-5 minutes Basic Standard - Varies between groups Visual Inspection Engineers do a decent job through code collaborator tool 30 30 40 I like seeing the feature finally complete or resolving a defect. nothing really All I know is that test are developed as the same time as development. No one else in my group volunteered. Show
1 6 C Python Only self-assembled function test harnesses, no test harness frameworks. In addition to development, I answer Git questions for my division. Via existing system-level regression tests, and through Python-initiated SCSI commands that initiate . The target is an multi-core ASIC media controller. Arium Sourcepoint, Slickedit, Git, Code Collaborator, custom Python scripts. 1-5 minutes Our coding standard is an internally created and well-documented standard similar to K&R. Personal judgement. We use Code Collaborator for reviews. 40% 30% 30% Solving interesting algorithmic and design problems. Debugging others' code. I know that it involves writing tests beforehand/concurrently with development code, in order to be able to test continuously during development. To hopefully learn some new techniques that will make development and long-term maintenance more efficient. Show
1 18 C C++ - - - - - 5-30 minutes - - - 70 15 15 - - - - Show
5 20 c c++, assembly in-house firmware engineer in developing real-time firmware for the SSD drive on multi-core arm processors. Jenkins using test scripts using python and shell scripts. Solid state drive SSD green hills 5-30 minutes we use standard c coding stardard. when it has too many functionality in it with too many if's we use code collaborator to peer review 30 30 40 That you can see outputs fairly quickly compared to building cars or other systems. too many meetings and not spending time on development not much, except that it is that you test as you develop your code to get formal training in TDD and to see that we're using standard TDD development process in our development process. Show
8 12 C python independently developed I've done personal projects involving tools for old game consoles. Combination of on-target testing and unit testing 3 CPU arm-5 based system Greenhills Software, previously ARM/RealView 5-30 minutes MISRA (configured), along with a page of guidelines when you find yourself wondering how many things this function does done on a git server tool (stash) 35 20 45 Developing features that achieve outcomes specific to the project, debugging and finding the root cause of issues. Difficult to track hardware interactions, trouble getting consistent results It is the idea that if it is useful for the project and has some function then you should be able to test for that functionality. If you know the desired result you can write a test to check the outcome before you even develop the code. My boss suggested it, and it seemed like a good idea, also he said it wasn't optional. Show
2 12 C/C++ Python, TCL Home Grown I am an embedded C++ programmer who loves to create new things and solve issues. Manual Unit Test Black box testing Flash Controller Xtensa, GDB, Eclipse, 1-5 minutes none When I start losing track of variables personal, on request 30 10 60 Solving problems, whether they be within the code, or a problem the code needs to solve. Fighting with the tools to get them to do what I want them to do. nothing As part of a company sponsored training course Show
5 35 C None Cutest I donate platelets. A lot. Bench test, Cutest, checkin test, nightly regression test, internal weekly tests, reliability tests, system compatibility test embedded multi-core ARM Green Hills, doxygen, Notepad++, GIT, stash, JIRA 1-5 minutes Written, not enforced. Coding standard says 200 lines, not checked and not enforced Stash, not formal, 2 engineers must approve 25 25 50 I like making stuff work and making stuff work better. All the BS management stuff. A little. I've read about it online and we tried a pilot project on our own last summer but the practice has not been adopted even though it is obviously better. My boss told me to, and I'd rather be taking a class than doing my day-to-day job. Show
8 32 Dynamic C C#, C++ none. Others here use CPPUTest I am self oblivious. Ground and pound. TI chips -- concerto, piccolo Eclipse, MS Visual Studio, Dynamic C IDE 31-60 seconds ignored in favor of personal preference Cannot see it all on one computer screen non-existant 40 10 50 Tracking down hard bugs. Hard bugs. It's a love - hate relationship. I have read an early edition of your book. I have a personal goal to catch up with the other team members who are already using it. We, as a team, have decided to use TDD going forward on our new products making use of TI chips like Concerto. The other members of the team are already using TDD; one of the members took your course and promoted the technique. Show
1.5 39 C++ Python Cppunit, Nunit We don't have any space left in our firmware instruction space to include any test code. Blackbox tests controlled by Python that initiates host to controller (our firmware) traffic. Firmware controlled logging of events and errors. An SSD controller. Xtensa Explorer, Eclipse 11-30 seconds Each engineer's own. When it has uneven hierarchy elements or reusable subsections. Mostly nonexistant. 80 15 5 It fits my interests and skills. Being patient with management. It wants you to write your test before you code a function as if you have the function clearly defined before you have defined it. That to me is a fatal flaw of TDD - hope you prove this wrong. I hope you can give an acceptable response to my previous answer. Show
1 38 c c++/python/perl none I have three grandchilderen and two Berners If I think I need to I will write code embedded in the firmware to test functionality. Otherwise I use system tests if they exist. ssd build around multiple arm processors. arm compilier/ vim 30-60 minutes we have one but it evolved over time, older code does not meet the current, newer code may or may not meet the current, code reviews rarely enforce it more than a couple of pages long code collaborator. seems to work well. 20% 30% 50% mental challenge, working with smart folks. It has been 10 years since I worked on a project that has actually shipped. Seems most companies cannot tolerate the amount of time it takes to build something from scratch. Write the tests first then the code. Should improve code quality and reduce the number of bugs and debugging time. Improve my skills and abilities Show
~1 year 20 years C++ C, C++, Python, Perl Google Test Most of career spent in medical electronics industry. - Nightly Python system tests - Separate test organization running proprietary Python test scripts against devices SSD ASIC with Tensilica CPU cores Xtensa (Eclipse- & gcc-derived dev environment) 1-5 minutes No written standard Personal judgement No code reviews 40 20 40 Solving problems through correct design and implementation. Debugging, especially in embedded environments. Some: - xUnit frameworks - Write test before tested functionality, to verify it fails To get some formal training on TDD. Show
3 7 C Python, Java, C++ cutest I enjoy the outdoor. Rock climbing, mountain biking, etc. Running my code on the target against current tests or test I have written. A solid state drive running in a PC. Sublime text editor, Greenhills tools, test system, serial port 1-5 minutes Use MISRA-2004, Doxygen, as well as some other basic standards for coding logic and style. Coding standards state function must be less than 200 lines. Code reviews are done using an online tool, from at least 2 people. 40 20 40 Being able to understand the complete system, and see the results of my work. Tedious processes. A development environment to deliver solutions to customers by developing tests that fulfill the customer's requirements, and using tests to determine when the development of the feature is complete. My supervisor signed me up for the class. Show
< 1 35 C C++ N/A Worked in a variety of industries - telecommunications, defense, storage. By performing Unit Tests using such things as printf's to monitor internal states, Fault Insertion Macros, Emulators, Pythons scripts... SSD Compilier, Arium Debugger 1-5 minutes Internal Document I don't CodeCollaborator 60% 20% 20% Figuring out the best way of doing things. Check-in process very little This is something new being discussed around the company so if we have to start using it I'd like to know more about it. Show
4 15 c, c++ python, C# nunit ¯\_(ツ)_/¯ Python based manual test Embedded Processor Modified Eclipse 5-30 minutes N/A Difficult to follow; Contains Segments that could be reused in other features; Difficult to determine functions purpose; Code has large number of nested conditionals. N/A 20 20 40 Working through logic problems and creating solutions. Dealing with buggy or inadequate environments. Development methodology which involves creating a test block, then writing code to pass test. Increase complexity of test, refactor code to pass test. End result is a test suite to do full regression of code at same time that development continues. Determine if there is any new developments/features to better enable TDD for embedded platforms which has been a short coming for TDD for a while. Methods for simulating hardware events in a TDD environment. Show
2 25 C python jenkins - - - - 1-5 minutes - - - - - - - - - - Show
1 25 C Java, Perl, Python NA NA NA NA Eclipse 1-2 hours NA NA NA 20 40 40 Yes Yes Not much I want to learn Show
6 months 27 C Assembly - many none - Hmmm. I have a pomeranian named Perl. Stubs FPGA & ASIC w/JTAG SlickEdit, Jenkins, JIRA, etc. 1-5 minutes we have one doesn't fit on a screen collaborator 0 0 0 solving problems interruptions & managers understand the methodology I am taking this to understand the fundamentals for pushing this methodology through our processes and understand any naming conventions to speak the same language the other trainees are starting to mention. Show
25 20 C++ C, Python none I like baseball debugger, Python test scripts prototype NVMe Flash drive Xtensa Xplorer, Eclipse 1-5 minutes none when I start getting lost none 10 40 50 I like solving problems that require creativity boring solutions that take a long time to test nothing because I think I have to Show
0.33 9 C Bash PUnit I have been in the embedded software field for about 9 years now, but have never applied TDD in embedded software (only desktop software) Python scripts that perform component testing SSD firmware Confidential 1-5 minutes Micron internal coding standard When it is trying to implement more than a single well-defined job CodeCollaborator 60 30 10 I like controlling hardware components... I don't particularly like debugging (most of the time) Tests are written along-with (perhaps even before) the code to be tested. The tests are run and debugged immediately as the coding is completed for a given unit of code. 1. Renew TDD concepts 2. Possibly learn how TDD could be used with hardware based systems (typically embedded systems)? Show
2 30 C/C++ JAVA, TCL, PYTHON Python scripts Developer working on Optical drives, Tape drives, HDD's, SSD's. Have developed SAS, SCSI, SATA, USB, ATA, ATAPI interface code. Write specialized test in Python or SPTI aimed at the device under test. Write Analyzer scripts to test protocol specific functionality. SAS SSD Arium, SPTI, Python 5-30 minutes Standard C conventions If it doesn't fit on one editor page Code Collaborator 10 30 60 Architecting, developing algorithms and verification Not having the correct tools to properly test the software Not much To get an understanding of TDD and determine if it can be used in our environment for product developement Show
3 20 C C++, Java, VB RTRT, Cantata I like beer RTRT DTCO Eclipse & Softune 5-30 minutes 1385R1.-.0096.SecureCodingRules.docx, 1385R1.-.0106.MisraRules1998.pdf when does unnecessarily many tasks we do 50 25 25 everything tool crashes good approach for new code, time consuming for bugfixing to know more Show
7 26 C vbs Cantata++ In the company before Conti I have also used model driven development with C++ for embedded. module test I do not have one. Rhapsody, Compiler, Cantata++, PC-Lint, Jenkins 5-30 minutes Hungarian Notation When it does not fit on my screen. They are based on best knowledge. 20 30 50 I can see that it is working what I have developet. The big amount of legacy code, which is badly written and not understandable. I read your book (most of it) and I have done it (more or less), means I developed big chunks of code without target. I want to see how to bring our functions with 1000 lines under test. Show
12 8 C C++,C#,Python,VBA RTRT,CANTATA++ ?? After the development of the Code based on performance specification Embedded Eclipse, MS-VS, Codewright 1-5 minutes ?? not know yet, but in future a tool will tell me that Happen on every code change 30% 50% 20 Implementing and writing tests for a not trivial change request. Maintenace work of old not documented code where no tests are available. Tests are written together with SW, first the test which fail and then the code to make it running according to the tests. Because my tests and the way to come to the test could be improved. Show
10 25 C C++ Cantata++ Main role is architect. partially on host (cantata), Dynamic tests, partially automated. Tests done in target by developers via debugger. embedded 32 microcontoller eclipse, 31-60 seconds in-house defined by coding guidelines. measure comlexity. done by senior developers 1 1 1 creativity, getting things done without bugs. repetition, ugly code, hungarian notation, tricky code without clear design and responsiblity. Non exisiting model. read , tried out principles. get the same understanding as the team. Show
3 7 C C++ , Java , C# RTRT and CrossView I study information technology at " Universitatea Politehnica Timisoara " , first year master. Currently I use RTRT and .ptu scripts. My target system is the digital tachograph. Eclipse and CodeWright 1-5 minutes I always try to respect our coding standards and before writing the sollution in system I put it on the paper and think about unexpected scenarios. When I see to many deeply nested control structures , or when that function makes more than one thing. When I do a review , I check if our coding standards are respected , and if the change affect other parts of the system. 35 45 20 I like software development because you need to be creative , use your imagination , and finally to solve problems with your knowledge . I don't like when you fix some bug in a part of code and create another one , or maybe more than one , in some other part. It is a new concept , which move the testing phase in parallel with implementation for making more stable systems. I want to learn how to develop better software in less time. Show
2 2 Embedded C none debuging on the emulator I like to do boundary tests debugging on the emulator and module test DTRPR is a module from DTCO that is responsible for calculating and providing information to the driver Softtoon, Rational Test RealTime 5-30 minutes Naming conventions, MISRA rules, labeling When it's have more than 100 lines of cod First I check for functional issues and then if the coding standards are met 15 40 45 Finding bugs Writing the documents First a test must be created based on requirements, make the code to pass the test and after improve the code. I was proposed to attend to this training to improve module test skills Show
8 26 professionally C C++,.... Cantata++, Tried many others I have built my oun 3D printer I am a SW architect as such I don't directly test code Embedded multi controller Whiteboard, Pen paper ,Word, Excel, UML editor ,Compiler ,linker , Static Code analysis, Sw test tool, Debugger, Emulator, Hardware 31-60 seconds Use project rules Doesn't fit on a single screen (small screen) informal 10 10 10 Being able to create something that works naturally so that others don't have to think how it was done. Trying to find those bugs that turn up in the field. I have read about the theory, I have privately tried many frameworks. I want to be able to ensure that any high level designs are testable and that our work flow is optimised to find bugs as early as possible. Show
8 15 (professional); 23 (including hobby programming) C Java, C++, some web based and script languages JUnit, Cantata++, Test Conductor I'm convinced that with current known technologies, Model Driven Development with UML is the only good way to develop Software. This enables also TDD, since the use cases are designed/developed before the implementation is done. What I'm trying to do is to convince also other people that they should go in that direction. Cantata++, mainly on black-box level, which also enables a white-box test, by having enough tests on interface level to execute all the internals (close to 100% branch coverage). Different controllers, small targets, but I don't care a lot. UML (Rhapsody), eclipse Under 10 seconds MisraC 2004 (planned is MisraC 2012) If it doesn't fit a screen size. No tool in place. 40 50 10 It's more the design then the code. Clever object oriented patterns, as far as possible with C. Runtime errors which can't be reproduced. And that they always come up when it is no time to analyse. I like the idea. Generating first the test and then implementing the code that the test runs. But not always practical. I hope to learn better concepts and better strategies, in order to detect what the important bits are (not quantity, but quality of the tests). Show
8 17 C# C, C++, Java, none I like examples a lot. And good definitions of terms. I like details. Code review, Integration testing, white box testing. Code is written in C Eclipse, Visual Studio, Tasking 1-5 minutes Project defined coding guidelines. When it is not well structured to be easily understood. Not enough done, and people not communication good enough in my opinion. 15% 80% 5% Finding solutions, making things work very good. People that don't communicate and don't like to clarify anything. Non passionate people about programming. I don't know much. I think TDD is not really good because money and time are never enough for testing so I think a good architecture is very important. It was planned for me. I would really like to know more about TDD testing as to complete my vision. Show
2 2 C C++, Java RTRT open mind and sociable person, ready to learn more module test and target test Automoted embeded system with 2 controllers Eclipse CDT Galileo 5-30 minutes ANSI C, MISRA when it does not fit in screen in full mode functional flow and coding standard 40 40 20 flexibility and continuous changes determined by adding new features nothing till now add a test, run it, if fails make some changes in code and re-run it, if pass add a new test if required to learn more skills Show
8 9 C C++ Jenkins I am a software developer. I perform development as well as module testing. I also participate in requirement analysis. After development we perform UT, MT, IT and ST Sfottune, Eclips, Micro controller, RTRT, Cantata++, Rhapsody Sfottune, Eclips, Micro controller, RTRT, Cantata++, Rhapsody 31-60 seconds MISRA -- Formal and semi formal review. 45 45 10 We follow scrum methodology where we prepare possible amount of deliverables every sprint and that too with advance planning. Debugging code for bugs after release. In simple word post release bug. In TDD below steps are followed: 1. Add a test 2. Run all tests and see if the new one fails 3. Write some code 4. Run tests 5. Re-factor code 6. Repeat until all test passes What is input to start the work? What is the quantity of test needed in beginning of work/feature set? How can it help in finding all bug in early stage? Show
6 8 C C++, Python, VB, VBA, Java RTRT - Module/Unit test, Integration test, Desktop Test (Simulator/Emulator) Microcontroller Emulator, Simulator 5-30 minutes MISRA when it has more than 300 lines - 25 30 45 You can be creative - First write the tests and the do the coding. It is all about testcases. To get to know tdd better. Show
15 15 c UML non I am missunderstood With Rational test real time and desktop testing Embedded system Rhapsody, Tasking and now some new 5-30 minutes it is in change.. not exactly Usually new code I let review within a 4 eye reveiw 10 10 10 Finding solutions for a problem Getting blocked by the "company" Just the main idea behind it Because I get the cahnge to attent. I am interested to get new ideas how to improve the developing Show
> 1 8 - 10 (never dedicated) Python Perl n/a I'm a tester - my programming was in the past - I've used a variety of languages, but it's been awhile. Manually, or with scripts. Linux Jenkins 1-5 minutes Python coding standards is all i know about here at this company n/a n/a 5-10 50 40 n/a n/a Very little. To combine my testing skills with future scripting/coding. Show
4 16 C/C++ python/java eclipse i'm a gamer and enjoy multiple types of games. print statements and test case runs win8 and linux eclipse, pycharm, JTAG debuggers 11-30 seconds linux or pep8 when it is over 500 lines na 20% 30% 50% seeing the execution of code and seeing the algorithms working the way they should. finding the starting point of how and what to code. TDD is bottoms up design. taking test cases and unit tests to plan and design the features and system requiremtns. to improve my software design/debugging and testing skills. To decrease bugs related to my code. i'm a bad programmer. Show
17 10 C Python ? I have mainly worked on small embedded systems Unit Test, System Test SSD Eclipse 1-5 minutes basic When I have to print it Code Collab or Pull Request 25 25 50 building something debugging nothing Reduce debug time Show
1 30 c c++ None Old guy, been around a while Python test scripts SSD GNU/SourcePoint 5-30 minutes Very Good More then a page Very Good 20 40 40 It's fun to make thinks worm Lousy tools Just what I have read occasionally Mandatory, but I am curious about the process Show
1 20 C C++, Python None N/A Custom unit tests and system tests. Internal test framework. C based embeded system slickedit, sourcepoint, pycharm 5-30 minutes what specifically? N/A online with code collaborator 20 20 60 creativity Tedious debugging. Seems like a good idea. Hoping to improve sw development processes. Show
0.6 5 c c++, python n/a Worked mostly on embedded systems Debugger/Emulator embedded slickedit, eclipse, code collaborator 5-30 minutes we have one not sure Using code collaborator 70 20 10 the development phase test and documentation Not much company mandated Show
2 7 C python, c++ none I design and implement firmware for SSD's FTL I write a python script to excercise each feature that I implement. SSD arm compiler, slickedit 1-5 minutes We followed a standard published internally When it gets to complex too understand We use collaborator 50% 20% 30% Seeing things work at the end of the day. debug. none. Because my boss told me to do so. Also I thought it might help me be a better developer. Show
3 8 C C++ check I have 3 dogs. Run it on the ASIC and see what happens. Enterprise SSD Eclipse 1-5 minutes Similar to K & R A function is too long when I have to scroll up and down repeatedly. We use Collaborator by SmartBear 40% 30% 30% I like making things work. I don't like sitting and staring at a screen of text all day. I know it works well for software; not so sure about embedded FW with multiple processors. It is required training. Show
5 8 C Java C++ JUnit, Jenkins - Unit test, regression/nightly test ARM Greenhill 1-5 minutes following the c coding standard more then 30 lines ? 30% 40% 40% write then test reading code with no comment, improper idents none supervisor thinks it's helpful Show
8 20 c, assembly python c++ General I am a thinke. Verify with break points or verify with logic analyzer to decode access code source. Embedded SOC ARM DS5 31-60 seconds Foolow the common scence When you lose it when you trace your code. Look at the flow of the code development. and how to debug/test 30% 30% 40% Archieve our goals. Hard to set up. Questions like this None To be a better programmer Show
1 15 C Python, C# I have used an in house (self-cooked) one I code in Python for my current job which is testing FW features for our product. It has been about 5 years since I was regularly programming in C. I test the different pieces of it as I develop it. Not sure what I can tell you about it. JTAG, Greenhills probe, Eclipse, GIT 1-5 minutes For Python we use something close to PEP-8. Not sure what the C coding standard is for our FW team. When it fulfills multiple purposes. They happen before anything gets checked into trunk. 20% 50% 30% Solving problems efficiently with self made creations. Frustrations with tools on occasions. Sharing resources when needed. Not much. I want to ensure the FW developer and myself are on the same page as to what should be unit tested. Show
2.5 15 C C++ CxxTest, GoogleTest, Check i've developed software for satellites, space observatories, and laser beam control systems system level tests, unit tests ARM, Linux CentOS ARM, GNU 1-5 minutes well documented and most people conform to it when it's > 100 lines CodeCollaborator w/ multiple peers 40 30 30 Problem solving, algorithms Really long debug sessions, working with buggy, undocumented legacy code bases Tests are implemented before a feature is implemented, full code coverage To learn how to test my code more effectively and efficiently Show
0.5 20 Python C Google test New to python Given a firmware requirement, I contact the firmware owner and we discuss expected behavior and test cases and what the expected results should be. I then create the test based on the expected behavior and the test cases we want to hit ironing out any unexpected behavior by communicating with the firmware owner. Actual disk hardware connected to a Windows 8 mother board. Eclipse with PyDev 1-5 minutes We have templates. General rule: if I can read the whole thing on one screen. Code reviews are required and approval of the reviewers is required prior to merging the code. 30 20 50 Coming up with clever ways to solve problems. Issues caused by tool limitations that I have no control over and have to work around. none I am new to this organization and this was suggested as good training. Show
5 8 C C++ Python None NA System tests, White box tests, some Unit tests Embedded ARM system with lots of custom hardware/RTL Arm compiler and toolchain, Eclipse for C/C++ 5-30 minutes Follow our Group's (organization) recommended coding standards If it is more than 30 lines and can be easily split Sincerely done 40 20 40 I like to develop something that runs and makes money (hopefully). Is challenging, new things to learn. Not much really other than having to sit at desk all day. Have heard about it (not much) Wanted to find out what TDD is all about and learn about improving code quality. Show
2 45 C (this year) C++, Python TestRunner and a plethora of "home-brew" tools I'm 2 weeks older than Bill Gates. Counting dialects, I've used more than 30 programming languages, some of which I'm sure you've never heard. I've written assembly code for at least 4 different CPUs. I've professionally programmed for more than 40 years, 36 of that full-time. I've been on design teams for 7 custom CMOS ICs and was sole developer on 1 analog/digital custom IC. Given all that, I'm relatively new to embedded code (about 7 years or so). It is a mix of: - hand-walking through new code with a simulator/emulator - hand-generated dedicated unit-tests - creation of special top-level regression tests - pass through the suite of regression tests Embedded multi-core ARM SSD drive SlickEdit, gcc, ddd, ARM compiler, pylint, TestRunner (this year) 1-5 minutes Covers naming conventions, coding style, When it's longer than 3-4 pages long. Common practice here is much longer than that. Run in Code Collaborator 35% (includes design) 40% 25% The act of encoding ideas into logic. Project politics, redirection from above, poorly stated and/or shifting objectives. Colleague did review of your class after taking it. Two reasons: 1) Boss said I had to, but also 2) I *love* code. Anything that helps me do a better job is worth learning. Show
1 10 c/c++ (occasionally) c#/objectiveC/java/web programming languages/assembly google test hopefully you would not report my online coding results to my employer, I don't want to go through job interview again. also, I am having an important meeting on the 2nd hour of the 1st day of training(for the whole hour), I hope you could make the course such that I could still catch up after coming back from that meeting. Thanks in advance. on hardware, write python scripts or use host testing tools to test the specific functionality. we also used google test to write unit tests. not sure I understand "target system", but I work on firmware on SSD controller xtensa IDE; source insight viewer; gdb in linux;also some customized flight recorder; when using ARM processors, I enjoyed using ETM/ETB with lauterbach debugger 30-60 minutes hard to describe in one line, usually I read through documents and follow the rules for a project/company, such as naming conventions, line length, file length, tab/space rules, compiler warning rules; comments rules; design review rules; when there are code that are doing repeating things; when there are code that could be used by other modules, we could wrap these sub-bloc of code in to new functions we use code collaborators 20 40 40 money;fun(more important); sense of accomplishments cannot control other people's activity, for example, your product architect, your testing team, even if you do a good job, other people could still screw up the product test driven development, sounds pretty self explanatory; never heard of it as a academic term to see how things should/could be done and see the differences between what I am doing, sometimes a good idea could save tons of time in debugging, for example, which direction to go when debugging. Show
3 20 C, C++ Python Home grown Like the outdoors. python script to stimulate system. Logs/printf/emulator to step through code. gdb on simulator. SSD drive eclipse editor, arium emulator, linux host with target device attached. 5-30 minutes internally developed It becomes difficult to follow in my editor code collaborator peer reviews 10% 20% 20% debugging coding write simple test that passes. Iterate on adding more detail to test, update code until tests pass again and stop. Upper management required this course - I was told to do it. Show
9 years 20 years C Asbemly, bash scripting, python, ... functional level OK yes linux gcc, 2-4 hours Well document, line sperater if it is more than a page more often 30 40 30 challenge of programming creating something new not much to learn something different and new Show
2 30 C C++, C# can't remember name I'm tall combo of unit/bench test Linux Eclipse, Visual Studio 1-5 minutes efficiency, well-documented gut feel CC 60 20 20 Just like it Inability to use a debugger, forced to use printfs nothing Management requested Show
2 18 C C#, C++, Python, Perl, VB Cunit, CppUTest, CTest, NUnit, Programming low level code for 18years, exclusively in Data Storage. Done Optical Recording, HDD, SSD,... Functional tests in system, because that is the only way to test. Embedded microcontroller (Multi-core ARM) with dedicated custom hardware Eclipse CDT, vim, gnu-arm tools, Arium ARM debugger 5-30 minutes it is inadequate in this company. Too many loop holes and not nearly strict enough. I would prefer we went full MISRA if it can't fit on my screen thorough 30 30 40 everything, including all the frustration debugging everything schedules, lol That it is not the tool for me to use in a multi-core, multi-threaded environment mainly working off IRQs and custom HW interactions. I will waste more time mocking up things that will never get tested the way they need to be tested. Mandatory since our illustrious leadership thinks this TDD will solve all of their woes. Show
7 14 C C++ python scenarios Like to work on new technologies. Unit testing and Jenkins. SSD Logic analyzer, Debugger 1-5 minutes Internal when it is more than 100 lines Code collaborator 60 30 10 Feels good when my software is part of some product. None. Nothing. To know how it helps our project development. Show
3 38 C C++ ? I learned embedded programming on the 6502. Write my own tests. Simulated environment in Visual Studio. Embedded FPGA, JTAG Under 10 seconds Normal More than a page Code Collaborator 40 5 55 Flexibility. Rapid iteration. Slow environments Don't know. Have to. Show
7 20+ c asm, python I don't understand the term "test harnesses". Elec Eng that now does embedded programming. Depends on the function of code I'm writing. Embedded ARM processors RealView, Arium 1-5 minutes Documented and defined for each project. Too extensive to explain here. Depends on the function and complexity inside it. Done on-line using Code Collaborator software. Depends on the phase of the project. Depends on the phase of the project. Depends on the phase of the project. It's like working on a puzzle. Integrating code changes into the larger code base. Many code developers running pre-commit tests that have intermittent failures. Nothing Required Show
4 35 C Python none blank Xtensa debugger and python code. Tensilica CPU Xtensa Explorer, Eclipse with PyDev plugin, SAD - in house JTAG register set/display 1-5 minutes minimal no special rule Minimal 10 10 10 Designing a new feature, coding it and seeing it run. Meeting, Meetings, Meetings - I attend all the bug reviews and do the initial triage on the bugs reported by other groups. Not much. I'd like to know more. (I'm somewhat skeptical at this point but would like to know more.) Commanded by management. Show
3 10 C C++ Third party tools Firmware engineer Third Party tools, In-house test tools, Independent Software vendor Tools, ARM Source in-sight, Microsoft Visual Studio 5-30 minutes MISRA C number of lines in code Peer code review, code collabrator 30 35 35 make workaround for hardware bugs making changes in other module code Test Driven Development Boss asked me to attend the training Show
5 25 C C++, Python, Java NA NA Python unit tests, examination of counters and data dumps after allowing the calibration to run. PC Xtensa Eclipse, PyDev, Idle (Python) 1-5 minutes NA When I can't keep track of what all is going on and I have to scroll too much to see it all. NA 35 35 30 Solving problems, building things Tools that don't work Nothing It's mandatory Show
8 25+ assembly and C C++ none I'm old timer firmware programmer. My career started with mostly assembly language (Intel 8051) in the 80's and 90's, then coming to using C, C++ on previuos project. I have built some basic unit test. HD and SSD. Windows, Python, software simulation, Arium debugger.. 1-5 minutes We follow some coventinonal guidelines adapted from the public domain and our own. more than 50 lines. We use Code Collaborator 50 25 25 Software development is like brain exerciser with logic and rewarding. Getting around hardware hard bug, dealing with unexpected and critical timing issues, specifically un-reproducible bugs. None. I want to learn about concept, technique of implementing built-in self-test code. Show
5 haven't since 1991 C/C++ forth, plm, assembler, java na FW manager for past 24 years, last programming language C in 1991 na na na 1-2 hours na na na 0 0 0 na na na Highly recommended Show
2 18 C C++ Java None I enjoy the embedded systems subset of the programming world. Manually run unit-test/module testing. ARM Cortex-M4F IAR CooCox 11-30 seconds Soon to be a derivative of Barr Group coding standard. More than a screenfull. Soon to be online peer reviews. 60 25 15 The satisfaction of making something work as well as possible. Failing. Very little with respect to embedded systems. I am investing in my career and ability to deliver high quality product to my employer. Show
4 4 C C++, Dotnet (both very rarely) None Cleveland born and bred. Hoping for a championship, starting Thursday. Automated and functional (user-run, hands-on at desk and in the lab) tests. Welders, Wire Feeders and the User Interfaces that control them. Code Composer Studio, CodeWarrior 11-30 seconds It's in development When you have to reread it a few times and are still struggling to understand what it's trying to do. Rare, and usually over-the-shoulder 50 25 25 I get to create new products, and design it in my own way. And I get to make a tangible difference in the products I am involved in. Switching between platforms can be a painful, grueling process. Nothing. To improve my development and testing skills, for the benefit of myself and my company. Show
5 11 C Python, C++, C# None I enjoy learning about new development techniques. Functional test at a system level. Unit tests informally throughout development. arc welding power supplies, Cortex M, C2000, Coldfire Code Composer, Notepad++, Eclipse, Visual Studio 1-5 minutes Loose definitions on coding style that are not enforced. When it is difficult to test it. Very informal over the shoulder reviews. Working to develop a formal process. 50 25 25 Debugging the hard to find bugs. Writing code that is well structured and well tested -- a work of art. Working with legacy code that is not well documented and difficult to test. Unit tests are written for code before it is actually written, then I believe the code is written to pass the tests. I asked to attend so that I could hopefully learn how to write code that is more easily tested and automate the test process to save time. Hopefully get more peace of mind when shipping software because I know that the code is well tested. Show
24 38 C Visual Basic for Applications none Developing our company's software development process to yield "better code, faster" (Jack Ganssle). Hardware and software development from small 8bit and 16 bit processors and now ARM Kinestis processors for controls applications that require UL-60730 certification. Black box test procedures on engineering test fixtures and final project. Water heaters with controls 64K code range. CodeWarrior and KDS 31-60 seconds We developed internal standard for C using object oriented-like methodolgy with formatting standards. These comply mostly with other standards I have read like Netruino. When printed it goes over more that about 3 pages at approximately size 12 font of Courier new For many years they were scarce and done in one giant effort at the end of the project. We just started using them this past year using CodeReviewer to review changes to code and will be starting new projects using it on an ongoing basis. 30 20 50 Creative aspect of problem solving, architecting the code. Debug and test. Fixing problems after they get to the field. It tests the code at the module (white box level) thoroughly and frequently. I want to introduce Test Driven Development into our software processes to improve the quality of my code and decrease the time debugging and testing. Show
3 20 C C++, Assembly, C#, Visual Basic unsure My degree is a EE, but learned to program as I went along. Started out as a tech and returned to collage. I play bass guitar in a wedding band. Unit testing iMX6 running WEC800 Visual Studio, Platform builder 31-60 seconds Our department created their own. When it won't fit on the page Sometimes done as a group, sometimes durring paired programming 60% 10% 30% I love seeing the bells and whistles come to life. testing I know it takes patience. To evaluate the class to see if we want to bring an instructor to our company to teach the whole department. Show
14 14 C C++ none I work at Industrial Scientific in Pittsburgh, PA Using the debugger to hit breakpoints and manipulate values Gas detection instrument with an Energy Micro processor IAR 31-60 seconds Our company has a defined standard, but it isn't always enforced When I can't figure out what it does by looking at it We use Crucible for online code reviews, but it is difficult to get reviewers to participate 30 30 40 I enjoy developing new products, getting things to work for the first time. When we get a customer complaint, and I have to try to figure out what code (that I probably didn't write) is doing, while being pressured by management I've heard about it, and it sounds like a good way to develop embedded software, but I haven't gotten a chance to investigate it until now I would like to improve the quality of not just my own embedded software, but our whole company's. Show
12 12 C, Assembly C++, C#, Python Tessy I am a magician Run through self-created software qualification procedure along with Reliability testing tiny 8/16-bit MCU's IAR, Code Composer, AVR Under 10 seconds none no measurement system internal code design reviews 20% 50% 30% Computer always does what I tell it to. Writing code is like a puzzle dealing with managers who don't understand software limited Trying to incorporate better software practices into our company Show
15 8 C VC++ /C++ vector cast Has little bit of project management experience unit testing - manual / Vector cast system testing - manual ARM IAR 1-5 minutes MISRA Complexity analysis manual review / static analysis 50 30 20 Interesting. Not boring Too much documentation Not sure To know about Agile methos Show
1 14 C C++, perl, objective C, assembly None commercially available Currently working in software quality HP ALM using test protocols and test cases Insulin pump delivery IAR for embedded 31-60 seconds created in house and fairly standard Usually if spans multiple pages Usually send the code to peer reviewer and have a meeting for collaboration 0 0 0 The logic and problem solving Nothing really Not much Learn more about agile and test driven development Show
8 3 C C++ vector cast I have experience in programming as well as debugging the code against the low level requirements using the IAR embedded Work bench Insulin pump IAR 1-5 minutes Following the industry coding guidelines multiple function calls walk through reviews 3 years 5 years 3 years It doesn't need to be specific method when inconsistent errors occur no idea. To understand the test driven development Show
3 months 0-1 C C++ N/A I am a systems and software engineer, with the focus on systems. I have done some software development in my previous job, but not a significant amount. I am new to my current company and have not been actively involved in development. The goal is to become more involved with development in the future. Because of this, I may not have all of the answers below. Black Box Testing Embedded Systems - Insulin Pumps IAR for embedded. 31-60 seconds I am not familiar with them yet at my new company. If the inputs, operation and outputs can not be easily reviewed. I am not familiar with them yet at my new company. 0 0 0 With an EE background, I enjoy the flexibility in design that software can provide vs hardware. I enjoy the challenge it brings. It can be hard to follow another's code, particularly if they do not write organized SW. Not a lot To broaden my coding skills. Show
8 35 C++ C, assembler internally-developed I play in a band on weekends. White box testing, formal verification Battery-powered insulin infusion pump with 5 microprocessors inside. IAR for embedded target, mostly Visual Studio for PC 31-60 seconds We use an internally-developed coding standard that I find too weak. Hard to read, or too many levels of indent, or I start getting tempted to insert return statements in the middle. Author, QE and at least one independent reviewer examine design intent and code. 50 30 20 Intellectually stimulating, chance to keep improving and learning new things, and there are lots of worse ways to earn a paycheck. Meetings, distractions, constant pressure to under-estimate how long things will take to design correctly. Emphasis on constantly testing during development rather than putting it off to the end. Which should provide better results. Also I have the impression that it's related to Agile, which my company has recently become very interested in. Trying to learn techniques to deliver better code faster in both this and the Agile course. I sold my manager on the idea of sending me and the other four guys. Show
13 25 C C# none Got my first computer (ColecoVision ADAM) at the age of 6; have been hooked ever since Manually at desk NXP ASP, ARM Cortex GCC, Eclipse 31-60 seconds Have written one, not really used or enforced More than a couple screens of code Do one every so often 30 10 60 Making products that people actually use Reading/debugging other people's code Have read Grenning's book Learn more about implementing TDD efficiently so I can start using it immediately Show
10 10 C/C++ Python Boost test I've been working on embedded SW projects (in the consumer electronics area) for the past 10 years. Started with pure C, these days it's both C and C++ Unit test for the C++ modules are run automatically on each build. For the C part it is still a manual process that has to be run on every change. In addition to that there's your everyday dev testing on the different embedded targets we deploy to 3 different embedded platforms each running a different version of Linux (+1 PC Linux target) QtCreator, proprietary build system (based on Scons) 31-60 seconds Internal standard (more like best practices) Ideally if you can't fit it on a screen, in real life if you can't recall which branch of the logic got you to the line you are reading now Web-based reviews using Reviewboard, the reviews are posted to the whole competency team working on the component 40 20 40 Solving hard problems and making things work Undocumented APIs, excessive management overhead, pressuring schedules and last minute changes I know the general principle of writing a test first and then implementing only enough functionality to make the test pass. I'm also familiar with some research on quality vs the cost of TDD TDD for "web development" is all over the place and you can find all you want about it on the web, for embedded it's a lot harder to get information, this looks like a great chance to get some real solid knowledge of TDD Show
1.5 15 C C#, Python, PHP NUnit, Visual Studio built-in testing, CUnit I like to test out new technologies and latest gadgets. Enjoy taking things apart to see how they work. I like hiking, cycling and travelling. I developed SW for industrial equipment for 14 years (C#, PLC ladder diagrams, various scripting languages). After that decided to continue in embedded development (automotive). CUnit/CMock (customized solution that fits best the Stoneridge needs) Renesas RH850 & Renesas V850 IAR, Eclipse (C/C++ package), Visual Studio, gcc 31-60 seconds In-house standard that defines structure of code and >200 lines, tries to do multiple things that could be extracted to a separate method Peer-review. Codestriker 35 40 25 Possibility to create solutions that actually help people solve real world challenges and at the same time always learn something new. Not much really. Perhaps when 3rd party tools are crashing/buggy and/or shaky requirements. I have not used TDD in projects. Bare minimum knowledge - 1st create testcase and only after that implement code just enough to pass my test. Over time iterate 1 to N times by enhancing test (making code fail) and then updating code to pass again. Reviewed many opportunities and decided to opt for training because I wanted to learn an alternative approach of development + lessen amount of software defects. Good training website and praises from attendees were also important factor. Show
0 10 C batch, bash CUnit Started to work at automotive software co. Was working on energy sector, RTU's and field IO units. Littel bit of everything, unittest and manualy ie live system Truck, Bus Eclipse, IAR Workbench 1-5 minutes MISRA Does not fit into screen Don't happen very often 15 35 35 Think before typing. 1. Weak hardware. More's law seems to stop when it comes to embedded hardware. 2. Legacy code. It seems to be the thing everybody wants to do. Or in fact are acctually doing, but don't know they are doing. To learn something new. Show
1.5 2.5 C Python CUnit and in-house tools Quite new to the SW developing world, so hope to learn a lot of new exciting things. Unit tests, regression tests and finally system tests Usually 32bit embedded systems, Renesas MCU´s Eclipse, IAR and in-house tools 1-5 minutes MISRA-C If you have to scroll to reach the end : ) Peer-review 45 35 20 Creating new functionality and having interesting challanges. I do not like when things are going very slow. For example, the customer is not answering problematic questions etc. Not that much, I have been doing the opposite. First writing functionality then writing test to see if they fail. Overall SW training in the company, but I am really happy that I can attend in this course and learn new things. Show
2 9 C/C++ - CppUnit Member of TUT Robotics Club. Using STM32 platforms to develop embedded software. Unit testing PC QtCreator Under 10 seconds none When it does more than one thing 2 persons are doing review on pull request. 40 40 20 Quickly possible to create value. Static working position. Trying to practice TDD on PC software development. I have used TDD on developing PC software. Good to know how it is done for embedded platforms. Show
10 11 C++ C, Python Boost Test, GStreamer Check Unit Testingärm/5b/a58/981 Dev testing manually and by running unit tests, nightly automated test runs, automated system/integration tests from a custom framework, performance tests with KPI comparison Hifi audio system running ARM, TV system running Intel Atom, IoT running PPC and host as generic Linux QtCretor, custom build env on top of SCons using GCC 4.8 31-60 seconds No standards, in-house coding style for different languages Gut feeling ReviewBoard with SVN commit hooks 30 30 40 Design phase Debugging errors others have made All and nothing Got funding from local unemployment office and it seemed as the only training that made any sense to attend. Strong presenter, interesting and relevant topic. I see room for improvement for myself using TDD. Show
10 15 C/C++ GObject, (long-long time ago C#, Java) boost unit-test framework I like embedded sw, C/C++. Don't like that there is very little time spent on designing of it (design patterns, etc). manual testing, unit-tests (if there is time for that) linux, soft RTOS, userspace applications, audio streaming gcc, gdb, customized Scons, QTCreator as editor, console, JIRA 1-5 minutes we rather have coding style: camelcase for C++, underscore for C, no gotos, no public members, readablity first, etc when it is hard to follow what it is met for we use 'reviewboard', RBTools, reviewing is done before commitment to SVN 70 15 15 finding the correct solution messing with log files and looking for errors - testcases should be written before coding and after interfaces are established. - if interfaces are altered then testcases must be changed as well. - tdd produces test oriented code writing. - to be able to write code that has better testability. - to see development from different angle and to learn from it. Show
2 2 C++ C, C#, Java, JavaScript CppUnit, Google Test, JUnit I have been playing around with different technology most of my life. I am very eager to learn new technologies and efficient practices to increase productivity. Currently I use unit tests and manual tests for GUI. Cross-platform concurrent distributed systems Eclipse, Qt Designer, Qt Creator, Visual Studio Under 10 seconds In-house standard When I can divide lines into logical sections that interact very little with each other. Code is reviewed by at least two peers in Atlassian Stash during pull requests. 30 40 30 I like that creating value and getting feedback about the system is very fast (unlike in most other engineering disciplines). Also developing software that makes someone's life easier is very satisfying. I hate that very often I have to fix and clean up untested sloppy code written by other (often more experienced) developers. I have read several books partially covering TDD for Java. I want to learn how to apply TDD on C++ better. Compared to Java it is often a lot more complex. Especially when adding new features to legacy code. I mostly want to learn about good stubbing and mocking practices. Show
1 15 C C#, Java CUnit, C#: MBUnit & NUnit Developing firmware for gas detection system. Atmel AVR chip, previous work on TI 8051 and ARM chips CUnit for unit tests C# & NUnit for test automation using variuous hardware simulators Atmel AVR IAR, Eclipse, gcc 11-30 seconds In-house I try to keep it on one screen... Before every release. Tend to gather up and then we flash through too many files. 40 40 20 Solving problems Getting things to work When I release SW with a bug that I wrote a unit test for... Race conditions... I am a believer, but not fanatic. I generally start with a test, but I "sin" and typically also write code that t Because I believe TDD make me write better code - but I know I can improve my TDD skills - especially in terms of test maintainability... Show
4 0.5 C c++ none just started programming for work try and fail embedded platform visual studio 1-5 minutes shared document, used by somebody when you have to take notes on paper no experience yet 30 50 20 new challanges somethimes stressfull just the overview learn to make better embedded code. Show
7| 10 C#, C++ Matlab, delphi simple unit tests in c++ and .net Naaa unit tests and interation tests To make my programs more robust Microsoft Visual studio Under 10 seconds no real standard, just trying to make it easiest possible for other developers to read I see it not many code reviews 70% 10% 20% When I see the result in real life, for instance see physically the tunnel created. new specificaitons in the last minute nada to get more robust code Show
25 25 C C++ - Live 1 hours from Oslo. TestComplete Maritime monitoring and control systems for mechant systems Visual Studio 2010 1-5 minutes - Don't know - 40 30 20 Always challenges, something to learn, interesting target systems Unclear specifications, changing opinions, Not much I want to improve! Show
4 14 C Matlab, Python, C#, Java, TCL, C++, etc None I'm a ph. d. dropout in signal processing. Mostly by debugging through JTAG or other emulators Mostly Analog Devices Blackfin, a bit of PIC and ARM Specialized IDEs based on eclipse and netbeans 11-30 seconds Based on a standard from Data Respons - We're not very good at following it though Mostly through looking at how deep the indentation becomes. Also, for most functions, I try to keep them less than 1/3 of a page long Next to none 35 35 30 Just keeping your brain occupied - it's like sudoku Errors that show no clear pattern .. of course. I read most of your book, but I've only used it in a short course before. I would like to start using TDD properly. Really. Show
5 4 C C # Unity Background in embedded systems/electronics. By trial and error, the old way. PIC, EFM32, Blackfin. Eclipse, GCC, MPLab x 1-5 minutes Trying to follow MisraC. When it fills the screen size. - 40 30 30 Like the interraction in embedded systems between the electronics (HW) and the SW. Messy code from others. Have been in a couse before, that had TDD as one of the topics, but it was not enough info/background to start using it. To learn mora about TDD, and maybe start implement it in our SW. Show
4 6 C++ Pascal gtest, QtTest TCL was my first programming language. Manual self-test. Verification by test department. Some unit testing for "code approriate for unit testing". Embedded Linux (ARM), Windows Embedded (x86) Qt Creator, Visual Studio, gcc, git, TFS Under 10 seconds Worked out by a group in the programming department. I don't agree with everything, but I follow it mostly anyway. When it does more than what the function name says (i.e. more than one thing) Some percentages of our code are reviewed. Sometimes reviewer and coder sits together. 20 30 50 Getting systems working as designed It always takes more time to finish than anticipated. A programming/work "method", when used, allegedly reduces debugging time. My boss wanted four attendees from our department, and since only three volunteered I was asked to also join. (I agreed.) Show
6 20 C, C++ C# (ASP.NET), PHP None Cross country skiing - running. Family life with a kid 4 years old. printf statements mostly, Some ad hoc tests to debug/verify code blocks on development host ADI Blackfin w/uClinux, Cortex A8 ARM w/yocto linux gcc/g++ mostly 1-5 minutes - When having to scroll down/up within same function. Used to have codereviews in my earlier job, but not in my current job. 30 20 50 Trying to solve a problem, struggling and finally get it working - hopefully right Parts of the documentation and planning before starting Use tests to actively grow the production software in iterations using small steps Hope to add tests to the development process Looking to the Java guys using Unittests as a regular tool during development Show
4 10 c/c++ python, node js self developed c/c++ module love to travel, and a big movie freak ! using self developed app, which calls various methods in my code. centos7 gcc, gdb 5-30 minutes probably close to GNU c/c++ coding standard.. a function grows longer, if we do multiple tasks in the same funtion. its ideal to do just one task in one function. at least 2 peers will review my code, before it is committed to the official version control system 40 30 30 Different ways to do one task make s/w development challenging and interesting. deadlines :) !! one thing: write test code first, then the real code !! learn tdd Show
10 20 c/c++ java python R manual, script, regression following tech trend white/black box test x86 system with various HW types Linux & open source tool chain 5-30 minutes cisco over 100 LOC peer code review 20 50 30 always new challenge efficiency for problem solving white box testing with test code/framework complete before function code start. bring positive impact, manager sponsor and interest on following tech trend Show
3 3 Java Python py.test, junit I don't have a lot of C programming experiences and I've just started learning. using py.test for feature test video streaming eclipse 1-5 minutes There are guidelines/conventions for each programming languages that we should follow. when it takes too long to explain what a function does after checking in code, we submit code for review and resolve alll comments before checking in to the repository. 50% 20% 30% not sure not sure writing unit test cases before writing code and make sure the unit tests passe after coding completes. My manager sends me to this class. Show
8 25 C C++, Node.js, Python, Java None Started programming with BASICA on an HCL-built IBM-PC-spec system with two 5.25 inch floppy disk drives, one of which was required to boot the OS. Write short test scripts, use REPL etc. CentOS vim, WebStorm Under 10 seconds None If I We use PRRQ. Not sure Not sure Not sure Being able to create something and see it come to life in minutes, hours or days, depending on what you're developing. Debugging It's an approach to first write tests that would try to satisfy the requirements. Then write code such that those tests pass. This is a BU-wide effort to help us become better programmers. Show
2 5 C++ C cppTest Writing C++ code for the past few years - also for current development. I also use some Python/nodeJS code. Currently we have our test programs written in cppTest testing framework. Linux VI Editor, GCC compiler, Linux tools 5-30 minutes Medium-Good exceeds a certain number of lines of code - with a lot of pressing involved Currently its being peer reviewed 50% 30% 20% develop software to solve a problem statement - or come with an innovative idea and implement in the most optimum/efficient way. Debug time and tools - especially gets harder when there are more components involved; integration is likely bound to be affected, unless the code is carefully written/implemented. Write testable code, write the test programs and check and then the actual code - to verify if the test cases pass. To understand test driven development. Write code that can be tested easily, Show
1 7 C++ VBA CMT n/a n/a n/a Visual Studio/Eclipse 5-30 minutes Python Pylint Yes 40% 40% 20% clear requirement requirement not clear test drive development have interesting about it. Show
4 8 C programming language python micron internal unit test framework Nothing special. For a certain module, write production code first, then write unit test to test module as a big box. Use test coverage tool to monitor test coverage, enhance the unit testing if necessary. arm9 based SSD controller from marvell, dual core. sourceinsight, arm compiler, GIT, Jira 31-60 seconds Hungarian notation 1. more than 300 lines. 2. if it deal with mutiple un-related tasks. 3. almost impossible to test Nothing special, just read the source code and give recommendations 30% 35% 35% Implement new features, improve performance. Find tricky bugs, work on dirty code base. I've read a article about TDD, just know the very basic concepts. I'm the guy driving my team's unit tests. I want to learn more about how to test our code efficiently. Show
2 25 C C++ gtest design patterns, generic programming, device driver, algorithm with test scripts M510DC ARM RVDS 4.0 5-30 minutes none when it's hard to understand git pull request 20 30 50 ... ... design for test, develop test case prior to coding to understand the TDD systematically Show
4 14 C C#,C++,ASM,VHDL CPP unit Like logic Hardware platform Hardware platform Hardware board 1-5 minutes customized Numbers of line Yes 30 40 30 I use hardware platform. I use hardware platform. A little Learn how to do tdd. Show
2 years 12 years C NA NA I'm a firmware engineer. 34 years old. I worked for Huawei, Cisco, and now for Micron. Write debug code and serial command, and run DM2 scripts. Don't understand. Source Insight to edit, ARM compiler to compile. 1-5 minutes simple and clear Can't be shown in a screen. It takes 3 people a whole day to review 1000 lines code. 20 20 20 sense of achievement NA Test Driven Development. I'm nominated by my manager. I heard that this training received very positive feedback in US ACG team. Show
1.8 16 C language assembly/C++/Tcl/ check 1. ever been a embedded software guy 2. in the last 6 years, focus on project/team management as a manager UT/Coverity arm based SOC DS5 1-5 minutes coding standard is ongoing need to scroll down your screen for many times git pull request/code collaborator 20 20 20 more comments, and clean coding no comments in code, no coding standard testing take the primary role understand the benefit of TDD, and how to introduce it to my team. Show
4 and half years 6 years C none I do unit test based on a company own unit test framwork SSD firmware engineer. unit test. scripts. ARM ARM realreview development suite 1-5 minutes camel-case. by code review. involve 2 or more senior engineers to review the code together. 30% 20% 50% It involves creativity and innovation to achieve goals. There are always bugs in the code, and some of them often bothers me for weeks. My manager talks to me about it. Develpers need to firstly design the test case according to the requirement before starting to code, code is not finished until it passes the test case. Company arrange this class for me, it is good to learn new development apporach. I think it helpful to improve development efficiency by adopting this approach in my daily work. Show
1 8 perl c None I am a tester from testing team yes windows 2010express 1-5 minutes clear and exact from the code lines. we review our code before we check in the code 50% 30% 20% It's amazing. It's lonely The software developer writes test code before they write software code. Then write code, if these codes pass the test code. Then, the code is done and clean test code. For testing team, we need to know how the TDD run in the developer team. Show
2 10 C assembly+ test script simulator + host tools N/A simulator + test script embedded system source insight 31-60 seconds should follow a predefined coding standard if the logic can actually be split into several parts before check in code 20% 30% 30% source insight no no idea improve the work efficiency Show
1 22 C++ Basic CPPUNIT embedded software simulator, no OS SI 5-30 minutes unified. more than 2 screens collaborator 40% 30% 30% n/a n/a the name. assigned to. Show
5 10 c c++ none none none metha metha 31-60 seconds standard c by eye CC 30 30 40 anything nothing nothing don't know Show
3 3 c C++ serial command none unit test,script test, serial command arm arm 31-60 seconds Hungary standard if we could not see all of them we will create a meeting to review it 30% 40% 30% arm no no for lean more skills Show
7 8 C C++ CPP unit test N/A unit test Hardware development board Lauch Batch 1-2 hours internal coding standard review Peer review and supervisor review 30 30 40 more design tiem, coding, good test and short debug time limited test No To get more insight about TDD Show
1 year 10 years C Python Google test I use google test in my previous job. No Embedded system ICE 5-30 minutes I am used to coding standard. over 100 lines ccollab 30% 30% 40% GUI No Nothing I was nominated. Show
11 20 C C++ none Been working at Nielsen for 12 years. Manually using unit tests that are created to verify correct code functionality and that requirements are met. Linux OS on mulitiple hardware platforms. Eclipse, gcc, gdb, gdbserver 11-30 seconds Our team doesn't really adhere to a standard. Becomes hard to follow. Code reviews conduected using ReviewBoard. 50 20 30 Writing code watching it run. Impossible deadlines and expectations. Nothing yet. Hoping it will help facilitate faster and more reliable testing in the future. Show
3 22 c c++ javascript self created no I think of tests and I execute them. embedded gcc 11-30 seconds common sense when it looks too long informal and formal 40 40 20 that I'm good at it having to tolerate people that are not good at it not much to gain some potentially helpful information and because my boss is making me Show
16 20 C/C++ scattered scripting languages none ... I run it and check the output. Reduced-resource (embedded) type system running Linux. vim, gcc 1-5 minutes ... Never too long! :) Every commit is scheduled for a code review by two "peers" to the person having done the change. ... ... ... It's an "art form" for a technical problem. I can't always use the languages I'd like to use. only the basics To learn a little about TDD but mostly because I was told to. Show
12 20 C C++ none I have done more hardware design than software on the spot checks during development Embedded system using real-time kernel Kinetis Design Studio 1-5 minutes whatever group standard exists Usually more than 2 pages/screens informal 50 20 30 Solving problems Waiting for computer/tools. Bugs in tools. Not much Someone else signed me up. Show
11 20 C/C++ PHP, Pearl, Javascript, Java, Python Google Test, custom I am an embedded sw developer with a history on different platforms. I especially like ARM MCUs. TDD Linux firmware running on Archer C7 mips target Eclipse, vim, QM modeler, gdb, svn 11-30 seconds unknown exceeds a TBD limit of complexity points (conditional tests, returns, etc) formal 50 35 15 I love OOD and state chart modeling Documentation I read your book, TDD for embedded C I believe 100% in TDD and want to learn formally on the subject. Show
5 1 C (in the past) - I don't code at work PHP My team uses Junit for Java. I currently lead a team of software developers who code backend systems in Java. I was an Electrical Engineer in college and used C before. I think I can learn the concepts and bring them to my team even if it's a different programming language. My team uses unit tests, and we are developing fully automated integration tests. We also use simulators or Jmeter for load testing. Jboss in a VM My team uses Eclipse or Jboss developer studio 1 day or more Don't officially have one, but one of my senior developers has started reviewing code and suggesting standards as we go along. When you can't break it down any further into something that is a self- One person reviews code and provides feedback. We don't do this often, but we are trying to get in the habit of doing so in a more agile manner. 50 30 20 Logical approach to solving a problem. Spending hours to find where the bug is. Spending a lot of time trying to get the environment working, rather than the business logic. Create test first, then code. Make a failing test, then get a test to pass, then refactor code to get all tests to work. I want to learn about TDD concepts, so that I can understand the benefits, the methodology, and bring back the concepts to my team. Show
15 32 C/C++ many gtest Love to watch TV Manual test, automated unit test with unit test framework, some gui automation, instrumented code, debugger step through if neccessary Linux based security/networking appliance many 5-30 minutes Not much When it becomes hard to verbally describe what it does Some people do good reviews, some people rubberstamp, most people dont have enough domain expertise to understand the fine details of the code they are reviewing to catch issues 20% 40% 40% The thrill of put things together, without the cost of building materials or the risk of breaking things or injuring anybody. Error handling, testing, documentation (reading and writing), eye strains of staring at the screens, interacting with other people none, somewhat skeptical Bosses wanted to find out if this is something the organization can/should adopt Show
2 30 C++ C check, catch i abhor such questions unit tests, component tests, functional tests Linux, OSX various 11-30 seconds this question is too vague If I can't see the structure at a glance, it is too long. all code is reviewed before committed 50 25 25 design, optimization pretty much everyone else's coding style; working on a poorly written code base. I highly doubt I will start writing tests before writing the code to be tested. I was told to attend. Show
9 20 C/C++ Python, Perl, PHP, Java, Javascript, C#, shell (BASH) script Custom in-house (very basic, not very good) Professional nerd Both manual and automated tests Varies, largely PC/Servers and embedded primarily vi/emacs for code editing, shell scripts for basic build environments and testing 1-5 minutes varies depending on project/language/responsibilities when it becomes too cumbersome to maintain and too hard to read code reviews are generally few and far between 35 10 55 Solving puzzles, building new exciting systems Dealing with shortcuts taken in the short term that negatively impact long term software quality. Development by building in test harnesses to verify/validate design as development progresses To get some exposure to some actual methods and hopefully tools to help accomplish TDD Show
12 30+ C++ C,python,SQL Homegrown I have three adult children. Manually, once; then as-needed. IP video set top boxes with various different hardware, SOCs, kernels, etc. gcc, make, atom, vim Under 10 seconds Ad hoc, loosely defined. Takes more than a screen (or half a screen on my vertical monitor) All code is reviewed before merging to the tip via Gerrit; Jenkins performs build testing. 80 10 10 Solving puzzles, creating clean APIs, creating clean and concise code. Mysterious bugs; hardware anomalies. I've studied a bit, but nothing formal. I'm not sure want to be a TDD convert, but I would like to have a formal testing framework in place. I've designed some for embedded systems, but we have not moved to automating it for test hardware. To get the right mindset and authority to bring a test-driven mentality to my team. Show
10 10 python javascript none I am a software tester. I am taking this for knowledge skill. manually and automation stb rdk none 1 day or more na an na na na na na na na na Show
10 17 C++ Java, C#, Python, C, JavaScript None I'm a Technical Leader, and I want to lead my team in adopting a test driven design approach on a new project we are starting. Ad-hoc procedures. Each team member has his/her own methods. Embedded system written in C++ GNU Toolchain, Make, git 5-30 minutes We have a very basic code standard with mostly style guidance. If its larger than 20 lines or has more than 5 defined parameters. We review the interfaces, we rarely review implementation. 60 10 30 Solving interesting problems by creating simple abstractions for complex problems. Debugging code that is not mine. That it is all about embracing testing during development. To learn more about the specific techniques I can use on my projects to reduce the time we spend fixing bugs. Show
0 30 C Java Roll-my-own, Junit I play Bass unit tests, manual acceptance tests ARM systems Atmel Studio 11-30 seconds none when it is hard to test code together 40 40 20 It can be fun Intermittent bugs some to see what James' train couches are like Show
2 4 c/c++ java, python, shell none working in an OS team Manually linux vim 1-5 minutes tidy when it seems like, and several functions are in there by tech lead 70 20 10 pretty cool, especially when the UT works some times not efficient when editing only heard the name have a better coding style, and write robust code for sure Show
19 35 C++ C, Fortran, Assembly Google Test Volunteer Firefighter Google Test Intel Vi 1-2 hours We have a style guide When loops don't fit on the same page Peer Review - ReviewBoard 30 50 20 Fun Its been a while write the test first Trying to guide the team toward TDD Show
2.5 15 VB6 VC, CPP, VBA, Not sure Manufacturing test for 15 years VB^ scrips communicating to a test rig. Not sure what you are looking for VB6, Python, 30-60 minutes Very week I get lost in it. We have not done one in a while. 20 50 30 Creativity, immediate feed back on my work, I get to make stuff ;). documentation Nothing Required corse Show
36 Years 22 visual basic python custom I am a firmware test engineer. I test the firmware for our product. I do not write firmware for our product. Firmware test group test the firmware per requirement for the products and how firmware implemented the requirements N/A N/A Under 10 seconds We have a process of how the test scripts should look and what information should be in it. with more than 10 parameters or not easily readable peers reviews the code 60 30 10 I write test scripts to test the product firmware as a black box (Testing inputs and outputs). Note: The above question answer is about writing test scripts. The changing of requirement that cause changes in the automated test scripts very little The reason management want me to attend is to see how I can leverage the concepts for firmware testing and not development of the firmware. I do not know C++ Show
18 20 C Perl, assembler None I am tall dark and handsome Test scripts in python Embedded electronic power meters based on various CPUs IAR compilers, Renesas compilers 31-60 seconds Based on MISRA C Don't know. There are metrics abotu that but it is just a feel. Team based code reviews with everybody (3-5 people) looking at the code 30 30 30 Get something to work and see it used in the field after that Cost! It is tough when you are bound by cost. You need a $3 CPU and you are given a $1 CPU. Very little Company initiative and really to learn something new. I always like to learn new ways and to compare it with the old ways and then pick the best one ... or combine them. Show
10 1.5 python visual basic 6 none I'm a great guy Write scripts to test the functionality ? none 5-30 minutes Very loose I don't Email the code out and hope someone reviews it 20 20 60 Solving problems Not having the information to understand the goal of writing the test. nothing To gain more knowledge Show
18 25 C Pascal, asm, C, Python, VB Clapper, Comm sniffers More interested in a low level code development with a small foot print RTOS (not Linux) Unit test using scripts electronic power meter, embedded communication modules IC emulators, J-tag debuggers 30-60 minutes Company established coding standard No formal metric. I just know it. peer and formal code reviews 10 50 40 Creativity Release to production process Write test cases before write the code. Code is complete after all tests passed. Self tasting code. Company is looking to establish TDD practices for firmware development. Show
4 20 python visual basic custom built for VB test/ Unit test for Python did development before working in test visual basic scripts smart meters luna, visual studio 2-4 hours working on developing python coding standard when most of the code is copy and paste peer review 70 10 20 can do most anything in code debugging other people's code creating the test conditions before writing actual code. to learn to test more efficiently that leads to better code development Show
7 15 C C++/C#, Python, Java, HTML not sure I understand the question, probably none I don't know you well. unit test, test functions embedded into firmware Communication module which resides on 3rd party device IAR, CodeWrite Under 10 seconds department enforces coding standard, document available when its content cannot be easily observed and understood regular code reviews 30 50 20 design solutions to various tasks and issues don't like to be rushed, usually results in half baked solution not much told to attend by management Show
0 3 java C/C++ none Just started working at Elster Solutions. Currently catching back up to speed with C/C++. Python testing. N/A Eclipse, Visual Studios Under 10 seconds Plan/Code/Debug When it gets confusing to understand N/A 30 35 35 Gives me enjoyment by exercising my brain. Bugs. How it can benefit me in the field. Because it would be a great learning experience, and something I could learn to implement. Show
20 20 C Python none Do mostly support work now. Less than 10% development work Exercise code and also exercise code to cause failure to insure failures are properly trapped. CC1110 radio chip on PCMCIA card. IAR compiler. CodeWrite editor. SmartSVN version control. 1-5 minutes Company provided coding standard When it goes past the bottom of the editor screen. Other coders in our company used to write 1 line functions calling other functions. Call meetings with other developers to review code if change is significant 1 5 2 It does things quickly and efficiently and in large volumes. There is a risk with any software deployed in large quantities that a bug will cause serious problems. Only about the book written on the subject that was delivered yesterday. Improve development skills. Show
1 5 C Python, C#, VB pytest Firmware engineer Local testing, try to think of likely failure cases ARM system IAR Embedded Workbench 31-60 seconds Mostly style based Takes too many lines of code, contains repeated code, contains functionality that doesn't belong together Use ReviewBoard and meetings 60 20 20 Problem solving, seeing something come alive and start working. Something I worked on is copied onto thousands of devices that real people are using Meetings, pressure to fix bugs or complete features in short space of time. Write the tests first, test should fail and then feature written in order that they pass. Bosses think it is the latest greatest thing. Show
15 20 C C++ in house I'm a contractor unit test, mini system on bench, verification, system Embedded microcontrollers IAR 11-30 seconds Fairly logical, and well followed If I have to scroll less common than they used to be 33 33 33 Solving problems changing requirements embedding test in code Required by managment Show
15 30 VB6 python custom I'm a firmware test engineer Run it and debug it NA NA Under 10 seconds special elster rules on wikki just depends on what your coding peer review 30 60 10 it's fun multiple releases none To learn more about tdd Show
34 20 Assembly VBA, starting C none play softball Custom simulator Custom ASIC Custom written assembler and simulator 31-60 seconds None Feel I am the only one who knows it 70 20 10 enjoy making stuff new languages nothing am learning C now Show
3.5 10 C Python, PHP, Javascript, C++, C#, Java cunit I like long walks on short piers a small amount of unittesting (when applicable), alot of python tests acting on the DUT. ARM Cortex M4 IAR, Visual Studio, Eclipse 11-30 seconds kind of a half way attempt at hungarian notation. Elster has a doc on this. no written rule. Try to break things out when it makes sense. I usually don't like scrolling on them, unless it's a long switch statement for a string parser or something like that... we use review board. I find that most code reviews are more a factor of who attends them, than the amount of them. Having the right people in the room allows for better reviews. 50 25 25 I enjoy developing something that doesn't exist Nothing really. It usually the politics of code changes near a release that make I don't like. glanced at your book, learned about it some in college. required by management. Show
6 12 C Python python unit test framework lead the communications firmware team at Elster we use a combination of VB and Python to test firmware releases running on the target HW via the external interfaces that are available embeddd IAR compilers, Eclipse 1-5 minutes coding standard is defined but there is variance between projects when it's too difficult to understand typically desk reviews with occasional group reviews, started using ReviewBoard tool to capture/track comments <10 <10 <10 ability to see results quickly easy to change so business can often add more and more features to releases that already have challenging schedule what I've read in your book learn more about how we can apply tdd to our development Show
1 4 C/C++ Python JUnit I don't like surveys Try as many test cases as possibly. Python script to loop through tests. ARM Cortex-M4 with RTOS IAR, Eclipse, Visual Studio 31-60 seconds null null Periodic depending on the size of the commit 50 25 25 I like being able to manipulate hardware with software Bugs tdd == Test Driven Development To learn more about tdd and how to make the coding process more efficient Show
2 10 C C++, Python unittest/nose Graduated from University of Illinois at Urbana-Champaign python sanity tests using unittest/nose, manual testing ARM Cortex M4 IAR/Visual Studio 31-60 seconds Our coding standard describes how the code should look, how to avoid confusion, and how to avoid prevent bugs. The standard is not always strictly followed, i.e. whether or not to put a space in an 'if ()' If the function is doing too many things or I can't immediately tell where it ends. We use a combination of ReviewBoard and in person reviews. People typically review the code ahead of time and come to the reviews with questions or concerns. When changes are made, developers will send out another review of the corrections. 20 40 40 The challenges of working with an embedded system where hardware and platform constraints must be considered. Documentation can be tedious. Test cases are written first. Functionality is developed for the test cases and then that functionality is tested. In C, I believe the tests are supposed to be in the C code. Recommended by management. I am interested in seeing how TDD can fit into what we do and how it makes developing and testing more efficient. Show
5.5 33 assembly language c# c++ none I hate webforms real time audio analyser processor simulator Embedded DSP xIDE, Visual Studio 1-5 minutes poor It depends on what it does. I guess as soon as its function isn't clearly defined hahaha 20% 30% 15% I like developing audio related software. I like audio stuff. kalimba dev environment It's an abbreviation, so should be in capitals. could be an interesting/useful development strategy. It will be interesting to see how it can be used in an audio DSP environment Show
1 month/ 5years (We just got taken over) 20 c assembler and python on occasion. c++ c# in past lives. unity I can be quite secretive. On bench and during system test. risc processor, small memory, no OS. Notepad++, make, in house compiler. Bluelab (In house IDE), emacs if forced. 1-5 minutes We have a few. It's functionality cannot be described without using a conjunctive. We have them. 5% 5% 20% I can't remember now. I just move it about. I vaguely remember enjoying making hardware 'work'. See above. The first half of your book "TDD for embedded C" If I ever write software again I'd like to use the TDD method as it would hopefully stop me laying in bed at 3am worrying about regressions or potential bugs. Show
7 38 c and assembler python various I like running In system Soundbar/Headset MIsc PC and Linux 31-60 seconds It's not widely followed When I have to scroll a lot to read it Not very fulfilling 20% 40% 40% I like the creativity Dealing with careless and untidy code I guess we'll find out shortly Because it was suggested that I should Show
9 months 17 C None at the moment, all sorts in the past Java, C++, Haskell, Occam, Python.. Unity Not a fan of tea or hot drinks in general, which may be considered strange for an Englishman! Unit testing for the areas where unit tests currently exist. Nightly smoke tests for daily builds, full system testing for release candidates. Typically an eval board, containing one of our bluetooth chips with a whole bunch of peripherals around it to exercise all the functionality designed into our code base - buttons, I2S amplifiers, microphone inputs etc In -house IDE and tools 1-5 minutes I try to folllow everything learned from Clean Code by Bob Martin, unfortunately our existing code base doesn't in a lot of places When it looks too long usually! If it does more than one thing or is more than about 20 lines of code then I'd consider it too long. Changes are made to the code through changelists, and every changelist must be reviewed by someone qualified to review the specific area, before submitting. 15 60 25 Challenge of coming up with elegant solutions to problems. Random results when testing on real hardware, working on hard to follow or rotten code. Basic idea & the benefits - identify new functionality, write failing test to exercise it, add minimum code required to pass test, refactor, re-test, repeat - leaving a suite of tests to be used to give confidence when modifying code in the future. To further my knowledge and use it to improve our code base! I completely buy in to the methodology and the benefits it brings, but having never used it before it can sometimes be hard to see how to apply it in the best way to what we do. Show
1.166666666666667 8 C++ C, Ruby, Scheme, Clojure, Python, Perl, TCL, Ocaml, Rust Boost, Ruby Test::Unit, Clojure (builtin), Rust (builtin) I like chocolate biscuits. A little bit after I write it. At work? There are a small number of C unit tests which no one uses. There are many TCL Expect scripts for testing firmware behaviour. Vim and tmux 1-5 minutes If it compiles, do it. Also spaces, not tabs. No such thing in CSR. All code changes are reviewed. 50 30 20 Creativity. Humans. Write a failing test. Make it go green. Only works if you know what you're trying to build before hand. To learn something. Show
5 2 C C#, Python, Perl N/A I moved from hardware into software as I enjoy software more. Though I have two years of 'professional' experience in C, I have been programming since I was about 14 for personal hobby based projects. System test only, however I have been trying to get into the habit of unit testing functions, however with the current code base this is quite difficult. A 16 bit microcontroller GCC 5-30 minutes In-house When it overlaps a single screen I get twitchy Team reviews are made per commit 20 40 40 I like the problem solving that goes with it, the technical challenge. I get a real kick out of seeing my code work and developing well thought out, efficient solutions. I think we spend too little time writing code, instead we seem to have to spend lots of time maintaining technical debt, and 'fire fighting' problems that arise in the most remote corner conditions. Very little and I look forward to the course! I want to write better code, I want to code more and design robust solutions fairly quickly. Show
9 20 C C++ none I'm smokin' on the dancefloor. Ad-hoc developer testing followed by regular system test. XAP processor. Message based single threaded environment. In house customised IDE wrapped around make, gcc and a range of other utilities/tools. 31-60 seconds Loose at best. rarely enforced It's many pages long, no idea what's going on. Code reviews are done by another team member after completion of the bug/feature but before they're committed to the main code base. 30 20 50 Challenge of resolving problems Fighting with tools and development environment. Basic introduction of concepts, but little practical experience. Read some of the TDD for Embedded C book. Booked on by manager as there is an attempt to introduce this into our company development workflow. Show
1 17 C C++, C#, java, perl, python unit I've done a little of everything: consumer electronics (radio, DVD players), mobile phones, walkie-talkies, etc. small projects: functional test mid-big projects: unit test bluetooth audio CSR proprietary and VS2008 31-60 seconds object oriented mostly when the function performs too many tasks instead of high-level calls balance between good practices, readbility and functionality 30% 40% 30% the challenge and the fun of having a system performing "on it's own" following my instructions. When I haven't got software to develop. I didn't use TDD much in the past unfortunately Because I didn't use TDD much, it's a good time to add it to my software development principles. This course will help to make TDD part of my daily work. Show
2 15 C C++, Java, Assembler NUnit, JUnit I'm writing a chess engine in my spare time in Java. JUnit test cases NUnit test cases Relying on System Test team Windows application for .NET (NUnit) mainly Visual Studio; Eclipse Under 10 seconds I don't follow it rigorously- I often work outside the coding standard scope. It doesn't fit on the screen Some peer reviews for .NET development 60 20 20 Getting stuff working, cumulatively growing and developing something - making it better. Fighting toolchains I read your book Because my boss let me have some training and I like using Unit tests. I know I could learn more about using unit tests properly to support legacy code. Show
3 32 C Tcl custom at CSR/Qualcomm I like to ride my bicycle I like to ride my bike combination of unit tests and tests on actual devices firmware for CSR Bluetooth chips emacs 1-5 minutes fairly subjective no set criteria; some are very long indeed done by a fellow member of the team 25 20 30 The logical thinking involved Dealing with crappy existing code Sounds like a good idea To get better at testing Show
9 20 Embedded C Regular C, Labview, Visual Basic none I'm a keen runner in my spare time Code is tested on a representative hardware platform, then manual and automated tests are carried out by a Test Team Custom embedded platform with additional DSP. xIDE (in house embedded C development tool) 11-30 seconds There are coding standards, although not strictly enforced. Code reviews catch major transgressions When it's bigger than your editing window, about 30-40 lines of code Code reviews are strictlyenforced and work well 5 20 75 ( most of my work is finding and fixing bugs) Developing new features, making things better Struggling to fix issues in legacy code It can speed up the development process and improves code quality. It's a much quicker way to develop code and to re-factor existing code TDD is widespread through our department. To gain some hands-on experience of using this development methodology Show
5 15 C C++ Unity, proprietary Don't write as much code as I would like to anymore :( Only recently started using on Host unit tests. Before that lots of manual testing during development and System tests. CSR XAP micro CSR proprietary 5-30 minutes Vague at best When the purpose of the function becomes unclear or it tries to do too much Not always done by the most appropriate person 60 20 20 Design Integrating new code into old code I've given it a go although found it very hard to really stick to the principles as I understand them. I like software processes and am intrigued to see if TDD principles can be applied to everyday development without taking shortcuts. Show
2 9 C C++, Python Unity Trained as an Electronics Engineer, started my career writing device drivers for Analog devices processors and then moved on to study Masters in Computer Vision and Robotics. Worked a bit in medical imaging industry writing image analysis algorithms. Finally joined CSR and implementing Bluetooth based audio products since last couple of years. We currently test our code by running the code onto the hardware and capturing debug traces. CSR XAP processor , Kalimba DSP processor Xide tool chain 1-5 minutes We currently follow CSR's internal coding guidelines. When it exceeds 20-30 lines. Sometimes they are just obligatory but most of the times they are quite in-depth. 25 25 50 I enjoy every aspect of software development - designing , implementation, debugging and testing. To understand/work on legacy code which is not documented or not very well designed. Incremental cycles of writing tests and code to pass those tests. To gain in depth understanding of the principles of TDD to be able to apply it with confidence. Show
1 16 C Python, C++, Shell scripting, Perl, Java BlueCore unit test framework which is part of our build system I'm relatively new to embedded programming (about a year). Most of my development experience has been on PC software. Manual tests, in-house Test On Target framework, Soaktester test engine which uses TCL scripts for more extensive testing. XAP2 processor GCC, GVIM, IPython, Perforce, Notepad++ 5-30 minutes I follow our group's coding standard for C code and PEP 8 for Python When it won't fit on one screen on my display. Code reviews are an integral part of our team's development process. All code we submit are reviewed by at least one other teammate. 50 20 30 Solving problems. Documentation, meetings. TDD stands for Test Driven Development and is an approach to software development where the programmer writes the test for a new feature before writing code for the feature. I have some experience doing this with our Test On Target framework. To improve my programming skills and learn more about embedded development. Show
2+ years 10+ years C C++ / Java Unity Currently programming mainly for SOC devices using embedded C and when needed, for desktop applications in . NET environment using C++. Currently applying minimal testing on the generated code, if not none. SOC devices for wireless communication systems Cross platform for embedded C and .NET for desktop applications 5-30 minutes CSR coding standards If the code is not easy to read and review for a junior engineer, the function is too long. Regular reviews per change list in a particular field %60 %5 %35 Achievement, i.e. hitting target deadlines with the committed feature set. Trying to fix bugs caused by careless planning and design reviews. Any piece of code which has not been tested is bad code, no matter how well-structured or well-designed it is. To be able to build better-quality software in relatively shorter time frames than I could today. Show
1 8 C C++, C#, ASM None I really like working as a programmer, and my hobby is DJing. Manual tests, debuger Embedded system, integrated Bluetooth chip Notepad++, xIDE, eclipse, code::blocks 11-30 seconds C89 When I'm starting to repeat the same lines of code, when it's hard to place whole function on the screen I didn't do much of them 20 60 20 How from small pieces of code You can build very powerful applications Building the setup for cross-compilation, and deploying Not much, I haven't use it yet. I heard a lot about TDD, and all opinions were positive. Also I don't have much experience in code testing (I'm not even familiar with terminology), so it will be great chance to start learning about tests as well Show
1 20 C C++, Python, Java, Perl Unity I started work in the games industry and have gradually moved into a more embedded environment. Unity for new modules; "system test" for existing functionality; lots of manual testing when fixing bugs. Bluetooth Audio Chip (CSR) xIDE, shell scripts, make, in-house utilites 1-5 minutes It's vague Too many indented braces Slow & cumbersome 10 50 40 When it works at the end. Spending a long time debugging a problem and finding it is a one-line fix that should have been picked up earlier. I have read your book and used Unity as part of developing a new feature in our product. I have had a taste of TDD but I want to learn more, especially how it could be used with legacy code. It is also being arranged for our whole group so I am attending as part of that. Show
11 25 C C++, Perl, Python Unity ? Manual tests Running code in debugger Unity test harness (currently on library code only) Embedded code on XAP Processor Debugger for XAP Processor 1-5 minutes There are some guidelines in place but there is a lot of individual coding style which isn't covered Over a screen length All code changes must be reviewed by someone else before submitting to our codebase 30 40 30 Solving problems and seeing the results. Having time pressures I have read bits of the book! It was arranged by management. Show
Three Ten C Nil Unity -Working in Embedded systems for past 10years -Programing using C, and bit of assembly -Understanding of micro controllers and hardware. -Manually -Some automation -Unity test framework Embedded SOC's and Controllers CSR specific development tools 5-30 minutes CSR internal coding standards When the function does more than it inteneded to do , or the logic of function gets more and more complex Reviews are done as per system requriements and coding guidlines and optimization 50 30 20 -Design and implementations for logical problems -Bugs!!! -I am not much aware of TDD -Want to know more on TDD and to see how it could be implemented in our development process and reduces testing efforts. Show
2.6 9 C - Not used I have been involved in design and coding for embedded applications With Phones and Bluetooth Profile Test Suite(PTS) CSR embedded dev kits CSR developement platform 5-30 minutes CSR coding standard when a function is trying to do multiple things, I generally split up into multiple functions. Code developed is reviewed for optimization, logic check and coding standard 40 30 30 Design, Coding, Unit testing Honestly, I don't like doing regression testing after writing software The developer writes the test code first and then tries to write the minimum code to pass the test. To learn about TDD. I have not used TDD in any of my project so far. I have tested my software by writing some wrapper functions to test sanity, testing with PTS, running static tool analyser like lint for code analysis. But I have never used TDD. Show
4 5 C - unity framework using cmock I have been working on embedded products mainly into Bluetooth technology such as Handsfree car kits, speakers, soundbars, headsets. - Unity testing: Unity test framework using Cmock. - Functional testing: against other standard Bluetooth enabled devices (such as phones, tablets, speakers and PCs etc) - Conformance testing: using Profile tuning suite (for qualification to Bluetooth standards) Bluetooth headsets, speakers, soundbars CSR specific Development Environment (xIDE) 31-60 seconds CSR coding standard If the function does additional tasks then the intended code reviews are clear and precise from subject experts and mainly focusing on functionality aspects 40 25 35 The excitement to see your thoughts converting into working software. Debugging I'm new to this. All i know is that it could be a parallel process of testing while we develop the software. In a system of multiple modules it is difficult to have full fledged test results of your module unless its in place with other modules (say DSP and application) there by testing is delayed. However with TDD we are hoping this gap can be reduced. Show
1 10 C Python, C++, Java Unity I've been doing embedded systems development for this whole 10 years in various fields. Since more or less 3 years I'm using some form of unit tests and I like it. My code usually have some unit tests. In general our code is tested by system level manual tests. It is reference design of Bluetooth music playing headsets, speakers and soundabrs. It runs on 16 bit invented next door processor. Eclipse and gcc 11-30 seconds There is one, but nobody is using it. When I'm in the middle of a function and don't remember what was at the begining. Reviews are mandatory (recently) but rather informal. Due to current system limitation usually there is only one reviewer and it is not easy to refer to specific place in code. 40 40 20 Designing, implementing and watching it working. I also like debugging, seriously. I like it most when I have access to all source code and I can change and rebuild everything. Manual test, especially when it have to be done more than once. Software components without source code or documentation/examples. I think that quite a lot. Everyone have to go. However I like opportunity to learn something new. Show
9 25 c c++, assembler, python n/a Software engineer that doesn't actually get to write any software anymore due to the way the department now operates, little software is actually written by the group these days :-( definitely time for a change of job.... real time debugger, i/o, end result etc as appropriate CSR xap processor, Kalimba DSP Xide 11-30 seconds yes not easy to read all changes reviewed 50 25 25 don't get to develop anything anymore due to way department is now structured, no significant software written in the last year. nothing really, wouldn't be a software engineer if i didn't like doing it. what you explained in previous talk given to Cambridge employees and the videos that Richard made us watch. because Richard says we have to, due to attempting to change the way the group develops software Show
8 20 C Python, C++ unity The first program I wrote was in qbasic and was called monster jump unity tests Bluetooth headset/speaker/soundbar. BlueCore (XAP) with on-chip host xIDE (SDK) and other in house tools 30-60 minutes It is more of a style guide When I forget how it started They are generally useful 40 40 20 Problem solving Deadlines It is good for developing new code Mocks are of limited use in the long term I would like to know the best strategy for writing tests so they do not restrict future development Show
13 13 C Python N/A I'm a diagnostic engineer Run regression over weeks Cisco router Linux workstation 31-60 seconds Cisco software coding standard More than 100 lines Use Cisco PRRQ 50 25 25 learning new technologies, interfaces, got stuck when debugging, frustrated when can't find the bug or solution Nothing To improve my software and coding skills Show
1 10 C Python None Worked in platform area of network devices automation/ manual test/ system test beds x86 systems with network processors GNU tools 5-30 minutes In house standards I would like to see the whole function without scrolling Peer reviews design + code - 60% 30% 10% The challenge of building complex functionality. Depending on other's code. Fairly new to the concept Want to improve my coding efficiency and first time correctness. Have fewer bugs. Show
1 5 Python Java, C++ Nine Primarily do Java coding for work. Do Python game making on the side. Run it and verify it works. N/A Eclipse Under 10 seconds Average? Play it by ear Very infrequent 50 25 25 Puzzle solving. Seeing the code come to life(working). Debugging Test driven design is writing test/unit tests that conform with design specs. Then after, write the functional code. Want to gain proficiency with C, as well as learn better testing practices. Show
17 20 C++ C, shell, python, make, javascript CppUTest The "infrastructure" guy at Dynon, the first SW hire. CppUTest Bare-metal ARM7TDMI / Linux x86 / Linux ARM GNU, Qt Creator, SVN, git, VS Code 31-60 seconds ad-hoc, unenforced when its brace depth is too high or too many lines standard practice, reasonably rigorous 15 5 10 Everything but the debugging. Debugging. Regular practitioner I want to support more common understanding among the team on test-first principles and practices intersecting with refactoring to SOLID design in the real world Show
4 8 C++ C#, Python, Lua, PHP CppUTest, Visual Studio Unit Testing Framework I was recently appointed software architect to start tackling our technical debt problems. I really enjoy writing software and want to be great at it. I always love learning new things. I would write code even if I didn't get paid to do it. So please push me during the training! Roughly: 40% via unit test, 30% via manual testing, 10% via our Lua integration, and 20% likely not covered at all. This discipline is horrible, and I need help to change it. C++/OpenGL on Linux target with 1Ghz CPU and 1GB RAM gcc, gdb, make, QtCreator, SmartSVN, CppUTest, SciTools Understand, google perftools 1-5 minutes I wrote one, but the team doesn't follow it. When it is over 10-15 lines, tries to do too many things, or is not testable. We don't do them, but I really wish that we did. 30% 20% 50% The puzzle aspect, the challenge, creating value for people, the fact that it can always be improved. Technical friction, bugs, untested software, wasting time debugging, accumulation of technical debt, flaky tools, wasting time debating with co-workers, dealing with people who don't want to (or don't know how) to change. That I want to do it, have tried it and it has worked for me, but I was unable to scale it to my every day work. That it is a different way of thinking for me, but I want to be better at it. Red/Green/Refactor is the way to go. To write better software. If we don't improve as a team, our company will die or I will quit. I want to support my teammates. I have been asking for something like this for a while now and am very excited about it. So thanks in advance! Show
8 12 C++ C None I wear glasses... Plugging it into a simulated test environment and observing the output x86 dual core 32 bit linux gdb, valgrind 31-60 seconds Informal will very few agreed upon standards Gut feel. Generally once it steps beyond a single purpose or can be further modularized based on purpose. Informal, and might not occure at all unless a check-in causes problems. 20 40 40 The challenge of design. Dealing with immense technical debt. At this time, only the wiki headline. To evaluate the methods discussed and determine what can be improved in our existing system. Show
13 30 C perl CppUTest I use vi, what else do you need? ;) John Aaron is a steely eyed missile man. An extensive but manual process involving debugger verifications, regressions, and end to end test both in a simulated and real-world environment. Embedded Linux and bare-metal ARM. vi, gdb, cscope, Qt Creator, unix 11-30 seconds I personally use K&R for C. When adding lines to reduce obfuscation reaches diminishing returns. Informal; usually a second set of eyeballs and a walk-through. Sometimes exhaustive, sometimes not. 25% 50% 25% Being in the zone. Being out of the zone. That it's a methodology for developing code by creating tests prior to writing a chunk of code. Testing is hard and it's essential and I want it to be better, more reliable and more often performed. If it's also easier that'd be great. Show
11 14 C Assembly - EE, only do firmware as needed Manual Functional test ARM-7 raw processor, no OS GNU 1-5 minutes - - - 25% 25% 50% Much faster iterations than hardware Less observable and debug-able than hardware None Larger software team at Dynon is attending, and I am observing to determine if it is useful for the project that I manage which will have a growing software component in the future. Show
12 30 c++ none cpputest Rather not. More and more unit testing with lots and lots of manual integration testing. embedded linux x86 qt creator, subversion, smartsvn 1-5 minutes Ha! When it's hard to understand. We have then regularly now which is good, but I would still consider them unfocused. 33% 33% 33% Creating something useful from nothing. Determining what a customer really needs vs what they think they want. Arguing with management about priorities, especially around tooling, refactoring etc. Whatever I could absorb from countless youtube presentations and web pages. It sure would be nice to have an environment where you can make changes and not guess at the consequences. I've already completed one tdd course and am really interested in some SOLID coaching. Show
15 17 c python N/A Mainly writing device driver Load image to route/switch with debug logging information Cisco switch/router clearcase, Cisco ADS 1-5 minutes Cisco standard CPU hogged Cisco Peer Review tool 50% 25% 25% Flexibility Debugging Nothing Improve code quality Show
10 2 Python C#, C++ python unittest I work as the sole tester for the entire software group, so I'm spread in a lot of directions. In between test cycles, I try to spend time doing development work to automate test resources. Mostly manual testing. With some critical python scripts I will do unit testing. In some cases I develop integrated tests. SkyView and D3. PyCharm, QtCreator, Visual Studio 5-30 minutes There is no coding standard. When it's doing more than one thing. They are fairly productive, I credit most of my personal development as a programmer to code review feedback. 20 70 10 Having something that seemed frustrating and/or impossible become real and understandable. Painting yourself into a corner with bad design decisions. You write a failing unit test for the code first, then you write the actual code to make the test pass. And on and on and on I took it before but I was pretty knew to software at all. I'm curious to see what I'll come away with this time now that I've had more time to develop. Show
7 30+ C C++, C#, some assembly only one and I forget the name of it :-) I'm very thorough in the testing that I do before considering myself done with an assigned's often time consuming. I make a list of things that need to be tested based on requirements, and then I run through each thing manually to make sure the requirements have been tested. Then after checking in the code, I write down a manual test procedure of sorts so that someone else can carry out the steps that I just did. Often app code inside SKyview, or possibly ARM code GDB, remote debugging, logic analyzer, bus sniffing, debug serial ports 1-5 minutes Ha! We haven't had one until recently. It's a start. When it becomes unclear, confusing, complicated We have them when we feel one is needed or desired by the developer. 50 30 20 I like developing s/w that does something cool that I can see. I like the process of transforming requirements into code. I feel satisfied if I have produced something I feel covers all the requirements, is well designed and well tested. I don't like looking deadlines when there is a tough problem in my path to the finish line. only a little bit based on discussion and some doing we have had here at work. So that I can open my eyes to better and more efficient ways of developing software and keep up with Jones'. Show
15 25 C bash, python, tcl None I am a developer, mainly in cisco IOS (IOS programming and Linux programming). Black box testing, some built in unit test code, some throw away unit test code. Embedded systems (IOS or Linux) running in Cisco switches and routers gcc/icc 30-60 minutes Cisco coding standard When it is running more than a couple of pages (100+ lines) Internal code reviews based on internal review tool 20 30 50 I like programming, designing and creating code without bugs. Repetitive changes, fear of regression due to enhancements. One of the reasons for joining this course if it can automate UT as much as possible. Almost nothing. Only thing I know is that testing should be in focus before writing code rather than afterwards. And code should be written as a test target. To write code which can be automated for UT so that further enhancements are less boring/time consuming doing the same tests repeatedly. Show
2 33 Clojure Java, C#, Ruby, C++ CppUTest, CppUnit, Google Test, JUnit, clojure.test, NUnit, RSpec I like to get my rear kicked shooting pool mostly unit testing via TDD, some integration/acceptance testing Linux servers deployed via AWS vim, emacs, Eclipse 11-30 seconds the code must be clean! when it is difficult to follow; when it expresses too many ideas; when it expresses things at differing levels of abstraction; when it requires comments to help you understand its flow we primarily pair and do some pull requests 49 49 2 the satisfaction of seeing something work; the challenge of solving problems; the ability to incrementally craft elegant solutions through continual refactoring the tedium still associated with the assembly and configuration part of development. It's amazing how far we've come and yet how much BS we still put up with. terminals for the deaf and dumb, right? to learn from the greats Show
10 20+ c++ java TDD server development as well as client JUNIT for java, not much for c++ LINUX Eclipse 2-4 hours we have a document to address that more than a screen size code collaborator 40 30 30 fun ! existing software yes I took a similar class in Java enhance the knowledge in unit test using c Show
15 15 C python none none setup testbed cisco router none 5-30 minutes cisco coding standard more than 200 cisco code review standard 50 30 20 identify & resolve problem stress no know tools to perform testing for code coverage Show
2 2 C C++, Python N/A Hardware engineer turned software developer I unit test with my daemon's client ARM Linux GCC, VIM 1-5 minutes NetBSD Style when it doesn't wrap into a page PRRQ 30 40 40 The act of creating something that works Working with preexisting code Rapid turn around time To learn some handy techniques to quicken programming cycle Show
3 7 java python, c++, javascript DOH I work as a full stack engineer. Unit test N/A eclipse 30-60 minutes N/A if # of line is more that 15 line Perr code review 60 30 10 love solving problem learning new technology NA wanted to learn about TDD Show
3 25 C/C++ not significant recently only proprietary setups Much of the code I have been working on here uses relies heavily on OpenGL. Other areas have relied a lot on communication between threads. In both cases I have struggled with how to test this well with unit tests with a reasonable effort. Mostly just ad-hoc, manual testing. Linux based embedded system GNU and Qt Creator 1-5 minutes not sure what to say about this in one line no comment few and far between 50 20 30 Solving interesting problems. Debugging poorly written code or mysterious bugs that often appear to be problems with things like the OpenGL video drivers we are stuck with. Ideally, tests are written before implementation. I believe the idea is that this will result in a more thought out design and better coding practices. I would be hopelessly lost if TDD is widely used here. It does seem interesting if I can figure out how to do it without putting in a lot more effort than now. I expect it will discourage some of the complex things I do that usually create problems. Show
1.3 10+ C octave(matlab) none I am an EE with experience in embedded development on various 8-bit, and ARM Cortex-M platforms. I have no experience in x86 development. laborious functional bench testing ARM (preferrably Cortex-M) ARM-MDK, GNU tools(gcc, gdb, make, etc.) 1-5 minutes Fairly conventional I think....... When I can't see the whole thing without scrolling We do them......sometimes...... 30% 20% 50% How to reduce debug time Trying to make sense of another developer's code, especially when said code contains functions consisting of hundreds of lines of code. Not much, although I have received some recent internal training on some of the rudiments and key principles of unit testing. To learn how to write better (less buggy) code more quickly. Show
12 17 C C++ N/A enjoy learning and incorporating new techniques and technologies that result in time efficiency and quality improvements white box testing, edge cases, positive and negative testing system running uC-OSII or ThreadX GreenHills Multi, IAR Embedded Workbench 1-5 minutes very basic: spacing, capitalization, naming conventions when it doesn't fit on the monitor screen Peer or Formal reviews using CodeCollaborator from SmartBear 50 30 20 solving challenging problems, getting things to work, coming up with creative and elegant solutions documentation: it is challenging to keep it up to date with the software that's constantly evolving and is time consuming all the requirements have to be testable, and derived from test case scenarios (which would cover expected and unexpected use cases) Undersand new ways to improve software quality Show
2.5 4.5 C C++, C# CPPUTest A lot of embedded software. Trying to pull CPPUTest into our development. Pushing for more C++. A little bit of embedded linux. I like blueberry pie. CPPUTest run with GCC STM32 Keil, GCC, Eclipse Under 10 seconds Development, testing, review, pull request, more testing, sign off It no longer accomplishes a specific task or is no longer easily understandable 3 or more people, 1 must be senior, 1 must be off platform 50 25 25 The challenges present with an embedded device and the ability to be creative with design and development Some of the politics required when making a design decision and the amount of testing required to prove the design out (with no unit testing) I have written a few very basic tests to get framework setup. Can improve confidence in development and result in less testing required afterward. Interested in best way to pull TDD into legacy code. We have a lot of code already written (but still under dev.) that have no reliable way to test (aside from bench testing) Looking to establish an automated way to verify software during development Show
6 +15 C Labview, Visual Basic, 8051 Assembly none Primarily an EE but only one capable of programming at company. Previous employment involved complex VHDL system designs. mostly manually, some assembly testing custom built PCBs using Microchip dsPIC33 uCs, native code, no OS Mplab X, some code analysis tool, Spreadsheet, 11-30 seconds Trying to learn from what I self educate myself on When it does too much, probably it'd be nice. 30 20 10 Didn't have design time in above: 40% Making a system that does what it should and then some. Lack of knowledge and understanding of software development by rest of company Have seen references to it and it being a good method. But I do not have a grasp for what it really means, especially in an embedded, no OS, native code design. TDD is supposed to be good,want to be better at my job. To do things right and more reliable. If/when I leave company, who ever might replace me doesn't look at what I have done and say "<insert favorite colorful word here>"! Show
12 35 C ASM, C++ ? ? Embedded test. Unit Test, Product Test Embedded Green Hills, IAR 31-60 seconds We have one. No limit We have then. Somewhat painful 40 20 40 TBD TBD TBD TBD Show
8 15 C C++, assembly Suppose this is optional. I am a soccer fan, I don't like this survey because it has all questions required, and no treat for the survey. Test its feature or test with test command. uc/OS-II, Embedded system MULTI debugger 5-30 minutes Suppose this is optional. Suppose this is optional. Suppose this is optional. 50 30 20 Suppose this is optional. Suppose this is optional. ASSERT etc, not much. Don't ask, don't tell. Show
4.5 years 20+ years C (microcontrollers) and Python (host code) C++, have used many more in the past, starting to learn Elixir cpputest, cmockery, unity, Google Test, Boost Test, unittest (Python) I am currently working my own toy programming language and writing a compiler from scratch as a learning exercise. I started with ply and lex/yacc, but neither really supports my chosen language syntax (white-space significant). Unit tests using TDD where practical and system-level feature/regression tests. For full system development, I often perform system-level fuzzing tests. Varies by customer, but often Cortex-M class microcontrollers C: gcc + openocd + eclipse, Python: PyCharm, cmake. Visual Studio on Windows. Under 10 seconds Varies by customer When you cannot explain its purpose on one line or when it needs comments in the body to explain how it works. Infrequent by others as my consulting is often sole-developer for a product or specific features. Lint and -Wall -Wextra -pedantic are my friends. 35 35 30 (including system testing) The challenge and continuous learning. Working with people to create great solutions. Fighting with tools and poorly written code. Bureaucracy. Solving the same problem over and over. I use it frequently. Possibly teaching it in the future! Show
3 9 C none google test A simple person, trying to utilize the best possible use of my time in technical domain. test vectors in terms of test code + debuggers ARM based Micro running uCos , Linux based custom target GreenHills IAD, WindRiver work bench 31-60 seconds Test driven more than a few hundered lines and doing more than a couple of task in a same function. rigerous peer review using code collabborator tools 30 40 30 I am in control. changing or misleading requirements or last minute requirements. I believe, it is a practice that can lead us to develop software with testing as a first priority resulting in less code changes/debug time and reduced T&V cycle. It could provide me more information that can help me become a better programmer/reviewer and/or software architect. I intend to use this as a tool to make things better. Show
10 25 C/C++ Java test code written by Perl like program Test application to connect unit for test/debug RFID reader MULTI project manager 1-5 minutes ANSI check source code collaborator 30% 20% 50% good IDE bad IDE make develop/debug/test in one cycle improve quality of development Show
10 20 C C# Microsoft Embedded CETK RFID support team for Zebra No Windows Mobile, CE, Android and iOS VS2005, 2008, 2013, 2015, Android Studio and XCode 30-60 minutes N/A N/A N/A 40 10 50 N/A N/A N/A Learn how to test my software and system integration Show
8 20 C C++ Self written; in house test tools I breathe air Verify functionality Various ARM based targets IAR, GreenHills 1-5 minutes Developed cooperatively using references from ESC speakers When I forget how it started We use Code Collaborator 30 30 40 Blend of logic and creativity. See results right away. Troubleshooting other people's poorly written/designed code Designing software to be testable & easier to troubleshoot Interested in learning more about TDD techniques Show
13 20 c c++ jtag N/a combo of unit test and functional test. various ARM and ATmega, 8051 greenhills / IAR 31-60 seconds We have a standard... K&R like.. beyond a page Yes, we have them 25 25 50 Flexibility / Rapid results Flexibility / Rapid results Only what I read on blogs... deliberate unit test process I think.. To open the aperture and explore updates to how we develop software. Show
2 35 C++ C, C#, Python, Assembler Parasoft An old dog who still learns new tricks but doesn't expect to be asked to jump through hoops. Consider how a module can be tested when designing API; write unit tests at same time as implementing code; integration and system testing done as a separate exercise before verification/validation SoC ARM A-9 core; Tensilica Mini108 core Xtensa IDE toolchain; TBD for ARM 31-60 seconds Based on MISRA; centrally agreed and reviewed for all Micron Firmware Won't fit on a single screen Use Stash pull requests as gatekeeper; reviewer can add comments and tasks 20 40 40 Producing cleanly designed efficient code Brainstorming initial stages Design and implement tests (to fail) before implementing code Always interested in new ideas and processes Show
5 15 C VHDL a unit test environment created by us Nothing with tests created by us EMMC Visual Studio 30-60 minutes C++ When is impossible to understand what's his functionality Collaborator 30% 20% 50% The possibility to create something that's work I don't I the useless complications and the non commented codes I can't answer now . In order to increase my job efficiency Show
2 30 C++ Java, Python Parasoft I hate queuing in traffic. Previous project used Parasoft to unit test as much as possible. ARM Greenhills 31-60 seconds Reasonable When I get fed up scrolling up and down Good 50 30 20 Getting software to do what it's supposed to do Documentation I've read your book but not put it into practice. TDD sounds interesting but I want to know if it works on a real project and how much effort it is to put into practice, and the company is thinking of using it. Show
3 11 C C++, Java, JavaScript JUnit, CppUnit I'm working on embedded systems CppUnit embedded Visual Studio, Eclipse 1-5 minutes Company Propetary LOC > 100 Stash or Code Collaborator 60 20 20 Create something that is under my control and I can drive it as I want. nothing It is a development strategy based on an incremental test proof. The Idea is to build the test first and develop the feature in a breadcrumb way: the test must fail until the whole feature is complete. I like to know all development strategy. Show
3 14 C C++, Java, PHP, Visual Basic, C#, JavaScript CppUnit Nothing CppUnit and White Box testing ARC Visual Studio 1-5 minutes company proprietary more that 100 lines of code Stash, CodeCollaborator 60 20 20 Find the better solution where others see only the problem Nothing It is a development process that require to write the tests before the code To know more about TDD and find the best way/practices to use it in my daily Show
3 years and a half about 20 years C C#, java, Pascal, C++ None I have been working on embedded systems for 3 years I work on firmware design I create some stubs in which the function is pasted. The stub has some nested loops. Each cycle loops on all possible cases of an input variable of the tested function. Furthermore, the stub contains the print with all the input paramaters, the function expected ouptut ARC Microcontroller Visual Studio 30-60 minutes . the number of code lines is greater than 1300 I use Code collaborator tool 25 30 45 designing and writing code writing tests and debugging Nothing I want to know how to test a software state machine Show
2 15 C C++,Java, Phyton, perl, Objective-C, HTML, PHP EasyMock, JMock, JUnit All unit test tools (JUnit, JMock ecc) has been used during my university carrier. I never used them in the last two year. Using Simulator and TestStub Embedded System with ARC-CPU Lauterbach, Visual Studio 31-60 seconds Start writing a Design page with UML diagram and requirement specification, then start the implementation/test phase using Simulator >150 LOC (State machine) before merge feature branch on master branch , we have to create a Pull-Request (STASH-Atlassian) 40 40 20 I like coding (writing code) trying to optimize the code footprint and understand all build process (compiler-linker optimization) Documentation (Yes, I know that is necessary) I like Agile programming, and from University Better UnitTest procedure in order to prevent and/or detect first a possible bug Show
10 2 C perl none I never used tdd procedure in my job I use the simulator embedded lauterbach, Visual Studio 31-60 seconds Start coding after design analysis. 200 code line I use STASH-Atlassian to create pull request and approuve code review 50 20 30 I like coding and debug of module implemented Writing Documentation Agile is my model of programming I would like to increase the test strategy Show
1 35 C asm In-house, gmock I come from an Electronics design background Regression runs using simulation and emulation/unittest Embedded ASIC Eclipse, VC, SVN 5-30 minutes In-house developed peer-review In-house, ad-hoc 10 25 25 debugging real-time embedded code using real hardware Inadequate requirements capture Not having target HW or FPGA platform to develop embedded code with. Used it at previous company. Really liked it because it forced tests to be written from requirements capture, not from what the firmware does. Don't really know. Someone in Micron thinks it's a good idea. I would like us to use TDD so it's got go be a good thing. Show
2 30 C Python, Java, Assembler Python and Java I like assembly programming because I worked in many DSP chips for many years. Breakpoints, step in, analyze trace logs. Use printf. Embedded HW platforms Visual C++ Studio, Eclipse 1-5 minutes Good >50 lines Fair 20% 60% 20% Enjoy seeing the end products being used by million of people. Feel rewarding when products reach mass production. When bug reports come back from the field and engineers must work hard to identify and fix the problem in very short time. That is a very stressful period. Not much, but may already followed some of its principles. Micron paid for the training and our whole software team will attend. Show
9 32 C Python, Java, C++ Python unittest, JUnit I'm the firmware architect and lead for the 3rd-gen 'Hybrid Memory Cube' program. Tests are primarily Python-driven via a unittest-derived class library. These execute against the product firmware in various targets in emulation, simulation and actual silicon. We also have some standalone variant builds tested via Python, SystemVerilog and C. Its a management ASIC for controlling stacked DRAM die. GNU-derived C compilers, Visual C, make, Eclipse, Source Insight 1-5 minutes Primarily a set of C naming and coding guidelines based on Barr Group embedded C standards (and others), checked via splint and astyle We have to support patching at the function level so we are careful about function sizes. Typically >300 bytes (compiled) is too big. Offline peer review, collaborative walkthrough, resolution action-list 20% 60% 20% I like building things and figuring out why they don't work like they are supposed to. The ability to learn, adapt and extend software on a faster timeline than logic hardware or physical stuff. Mentoring and teaching others. Branching and merging. 'Big-bang' integration. Requirements capture is painful, requirements sign-off is almost impossible. Mentoring and teaching others... Not a lot. I think our current approach is test-focused, but I may be way off. To learn about TDD, and how it could help our planning/estimating/development/verification methodologies. Show
2 20 Python Assembler none . In system testing using Python based test driver embedded processor in-house, python 1-5 minutes inhouse does not fit on page peer 20 40 40 getting things to work Changing requirements nothing Improve my development Show
2 2 C++ C - - - - XTensa 11-30 seconds - - - - - - design testing - was assigned to it Show
2 15 c python python unittest I have been also an RTL designer using Verilog. Other languages used are PERL, Assembler, ... We normally use python unittest embedded c running on iss or compile to intel and tested on an emulator source insight 5-30 minutes We follow a team coding standard Normally we avoid having more than one and a half pages in our screens they are reviewed by all the team in a meeting room. 20 60 20 Coding Testing corner cases Not much Company suggestion Show
4 8 C VB Self-made hardware automatic tests I like to develop products and hence programming the code for them also in my spare time, so in that case I cannot separate the figures: I'm always - the customer that makes the requirements, - the programmer that write the specifications and the code, the tester that check the product, - the debugger that review the code, - again the customer that use the product just verifing if requirents and specifications are respected Street Light controllers IAR Embedded Workbench 31-60 seconds Personal standards: indentation, well done comments, funtion descriptors,... when i take too much time to understand again what it does... ... 40% 10% 50% to Make hardware do what you want... that stupid random bugs that you aren't able to replicate not pretty much in deep, just general informations... Overall that implies more code... To understand if TDD could be for me an every-day approch in my programming teqniques considering the fact that i develop firmware for real products... Show
4,5 10 C assembly, labview cppUtest I am specialized in controls and deal with bus protocols partially with cppUtest arm platforms iar, eclipse 5-30 minutes just bought C cert standard onger than a window indiavidually done 45 25 30 creating new architectures delving into somebodies else code i read the book and I am applying it since 1 year. tests created afterwards acquiring much more practice mocks especially getting as many colleagues as possible involved in tdd Show
5 20 BASIC PASCAL C, .NET C++ LISP ccnTH I'm also a psycolog YES ballast iar c compiler 31-60 seconds C standard I cannot understand it - 10 10 10 the final result time pressure nothing understand something more in TDD Show
5 7 C None cpputest I mainly work on 32bit micro controllers on wireless lighting applications (using ZigBee technology in particular). Some modules are tested with unit tests (using cpputest); the majority are tested by running the application on evaluation boards and, after that, on the real product. 32bit ARM SoC with integrated 802.15.4 radio IAR EW for ARM; debug printf on UART; 802.15.4 sniffer tools 1-5 minutes No particular coding standard applied When it is difficult to understand the logic flow; or when it does something which is not explained by the function name alone I review the code myself when I need to refactor it 60% 30% 10% Craftmanship. Creating something with the freedom to choose how to do it. Creating something that people can easily use. I don't like sitting too many hours per day in front of a PC. I don't like headaches caused by uncontrolled software. I've read your book and attended a seminar on TDD for Java (Junit). I've experienced TDD a bit and it raised a lot the quality of my code. Now I face the issue of having a mess in the test code. And I'm not really testing everything. So, I want to improve. Show
7 10 C C++, VB, ASM None - Most manual testing. Some automated product testing 32bit microcontrollers IAR Under 10 seconds - Over 20/30 lines long - 40% 30% 30% Allows to be very creative on problem solving Sometimes management does not understand the software developments process and might pressure you for unrealistic results Nothing Get more insight on the TDD practice, and see if it can improve development Show
7 20 C vb - I work also on hardare development automatic test microcontrollers IAR system 1-5 minutes - too many lines - 40 40 20 to built a working system the risk of bugs very few I hope to have new tool for test and debug Show
0.25 12 C++ Ruby, Perl, Bash-script, none I'm a linux kind of guy that likes working close to the hardware I write some test code, but most of the tests are done using the debugger Embedded / ARM 7, Cortex M4 EMACS, IAR, Visual Studio 11-30 seconds None that I knew of... It doesn't fit on one screen easily Manually hand it over to the reviewer 40 10 50 Inventive, creative kind of work. Like to see the result. Talking about what to do for too much time. I read the first half of Test-Driven Development for Embedded Systems - than I had to return the book :( I really hope to make my code better Show
20 30 C Python Unity CppUTest Trying to manage the change from mainly hardware to software challenges Trying to push Agile Develeopment over V-model 30% unit tests 70% manual tests ARM Cortex M0 up to 64k IAR, Eclipse 5-30 minutes none when it gets longer than one screen page (with 4pt font ;-) on demand if I see special risks 40% 40% 20% problem solving manual testing I've read your book and i'm using the practices for new library code (rarely for application code) I triggered it together with Giancarlo: We have to understand and decide on our future practice Show
14 3 C JavaScript none I'm Hardware developer and moving more and more towards SW development Currently, I'm writing tests in JavaScript for a DALI (digital addressable light interface) library ARM controllers IAR Compiler, TestComplete 11-30 seconds ? when I'm loosing the overview ? ? ? ? to be able to program functionalities with much flexibility Debugging, because it oftenly takes much time before you write the code, the test is written - Having the possibility to learn something about TDD. - getting a more systematic / structurized approach in testing Show
1 6 C C#,Labview ? I am Hardware developer at OSRAM with programming skills After writing Embedded IAR,Subversion,Eclipse 31-60 seconds LMS coding standard When i find logical subfunctions in it which can be outsourced Yes 60% 40% Can be long, can be short That you get ideas working. The mental flow during programming ? First time i heard of it I want to learn! Show
8 25 C ASM, VHDL, C++, C#, Python VHDL Test bench, Automated Test I'm starting programming quite early (use the '80 computer) and then switch also to electronic hw design. I've an electronic university degree. I'm tend to automated the test. Embedded ARM GCC / IAR / VisualStudio 1-5 minutes KR now looking @Misra Not such much modular Refactor 30 40 30 Architecture, Design Changing requirements Just some small I'd like to understand if it can help me and my team to reduce the bug numbers before release Show
6 27 C starting C# none Developing "real" embedded Firmware (no RTOS used) by debuggung, by loggging data from inside the device embedded IAR-IDE Under 10 seconds none ?? seldom 20 30 50 Creative work Bugs are usually very silly .. and done by me. only the Basics (what you described this morning) To know, how to do TDD in practice Show
11 7 c c# nothing I don't know what should be there system tests µ-C, PC IAR embedded, VS2012 1-2 hours ansi-c is not transparent, easy to understand ? 50 20 30 that something is working (communicates, signals are ..... make sw tests nothing to improve my sw Show
1.5 Years 6 Years C no other so far i did not really use test harnesses so far. Just at the beginning. Because i am working quiet near to the hardware level, it is quiet hard to setup a test for this. Because it is code near to hardware, i am testing if the whole system is reacting like it should. ARM Cortex uC IAR Compiler, tortoisesvn, Mantis Bugtracking 31-60 seconds We do not have a common fixed coding standard If it is not easily readable Mostly done with another developer before check in. 40% 40% 20% creating something new. solving problems on this way. bugs not so far. to get to know better to tdd. maybe to use it to shortenup test time in the end. to prevent Show
5 10 C++ C,C#,VB,QT Simulators Working on C++ since April 2006 daily QNX system QT Creator, Visual Studio, Momentics for QNX, Eclipse 1-5 minutes Industry Standard Coding Standards No of lines Daily Code review 20 50 30 Innovation and creativity Complexity Test Driven Development Wanted to get use to Test driven development. Wanted to create Bug free code. Show
2 1/2 16 Java Adobe Flex and C++ JUnit 5 yrs of C++ 9 yrs of Java/J2EE 2 yrs of Adobe Flex basic unit testing NA Visua Studio/Eclipse 5-30 minutes Reusable APIs and small function more than 50 lines Have another person in the team to perform code review 40% 50% 10% Creativity, reusable and innovation if software testing has hardware dependency Very little I am a PO/SA. I have 16 yrs+ of Java/J2EE experience. I have not done coding in the past 2 1/2 years. My manager would like me to sit in the training so I could bring new ides to the development team. Show
8 12 C++ QT,QML Simulator I did most of the development on C++, VC++. From last 3 years working on QT, QML. Simulator QNX, Windows QT, Visual Studio 1-2 hours Default C++ standards By number of lines (excluding comments) Technical and Functional done by entire team 20 30 50 Facing challenges and developing unique features. Technical debt getting lower priority than business requirement in regular planning. But this technical debt may result into bigger problems if ignored for long. This is a software development process in which test cases are developed/created before code is implemented. To understand test driven development thoroughly and implement it in Sprint development. Show
2 15+ C/C++ Java LDRA, very basic understanding Interested to know about S/W test module interface development architecutre On target QNX/ ARM Visual C++, TI Code composer, MI 31-60 seconds MISRA, (not recently used) if it exceed x no. of lines defined by coding stds. peer review and desk review 30 40 30 Like solving problems, provide generic reusable solutions and learning new things that improve productivity s/w that is not documented, s/w not debuggable in order to plan development, what challenges we need to address for an TDD methodolgy. understand gaps and learn from an expert. Show
1 15 C++ .Net, Java, C GoogleTest Love rock climbing and playing with my kids. Trace logging, in-line debugging Windows CE Visual Studio, Eclipse Under 10 seconds Clean, readable, straightfoward When you have to scroll up and down to understand it. I like to analyze code for design and logic problems 80% 15% 5% I'm good at it. It's fun to design something and see it unfold and work. Sometimes I get bogged down during the design phase trying to find the perfect solution, drilling down too deep. Just the basics. Management wants better, more reliable code from our large team. They are implementing more processes in hopes of improving code quality. Show
8 15 C++ C#, Java JUnit I have worked in Heterogeneous environment for many years using various programming model Compile time debugger, Third party code validation Embedded Eclipse, Visual Studio 1-5 minutes ANSI When scrolling down a page Peer evaluation 60 20 20 Sense of accomplishment and automating repetitive tasks Unnecessary complex coding and untested code Test driven development is a way of developing and testing small chunk of code at a time and avoiding hidden bugs in production code I believe it will provide me with expert knowledge to enhance our current development and debugging practice. Show
1 15 C/C++ Python PolySpace Something Write own test code TI PICCOLO, Freescale imax QNX, TI CCS 2-4 hours MISRA Exceeds 50 lines Formal code review with peers 20 50 30 Satisfaction when code works Documentation A little bit Required by job duty Show
4 19 C ETC Makefile X Build/Run X QNX Buildchain, WinCE Buildchain, GNU Buildchain 30-60 minutes Simple When a segment is being reused Basic Peer Review 10 70 20 Testing a creation. Dealing with bad legacy code. Basic meaning and concept. TDD is a target for the company. Show
1 month 20 C++ C Self-written unit test programs Love to learn new things Unit test - Test using debugger - test line by line and exercise all the paths using debugger, or unit test program Integration testing Dispenser QDE Momentics, Code Composer studio 5-30 minutes MISRA Tyring to do many things in one function Done for every change 40 35 25 creative and logical thinking Documentation Incremental testing cycle during development phase instead of testing after development is done Make development process (and resulting product) more robust and faster. Show
less than 1 30 C C++ C# assembly language Unity CppUTest I hate Java bespoke test code, automated test cases Several different ones Windows CE based and also QNX based Visual Studio 2005 onwards, QNX Mometix 1-5 minutes BS5750 I dont write functions that are too long, so it usually means I am fixing someone elses issues Trained to do security code reviews 50 25 25 Interesting solving problems Alot of folks dont really know how to design or develop code Enough I was told it would be interesting Show
3 26 C C++, C#, Python None - Test on target verify behavior with debugger/logs and faking out stimuli where possible Hard embedded (32-bit TI processor), ARM7 Frescale iMX6 using QNX RTOS Eclipse IDE's provided by vendors (Momentix for QNX and Code Composer Studio for TI) 5-30 minutes None. Have static analysis tool (Parasoft) but is not fully adopted When it is doing more then what is needed, hard to read/unclear, ore than a page etc. Peer reviews 50 20 30 Logic, design, etc That it is so malleable---thus can change easily which then brings it's associated issues. Theoretical knowledge Want to learn more and apply towards improving code quality. Want code to be as close to bug free as possible when delivered to the recipient (be it tester, QA group, customer, etc). Show
6month 15 c C++ none nothing special...just a regular boring software engineer, willing to learn something new write code and test it in pieces. Really interested to know the unit testing. Heard a lot about it, but never seen it in action debuggers mostly 5-30 minutes pick up things I see in other's coding practices and follow it if I like it by the number of lines I love to hear from people what they think of my coding 30 40 30 its interesting. How you can co-relate developing software to real life activities. Multithreaded, pre-emptive .... then i wouldnt be in this training. nothing Want to see what unit testing is all about, even my boss talks about unit testing a lot, since I never did unit testing, i am really pumped up and very eager to learn how it is done. So please bear me if I ask any stupid question. Show
1 10 C++ Java Script QtTestLib GUI developer Code review QNX, iMX6 ARM v7 QNX SDK with IDE Under 10 seconds Following existing code function name, parameters number Daily 70 20 10 The results Rutine Not much Interested to learn TDD Show
5 9 Java Python JUnit API Developer JUnit Mac Eclipse 1-5 minutes Java standards if it has more than 2 functionalities being done prrq 60% 20% 20% Process NONE Basics TO get more insight, get upto speed Show
3 15 C C++ NA I am an embedded programmer mostly working on the Microcontroller based developement unit test scripts and self developed tools CAN and Ethernet based system QNX and Code Composer 1-5 minutes Use Coke standards NA Review with SMEs and team 30 50 20 Developing modular and reusable code NA Test Driven approach to help stable and reliable code To help me architect the system in a better way by looking at the code from testable angle Show
1 1 C Python Tessy Biomedical Engineer graduate, I started to work in Contienental as a Software tester Running PC-LIN, Tessy and by writing and execute test cases Airbag module WindRiver, eclipse. 1-5 minutes MISRA, ANSI C, internal naming conventions when I need to scroll more than once (1 and a half screen) We have them every time a change is introduced in the code 30 20 20 To think in how to solve logical problems taking care of the system constraints and to design solutions easy to code and to understand Be tied to very complex code (hard to understand and to reuse) because the projects are already in a mature stage and big changes are not allowed is a work paradigm in which the first steps are focused on create the test according with the requirements and then the developer starts coding trying to make a solution which pass all the tests. Because my group leader thinks it may help the team to increase the quality of our work. Show
1 4 C for embedded. VHDL, systemVerilog, C++, Python, PERL -- -- Static and Dynamic Tests are run after development: for the first one we use MISRA PcLint tool; for the second we use TESSY tool. Minim system, with sensors and actuators, and some other peripheral modules. IBM Rhapsody for Architecture and Design, AUTOSAR tool for compliance. Windriver with Eclipse environment for code development. 1-5 minutes Naming conventions, manual about handle variables (init, global vs locals), etc... We have a measure of quantity of (conditions and loop) instructions that we can use in the development of a function. This measure is not mandatory to follow, but a good practice. We have three types of code Reviews: Inpection, Walkthrough and Screenning. The first one is the deepest Review (three or more partners), the last one is only for very low changes. 30 min 1- 2 hrs 1- 2 hrs You always learn how to develop SW in better ways, there is always a way to make it safer. The code Reviews are a very good way to keep learning with the team. We sometimes have lacks in the requirements from the client, and sometimes the requirements that are very well specified do change several times. This is normal and we live with this. What I know about the subject is to develop the TESTS starting from well specified requirements. At the beginning the tests are not going to pass because the code developed is not compliant, after this the CODE is developed to fulfill those tests. I'm attending this course to change the paradigm of our development, because we first develop the code and then the test to check the code development correctness. Is obvious that the test can be developed first or at least simultaneously. Show
7 14 C Java, C#, Python, Basic Tessy My main focus these days are on sotware architecture design and code generation tools. Our architecture is based on software components, but they still have a limited scope (mainly organizational units), and I want to improve it by creating a framework that could allows us to test the integration of them with Tessy and with system level tests. We currenly lack of real integration testing Power PC, Renesas RH50 Windriver 1-5 minutes MISRA-C I can not quickly understand what it does We do reviews 50% 35% 15% The constant challanges to solve problems and also to figure out how to do it better this time The time spent investigating bugs due bad designs reading books, specially from Robert C. Martin I like the TDD approach, I want it to be the "paradigm" of my team, because I am working in the setup of tools that wil support the TDD approach, but I need the team to get convinced of the TDD methodology Show
4 12 C Python Tessy I studied Electronics Engineering and Specialty degree in Embedded Systems. By using Python Code, and simulation environments Airbag Module Windriver, WinIdea, Eclipse 30-60 minutes I like to make my code as simple as possible When the function have a lot of responsabilities They are not as good as they should be because of the lack of time 40% 20% 40% The freedom to create new functional products. I don't like running tessy for my code. Anything I'm really interested in learning how to improve my testing and the tools that I create to test my code. Show
8 17 C Assembly, Tessy 15 years experience as SW developer for automotive real time and safety critial embedded systems. Tessy, Small functional test. Airbag controller Rhapsody, Winidea, Doors, Winriver compiler, Tessy 1-5 minutes A propietary based on MISRA. If the cohesion is not strong. No mandatory preparation time, most of the times the design is not available. 30 10 20 The challenge to implement new things according to requirements. Testing Nothing My manager thinks it can help to improve our work, I want to understand and evaluate if it can. Show
5 10 C Java Just some tools like Tessy Mainly focus in Embedded Systems Yes, I guess there are more efficient ways Airbags Debuggers, tests by tessy, lint. 5-30 minutes MISRA, internal naming conventions, some avoids in coding When has so many responsabilities We do them as part of the process development once we finish the implementation. 40 10 50 The challenges faced to solve a problem in a most efficient way When you find code which is not documented, is illegible, weak, and try to fix it. Develop SW since another point of view... define the test and then implement the functionality Improve my programming skills Show
2 38 Java Ruby, Python, Perl, JavaScript, C#, Cobol, Assembly, Rexx, others JUnit, TestNG, rspec, minitest, PyUnit, Nose, NUnit, PerlUnit, SqlUnit, others I like chocolate. I usually use test-driven development for new code and modifications. I write automated checks at multiple levels of abstraction. For true "testing", I use exploratory testing techniques. Multiple Depends on project, language, domain, etc. 11-30 seconds Depends on language When I can't understand it easily. Prefer continuous review using methods like pairing and mobbing. 40% 50% 10% Solving interesting problems, providing useful solutions. Surveys. It's my default approach for dynamically-typed and statically-typed languages. I want to become qualified to teach the class as a partner of Wingman. Show
3 23 c/C++ C Shartp, Java, SQL CPPTEST, CPPUNIT, NUNIT Strong believer in Unit testing, Need to know embedded unit testing techniques and more about how to unit test legacy code manually, adhoc QNX, Arm7 Momentics 1-2 hours exists, but not followed more than 10 lines Yes, regularly 10% 50% 40% Code is music. Like beautiful, simple working code spaghetti code Interface based coding leads TDD, which leads to better design Need to know embedded techniques, and legacy code Show
2.5 20 C++ C, SQL, Java None I'm the person who you met when you first came to Coca-Cola for the first session. Create test plans with the test team that cover all use cases we can think of, then go through them manually after writing the code. Freestyle Dispenser, Embedded distributed architecture. QNX Momentics IDE, Eclipse, TFS 1-2 hours Typically based on personal preference of engineering manager. Not well enforced. If I cannot quickly understand it's purpose. Standing code reviews each day for 1-2 hours going over changes put in by all SW engineers on the project 50 30 20 It is logical and straightforward. When an issue comes up that causes long debugging times and late hours. It is designing tests first, then building code until the tests are passed. Technically it is required, but I would attend because we have a serious issue with introducing bugs, and our solution at this point has reduced productivity greatly, so I am hoping this will introduce a new solution. Show
3 20+ C Java, Smalltalk, C# GoogleTest I'm interested in TDD approach to legacy code Manual unit test, QA, some Automation QNX and Windows CE QNX Momentics and Visual Studio 1-2 hours Need to be enforced if it doe snot fit on one page Sometimes missed 30 30 40 Automates a lot of work It can be a challenge in not perfect environments Our team needs it I'm trying to implement TDD in our team. I recommended your book as TDD resource long before this class. Show
2 25 C/C++ PHP None I have degrees in Physics, Geophysics and Computer Science. I painstakingly run manual tests again and again, thinking of every way I can to break the code, fix it, and retest. I get very good quality this way, but very labor intensive. TI Piccolo and Freescale MX6 TI CCS and QNX Momentics 1-5 minutes Out of date, not applicable When start adding comments to closing braces Suggestions are to change implementations that already work 40 40 20 Completing a feature or program that runs with high quality. Delivering something that a customer loves and helps them solve a problem. Project managers and scrum masters who seem only to want to check off their boxes, not deliver actual good software to customers. Also, I dislike when software engineers design UI's - this usually results in bad usability. It is related to agile. Our department is planning to adopt this as one way to address poor quality results. Show
6 months 6 years C and C++ Java, Shell, Perl JUnit I am curious and interested in learning new things. More of Integration testing. QNX OS running on a dispenser with Qt code and Crank Storyboard and qml. qt Creator and qnx momentics. 5-30 minutes Parasoft Static Analysis with MISRA More than 10 lines. It is mostly Group Code review with cross functional teams involvement. 25% 35% 40% Over all changes with positive impact and Performance improvement . Debugging with less info. It helps us implement applications/systems in a short span of time with very few bugs. I want to follow TDD methods in all my future development. Show
0.25 8 c++ c none I am C++ application developer. Usually working on the higher levels of software. Om a real target. It is QNX based dispenser. - 1-2 hours Not easy to follow. When it doing more than one thing. They are unproductive with enough preparation time. 50% 10% 10% It is like creating something out of real world. A long it is close to real world it is great. Maintaining and developing over something that is built by somebody else. Need to know , visualize and assume which sometimes could be wrong. Having a test case in mind before even writing code. To improve embedded software knowledge. Show
2 years 6 years c++ c C none I was in mobile application development for 4 years ,now working for hmi software. parasoft qnx qt creator , qnx momentics 1-2 hours follow the check list for code review if function has more loops peer to peer ,team 60 20 20 software design and coding testing unexpected crash tdd is new to me to understand the tdd and implement . Show
3 15 C C++, python, bash cunit, cxxtest Years programming (above) is professionally. Started playing with BASIC on a ZX spectrum when I was 9. Cunit when possible. Failing that I normally write small toy programs to exercise algorithms in a debugger before testing them in the real system code. X86 server running linux gcc, gdb, eclipse, sublime text, HDE (our target simulator which runs on windows), real hardware. 5-30 minutes Reasonable. Aims to ensures consistent naming across our software, but if existing code doesn't match, we choose consistency with current code over matching the standard. When I can't understand it easily. (when it does more than one thing is a good rule of thumb IMO). > 1 screen of text (~50 lines) is another good rule. We use code collaborator. It's excellent. Far better time/payoff tradeoff than paper Fagan inspections which I've used in previous jobs. 10 10 10 Making things. Finding and fixing errors (like "percentge" typo in question above :-)) Finding duplication. (Though removing it can be satisfying.) Working out real requirements when there aren't any that are coherent. (Again though that can be satisfying when complete.) Have used it in a previous job where our primary language was C++. In the following job (also C++) I used it myself but it wasn't part of the company dev process. Here we use C, but now have cunit in our build sO I can again deliver code + tests. I feel very rusty. Have not had any coaching in TDD for several years (and have only been able to practice it sporadically during those years) so I'm pretty sure I've lots of room for improvement! Show
6 20 C None Telelogic Mainly worked with protocols in a mobile phone environment Windows test environment(Win32 representation of the TM500)using signal injection. On target using real networks or network simulators. Also on target using signal injection(PXI). tm500 capacity mobile Telelogic,Visual Studio 1-2 hours Aeroflex In-house Standard It looks too complex Code Collaborator 50 25 25 Solving a problem Testing Nothing To enable module testing Show
10 22 C, Python C++, Assembler Homebrew ? Anything from unit-test (rare as limited coverage) to full regression suite (if the change has system-wide impact) Varies. Some of our code is targetted at host machines (usually Windows but on occasion Linux) but most of my work is targetted at a heterogenous embedded system with various processor types: PPC, TI DSP, x86. MS Office and Sharepoint, Vim, our build system (which is built on top of SCons) supporting unit-tests, a non-real-time build running on Windows and the target build. CodeCollaborator is used for code reviews. In-house regression system. 1-5 minutes We have one, although it is pretty lax, that is only adhered to in certain sections of our codebase When I have to use searching to navigate inside it Certain areas of the code are subject to these but, while they do catch some bugs, they tend to degrade to debates about academic points in many cases. 60 20 20 Coming up with a solution to a problem that is simple (Occam's Razor), maintainable and, where possible, generic. Having to rework my implementation because someone will not sign off the code review until it has been done in they way that they would prefer, not because it would make the code any less error prone or more maintainable. Very little We have poor phase containment and I like the idea that unit-tests are written as part of the development process and maintained thereafter (and that is the real answer!) Show
6 14 C Java Junit Have worked on Java/J2EE framework in the past functional testing Real Chassis Slick Edit 5-30 minutes C Coding standard too many lines or code or code complexity high enough to break down function Code Collaborator 40 40 20 Putting an idea on paper into practice,code development quite widespread and used in many industries sitting in front of computer the whole day, no physical activity Heard terms like Scrum master, sprint, backlog, epic, stories from my wife who is into agile development at her company to try to find out benefits of TDD in our current day to day work Show
15 15 C C++, Python, Perl None I like crisps? Development test by modifying values in the debugger, system test writing test scripts to exercise the new functionality. Regression test running old test cases on the target. SLCA is effectively reads from a database evaluates the differences and then constructs messages to different layers based on "rules" Slickedit, Visual C++ 11-30 seconds It's strict in some areas and lose in others it isn't majorly enforced When I have to press page down more than 4 times.. Performed using code collaborator, are useful in finding issues some are skipped or never actually done to completion 30 50 20 I find it challenging (and I get paid) Short deadlines meaning I don't always get time to design and write in the best way Nothing Because my boss made me.. (And it might help with my modules) Show
3 20 C C++, Python CxxTest, CppUnit, CUnit Lots of previous experience in TDD in C++, but not in C. ad-hoc module testing during development Overnight system regression Various embedded targets, primarily x86 based running VxWorks or Linux MSVC, gcc, Visual SlickEdit 1-5 minutes I think we have one. If it can't fit on screen, or if it is clearly doing multiple things (in which case it should be split) Peer reviews including TA of whichever component is changed. 20 40 40 The creative side of it. I enjoy building things and getting them working. Not much really. The aspects I don't enjoy are mainly organisational and political. I don't really consider those "developing software". My previous organisation was big on TDD so I'm quite familiar. When I moved here I tried to instigate some TDD using CUnit (with another person also on this course) but quickly succumbed to "cucumber in the pickle jar" status. Initially I wasn't attending, only here due to multiple dropouts. But I hope to learn techniques that can be used to drive cultural change in our organisation, which is desperately required to improve the quality of our product. Show
8 20 C++ C# None No I test the product as a whole, no unit test Windows Visual Studio 2005 and 2010 1-5 minutes None When I can understand it All code created is reviewed 40 30 30 I like to be able to see things I create working and working well The way in which I am forced to do things I don't think are sensible Nothing I was offered the course and it sounded like it might give me more of an impetus to write code which I can easily test and therefore implement better. Show
2 30 C Python, C++, Java CUnit I have an interest in CI. Mostly complete system tests, sometimes in an emulated Windows environment, then manual or automated test suites on target. It's huge (well quite big), with varying configurations and CPU architectures MSVS (emulation/debug), VxWorks, GCC and internal logging/trace tools 5-30 minutes We have one - it's fairly 'standard' If I need to continuously scroll back to regain context - more than a couple of pages. We use a web based tool - Code Collaborator 10% 30% 60% The possibility of creating something useful. Maintaining poorly written code without supporting test cases. Repetitive manual tasks. I little. I attended the TDD presentation and couple of months ago. I've been asked to but also I think it could make our test coverage more efficient and ultimately improve code quality. Show
1 11 C Perl Only company proprietary Basically I am a communication engineer with a passion for software programming. Interested to learn new things when ever there is an opportunity for it. Unit testing and target testing TM500 is a multi UE test system which is used by mobile network vendors Visual studio 5-30 minutes We use ANSI C coding with company specific guidelines Based on readability, functionality and ease of re-usability Peer review 20 50 30 I enjoy solving problems Effort going waste It is a test system with short development cycle. Just got the place to attend this as a last minute replacement. I feel that there should be some improvement in the way we test our code, so possibly TDD will give some insights to that. Show
8.5 12 C N/A none recently I enjoy baking cakes. Mostly using our simulation environment or the target. in early stages of development, when validating new code, I use hard-coded values, or modified versions of existing tests to spoof new features. TI DSP MSVS 1-5 minutes there is an internal coding standard that we try to adhere to for any newly written code Taking too many arguments, not easily unit testable: has many dependencies I review team members code. My code does not often get reviewed 50 35 15 Solving problems, debugging complex issues Sometimes having to maintain other people's legacy code Quite a lot about Time Division Duplexing, nothing much about Test Driven Development! I was enrolled by the company, but looking forward to the opportunity to improving my code writing skills! Show
12 15 C++ C, C# none I haven't used any unit testing in my development, Looking forward to find how helpful unit testing in the real development environment. Manual visual testing, System testing. Windows PC/Linux application. Visual studio 1-5 minutes Company has coding standard, for modification mainly follow existing coding practice. If more than 20 lines. We do code review using code collaborator. 20 40 40 New functionality, need to come with different Ideas. Learning new stuff that you dont know. Mainly maintenance, debugging the issues which are not easily reproducible. heard this is something similar to Agile, but more focusing on developers. To check whether this is going to speed up my development or help writing less buggy code. Show
11 years 15 years c programming matlab, python matlab . For unit testing, I usually export c functions into matlab, and write matlab test scripts to do the testing. We have a regression and validation team, with hundreds of system level tests that are run on a daily basis. . . 1-5 minutes . . . 20 20 20 . . . . Show
<1 10 Currently clojure Clojure, java, c++, python, ruby, c# JUnit, rspec, cpputest, speclj I enjoy premature optimization unit, integration, QA Clojure web app _ Under 10 seconds Some overarching standards (descriptive names, etc.) and some determined by team (indenting, etc) When I get confused Occurs during pull requests 30 30 40 The end product (when it works) . write a failing test write only enough code to make the failure pass sometimes referred to as test-driven design C! Show
1 7 Clojure Ruby, Python, Java, Rust rspec, clojure test, speclj, junit, rust built-in unit tests, googletest (C++) I like learning new languages and domains. I'm very interested in embedded development because of the more immediate and intimate interaction with the physical world. With an automated test suite through leiningen (clojure project). Beaglebone Black/Raspberry Pi emacs and command line build tools 31-60 seconds Informal. Basically, follow the present conventions of the project. When it is trying to do too many different things. Informal, ad-hoc. Post a pull-request in github and (possibly) ask someone else to review the code. No merging your own PR's. 40 45 15 Solving puzzles, finding eloquent ways of expressing ideas about process. Too much sitting still. some. I know I've gotten to the point where I feel uncomfortable working on code that has no tests. to learn more about doing systems level/embedded programming with good design and using testing/tdd in that domain. Show
2 2.5 Ruby Clojure I've never heard this term. rspec, clojure.test, speclj...? I love jazz music TDD often, but not always N/A vim, tmux 11-30 seconds Big believer in unit tests; small, focused classes; SOLID; etc. When test setup becomes unwieldy Often done individually in pull requests on GitHub, but occasionally we get together for group discussion around some code 30 50 20 Solving problems for people; curious challenges; mix of analytic and creative thinking Not knowing where to start when attempting to dive into a new, large subject We focus quite a bit on it at 8th Light ;) I'm most interested in the word "embedded." I'm curious about software beyond web applications (the only context in which I've developed software). Show
2 3 Ruby Javascript, Java, C++ Rspec, Jasmine, JUnit, Catch I am using C++ on my own time for Arduino toy projects. I have practiced TDD with C++ (Catch framework) outside Arduino projects but never when writing code for micro controllers. On client projects I practice TDD to write any production code. On Arduino projects I just write some code, deploy it to the micro controller and check if it worked. Micro Controllers Currently just the Arduino IDE. Under 10 seconds I usually aim towards well abstracted, clean and dry code. I usually judge a function by how many things it does and not necessarily how many lines of code it has. Currently I am the only one exposed to this code. (No code reviews) 30 20 50 I like writing clear instructions for a machine to execute. The part that I like about micro controllers is that I could see my code affect the physical world around me. I am yet to find that part... TDD is a tool for guiding good software design. Code that is hard to test, is also hard to understand and change. TDD is also a way of documenting what your code does. As a side effect you get automated tests that check the integrity of your system. I am really interested in learning about embedded systems. While it's very rewarding being in this journey on my own, I think I could advance quicker working with some of my coworkers under the guidance of an experienced person. Show
2 3 Ruby Java, Scala, Javascript, Clojure RSpec, JUnit, TestNG, Mocha, Jasmine, Speclj Last job was as a field organizer on a campaign, got interested in what could be done with software while doing that work Test-first, including black box integration tests Some sort of Linux Vim, Jetbrains IDEs Under 10 seconds Tested, modular, expressive When it's doing more than one thing, or takes too long to grok given its inherent complexity Look for bugs, unhandled cases, inadequate testing, style concerns 30 60 10 Variety of work, usually a good pace of problem-solving, satisfying to come up with good design Usually have to move faster than I would if I didn't have to keep a client happy How to do it, why it's a good idea Haven't had to work in such a low-level language Show
3 5 Python C, Go, Javascript Google Test I'm a musician and so are a lot of the people coming from Dolby. I unit test in Python using the unittest module. I've experimented with pytest. For C, I use Google Test and call my C code from C++. x86 Windows is the most important, but we also support Mac and Linux. TI DSPs are an important target as well. Visual Studio, Xcode, Code Composer 30-60 minutes We having coding guidelines that are used company wide. They are not strictly enforced. If you run out of stack space. Just kidding. Always try to find a balance between brevity and intelligibility. A hard limit isn't necessary and if you make 80 one-line functions it may be more difficult than reading one 80 line function. Code reviews are done using Swarm. 3-4 people are involved. 30 50 20 Breaking down complicated problems into more manageable systems. The instant gratification of firing up something you created something and can seeing it working autonomously. It's easier than physical labor. Hard to comprehend bugs that make you feel like you're going insane. The boring work in between writing code. Only the process of red, green, refactor. We don't test enough at our company and we have a lot of legacy code. We hope to find a way to deal with how we can introduce tests to that legacy code and hopefully move to TDD in the future Show
9 16 professionally holy crap JavaScript this week C/C++, Clojure, Ruby CPPUnitLite, OCDSpec, GoogleTest, RSpec, Mocha, Jasmine, QUnit, Speclj We shop at the same Home Depot TDD OSX Yosemite Mostly VIM, XCode for iOS, Trying out CLion for C++ 1-5 minutes Too many to list When I can't figure it the hell out Pull requests that require multiple reviewers. Don't remind me, it hurts. 25% 25% 50% Making stuff Yak shaving A poop-ton. Back in my regular C/C++ days I was pretty terrible at TDD. I'm looking to learn a bunch of the techniques in your book. Show
5 12 c, c++, matlab, simulink assembly customized I have been working as a software engineer in the US since 2004. I worked for 4 different companies and I have been mainly worked on application software, such as diesel engine control, transmission control, and crane control software. I also use c++ with Qt to write display software during the past 5 years. In all my jobs, I use water fall (V-model) development process for the software development. The unit testing is normally performed on the test bench or the real machine, for example, a crane, a tractor, or a truck. And I have never used TDD. I use a simulator or the HIL (hardware in loop) in our software lab most time. And I have to use cranes to capture the faults that cannot be duplicated in the lab. The modules communicate to each other via CAN bus (CANOpen). I trace the data on the CAN bus to look for anything abnormal. I use Lauterbach debugger for debugging. The unit testing is done by our team in India. mobile cranes GCC compiler, Tasking C/C++ compiler, Qt, Lauterbach with Trace32, dSpace (HIL) 5-30 minutes Our company's c/c++ coding standards a function that does more than one thing; it has deep loops or deep nested if-else; or it duplicates the same logic as others. We use Phabricator to do online review 30 20 50 Write code and watch it works as expected on a target system. Frequently changed the requirements and debugging. Very limited. To seek for a better software development approach to improve our software quality and meet deadlines. Show
9 20 C++ c, asm, imperative, functional custom, cppunit, catch, other blend of EE (MS/DSP) by schooling and CS by work experience and interest... algorithms, firmware, embedded, H/W, S/W, system-arch, OOAD, UML project/product specific: most recently used catch cpp framework to test C code (x86 target); wrote custom harnesses for embedded products depends on the project: DSP + FPGA, x86, ... gcc variants, MSVC, custom 1-5 minutes C++ Coding Standards: 101 Rules, Guidelines, and Best Practices 1st Edition by Herb Sutter (Author), Andrei Alexandrescu when it breaks the Single Responsibility Principle Code Collaborator, Perforce Swarm 80 10 10 search for the truth to find canonical patterns having to maintain/fix spaghetti-code in the name of business interest - model the client-side before implementing it... - get up to speed on current best practices - recognize and unlearn thinking and bias, if need be Show
2.5 40 C++ C Do not remember names Former national champion fencer in my age group. Visual Studio and/or GDB. 32-bit Linux, usually an ancient version of Ubuntu; sometimes Windows Visual Studio w/helpful plugins; emacs/GCC/GDB 1-5 minutes Rigorous C standard for licensing kits. Just helped write version 1 of our C++ standard. When I want to chop it up into subroutines. I do wish I could get more of my colleagues to review my code! 15 7 8 I'm very good at it. It is very like creating something out of nothing -- making organized behavior out of chaos. I like creating useful tools for people to use to improve their lives. There is rarely time to write good code for a product. There is too much pressure to get something out the door *now*, irrespective of whether it can be maintained or extended in the future. Write a test -- it will fail. Write code for the feature that is being testing, get the test working. Repeat as needed. Unit test have have been useful for me in the past; unit testing is very often neglected because "there's no time." I want to learn better techniques for incorporating unit tests and developing the discipline to add them habitually. Show
21 30 C++ C, Java CppUnit, GTest, JUnit I enjoy walking, reading, bird-watching, cruising and playing tennis. Beginning to do more automated unit testing w/GTest, after baseline CppUnit tests languishing for several years. Also, do manual unit test, incremental integration, and automated functional testing as well as SAT. Telecom Tester - back-end/embedded C++; front-end GUI (Qt), sometimes two different processors Git, Crucible, Jira 1-5 minutes Available (and older), not official; with some socializing of it. Code reviews help to remind. No hard fast rule, but based on size (visually) as well as size of a test bench that would be needed to test it Crucible, usually involving 2-5 reviewers, with audience mix - those familiar/unfamiliar with code 60 30 10 It's relaxing and I enjoy the element of creativity along with logical thinking. Not much, actually except when I have to work on some one else's code or work in an area that is uninteresting to me, e.g. GUI code or data protocol analysis (L3/L4). I'm a low-level embedded software engineer. I understand it conceptually and have employed it in my thinking for many years - in terms of designing.TDD, as a tangible, would be interesting to see in action to help connect the dots. I'm skeptical because I've seen too many of them come and go over my 30+ years of programming. I really want to see TDD in action to BEGIN the process of finding out if there is a "there, there." Or whether my skepticism is warranted. Show
3.5 10 C++ Objective C Google test, XCTest I have done some unit testing but I am still not comfortable with it. I would like to learn it so that I can improve my code quality. Manual testing during development, Integration testing, occasional unit testing. MTS network testing unit, iOS App Eclipse, OpenGrok, Git 1-5 minutes Using best coding practices, smaller code changes in feature branches, mandatory code reviews When the function name doesn't accurately represent what it does. I have code reviews for any code that I write. 50 20 30 Challenging, Working in teams Dealing with legacy code Write tests first, then write code to make them pass. I want to learn mainly how to test with so much legacy code around and exactly what behavior should I be testing of a class. Is it necessary to think of every single corner-case and write unit test for it? or only write them for the public interface. Show
17 35 C++ tcl Qt cccccc Unit test MTS linux gnu 5-30 minutes None It looks too long Fisheye Crucible 40 30 30 xxxxxx Lack of thought put into designs Test Driven Development - write test first Required by supervisor Show
2 35 C++ Python, Tcl Google Mock Enjoy hiking. Compile, run, fix problems, repeat. Embedded Linux Jira, Crucible, Custom-developed tools 5-30 minutes Not really used When it's hard to understand Tedious 20 40 40 Solving problems, being creative. Fixing problems in other people's code. Write a failing test before writing code, then write enough code to fix the failure. Repeat. Would like to get a feel for whether TDD is really worth the effort. Show
7 13 c++ python, c, bash google test, mock Enjoy rock climbing combination or unit testing and manual testing Generally embedded platform(arm) sometimes pc or mobile vim, git, opengrok, jenkins, jira, crucible (used to use eclipse) 5-30 minutes ehhh... what coding standard(have a dated document no one really follows) when it does multiple things or can't be seen on one screen code reviews are generally done through crucible and work pretty well 20% 30% 50% Like the elegance and systematic nature to developing software. Working on software and getting those ah ha moments are awesome. Of course seeing your final result and everything work is great too :) hmm mostly the delays and lags preventing me from being efficient(ide, development environment, build times, testing, boot times). I also hate compromising on code quality for meeting a deadline. I know the general principals of TDD and have tried to implement it several times with some mixed success. I have learned cycling back between the code and tests frequently seemed to help quite a bit. I honestly am interested in TDD. I would like to be able to intuitively say what should be tested and how. Show
5.5 5 C Python None I like turtles! debugger / break points, trial and error, print statements Intel x86/x64, ARM A7 w/Linux, TI C64x, C66x Visual Studio 2010, Sublime Text, Code Composer, Perforce 5-30 minutes follow C99 standard, some internal style conventions i don't know peer review sings off on changes 60 20 20 critical thinking, creativity, problem solving, creating useful tools that benefit other's work the minutia of cross platform issues, steep learning curves hardly anything my company give me the opportunity to attend. hoping to develop and improve my software skills. Show
20 19 c++ python none I have (2) children, am married, and have a dog. Regression tests Handheld embedded tester for Telecom applications. Kdevelop IDE 1-5 minutes Not really using one. A function can be too long ??? Reviews done using Crucible with Fisheye. 50 20 30 It gives me a chance to be creative and use my engineering skills. The hours of manual test and regression testing existing code for product release. I actually don't know a whole lot about TDD. To learn about TDD and how to put it to work with our current code base and lessen the time given to manual testing. Show
10 15 tcl c, c++, python tclunit I recently slogged through an intense 9 week exercise program (Insanity). unit tests, automated UI tests running on hardware, and manual testing of software running on our hardware. several flavors of portable network test instruments. vim 11-30 seconds none when it tries to do many things and becomes difficult to unit test use fisheye to review changes with my development team. 45 35 20 Seeing things work. Things often do not work. You first develop tests that define some desired behavior for the production code that will fail. Then you develop the production code to make the test pass. Then repeat the process for the next desired behavior. I'd like to better understand TDD and unit testing and to be able to speak about it with my coworkers from a common point. Show
12 14 (but a lot less coding lately) C++ Python, javascript none wanna eat healthy, but still love pizza :-) Mostly through debug statements put into the code. home grown linux system with custom processor board. gcc compiler, custom build and install scripts, sublime text editor, 11-30 seconds not very well defined. Mostly resolved through code reviews > 20 lines or so Setup code reviews for all code changes. Can close when at least a couple people have reviewed and comments are addressed. 20 30 50 I like bringing the manifestation of ideas into reality. I like the creativity involved. Working with existing code and trying to get things to "fit" cleanly. Trying to understand poor abstractions in existing code. Its a development process where you write a failing test, write just enough code to make it pass, and then refactor that production code to reduce duplication. I want to learn how to get faster feedback on my changes. Show
1 6 c++ python, perl, Javascript Jasmine, some google test 2014 Penn State grad. edit, build, check feature manually on hardware. Want to do TDD, but haven't bit the bullet to pay the up front cost of learning how to do it in our system. . I primarily work in the terminal. vim, tmux. 1-5 minutes A consistent level of abstraction within a function and good naming are very important to me. When it takes longer than a minute to understand what it does. Also if it is difficult to come up with a name for it. Effective when used. Some of the veteran developers don't participate. 50 20 30 Solving problems. Seeing a feature through to completion. Getting bogged down trying to fix bugs. Steps of TDD: Find need for a new function. Write tests for said function. Tests fail because function doesn't exist yet. Write function; tests pass. I've read a lot about how it works and how great it is, but I haven't done any unfortunately. I want to learn how to use TDD well enough so that I can help get more people using it. Our testing practices are dated, and the only way to get up to date is to educate people on good testing practices. Show
1 12+ C C++, Python, Matlab, LabView, C#, Ruby, Java, Assembly CppUTest, Unity, NUnit, JUnit Connecting ideas from disparate sources is awesome. Large system tests done by a technician A variety of safety products, legacy is mainly pic processors, future is hopefully ARM Whatever is available 31-60 seconds Currently Minimal When you can't easily grasp what it's supposed to do or it no longer says what it does on the tin. I have not had a code review at this company. 5% 25% 25% Elegant solutions to problems, learning better ways of thinking about and doing things. Layers of useless process, information duplication, shoehorning. It works. It cuts development time, it improves code readability and functionality, and if done right, the tests can be treated as documentation of intent that grows with the code. It can move engineering a long way towards 'single source of truth'. I want to understand TDD for embedded systems well enough that I can train and convince other engineers on my team the value of developing this way. Show
2 10 C C++ CppUTest I'm trying to bring TDD to the rest of my company's firmware groups. My company does manual testing, I just started TDD in the last six months. Microchip dsPics, ST Arm MPLAB X, Keil uVision 11-30 seconds Misra based, PC Lint enforced. Over a 1000 lines Weekly. Historically concerned with bugs, but now we cover new code for feedback. Try not to have more than 5 engineers in a review, engineers split up by customers with a few rotating. 20 30 50 Work outside of the office, no longer dealing with BOMs. Misunderstanding of what we do from the rest of the company, though that's getting better. And of course, the odd bug that only happens once in 10,000 occurrences. I've read the TDD for Embedded C and I've been practicing it for the last six months. Have more confidence in my code. Show
19 19 Tcl C++, XML (here at work) Tcl test Other than our "home grown" methods of using of Tcl unit testing, I have not actually done any unit testing Mostly verifying that the "happy path" works and poking around a bit to cover all the code "branches" and making sure that the boundaries are satisfied Tcl or QT running on a linux test instrument git, eclipse, jam, opengrok, fedora 17, jira 1-5 minutes "Emulate the way it is currently being done" to "none" To tell the truth, I do not know what hard and fast rule to apply for that fisheye crucible 75 5 20 I like to make things work. I like the feeling of being able to design and create a working system. Testing, but I want to learn to love it, just like I want to learn to eat my vegetables, since it seems like it is a "healthful" way to work in the long run and I might even get to like it eventually. I know why it is deemed important and the principle behind it. I have not done any compiled C++ unit tests with our embedded code. What testing IS in place with our Tcl code I am not at all sure about and would like to know what an "expert" thinks. It seems like a good avenue to develop a hardened and sustainable coding style. It also seems to be the wave of the future. Show
11 18 Verilog TCL, Python, Perl none FPGA Engineer who hasn't done much SW coding since school In system debug and simulation Custom hardware Vendor provided tools 5-30 minutes Mostly follow existing code I don't. Performed based on who is doing the coding 50 10 30 N/A N/A It's supposed to be iterative and fast To see if there are any concepts/techniques that can be applied to FPGA development. Show
1 6 Perl Python None I enjoy video games. At run time I monitor the results to be in line with how they are written. Difficult to find what is built where. Sublime Text, Website designed to print results. 1-5 minutes indentation of each function, global declaration of constants. Nothing else comes to mind. I do not. Spread across team members. Critiquing naming of anything to make it clear and concise to avoid comments. Elimination of function duplication. 30% 60% 10% I really enjoy the feeling when everything works weather it come easy or be difficult, you still accomplish the task at hand. There is no 1 proper way to do anything, everything has pros and cons to it and can make things really difficult on figuring out what is the best action. Its a way to keep your code functionally sound. You create a bunch of test cases(harnesses?) that test a single core piece of code to make sure that it behaves as expected. This way you can catch any breakage in your code. I am curious how this could apply to the system I work on which is very messy and would take a very long time to refactor. I want to know what I can be doing now to help move the system in the right direction with tdd practices on new development. Show
4 6 C C++, Perl n/a I am an Electrical Engineer by education. Benchtop Functional Testing. Prototype headlight systems IAR, KDS, CCS, CCES, MPLABX, LPCXpresso 31-60 seconds Self-made with help from Michael Barr's C coding standard book. When it no longer fits on a single 8-1/2 x 11 sheet of paper or when it is making too many decisions so that it cannot be followed easily. Almost non-existent - there's a lack of knowledgeable firmware developers. 70 10 20 I love the freedom I have to be creative and the opportunity to create structure while solving problems. Coding is logic and order. There are few things more satisfying than creating a properly documented robust framework and watching it work. Timelines are too short to properly document the process. It's a way to write a minimum of code that is designed to pass specific tests. These tests ensure that the code is working as expected and provide a more maintainable and repeatable standard against which future changes may be measured. I'm a bit of a one-man-show at my company and our customers are becoming increasingly interested in how we test our firmware. It would be helpful to have some sort of process to show them I adhere to. Show
1 5 c/c++ python, java Qt test framework, google test I am curious to see how TDD can be used without having to spend too much time writing tests. Mainly functional testing, by running the code on the target hardware and manually check the behavior. Embedded hardware gcc/gdb, QtCreator 1-5 minutes Linux kernel coding style. Too many lines of code. When it has more than one role. Reviews are "created" manually after submitting code. The developer is responsible for creating or not a review and for selecting the reviewers and observers. 40 30 30 I like the ability of "seeing the results" of my code, when it impacts the user experience and adds new features. Code tends to become untidy or obsolete too fast. I started doing TDD for less than a year in my previous company. We spent a lot of time learning how to write tests, but we progressively stopped writing tests because of time constraints. This is part of an effort of introducing TDD in our work environment. I hope to learn new ideas and techniques that I can introduce easily to my team. Show
17 24 C++ C, Java Google Mock (barely) In my current role, I am a scrum master but still participate in some software development and code reviews. I'd like to be able to write and review unit tests. Mostly integration level testing. Embedded software running on telecommunication test equipment. Major components are test application, user interface, and FPGA. Eclipse for editing. GNU compilers. Atlassian tools to induce anguish and frustration. 1-5 minutes My what now? A function is too what now? We use Atlassian Fisheye + Crucible, one of their better tools, to distribute reviews to various engineers. Some take the time to review the code carefully. Most just scroll through it and approve it. 40 20 40 Well, when I get to do it which is rare, I enjoy the problem solving process as well as the creativity. Trying to figure out what somebody else did, especially when their code is arcane, poorly written, or not done the way I would do it. It stands for "Test Driven Development". So that I can learn how to write unit-testable code and write unit tests. That is the real answer. It's not "because my boss said so". I was the one who originally contacted Wingman of my own volition. Show
7 13 Java C++ J-Unit, Easymock I'm a human. Maybe. Unit tests, automated integration tests, manual testing x86 kvm targets Eclipse, maven, surefire 1-5 minutes We never really standardized on anything outside of the Eclipse Java default style... Functions should have a single responsibility. If it's doing too much, it's too long. We use them rarely. 50 20 30 Solving problems. I'm a digital craftsman. Deadlines. Just the basics. Mostly, writing failing unit tests first and then working to make them pass. I'm slightly biased against the philosophy of TDD. Not sure if my brain is capable of thinking in this manner and still writing decent code. Maybe you can change my mind. Show
16 30+ c/c++ python, perl, bash gtest I have two sons. Project A: Running it on the target. Project B: Gtest + python test driver + manual testing. A: Embedded arm multi-core, homegrown linux distro. B. Xeon server blade vi(m), gnu toolchains, gdb. Jira, Jenkins 5-30 minutes No enforced standards. Codebase ranges from common sense to total obfuscation. it's doing more than one 'thing'. Won't fit on a vt100 :) No enforced standards. FishEye and Crucible available. 70 20 10 ideas -> typing -> $$ (Magic) scheduling, waterfalls. 1: write a test write code to pass the test. run/debug the tests 'till they pass if not 'done' goto 1 Apply TDD to legacy and/or 3rd party code. Show
4 1/2 10 1/2 c++ c tcl java GoogleTest JUnit I'm older than I look. A combination of writing tests in GoogleTest and manual testing. We cross compile for an ARM system. We compile an entire linux system for it. Eclipse, gcc, gdb, GoogleTest 5-30 minutes We don't really have one. The gui and embedded code tend to look different. When it stops fitting on my screen. We use Fisheye + Crucible. 40% 40% 20% Seeing the end product come together. Having to do all the legacy manual testing we have. I've been doing it for a while now. Write the test, then write enough production code to get it to pass, then refactor if needed, repeat. Enough other people weren't able to make it so I get to go. Show
19 27 C++ C, Python google test Specialty is Embedded programming. Have been working on Virtual Network function development over the last year. Some Unit testing, Integration testing via C test program, Manual testing, Automated tests using homegrown tool called Lorna which uses REST API for issuing commands. Linux based VMs, Linux based embedded printf 1-5 minutes Not defined tries to do multiple things Sometimes 50 30 20 Feeling of accomplishment when things work When stuck debugging complex problem Very little I want to get better at TDD. Show
4 25 C Java, Python, C++ CUnit, JUnit. GoogleTest (a very little) I'm annoying Component tests, product stack tests Digital TV STBs, linux OS Eclipse, gcc, 1-5 minutes I think we have one Most of ours are too long Depends on reviewer. Some useful, some focused on spelling & whitespace 5 25 70 I can't remember Support A little We have a fairly complex C++ component which has no unit or component tests. We'd like to add some. Show
3 9 C and C++ Java Junit, cUnit Passionate for programming. cUnit linux linux, eclipse, unit-testing, OOP, Design Partterns 1-5 minutes ANSI-C (C89/C90) my standard is pretty tight (100~200 is already too big). In our code we have some of a few thousands... Gerrit (git) done by at least 2 other memebers of the team (and 2 approvals needed before releasing) 40 40 20 the challenges. If is just typing it gets too boring :( - limitations of the languages. - some clever guys that write code that only they understand (or think so). - bad code - bad tests (that take forever to run, fail intermittently and were done to make the code to pass. conceptually quite a lot. In practice, know very little frameworks. Also the company was never so keen in doing it, so never trained a that much. hoping to be able to really start doing it! but we will have to change a lot of mentalities first. Hopefully some big fish will be there too, and that will make a difference :) (you asked for the truth, didn't you?) Show
14 28 C Python CUnit I've moved into a Scrum Master role and so I'm becoming more interested in seeing how my team can work more effectively and deliver more quickly with quality code. Our code is componentised and each component consists of a number of modules, so we test at module level (white box), component level (black box, exercising at API level) and at integration level (the complete collection of components that constitute our middleware). Set Top Box GNU toolchain, DDD, Source Insight, Klocwork, GIT, GCOV,CUNIT 1-5 minutes MISRA based If it's not doing one logical thing, if you can't see the whole function so that you forget what the first part of it was when you reach the end! All code is peer reviewed via Gerrit before delivery 50 30 20 Solving problems. Being creative. Continually learning new things. Can't think of anything except for providing time estimates ;-) Write the test for a new bit of functionality first so that it fails, then implement the minimum amount of code to get it to pass. Once you have a passing test you can then safely refactor your code. I'm interested in finding out what are the benefits of completely embracing the TDD philosophy. My company is also very keen on increasing development velocity so I'm interested to see how TDD affects this. Show
11 31 Ada95 has always been my favourite - I don't write code these days C Perl Bash CUnit VectorCast I am a keen dart player and once shot out on 170 (the maximum). As an org we have: - DMS test harness (integration tests at our DMS API) - Component Tests (integration and some unit tests) We have no efficient unit test environment on the host. Set top boxes (less embedded these days and more Linux based with some special hardware) CoVerity being rolled out for static analysis. Pretty standard set of dev tools but no hardware debuggers. 1-2 hours MISRA Personally, I would be interested in Cyclomatic complexity but I don't write teh code. PEER review (using Gerrit as we move from ClearCase to GIT) 0 0 0 I love the creative part of the job, and I also like the processes around the development. I am a big fan of dev ops and continuous deployment and I am keen to drive those kind of approaches into STB software development. The reluctance to sometimes change bad processes. It is the light at the end of the tunnel. I want to be able to guide and support the developers that love TDD toward a consistent approach that we can then evangelise as a group to our peers. The culture at SPVSS is changing and we have a great opportunity to tap into that. Show
9 11 C python, java, c++ cunit, gtest I value experiences far more than possessions, so I hate buying things like clothes or other clutter, but I like spending money on travelling or other experiences like sky diving, etc. component tests, subsystem tests digital tv set-top boxes code editor (eclipse), some tools for viewing/analysing logs 5-30 minutes different components have different standards when it doesn't fit on 1 screen they are mandatory, done using Review Board or Gerrit 20% 40% 40% ability to create new things out of nothing anything that isn't pure design, coding or analysis of existing code, for example: setting up the environment to work with for the first time, reporting progress to project managers, etc. I've read about it, I've been on 1 course on tdd, I've tried it in practice once on a small private project I'm interested in tdd and curious to know if it can really work in practice on big projects where source code is really huge and complicated Show
4.5 20 C Currently, none - apart from bits of scripting CUnit Competitive chess player CUnit, try to write test code before writing the source code being tested. Embedded linux on TV set-top boxes Eclipse, Git, Gerrit, GNU tools for compilation, debugging etc. 31-60 seconds MISRA, various in-house documents - but differences across the code base Anything with more than 3 levels of indentation, or if I have to scroll "a lot" to view in code editor Gerrit 5% 10% 50% Problem solving and writing code in an elegant way so that others can understand it - so it "reads" well. Not enough time spent actually coding! Not much, though I try to write tests before the actual source. Would like to improve our test code harnesses, so that it doesn't take so long to update tests and write new ones. Show
8 My whole life C None at the moment CUnit I am from Spain. I have been programming since I was little and I have used multiple programming languages, from assembler to Python but at the moment I practically only use C. I work in Fusion middleware for TV set top boxes. We have component tests for individual Fusion components, DMS tests for the whole middleware and full stack. Set Top Box Eclipse 31-60 seconds We have to comply to MISRA and follow some internal rules By visual inspection All the code we write is reviewed, at the moment we use Gerrit 20% 30% 50% Designing solutions Modifying code I don't understand Test should be written upfront and the code should be the minimum that makes the test pass. I'd like to understand and know more about TDD. I am a bit skeptical about some TDD aspects, in particular writing the minimum code to make the test pass. Show
10 10 C C++, js, python cunit, junit, cucumber I can smile Unit tests, component tests and then feature level tests. Linux gcc, make, cunit 5-30 minutes MISRA When it is doing more things, name of function does not really match with what a function is doing, it just looks too long Gerrit 30 30 40 Solving problems. Taking ages to make decision Your development is driving by testing. This implies whatever code is being developed is tested, i.e. there is no un-tested and un-testable code in our code base. Also it implies you refactor your code as soon as you realize the need for it. To see how TDD can be applied to existing code. Show
2 25 C Perl In-house . Produce new/use existing regression tests . Visual C studio 30-60 minutes . We have some very long functions Desk reviews 25 50 25 finding elegant & practical solution to difficult problems Grappling with complex test setups which often don't work reliably Very little Because I was on the invite list Show
2,5 8 C C++ long ago None Mmm, like what? Windows emulation. Integration testing. C66 TI DSP family and X86 Visual C++ 5-30 minutes Short an concise. When I read it six times and I am still getting lost in the middle of it. Eventually they are long and hard to go through. 30 30 40 Design and implementation from scratch. Time constrained tasks. Code optimisation. Repetitive tasks. Agile methodology put in practice in software development, relying in short cycles where specifications are set in an initial test. Company motivated, but I am too as well! Show
11 35 C C++, Python, Assembly None Nothing DEBUG Statements TI and Intel Visual Studio 1-5 minutes Nothing More than two pages Code Collaborator 30% 40% 30% Nothing Nothing Nothing I have been invited Show
30 30 C++ C. Historically, I have also used OCCAM and PASCAL. CANTATA for C circa 1990. gtest - but only briefly - no real in dept experience. Degree in Electronics and Electrical Engineering. First 6 months of my career were spend designing a mixed 68000/Transputer processor board for an embedded system. Mostly involved in embedded software development - on disparate platforms - Transputers, 68000 with no operating system, VxWorks on x86. More recently, I have been involved in X86 development on Windows. Mostly system based testing on target hardware. Correct operation is verified using a logging system built into the system. Due to the distributed nature of the system and the real time constraints of the system, debuggers are not available. Some parts of the system have a 'emulated environment build' available which runs on the local PC and allows the use of a debugger. However, I am involved in a part of the system for which this is not available. Additionally the above testing is performed on remote systems that are shared between developers so systems may not be available when you really want them to be. Some parts of the system have built in unit tests that can be run as part of a build. However, coverage of such tests is very far from complete. Where this is not adequate, or it takes too long or a debugger is required to determine the nature of a fault, add-hoc test harnesses are used to perform functional testing. Distributed system consisting of a mix of X86 processor cards (PowerPC on older targets) and Texas C64/C66 dsp cards. Processors are interconnected using SRIO. Compilers, SCONS 5-30 minutes On current project, addresses C - does not (yet) address C++ or any other languages Instinct and experience. Number and nesting of control constructs is a strong hint. Code Collaborator. All code must be reviewed before committing/merging to top of tree. 20 50 30 Wide variety of technical challenges that can be presented. Wide variety of possible approaches and solutions make design interesting. Satisfaction from elegant design. Satisfaction from tracking down obscure faults. Coding can be mundane at times. Not much in practise. I know the aims of TDD but I have not used it to any great extent. On a previous project I helped construct a build system that supported TDD but I left that project before I gained any great experience of TDD itself. Company perceives a need to improve quality on the product I am currently working on so they are putting key people on this course. Show
40 40 python c perl c# javascript forth bash awk vhdl none Principally a hardware engineer who codes to drive and test hardware. I regard code testing and debugging as one step. gcc -Werror -Wall debug statements to provide observable feedback that the code is doing the correct thing. embedded linux sbc gcc gdb emacs Under 10 seconds up to know code is informal so 'my standard' Hard to visualise operation. Can't get one. 30 35 35 Solving problems. Continuous voyage of discovery for new techniques. Having to type so much to get something done (particularly a problem for c, hence the use of perl and more recently python). Only what I've read since being offered the course. Get better at writing bullet proof code that is demonstrably so. Show
7 7 C MATLAB None I am primarily a DSP programmer which occasionally involves hardware interfacing but have also been doing system level and layer specific testing. I have knowledge of object oriented programming. I have used MATLAB extensively at the beginning of my career but offlate only occasionally to analyse the digital communication data. In Host Development Environment which is a all-software version of the TM500 and 7100 products. Later verification on the hardware in RAV environment using debug logs. TM500 load test mobile Visual Studio, HDE 5-30 minutes Cobham specific When it is doing lot of tasks and exceeds couple of hundreds of lines. Code Collaborator 50% 25% 25% The challenges it brings coupled with the possibility of implementing the same logic in many ways some optimized in size and some in efficiency. When I have to go through and fix bugs in legacy code which is not well commented and documented. Development strategy which focuses on integrate and test as you develop the software. I really want to check out if TDD can bring more efficiency and quality to my software development. Show
8 months 30 yrs C Python HDE I drink beer Test harnesses, simulation, target test... Performed during dev stages rather than right at end. TM500 Visual C 1-5 minutes sensible gut feeling they occur 35 50 5 can be fun may not be fun not a great deal I was asked to attend Show
4 12 C None Company Proprietary tools I have been working in telecom software development since last 12 years. I've used waterfall, V-model and Agile development methodologies. Using self written automated module test framework PPC, X86 cards running VxWorks Clearcase, Code Collaborator, Module Test framework, BeyondCompare, BoundsChecker, Slickedit 11-30 seconds We have company defined coding standard If it is more than 200-300 lines. Ideally it should be less than 100 lines We use code collaborator for code reviews 40 40 20 1. Seeing the code working without errors or significantly less number of errors 2. Fixing a complicated bug after spending good amount of debugging effort 3. Technical discussions and brainstorming sessions allows people to learn from each other Difficult question. I don't think I dislike anything about developing software It's about writing the test cases first and then write the code to pass those test cases. This is different from usual waterfall or V-model where testing is done after coding. This ensures that you give enough thought and time to testing. There is a quality improvement drive in our company and more focus on unit and component level testing therefore they are arranging for these training sessions. Show
1 20 C C++, Python C I worked in various companies, but mainly in Mobile communication Industry Unit test stubs, Host testing TM500 gnu 5-30 minutes ANSI depending on code execution branches peer reviews 30 40 40 It is satisfying Bugs due to cut and paste the code Started reading the Book To see whether Testing and debugging time can be reduced and hence to make my life comfortable Show
4 25 C/C++ Python, Java JUnit I work on a range of software, primarily post crash analysis PC client tools that are used by the application developers to aid in diagnosing software bugs on the target platform. I also write software for the embedded 'C' platforms related to the capture and output of diagnostic information that is analysed by the post crash analysis tools. On the most part "developer testing", exercising paths in a new piece of code until I have confidence it fulfils the formal/informal requirements. In some cases this requires exercising the same piece of code on multiple operating systems. Some regression testing is also performed using our automation system. PC based (WIN32/UBUNTU/FEDORA), TM500 target (VxWorks/Linux) Various IDEs Eclipse(Juno), Visual Studio (2005/2010/2013), CodeCollaborator, 31-60 seconds We have a coding standard which has historically been 'C' based until recently, but is gradually being revised to cover some aspects of C++ as well. Typically we rely on manual inspection. There are good code metric tools/plug-ins available but they are not used widely at present. We use SmartBear's Code Collaborator tool to review all code changes. 30 30 40 The creativity it enables and the endless possibilities it provides. Creating tools that allow others to work more efficiently. Adding features that others may not have considered, that add real value to the end product. Maintaining poorly documented code where the author assumes the reader will understand the intent. Maintaining 'scruffy' code that does not conform to even the most basic of formatting and indentation rules. Improve code quality code by: + helping ensure features are thoroughly tested before new code is committed + enabling code to be regression tested to avoid re-introducing historical bugs + enabling refactoring to be undertaken with more confidence I'd like to understand how I can apply TDD to my development process. I am particularly interested in the automated regression testing aspects. I'm also genuinely keen to learn new ways in which I can produce less buggy code from the outset. Show
2.5 32 C Perl, SDL Only in house environments I've never eaten a kebab Workstation test environment, workstation debugger Multi-processor embedded system Slickedit, Telelogic Tau, Microsoft Visual Studio 31-60 seconds Company wide coding standard It becomes too complex to understand. < 100 lines is ideal All code reviewed prior to returning to code base using online review tools 40 40 20 Creativity and problem solving Unstable sw and hw development platofmrs Nothing Find out better approach to testing Show
3 10 years software development/integration Embedded C Embedded C++/Java Google Unit Test Framework Highly motivated person who really enjoys writing software for one of the best product in the world. Developer testing is done using debugger in Microsoft Visual Studio. This is used in combination with product simulator TMA (Test Mobile Application) for windows. Custom Hardware with many product variations and associated operating system Visual Studio 1-5 minutes Fairly poor. We do have coding standard but nobody really conforms to it fully. Each component has its own coding standard which is really determined/controlled by the component lead When it is doing two completely unrealted things Very good and detailed. 30 30 40 Designing. Testing. The tests are written first and then the software and when the requirement changes, tests are modified first and then the software. Company is making us attend because quality has gone down and they realise the importance of continuous testing/integration. I don't mean to imply that I am forced quite the opposite I am delighted to have the opportunity. Show
0.5 25 C ttcn3 proprietary On the course to improve awareness and understanding, input to future opportunities, unlikely to practice in current role. Current and previous roles are architecture/management so very little coding in last 10 years proprietary h/w with mixture of processors (FPGA, DSP, x86) microsoft visual c 5-30 minutes company standard feel / complexity n/a in current role 2.5 5 5 task completion and seeing results. frustration of time spent compiling, loading, debugging to achieve goals. End to end time. limited use in a rapid prototype environment. to improve awareness and understanding, be part of team training and then applying it with the team on future developments. Show
14 25 C C++, Python, Perl Proprietry I run my own Linux server Using bespoke test code Embedded Linux, vxWorks Boundschecker, MS Visual C++ 11-30 seconds We have one but is not enforced by a tool When it doesn't fit on the screen We use Code Collaborator 60% 20% 20% The infinite possibilities to solving a problem Time pressures Create your test before writing the code. I have already started using CPPUnittest though and think it is a very valuable tool for testing. Being told to Show
2 30 C/C++ Python There are some Matlab scripts that interface into DLLs but they seldom work I have 2 kids and one is not sleeping at the moment. I am knackered. In a system simulator - takes ages to set it up and get it running. Sometimes problems are tested on target using logging to establish if it looks 'okay'. Embedded DSP + more recently, Intel server Visual Studio, Slickedit 5-30 minutes It exists. Not sure how useful it is. Gut feel - if it's too hard to find the end. More than a couple of <Pg Dn> We use Code Collaborator, though I have never used it. 10 40 40 Design Other peoples code Nothing I was asked to. However, the reviews from others make me hope/wish that this will solve a lot of issues that we have. Show
3 38 C Bits of awk, perl, java, javascript, bash, various assemblers, basic, ... cpputest I have a dog, a bicycle, and several Raspberry Pi. Automated regression tests, some bits with cpputest. Aeroflex TM500, PPC, x86, DSP Eclipse, VS, gcc, gdb 5-30 minutes We have one, not read it in a while More than a screen full Use code collaborator, works quite well 30 40 30 Solving problems. Dunno Have been trained in the past, have read your book, have not really put it in to practice in real development. Because I was told to :-) However, the company seems to have some enthusiasm for adopting the practice and I love how relaxed I am about modifying code that has comprehensive unit tests, so I want to take part. Show
19 30 C++ C, C# none Software developper/architect, primarily in h/w control environments Self writen test harnesses Windows, Embedded DSP Visual Studio 2008 at present 1-5 minutes In house number of lines/too complex Peer to peer 50 25 25 Challenge. Structure. logic. Problem solving challenge! nothing Put forward as part of team. Show
3 16 c c++ nothing NA developer level testing which is more of sub-system test. Use debugger extensively to ensure testing specific leg of code by manipulating variables on run time. Then we move for target test where few end to end Test case being tried. . . 5-30 minutes We need to follow coding guidline published for developers. Though I am not sure when it was updated last time. there is no set standard. Noone check cyclomatic complexity here so usually noone bothers. Its just if you find during review that lets break this function. Otherwise based on cyclomatic comlexity code can be refactored to make it more maintainable. It has to be done as part of process and code collabrator being used for this. Reviews usually target adherence to coding standard and also check functional need/requirements. 30 30 40 Its art. On black box level everyone can see the same behaviour but inside you get chance to try and attack problem as you find interesting. It satisfy your appetite for challenge. long requirement and design cycles. Somehow it stops you to try early prototypes. Or sometime end up forcing you to write which is bound to not to work! Nothing much. Well, its company initiative so I have to be part of it. Also somewhere I want to see alternate way of attacking the problems. Our approach has become monotonous and no scope of fresh ideas. So anything new perspective is most welcome. Show
15 30 years C No others for some years. In house developed systems - 1993-1999. A computer science graduate Self review - dry run. HDE testing - ad hock testing. Test spec for RAV team system tests - pass criteria. Follow up analysis of debug logs for code path execution and parameter values. Embedded multi-processor system. Visual studio, text editor (gVim), clearcase, command line tools 1-5 minutes There is one When you cannot remember it or visually scan it easily. Those I conduct - focus on correctness of behavior and robustness of code, coverage of error checking. 25% 15% 20% Writing code - really beautiful code. Tight implementation I "know" is right. Being interrupted and context switching to other peoples problems... I read the introduction to the book The company is universally asking engineers to - and I am quite pleased to engage intellectually with something fresh - and be paid while I am doing so. Show
10 15 C perl, Python None - Windows based development environment Windows, Target (TM500) GNU, Visual Studio, SCONS 5-30 minutes A few pages that gets read very rarely When one starts losing its context! Code Collaborator 40 30 40 Satisfaction Bad code layout. A bit but no enough Company organised course to see things differently, probably! Show
less than 1 10 C C++, C# NUnit, python I am an engineer with background in computer science and telecommunications. through tests DSP GNU and visual studio 5-30 minutes Mostly have been following company standard through time stamps or the lines of code code is reviewed by peers before commit 50 40 10 It is limitless In some cases testing is very time consuming and debugging even more. It is about testing the code at every step, and the steps are small. To learn about the TDD and start practicing it. Show
16 20 Python and Perl C++, C None I work in both the embedded and application domain, I am responsible for integrating RoHC into our product from a third parts (C code), I also work in Perl and Python to create rapid solutions and configure complex test equipment that we supply with our product. Custom test functions and an external application that exercises the code. Linux/Windows/vxWorks Slickedit 11-30 seconds Company standard that is documented, mainly about formatting and style. When it takes too long to understand/follow what it is doing. Use Code Collaborator 70 20 10 It is challenging to create solutions. changing requirements that mean work needs to be reworked. Nothing To get a better understanding and to work within the team under the same idea. Show
15 25 C C++, C#, Java, Python none Team leader and TA Test harness, IDEs, HDE Linux, VxWorks real-time embedded In-house (HDE), Boundschecker, App verfifier 1-5 minutes In house too many local variables, more than about 100 lines Code Colaborator peer review based 33 33 33 instant gratification of making something work. bugs From peers and people in my team. Learn a new approach to writing software and defect prevention. Show
2 5 C C++, C#, Java None I'm Batman. Input tests Embedded C platforms In Circuit Debuggers, IDEs, DebugPorts 11-30 seconds Functioning and readable, otherwise project dependent depends on the functions purpose. bi-monthly 50% 25% 25% discrete logic and math. Mistakes usually cost nothing but time. Badly written, untested, unreadable code. Write test for software as you write to software, if done right saves other testing time. I am a Duke contractor, who writes a lot of software for them. Their engineers are learning TDD, and they would like me to know it as well so I can continue to write software for them. Show
3 4 C - - The majority of my career has been spent as an electrical engineer (primarily analog...) Actual hardware in a bench top unit with input and load simulation running processors through IDE Debugger. Currently Microchip PIC24, PIC32 or DSPic33 based hardware. Ethernet, CAN bus, USB, UART communications. Some systems have touchscreen GUI. Microchip MPLAB IDE Under 10 seconds functional, readable. Some finite state machine style, some "super loop". No written defined standard yet. More than a screen shot...? I personally need improvement in this area. My functions have tended to be long initially with the intention of breaking them down... Has been casual in the past but currently driving for more formal reviews. 40 40 20 challenging, new, rewarding when everything works. Can be frustrating when things don't work. Uneasy feeling of unintentionally breaking or introducing bugs with code changes. I have a general understanding of the goals and methods. I have seen examples of TDD implemented at Duke. I have not yet had hands on experience. I believe I understand the benefits of TDD. Taking advantage of excellent opportunity offered by my employer to advance my coding skills and knowledge. Show
0.5 3 C qRuby CppUTest, MiniTest Former musician, also studied physics Manual testing at work (ouch), unit tests at home. Embedded device running uClinux, ATtiny parts at home vim. Have used Visual Studio, CodeRed (Eclipse), Sublime Text, want to use CLion 31-60 seconds Coding standard? When it does more than one thing. I ask people to take a look and they ask me if it works :( ? ? ? Writing beautiful code, the please of solving problems, the joy of seeing things work. When it is hard to understand what is happening. Vague question. TDD development cycle, how TDD affects design and workflow. I'd like to use TDD in my next job, and hopefully in this one too. Show
3 10 C# Java, VB.Net nUnit, jUnit I don't write code much anymore. Most of my development experience has been Windows development, Web Dev, SOA, database, etc. nUnit For the purpose of this training, Microchip PIC Visual Studio, MPLab 31-60 seconds na When you no longer have logical seperation of concerns. na 50 30 20 I like that I get immediate gratification. Code, build, run… You get to see your work in action. Not much. I have used nUnit quite a bit in higher level development. Not much about TDD in the embedded world. I did however read the book “Test-Driven development for Embedded C”. To ensure my team is engaged. To be actively present with respect to my teams development goals. Show
8 27 C C++, C# Good question I like pizza Mostly at an integration level or module by module with a custom test application Mostly embedded, ARM Cortex devices IAR, GCC, CrossStudio, Visual Studio, CCS 1-5 minutes See Michael Barr... Longer than a printed page or two Very ad-hoc and informal. 50 25 25 Sense of accomplishment and solving problems. I like to see devices or applications/systems come to life and make people's lives easier or more convenient/less tedious Everybody likes to shortcut and not do things the right way or cleanly. Pretty much nothing To learn a hopefully valuable skill I can start using immediately for better quality code/systems and to share with clients. Show
16 15 C++ C, Python, VHDL, Verilog, Tcl, MATLAB GoogleTest Love SciFi, like photography, looking to improve my programming skills by contributing to an open source project and getting feedback from more experienced developers. In the past I primarily wrote in VHDL for FPGAs where we selectively tested code using testbenches. This is all fairly analogous to unit tests. More recently I've been writing C for microcontrollers, C++ for the ARM-A9 processors in the Zynq SoC, and Python for test equipment. I'm struggling to use GoogleTest and abstract away the hardware specifics of the different devices. Primarily the Xilinx Zynq-7000 series SoC Visual Studio, Eclipse, SDK (Xilinx's port of Eclipse), XCode, Komodo 11-30 seconds We have a standard at work, but I don't follow it. When I can't easily understand what it's doing We don't have code reviews. 20 50 30 The aspect of design and creating something new. I also like optimizing things. That we don't have a lot of strong software developers at the company and I often feel as though I'm stumbling in the dark. Right now I have a hazy understanding of developing unit tests to ensure proper working code before writing the code (or immediately after to test boundaries). I am struggling with abstracting away hardware-specifics, such as time, IRQs, etc. I want to use TDD to create better software, faster. I intend on taking what I learn here and making it mandatory for our upcoming projects. Show
8 16 C++ C, C#, assembly (not very often) NUnit I'm working primarily with embedded software or firmware. JTAG for difficult errors, trace for simple errors and unit test for regression testing. Typically ARM Cortex-M, ARM cortex A, DSP devices. ARM /Keil compiler, GCC 1-5 minutes simple To many if levels. not so much 33 33 33 Creating new functions with very precise specifications. For instance solving a very specific problem. Discussions about details. Not much, especially in embedded firmware More efficient, not wasting energy on bugs. Show
10 ~10, then long break, last 3 years was C++, recently Ruby Rails, Angular none extensively you know most of the fun stuff :-) yes, mostly manual, increasingly TDD web sublime editor Under 10 seconds n/a more than a page n/a 70 15 15 making something & control over the tech too much arbitrary convention to learn most of what there is above the actual coding level update my understanding of embedded software development with agile techniques. I have an emerging interest in the IoT world. Show
19 22 C++ C# NUnit, TUT Working with both high and low coding, also some communication parts. Writing TUT tests and also automatic testing with calling products from NUnit-tests. Currently Windows CE Visual studio 2008 1-5 minutes An unofficial in the project. Usually I try to not have so many paths in a function. Not so often used %40 %40 %20 Sometimes fun when things are working When different ideas about how writing software collide. Not so much Are writing unit-test-code but have not so much education. Show
15 18 ASM/C/C++ C# NUNIT(?), CETK Embedded Programmer, Primalily Windows Embedded Compact & Windows Desktop. Drivers are tested with small test applications ARM CortexA8, NAND/eMMC, lpDDR, cameras, Wifi,USB Host/devices, I2C, SPI, SDHC, headless Visual Studio/Platform bulder, Eclipse for ARM gcc 31-60 seconds Pretty basic...i think. DWORD m_dwTickCount; When i have to scroll several "pages" Non existent 50 10 40 Waking seemingly dead boards to life and do hi-tech stuff with them. The are too many things to mention, but you have to take the good with the bad. Next to nothing It was my bosses wish, I wanted to go an embedded linux training. But I get to do a win win. Show
1.5 15 Perl Java Perl prove, Java JUnit, Ruby Test::Unit and rspec, a tiny bit of CppUTest I've won awards for my bad poetry. I test-drive if it's gonna matter. If it matters more, I test-drive more carefully. no idea, Arduino or RPi maybe? git, vim, make, Eclipse, clang Under 10 seconds Whatever the team agrees on (though I have my preferences) When my snap-judgment guess about what it does is wrong, or when I can't decide whether my studied guess is wrong or not Reviewing afterward is too late. I missed the decisions as they were being made (or someone else missed mine). I prefer pairing. 40 50 10 Turning wants, needs, and wishes into reality to solve someone's problem. Feeling competent frequently along the way. Positioning myself well to solve their next problem. When I don't feel competent frequently enough. It's self-reinforcing and I have to bust out of that spiral, usually by clearing my head enough to pick something small and easy that I can competently do. When I succeed, that's self-reinforcing too. It saved my brain: It helps me focus and stay focused: I've never learned much C because I've never gotten to do anything interesting with it. If I knew how to test-drive C, I'm sure I could find interesting things to try. Show
19 19 C/C++ Touched C#... NUnit Educated electronic engineer, but always worked with FW in embedded system since employed by Trimble. Always with projects there we build our own HW and need to bring alive a board and/or controller from the start. As time goes by more CPU power are requested and I moved from 8-bit to 68k to Arm7 and Arm11. Mostly using RTOS OSE from Enea. First Debugger and printf. Writing code modules to stress functions in my application. Later during develop process via NUnit and scripts stressing the application via communication channels. End face via logging when complete system is stressed. Latest HW is using a ARM11 based controller and OSE RTOS. Lauterbach debuger and gnu complier. 31-60 seconds None documented. Can you overview what the function do, yes/no? Optional to ask a colleague for help... 20% 40% 40% SW are standing for more of the functionality in products which make your effort important. There is normally a short loop between idea, development and verification of idea when working with SW/FW. This is inspiring. There is so many ways to solve a single task, or worse design a system. This leads to endless discussion. Have not tried to embrace to scoop yet. After the course I will hopefully identify what is new and what I recognize since earlier. Always interesting to improve myself. Do for the first time in a long time have room for raise my eyes and focus on something new. Maybe get some argument for improvements for the whole department. Show
13 years (~9 years as employee,+ ~4 years as consultant/contractor) ~30 years C# C++, java, pascal, python Self made systems Started programming as a hobby which has become my profession. Since 2000 I have my own company. I have worked with the following technologies: Total Stations. Surveying solutions. Radio links. Optical distance meters. Handheld computers. Military fighter air crafts. Presentation systems for the pilot. HUDs. Train computers. Building a test framework in C#, replacing old tcl scritps. Mobile phone devices. Improving test framework. Test equipment for the power industry. Large advanced voltage/ampere meters. I have never used TDD in the work process. Mostly manually. Total station for surveyors. Measures angles and distance with high accuracy. Arm AT91m42800, OSE, WinCE. Visual Studio, GNU make, GCC, AxD debugger, Sublime, Eclipce, Emacs, Putty, GIT, SVN, CVS, ClearCase, 1-5 minutes I have read some books like, "Code Complete" and "Solid Code", but i usually try to adapt to current standard/format of code. A function shall only do one thing. Some companies have more of them (defined in the development process). Now i usually have them on request basis. And i prefer in-pair programming or i think its called extreme programming. 25% 25% 50% All of the three above actually. Meetings. Time schedules. Maintenance. Correct answer is probably testing, but I thing testing is mostly fun. Its like baking a cake (coding) and actually taste it afterwards (testing). Ok, repetitive testing is not so fun. Not much, test driven development. Write tests before code? Define interface first? This part sound conflicting with code development. I think of code development as an iterative process where many parts evolve, including interface. They asked me at Trimble to join this course. We are setting up at test platform (using TeamCity) for an old product. Personally i want to learn more about TDD as well. It improves product (and code) quality. Show
16 30 c c++ cpputest Lead engineer. I cycle to work when it isn't raining. Started using cpputest for new modules using simulator in IAR. Company procuded embedded device using kinetis micro controller. It is installed into cars. IAR compiler 11-30 seconds We have one. We also use subset of Misra When it can't fit in your head. (I read the book). We use a web based system called upsource. This integrates with SVN and allows in-line comments.. 30 10 30 Making things that work. Poorly thought out requirements that come in verbally. Iterative process where a failing test is written first and then made to pass with small amount of implementation. We need reduce the amount of bugs and improve code quality. Teams feelings on TDD range from enthusiastic to sceptical. I'm hoping course will help. Show
0.25 3 Java javascript, C#, some python, some Clojure JUnit, NUnit, QUnit, jasmine, Mocha Mathematician and Musician. Unit tested. Programming in pairs whenever possible & sensible Cloud Server JetBrains IDEs Under 10 seconds SOLID and DRY Over 20 lines, over 5 parameters, the word 'And' in a function name Pair Programming: the instant code review. Another pair code reviews Github PRs 40 40 20 Solving problems at the unit level and the system level, and drawing diagrams on a whiteboard. Working on projects that involve hardware integration to some extent (medical devices, hardware controllers, etc.) or involve lots of math. Paying down another vendor's technical debt. 2 years experience. Good use of company training budget and a nice break from the current legacy code rescue mission. Show
1 year as independent consultant 5-10 C C++, Python Google Test, Unity, CUnit, PyUnit I have a wife and two daughters (2 years and 5 years). Live in a house on the west coast of Sweden. When I have free time I like having a coffee and reading some good news magazine or watching a documentary. I enjoy biking to work. On the weekends I enjoy time with my family around our house. There is always something to fix so I am never bored :). We do unit tests in CUnit, We have developed a test framework in Python for integration tests. However these things are only used by the team I belong to. The other teams do only manual testing for their parts. Total system testing is only manual. Cortex-A9 CPU GreenHills Integrity OS and compiler 11-30 seconds We have a short one. Speaks about naming and indent style (K&R) Difficult to say. When it does several things. I like to keep them below 20 lines. The reviews focus on high level though of solution. We lag behind when stressed. 15 50 35 1) Building software step by step protected by tests. 2) Writing code that is easy to understand 3) Test automation 4) A culture where people can admit mistakes. 1) Writing condensed code that may run fast but is difficult to understand. 2) Manual integration of code from different teams 3) Only manual testing I have read your and others (Kent Beck, Jeff Langr) TDD books. At my former job I created my own TDD-course which I held internally. I have hosted Coding Dojos where we do TDD. I have read quite a lot about TDD. But I want to get more hands on exercise doing it. Writing tests, writing code. Show
6 about 10 C++ C, ARM Assembly, some C# NUnit Work with RTOS and embedded systems in general mostly manual, some automatic tests on a higher level. Automatic system level tests and integration tests where the target system is accessed from a PC. PC side runs NUnit but the tests are not what is normally called unit level tests. All are ARM based, the one I use most Freescale ARM i.mx35 (ARM11) running Enea OSE RTOS. Some work on a i.MX51 (Cortex-A8) with WinCE GCC toolchain, eclipse as editror, debugging in Lauterbach Trace32 using JTAG 31-60 seconds No strict standard, internally defined. We have way to long functions, there is no culture or talk about it within the group. I try instead to atleast make the code non-complex. we do not perform them. I tried several years ago but there where no interest, but I think/hope this is changing 40 20 40 Technical challenge. I like embedded software because the abilities of the system are usually well defined and scoped. And I like to work on physical product. slow compile times, old toolchains, crappy debug-interfaces. I read your book, went on another more non-practical course. I have tried cyber dojo on my spare time and I'm interested, but I lack practical experience. I know our code has bugs, I'm tired of firefighting when the bugs affect the production line or similar. I want to be able to change the code without fearing that it will break somewhere. Show
3+ 12 (as a profession) 25+ (as a hobby) Currently its Java. Meh. C++, C, Ruby, Perl, Javascript JUnit, GTest, Test::More, RSpec, Tape, Cucumber and its permutations I like reading about history. I have three young children and a crazy hyper dog. I used to be a church youth choir director in the past when I wasn't sure if I really wanted to pursue a career in engineering. For fun, I once spent a summer volunteering at a museum, helping to restore a WWII-era submarine. I am a sucker for small companies and start-ups. Small things are driven in with unit tests. Acceptance-level tests (written in Gherkin, driven by Cucumber) are written to demonstrate feature completeness to the customer. Currently, its cross-platform desktops IntelliJ, vim, QtCreator, Jenkins 31-60 seconds We currently use community-driven standards, enforced by tools such as checkstyle and rubocop Other than just a feel, tools such as checkstyle and rubocop let me know. Currently we use GitHub 40 40 20 Its great to make something out of nothing. I don't have many technical problems. Most revolve around working with people, managing my own levels of motivation, and capturing / delivering / communicating customer needs. I've been using it since 2004. Yet, I'm always getting better at it. I once tried to make a useful unit testing framework for Bash. When I program a relatively inconsequential program at the day job, I use TDD. When I program an Arduino, MSP430 or something at home for fun, I don't because I just don't quite know how. Time to fix this. Show
2 20 Java C++ junit/gtest I'm happiest working in C and C++ TDD, with exploratory testing before handoff to QA. Tomcat servers running in AWS IntelliJ Under 10 seconds We have no formalized standard, but with only three pairs we have a set of common practices If it's longer than a screen we get suspicious. Usually fairly short, examining test coverage as much as code quality. 1 1 1 Building things that solve problems for other people When management is indifferent to the welfare of their employees. I am an agile consultant and assist my clients with TDD daily. I hope to bring more embedded work into our company. Show
8 36 on and off C C# cpputest, nUnit I like board gaming and walking Partial unit testing and manual tests ARM Cortex-M4 IAR 1-5 minutes Nominal MISRA with exceptions When I don't understand it at first reading Trialing Upsource, 40 30 30 Solving problems, trying new methods and techniques. Other peoples code Not much, I can create basic tests, but fail when designing and growing tests. To improve TDD knowledge and improve test design. Show
15 17 C none none .... Manually Cortex M4 IAR 11-30 seconds In progress When they span more than 1 screen Online 60 30 10 Development Documentation Very little To convert me to TDD Show
23 23 C Delphi and a little C# None I enjoyed scuba diving (family permitting), cycling and photography. Execute functionality with diagnostics It's a vehicle installed unit with a a Kinetis K70 (ARM Cortex-M4) processor and sensors IAR 11-30 seconds It is based on the MISRA C When it doesn't fit on the screen is a good rule We currently use Upsource. All new blocks of functionality are reviewed. 50 30 20 I like it when the complete process runs smoothly and the customer is happy. This includes functional requirements, design, code and test. When we give up on the design and future changes / debugging is difficult. I've read bits of your book and 2 of my colleagues use I, but I've not had a chance to try it yet. Within the team I haven't used it, another struggled using it with a large chunk of existing code that was been changed and the remaining 2 I believe are hoping to learn something to make it easier for them. Show
0.17 2 C++ C, C# None I like to sail Manual and semi automatic test programs ARM processors Visual Studio, Platform builder Under 10 seconds Nonexistent When it does more than one specific thing Nonexistent 30 20 50 Problem solving Debugging Testing the code is done continuously To become a better programmer Show
7 17 C# C++ NUnit, TUT, MStest - NUnit, Test appliactions, debugging, TUT, ... X86, ARM7, STM32, ... VS2008, ... 30-60 minutes Legacy for C++..., C# standard, etc. When it is difficult to follow/not well-defined isolated purpose. - 30 50 20 Challanging, building things, ... Debugging legacy software A way of developing code in small iterations. Interest in software quality. Show
3 40 C/C++ Perl, Python, few others as needed cpputest, catch, check For the bulk of my career I developed safety-critical systems for a variety of applications. Having worked in corporate and academic R&D, my experiences are quite broad. Unit tests. End-to-end functional tests. Custom linux comminications appliances. Linux development tools, GIT, CVS, etc, etc 1-5 minutes Corporate and industry security standards Doesn't totally fit on one 'screen-ful'. (I know that this depends on the size of the window....), Around 30-40 LOC. Peer reviews within the dev team 40 30 30 (difficult to express). I enjoy the rigor/discipline of s/w development. Have always liked adding intelligence to systems and never really tried to explain why. I started my career in a mix of h/w and s/w when microprocessor were new. Working with team-members that don't appreciate quality code and good practices/processes. Understand the broad concept. Invited by a peer and team leader. I've ALWAYS been an education/training advocate. Show
25 51 Clojure Asm, C, C++, Java, C#, et. al. junit, nunit, midje, speclj, jasmine, et. al. I like flying. A lot. Web/Clojure IntelliJ, Emacs Under 10 seconds Clean I can extract a shorter function from it. Pair when possible 49 49 2 It's an intellectual challenge. It's useful to our civilization. It pays pretty well. The messes that people make (including me). A lot. Because I want to see how we can work together to integrate the ideas into cleancoders videos. Show
25 years 39 years C Visual Basic unity I am working at continuous improvement in our software processes and quality. I am already seeing the benefits but see that where we have failed to implement TDD we are seeing bugs that would have been prevented. I took the onsite course a year ago and want a refresher as we have not fully embraced it. Functional regression testing. We started on module with TDD but discontinued using because not enough people are on board. We also use LINT. Water heater user interface and safety code Freescale/NXP Kinetis Developement System (Eclipse based) 11-30 seconds Our standare is based on implementing a somewhat object oriented modular apprach using C. The standard reflects a number of recommended standards and is updated periodically We have no standard but when it gets more than about 3 pages long. We use CodeCollaboarator on a daily basis. Several people review every piece of code generated. 40% 30% 30% No parts to go obsolete/scarce or vary with temperature. :) I like being creative and making some new product or features and watch it come alive. Reviewing others code. Debugging linking problems. MISRA-C (MISERABLE-C) picky or arcane errors. Fixing others poor code. I took your 3 day course. I use Unity. It can eliminate a whole class of defects, save debug time. & catch future bugs. I like "how can I break it" thinking As a refresher and two be with two colleagues who I presented this to last year who did not get a chance to really embrace it. Show
Less than 1 15+ C C++, C#, Python, Ruby, Shell Scripting Ceedling, Nose I came from a safety critical background out of school, and since testing was required with independance -- software engineers were dissuaded from spending alot of time testing. I have railed against this throughout, as I feel that the benefits to the developer far outweigh the cost. I am suprised that this feeling is not more prevalent in embedded developers that I talk to, but I wonder if it isn't more of an issue of experience and introduction. Unit tests, manual integration tests, a system test group. Various embedded platforms -- from embedded linux down to tiny bare metal microcontrollers depending on the application. Various - Yocto, Keil, various IDE's provided by chip vendors, various debuggers, etc. Like the target systems -- it depends on the application. 31-60 seconds Defined and released in our SCM system. Pretty vanilla -- seems to have some parentage from automotive systems (fair amount of MISRA like stuff). Most of the standard is more shoulds than shalls, however, and I haven't seen much review against it. At my current company -- no hard and fast rules. I think the code standard provides some weasel wordy style guidance. My personal rule is if it isn't clearly focused on a single 'job' and is trying to do too much -- refactor it. Using a Github style code review during the pull request. Currently no checklists / requirements on the code review. Seem to be taken seriously and done well. Much more focused on functionality than boilerplate. 60 20 20 I love making things and solving problems, and software is about the most direct analogy to this that I know of. Software is awesome because you can make anything you can imagine -- which is SO COOL. Blind hatred or love of 'agile/scrum' while simultaneously misunderstanding it. Monolithic schedules that change all the time. Not wanting to invest to get more efficient or use new tools. I've read most of your book along with other blog posts / online resources. I've been playing with some of the ideas this last 6 months, but not formally as TDD -- more just testing things with automated test. TDD and unit test applied to embedded systems -- especially mocking and faking. I need more ammunition to convince the organization that 'if we did things a little differently, we could have much better software for not much additional cost.' Show
12+ 20 C python, c++, java gtest I telecommute to Gracenote's bay area office from my house in Maine. gtest unit tests (that often look more like integration tests), nightly runs of our sample apps, QA-run regression tests (cucumber). I mainly focus on automotive head units, but the SDK I work on runs on desktops, in servers, on phones, etc. MS dev studio, p4, araxis merge 31-60 seconds tabs, not spaces. ;) as we deal in C on often old compilers, it is pretty simple. but not sure how to describe it. if it is more than a couple screens (my font is big) they happen ad hoc at the discretion of the developer. as a senior guy, I am often the reviewer - sometimes offline, sometimes via shared desktop. sometimes we have group-level reviews. 40 20 40 problem solving issues that aren't reliably reproducible (mainly race conditions) write unit tests first, see them fail, write code to make them work. it was suggested by my boss' boss. am definitely interested to see if we can figure out a good way to better TDD (and unit tests in general) for our complex SDK Show
13 years 25 years C c++, python GoogleTest I recently started hiking, and have been enjoying getting outside whenever I can. mixture of GoogleTest, manual testing and formal QA. multiple target platforms from embedded class to server class hardware. Windows, mac, & linux based systems. Visual Studio + homebrewed build system 5-30 minutes ad-hoc when I can't easily find matching braces. infrequent 50 10 40 The challenge of problem solving. When I don't understand why something is not working the way I expected it to. Test Driven Development/Design. Write the tests first, see them fail, then make them work. My boss suggested that I take it. I don't believe it's because he thinks I need it, but so we might get some evangelists who can champion the benefits and practice of TDD. Show
4 25 C++ C, Python, Perl cxxunit, cpputest I love listening to music and seeing bands live. unit tests, functional tests a variety of linux-based systems gnu tools, autotools, cmake 11-30 seconds Have a document describing coding standards, and reference google coding standard When it's hard to read or understand at that length Use bitbucket review board system 45 15 40 The challenge of solving a problem using code, the creative aspects of finding a solution. Working with legacy code, investigating customer bugs The idea of writing tests to drive the development of code rather than creating the tests after the code has been written. I want to learn how to better use TDD in my everyday work to save me time and effort. Show
2 40 C++ C CppUTest I'm developing a new generation of Snort. Primarily an automated regression test suite with some unit tests. Linux fgor product and multiplatform for open source version gcc and related open source tools 31-60 seconds based on Google doesn't fit on screen typically one person gives a quick lookover after eature is complete :-( 20 70 10 It's creative and satisfying. I like solving problems. There are frustrations in any endeavour but nothing jumps to mind. Our team leader took your class and returned a zealot. He's been preaching ever since. Recent I've been reading your book. I really want to learn TDD so that I can become a better developer. I am specifically interested in how TDD can be effectively applied to a large preexisting code base with few unit tests. Show
30 35 F# C, C++, C#, Java, BASH, PL-SQL, BASIC, COBOL NUnit, JUnit I am so good that I can teach baby chickens to swim. If it compiles, it ships! :) Linux web apps VS, Sublime Text Under 10 seconds Too much to cover in a one-line reply Used to be, 20-25 lines was big. Lately, however, more than 5 or 10 lines is too much Commercially, I always pair or mob up 30 10 60 Making stuff that people want is fun. Pointless paperwork Red-Green-Refactor I want to learn! Show
16 17 C, C# JAVA None Most experience in windows programming. New to embedded programming. Manual test fixtures Embedded displays and controllers Eclipse, Visual Studio 1-5 minutes Department Standard When it hard to debug. We use Code Collaborator as a team 30 30 40 Figuring out how to make hardware do what I want it to do. I takes a long time to figure out that I didn't actually tell the hardware to do what I wanted it to do. Had a brief introduction by one of our senior engineers. Our department would like to do more towards improving software quality and reliability. Show
<1 18 C C++, C#, VB.NET, Perl, Python NUnit, ApprovalTests, Microsoft Unittest Framework, Specflow, CodedUI. DSP and firmware background. Ventured into application programming Dec 2015 with Hunter. C# is my current language. For this I'm using TDD, BDD and above mentioned test harnesses. Desktop applications. Previous work on ARM, TI's TMS320C54x,C55x series and Qualcomm's QDSP5 processor. Nowadays primarily Visual Studio. 11-30 seconds Learning coding by intention and clean code. Moving away from background in waterfall schedule driven "cowboy coding" which typically leads to spending more time debugging than implementing/designing/refactoring. When its beyond a page or when it's serving multiple purposes (SRP) On-the-fly - we discuss in the mob while coding. 90 5 5 Creative thought process and ever changing environment. Continuous learning. When I have to debug code written so poorly that I have no clue what's going on. This typically leads to too much time spent on debugging leaving the feeling nothing has been achieved. TDD in C#. Code by intention. Write failing test first, make it compile and run. Implement functionality under test until pass. Ensure before a change that key functionality is under test. Then refactor "on green" only. Clean code and legacy code refactoring mostly deals with OOP. How to make proper test harnesses in C, mocking HW and external dependencies in C. How HW deals with agile as HW ties to production lines(a slot time) => waterfall model => FW devs. Show
0.75 8 C# Visual Basic, REALBasic, Swift, Objective-C, Java, JavaScript, SQL mstest, nunit My formal training is in psychology, but upon encountering massive monotony, I went back to an old passion of mine and made a career out of software development. Unit tests, integration tests and automated UI tests. Windows desktop Visual Studio 2015, SQL Server 2016 31-60 seconds We use generally accepted conventions, but not much in the way of an 'official' coding standard. The instant it doesn't fit on the screen without scrolling. We code in groups ("mobs"), so code is constantly peer reviewed by 1-5 other developers at all times. 40 45 15 I love the constant enhancements and improvements in the world of technology. I love being a lifelong learner, being challenged, and overcoming those challenges. Almost the same as why I love it: There is so MUCH to learn, and so much change, that it becomes VERY tough to keep up with new techniques and tools. We work hard to use TDD in our day-to-day development. Sometimes we forget and write tests after the fact, but usually, code doesn't get written until we have a failing test to show how it should work. 1) I love learning from experts. I know that my TDD skills can use some improvement. 2) This is an opportunity to work side-by-side with Hunter's firmware engineers. They will know the embedded C stuff, I'm more familiar with the TDD side of things. Show
2 25 c c++ nothing specipic Mainly experiences on embedding firmware device programming. Using printing debugging messages via UART. And JTAG debugger like ICD3. Microchip CPUs and MPUs. Microchip IDE and Micorsoft Visual Studio 5-30 minutes ANSI C making a long function to small ones. Myself code reviewing 50 30 20 Newly developing technological area. Assembly language Not much I think this course is mandatory for firmware engineer. Show
0.5 19 C# C, C++, JavaScript, Perl NUnit, ApprovalTests Embedded SW engineer for 18 years just now changed field to application development. Unit tests, Integration (UI) tests, Smoke tests Web applications, embedded SW for controllers Visual Studio Under 10 seconds Clean code when it is doing more then 1 task Mob programming code review is donw on the go, no official code review 50 45 5 challenge, learning new things, constantly improving. see above Write test first, before writing the actual code. Automate tests as much as possible TDD practices for embedded Show
Over 10 Over 30 C C assembly basic Unity Dogs are AWESOME. TDD Microchip PICMZ32 and PICMX32 MPLAB-x, Visual C 2008, SlickEdit, GTK, PC-Lint, source monitor 31-60 seconds Use guilelines from Microsoft more than 1.5 pages, idealy less than a page. Complexity should be below 20 None 20 40 40 Instant gratification Interruptions and distractions It saved me lots of time on my last project. Very few bugs found so far. Cause I was told to go. Show
1 30 C# VB.NET, F#, JavaScript, Python Visual Studio/Resharper I limited languages to those I've used in the past few years. I'm married with two kids and like cycling. We use Visual Studio's test tools with Resharper installed and providing some extensions. In addition to unit tests we run CodedUI tests which target the user interface of the application. primary-Desktop, embedded isn't my primary Visual Studio 31-60 seconds Have the code be readable complexity, doing more than one thing We Mob program - code is under constant review 40 30 30 I enjoy creating things. I like taking things that are complex and using simple solutions I don't like code that people describe as tricky or where the author wants to focus on how obscure their solution is for little or no functional gain. We use it extensively in our daily activities. I've found that defining tests is a great way of defining requirements. It's the perfect link since the test defines what's required. I want to get a good feel for working with the embedded programming tools. I'd like to be more comfortable building and running things on something that isn't on the web or Windows. Show
2.5 21 C# F#, Elixir, VB NUnit, MSTest, FeldSpar I have 2 kids, a girl and a boy. They are 8 and 6. I love playing games of all kinds. I am passionate about agile TDD and software craftsmanship. TDD, BDD Sprinkler control systems Visual Studio, Visual Studio Code, Atom, Note Pad ++ 31-60 seconds Bob Martin's Clean Code or some close aproximation 12+ lines that are not a single coherent thought Mob Programming 85 85 5 Providing value, cleaning code, solving interesting problems Configuration Use it everyday even for personal projects. Gave a talk about using it in legacy systems at Agile2010. You helped me to do it in embedded many years ago over twitter. To re-learn and learn how to apply what I know in embedded. To learn how I can better support the embedded engineers of my company. To learn from you. Show
2 20 C Ladder Logic None Mainly code in C. With a simulator and with test code. Microchip microcontroller Microsoft Visual C Under 10 seconds Company Standard Source Monitor General reviews 60 30 10 The creativity Nothing Write test code for actual code. To develop good working code that is easy to test. Show
1 5 c#, javascript, mvc nunit, xunit, mstest I like to play tabletop roleplaying games. I also like to write both fiction and stories for said role playing games. I am a fan of sea shanties. using mstest or nunit usually x86 visual studio, vs code, notepad++, resharper 1-5 minutes whatever resharper wants When it does more than one thing, or is more than a handful of lines. It's really more by "feel" than by explicit parameters. using mob programming, there is frequent questioning about direction and implementation of code which necessarily requires explanation and sometimes justification. 33.3% 33.3% 33.3% It is a fun puzzle activity which is richly rewarding; also it's fun to create something from nothing. Where to start. Like other disciplines, the blank page is the most troublesome part. I know how to set up and write tdd in c#/ as well as javascript. As for more complicated code; that is code which requires reflection or complicated mocks/fakes/and stubs; I'm still learning. I want to share my love of tdd and agile practices, I also want to stretch my comfort zone. Show
10 23 C Java, C++ None I am a Sr. Firmware Engineer at Hunter Industries. Run debug session and see if it works. Microchip 8/16/32 cpus MPLABX and XC compilers 1-5 minutes Green Hills Can't print on a page We don't normally do that. 70% 15% 15% Dynamic Dynamic Not much Someone said I had to. Show
8 20 C C++, Python None Love programming Old fashion way PIC microcontrollers Microchip's tool chain 1-5 minutes C Std Cyclomatic complexity None 60 20 20 Love the mental activity that happens when I am programming Repetitive I am just beginning to learn it I think there is a lot of value here Show
1 8 C C None I have been working on Middleware and driver layer all of my career. My code mainly interacts with hardware. Its mainly running the end application and checking if gives desirable results. Routers and switches. GDB 5-30 minutes misra When its takes lot of machine cycles to complete the operations. peer code review. 40 20 40 It's fun to make things work. Designing the scalable software and reuse it across multiple platforms. Testing. Heard from multiple sources that it is really good, helps in catching the bugs at the time of development itself. Want to develop quality and bug-free software in same given time frame. Show
3 30, more or less C Perl glib I have 2 kids and I have a lot to do. I'm working on learning Go. glib unit tests, which are really more like functional tests CentOS, C, GLib git, vi, autotools 31-60 seconds Cuddled braces, no duplicate blank lines, consistent indentation When it stops making sense Reviewboard 33 33 33 Getting things to work Figuring out why things that should work don't I know what the initials stand for We tend to test after the fact (unit / functional tests) and have been encouraged to start with the tests and work forward. Given the nature of our problems this doesn't always work out, but we're trying... Show
0 4 C/C++ Perl N/A I am new to Macs Unit tests N/A Emacs 31-60 seconds Whatever maintains consistency and readability When it becomes difficult to read and understand. They get reviewed by 2-3 people and usually address bugs, naming conventions, and coding styles. 40% 20% 40% I get a lot of power in creating interesting things. Things sometimes don't always behave as expected. It's a useful skill. I'm trying to develop some good habits/skills(with manager's encouragement). Show
15 20 C C++/C#/JAVA Windows LTK Managed WLAN Team for 10 years. Now leading NG Architecture Team for DCS. List use cases and corner cases. Create test plan, run test plan. I also step through code using JTAG and/or remote debugger. Industrial Ethernet NXP Platform VS 2015, Kinetis, TIA, Logix 5000, Android Studio, etc. 1-5 minutes I refer to DCS Coding Standard Document Cannot see the full function on a single screen. Use Code Collaborator 25 30 45 The sense of accomplish when it works. Debugging other peoples code when they do not care to make their code easily maintainable. Not much. Hope to learn more. I am attending this class because I want to understand TDD and decide for myself whether or not it makes sense for projects I am on to pursue using it. Show
8 20 c c jtag Love embedded systems single-stepping it's a scanner. What is there to talk about? Greenhills 11-30 seconds It's just a guide. When it's more than 200 lines. We use code collaborator. 40 10 50 coming up with a design to solve a problem. After 20 years in the business...still haven't gotten it right. Not much. At least I know how to spell it. to learn about TDD and hopefully apply it to my development activities. Show
4 yrs 8 months 20+ C/C++ C#, Visual C++, JAVA None I have been working in embedded software systems development for about 28 years. Sixteen of those 28 years in a Lead, Managerial, Software Architect or System Software engineering role. I have worked for about 10 different companies in multiple industries from industrial controllers using PLC technology, to bar code scanners, mobile computing devices, robotics and avionics. If hardware is unavailable I create unit test stubs in Visual Studio to simulate I/O and write the actual embedded code in visual studio. When hardware becomes available I port it to the target embedded platform. On the target platform I do further testing in a JTAG or BDM debugger or emulator. I have used CppUTest as well. ARM RISC processors Multi IDE and Visual Studio 2013 5-30 minutes In house C coding standard More than 25 lines or 200 lines with case statements Use Code Collaborator 10% 20% 15% Software systems get very complex very quickly. Developing requirements, and algorithms to solve problems with embedded software and then implementing them is quite challenging. The day goes by very quickly. I never seem to be given enough time to develop embedded software correctly. There is always code I would love to re-factor if I was just given a little more time. I have been practicing a form of Test Driven Development for almost 20 years now in one form or another. I have never been formerly trained in it. It is on my performance review for my goals this year. Also I am very interested in being formerly trained in this methodology even though I have been practicing it for 20 years. I think I will learn new things. Show
6 months 20+ years C++ C, Java, Rhapsody, Android Studio, Many others.. I previously worked in an Agile environment using Rhapsody on the target device using Android Studio. Android based display Android SDK / Android Studio 31-60 seconds No official coding standards for my current project based on complexity NA for current project 20 70 10 Tangible results Overhead. I've used it in the past To expand my Agile/TDD knowledge. Show
7 12 C C++, Java, C#, various scripting languages Googletest, Cpputest, AceUnit, Catch, JUnit My work with Cryptomathic has been primarily focused on developing support software (desktop) and firmware modules (embedded) for Hardware Security Modules used by most of Cryptomathic's products. HSM's are tamper resistant modules which holds and operates with cryptographic key material which must never be available in clear for anyone. HSM's are usually used with banking systems and for generating digital signatures. My passion lies in automation and optimization. Both in life in general and at work. Depends on the project at hand, for newer projects we generally try to use a TDD approach or at least add unit tests. For legacy code, we try to add unit tests for new code when feasible, yet we still only have functional tests for most of the code, if there are tests at all. This means a lot of code requires hardware to be available for tests to be executed, and since the hardware is expensive this is a scarce resource. Thus many tests are postponed to "release test periods". Multiple brands of hardware security modules supporting custom firmware loading. 32 bit PowerPC or ARM, ~2MB-128MB RAM depending on brand. On-target debugging is not available. Visual Studio for non-hardware specific code, software emulation and executing tests. Vendor specific toolchains (mostly GCC). Make, ant, jenkins for build automation. 5-30 minutes We try to follow the standard used in the specific project, but otherwise do not impose a specific coding standard. If it can't fit on a single screen :-) if the function tries to do more than one thing, possibly at multiple layers of abstraction. Sadly, we are still left with plenty of those. We use code reviews for most of the developed code including tests. The primary purpose is to share knowledge of the source code and to spot misunderstandings. We try to rely on tests for finding subtle bugs. 50 25 25 I like the challenge it is to solve a programming problem in an elegant fashion, no matter the tools available. Automating tedious tasks and optimizing code. And I, of course, love the feeling when something I have built starts working :-) Manual testing. Using third party API's that is either undocumented, or does not work as specified leading to countless hours of trial and error and support requests. I have read the TDD for embedded C book, which is when I first tried using TDD. I still struggle to apply the TDD approach for some scenarios, especially for higher level functionality. I want to be able to develop better quality software faster and with less frustrations. Show
8 10 C when there is need: python, linux-tools and shell-scripts, Batch-Files, a little bit of html, css, java-script - - startet with embedded c during apprenticeship and university (15years ago). - logger-projects (c on pic-uc) during university holidays. - embedded projects with c and statemachines (IAR-visualState), event-driven designs, ethernet, 802.14.4 protocol-stack... - skilled at version-control with subversion. - ... Manual Tests during development and manual tests based on test lists before each release. Microcontrollers, often ARM Cortex M, often STM32xy IAR EWARM 11-30 seconds A well crafted in-house standard. Depends on complexity. Generally don't like functions that do not fit on one to two screens. Usually after first draft of concept (for each module), then concept just before coding, then after coding (with one peer). Frequency depends on work load of the company. 50 20 30 software, and then having it running on the target. This step by step bringing something up from nothing with basically just a few lines of code. I like the incremental nature of small steps (in concepts, coding, svn-commits, ...). The environment it is embedded in (or I am actually embedded in. Don't know.): Price and time pressure, unreasonable expectations and demands. Manual procedures like going through test lists, release creation, ... I know your book (did'nt read/absorbed it thoroughly) but I think I got the concepts/ideas. Read a few other articles. Basically: - Automation - Dual Targeting - red, green, refactor - HW-Abstraction with mock's Tried to start TDD at the office a few times during the last few years with no serious rear cover. I kept trying... Now we can attend your course ;-) Show
4 35 C / C++ Assembler None, I am clueless in this respect When I was 15 (in 1985) I used some relays to connect my ZX Spectrum to my parents' rotary dial telephone so I could type in a friend's name (into a home written database program) and it would dial there number for me. The electronics was sound but a small programming error meant I kept dialling the emergency services. That was when I learnt about the potential consequence of bugs! A combination of printf statements to a serial port and watching LEDs flash on real hardware / dev board. Siemens C167 and more currently Xilinx Zynq (with twin ARM A9 cores) A concoction of Eclipse / GCC provided by Xilinx. Also Visual Studio for simple apps to send commands over a serial port 1-5 minutes We created one loosely based on MISRA-C but relaxed it slightly to make it more pragmatic. (We are happy using unions, for example) I suppose as a rule of thumb, if it doesn't fit on one monitor screen in a readable font. Peer reviews using a compare package and tracing back to the PBI requesting the work. There is no formal checklist, we generally use engineering judgement 50 25 25 The creativity aspect. Starting from a blank screen and engineering something that does what my colleagues have asked for. I also take pride in creating "neat" looking software. When a colleague / tester shows me an error and I get that "Oh no, I hadn't thought about that. This is going to be a complete nightmare to fix and I will need to have a complete rethink. Just what I have read in your book which I only ordered a couple of weeks ago. The idea that the tests are written first are all tests can be re-run often. My senior manager (Andrew MacKenzie) suggested it. I am open minded about the idea of this new regime and what I have read in the first few chapters of your book has encouraged me that it could be beneficial for the embedded work we do. Show
1 34 C C++, IEC-61131-3 (have done Java, and lots of others) googletest,, CODESYS testmanage, cpptest, cpputest My favourite place is the Lake District in the UK. Unit Tests created using TDD automatically executed on code commit. Semi Automated functional tests. vxWorks, linux or bare metal gcc, eclipse, gcov, jenkins, CODESYS... 1-5 minutes When I have a say - MISRA C 2012 derived When its performing more than one logical operation. Warning bells if more than 10 lines, always exceptions though. Client defined. My preference is to use static analysis and then review tool e.g. stash, code collaborator, GitHub. Pair programming could be great, only done a very little. 30 40 30 Solving problems elegantly that deliver real value to end users. Spending time generating waste. Working on legacy code (even my own!), by legacy I'm using Michael Feathers definition. It helps to drive good design, leaving my code documented with an executable test specification. 1) I want to be in a position to deliver TDD training 2) I want to get better (always room to improve) Show
less than one month 26 C c++, c#, swift I've worked with large groups in the past that had their own test harnesses. Don't remember what they were called. I graduated from SUNY Binghamton in 1990 with a BS in Computer Science/Mathematics and from St Johns University with an MA in Mathematics I like to write small code to test any functions first. ? Visual Studio, grep, beyond compare 31-60 seconds Most important rule: readability is more important than elegance. If it can logically be divided into smaller functions, It's too long. Also if it goes beyond one page on the screen, I would look into it. ? 20 20 60 The challenge of solving a problem logically. Any situation where I get stuck on a problem for a long period of time and can't figure out why something doesn't work as expected Not much. I know it's somewhat related to Agile Development My manager suggested it. I agree it's a good idea. Show
9 12 C C++ Have used boundary checks, memory checks, assert statements associated with the failures I am a firmware engineer currently working on scanners and scan engines. I work on low level software and RTOS based embedded software development. I test the code on the hardware development board and units, using JTAG interface. For unit testing, I perform boundary and memory checks, use 'assert' statements whereever appropriate for a graceful reset of the system. ARM based scanner development system Greenhills debugger 1-5 minutes We use ANSI C, use the coding guidelines about appropriate use of variables, functions, use of global variables, and use proper commenting with function/file headers If there are nested control structures within, if the function doesn't fit the height of the display, if there are more logical functionality within a function, if a function cannot be tested using a simple unit test Use code collaborator for peer code reviews 40 30 30 It is interesting and challenging. I get to keep learning new developments/technologies With developing software, we are required to deal with new last minute requirements and come up with workarounds. This leads to last minute bugs and some timing issues, which require the system to be completely retested, even for minor updates In TDD, requirements are turned into very specific test cases, then the code is developed to pass the new test cases only. This process relies on very short development cycle. I would like to understand TDD and agile methodologies in depth, which would help us to evaluate and use these methodologies for future work/projects Show
8 32 C Assembly None ... JTAG emulator, logic analyzer, oscilloscope, debug logs. Embedded micro-controller, sometimes with sometimes without embedded RT OS Greenhills, IAR 1-5 minutes Stick as best you can to what's already there. When it no longer has a single easily described purpose. Code Collaborator. I focus on finding unintended side effects 45% 45% 10% Creativity It's up to the SW developer to prove that the problem is with the HW. Another 3 letter acronym in this case meaning Test Driven Development. A method of SW development where the test cases are developed before the code. To see how the Agile process can be applied to embedded SW development. Show
18 20 C C++, Python, Java pytest i am mainly a embedded programmer. i have project lead responsibilities. define a test plan and unit test against it a lot of times by writing test code. Then, after feature is integrated to the system, an 'integration' test plan is executed. We also have automated regression tests which is very extensive and it is used as acceptance test before it is given to the independent test and validation team ARM based embedded systems sometimes with a network stack present eclipse, spyder, visual studio, green hills multi IDE 31-60 seconds they are strictly followed when i cannot tell what it does in about 3 mins take place very often 20% 20% 60% the satisfaction of accomplishing complex tasks by leveraging existing code or creating new frameworks working with a team hard to reduce the time spent debugging because of bugs that are not catch a head of time write code a head of time of actual implementatino based on some reading done in the past our validation cycles are too long. We validate code as much time as we develop it Show
1 32 C/C++ assembler None Spent my career in embedded software for industrial automation. Currently in a bit of a culture shock having worked for my previous company for 15 years before moving here where the agile process is used. Not sure that I understand the process and if anything I produce is actually tested 'properly' Developer testing against requirements before passing onto test engineers Xilinq Zynq Eclipse IDE; GCC compilers/linkers; Xilinx Jtag debugger 1-5 minutes Written document which I am not sure is acrtually followed When i have to scroll down to see the end of the function Peer Review with colleague 50 20 30 Getting it to work. Going round trying to get to the bottom of the requirements Heard about it. Vaguely know what it is. Never actually tried it. Training always useful. Feel the need to do something about the embedded software development process here. Show
10 15 C asm ? device drivers on hardware 1GHz CPU, DDR, DMA, caches Green Hils Under 10 seconds Internal can't see on one screen Code Collab 5 2 5 nothing in particular too much sitting ? required Show
5 7 C C, C++ unit test code, debug out i like hardware (too) test plans, debug statements, debugger, unit tests direct to micro, typically micro-controllers with onboard memory, communication peripherals (uarts, dma, i2c) debugger and associated IDE, uart, text editor 1-5 minutes inhouse standard when it becomes a pain t on navigate (due to scrolling) typically a few individuals, hosted on web interface 40 20 40 debugging, understanding the process syntax errors we write tests first and code to make test pass training required :) Show
18 years 25 C C++ PC an embedded systems Algorithm design on PC and on real platforms embedded systems VC++ Under 10 seconds modulized small functions more than one screen peer code reviews 60% 25% 15% design part implementation little assigned task Show
5 10 c# java, c++, c, python, arduino none? I work with robots I work in the TnV group and so most of my code is tested internally within the group windows 7,8,10, visual studios, notepad++ 11-30 seconds when working fast to put out a fire or making a one off piece of SW they tend to slack off if I am scrolling and begin struggling to line up my brackets code reviews are conducted at regular intervals in development of code 50 25 25 problem solving Parsing input and gui development I'll admit I had to google that but after finding that it meant test driven development, I have had a brief introduction to it To learn learn the development / test eng interactions in terms of TDD and agile training Show
5 8 C# and Python Java pytest Full stack developer, hard ware to web interfaces Test first and test often Windows and Linux systems VisualStudio, PyCharm, notepad++ Under 10 seconds Try to apply best practices and standards as often as possible but don't be a code nazi It is longer than one page I feel they are a waste of time 20 30 50 I work on automation and I find it beautiful Can be tedious very little My boss told me to Show
1.5 20 c C#, C++, VHDL, Java, Pearl none I don't like surveys. Functional test. Stress testing. Engineering tests that go over corner cases. Then separate T&V group. Embedded processors. Stuff 1-2 hours How do I put a whole document on one line? When you can't describe in less than 500 words. How do I put a whole process on one line? 10% 10% 10% Stuff stuff stuff stuff Show
10 5 C,C++ C#, Java None NA Automation testing based on test application embedded ARM Greenhills, IAR, Visual studio 11-30 seconds C coding standards we go by the number of lines of code. we use collaborator tool from smartbear 50% 25% 25% The ahaa moment time spent on testing TDD is about writing test code before actual code Process improvement in the company Show
6 6 c python, java, c++ none i like rock climbing follow engineering test plans currently in place, also adhoc embedded system with different processor platforms (ARM based) GHS MULTI 5-30 minutes idk when its confusing code collaborator sucks 30 30 30 its interesting, and the relatively quick turn around is satisfying writing documentation it has its pros and cons, in exchange for early overhead it should in theory cut down debugging part of my goals for this year, but also because i want to learn better testing Show
1.5 15 C C++, Objective-C, Swift Did not use any harnesses for embedded work here. Wrote my own unit test code I enjoy playing sports (basketball) Xcode profiling tools Barcode scanners, Mobile devices (iOS) Xcode, MULTI IDE 11-30 seconds Standard defines syntax and coding practices to create uniform coding style across department When it becomes too difficult to understand We use collaborator to share modified files. Reviewers leave comments and then we address the comments. 40 40 20 Creating software to help others It strains my eyes when I look at the screen for too long every day. It helps to reduce errors early in the development stage To learn and improve development techniques Show
2 3 LabVIEW Java, Python, C/C++, VHDL None. Throughout the college I never wanted my potential employees to push me into the Software Test roles. I have been deployed as a field engineer in Saudi Arabia for 2 years, thus all my college coding skills are rather rusty. My team is currently working with LabVIEW which is not really programming but the TDD concepts apply and we use them. I am yet to start working with the code. National Instruments CompactRIO platform, (ARM processors and other controllers in the future) National Instruments LabVIEW platform 1-5 minutes Have not been exposed to it yet I don't Haven't had any yet 0 0 0 I like the challenge and the joy that comes with finding a neat solution. The overhead time before a single line is written (especially relevant when you are working on a simple system that uses both microprocessor and integrated FPGA fabric) It is supposed to improve the development time overall and make the code safer and more reliable - important in the industrial solutions, not so much for startups. I dont know much about testing code at all - this is my personal motivation. It is also a part of my job progression path. Although it was preferred I chose some other internal training, I decided to push for this one. Show
10 10 C C#, C++, JAVA, Python Own one - Pragmatically with system tests or with the debugger or some specific sw tests Very versatile depends on the specific project. Arm, pic, psoc, msp430... IAR Workbench, Ultra Edit, MPLAB, PSoC Creator, Code Composer, etc 31-60 seconds We have our own using hungarian notation By counting the lines With a colleague. We review only difficult or complicated parts of a sw. Sometimes we use checklists for the reviews. These contain systematic points like control all switch cases for the breaks, etc. 70 15 15 First making a concept and starting only after having a plan of the structure and the complexity. Then the effective implementation is quite easy and fast. And also no time consuming debugging is necessary. This is fun. What I don't like is testing. Testing I read some articles and watched a few videos of it. In one project we used a unit test framework. But with real tdd i have no practice. A colleague told me about it and i was interested to learn about it. I want to check if it is realistic to use it in our daily business. Show
6 25+ C# C/C++/Java NUnit, MSTest, JUnit, TUT, TUX I started working with analog and digital electronics, firmware development such as drivers and embedded applications. Now I have more focus on windows applications, tests and build systems. The most of the testing done is on a system level but some of the tests are low level unit tests. The test are automated an runs in our build system. The target system is an instrument running firmware multiple processors platforms written in C/C++. Clients are .NET applications and C++ running on windows desktop systems. Visual Studio 2008. 1-2 hours We do not have a common coding standard today. When I can't quickly get the whole picture what the function does. This specially is a problem when it contains many different paths. We are working on improving the code review process. Most of the work is not reviewed. 30 60 10 Creative, it's stimulating to build something from an idea and get it working. It's never finished, there is always something that could be better. I have learned about TDD in a course and read some articles. We have also tried to work test driven in some parts of our project. I'm not working with the embedded firmware on a daily base but I think it is important that we have a common base to be able to work together. I like the concept of TDD, the times I tried it it works very well and I would like to do it more often. Show
5 18 Python Ruby, C, C#, Javascript nUnit, RSpec, Behave, Unity, Jasmine I have 3 very young daughters, am a DIYer, and I am in an Electrical Engineering apprenticeship TDD & ATDD as much as possible Existing embedded projects created with code generation tools and needing to use IAR in order to compile them. Very painful! Vim, Eclipse, Visual Studio, IAR, GCC 1-5 minutes Generally follow an existing coding standard in a project, or generally follow K&R if new code too many responsibilities pairing is usually my code reviews 40 50 10 enjoy the problem solving opportunities, enjoy building things even though it s not always tangible naming is hard, code generation sucks and is used way too much in embedded, embedded tools are in the stone ages compared to web & mobile I have a good bit of experience doing TDD in different languages. Possibility of teaching this class to others on behalf of you. Show
3 15 C, CPP, J, Embedded Gmock, Gtest Had worked on various consumer electronics and Automotive product developments. Currently, working at the architecture level. Using the Unit testing framework like gtest Omap5 with QNX Qnx IDE 1-5 minutes Stad coding practices, using company stds If it exceeds about 100 LOC Yes, do the code reviews 30 40 30 Enjoy design aspects and development of test cases tightly coupled codes Not much, kind of learner Understanding or deep into TDD Show
6 10+ C/C++ N/A Google Test Framework Domain Tech Lead for 1 of 12 domains in our infotainment (automotive) SW Architecture. Functional verification at time of code implementation. QNX Nuetrino ARM Eclipse IDE/QNX Momentics 1-5 minutes Uncertain More than 50 LOC Peer code reviews using Code Collaborator 35 15 50 Problem solving and implementation Root cause failure Time taken to root cause failure. Trying to understand code that is not structured well or readable. Beginner. Understand 3 laws, red-green-refacture, and basics of mocking. I've been tasked with coming up with common training (rules playbook, and unit tests project structure for entire SW Engineering Department. Show
4 7 C++ C# NUnit, tut, cxx-test I work with calculation heavy embedded sw NUnit, tut Windows CE Visual Studio 1-5 minutes We have a document with coding conventions When it does more than one thing Sporadic 40 40 20 I like the combination of theory and practice and that you can test your theories instantly (compared to e.g. mechanics) That you have to sit at a desk all day That you're supposed to write the tests before you write the code I hope to learn something new that I can use in my day-to-day work Show
1 6 C++ C#, Javascript, Python NUnit, C++TUT, QtTest I really like developing with QT, a c++ cross platform framework. Mostly through the nunit framework, for regression testing and to develop new functionality ARM, WinCE VS2008 1-5 minutes We have no standard (that I know of) When it tries to solve to many things. We have minimum to no code review. 20 40 40 Finding and Solving problems, provide functionality that makes something easier. Its creative. When build systems/configurations fails. By using TDD I' supposed to develop tests before functionality. Its a way of writing the requirements in code before I develop it in my system. I really want to learn good ways of doing real TDD on embedded devices, a area I have little experience in. Show
18 20 C++ C and Matlab nunit Although assigned to the software department, I'm a control engineer and use Matlab as my main tool. I do implement the algorithms in C++. Using nunit tests and manual tests. Inbedded ARM cpu with an RTOS. gnu compiler and eclipse 1-5 minutes Not really outspoken. Trying to use K and R type. Don't know. Usually no reviews 40% 20% 40% It is an easy method to solve complex problem or try solutions compared to other methods. It's easy to make fatal mistakes. Not much. We are increasing the usage of automatic tests. I don't want to be left behind :-). Show
14 Many years (20 years) but not recently c,c++ c# tut,n-unit I like reading, travel, homeautomation, food + malt in all forms. I have not done any serious coding for a about 3 months. Last coding was DSP code for a cam laser tracking system. Static logic tests on this code was done by cutting out important code snippets, putting it into a class and feeding it with structures or objects with pre setup data. Dynamic testing were done by injecting virtual targets into live target and field test using lots of trace code Blackfin DSPBF52x, IMX51 Visual studio 2015, 2008, Visual DSP 5-30 minutes Trying to adapt to the predominant standard when you need to scroll the page ? no formal ones 40% 30% 30% The ability to test different ideas and get direct feedback Doing it under timepressure the basics,the code is defined by the tests rather than the other way around I am a curious person :-) Show
3 12 C++ C#, Python, Java, C TUT, nUnit, hippomocks, CUTE I like to lift heavy stuff and drink wine! Unit testing using TUT and mocking with hippomocks. I also write higher level functional testing using nUnit. nUnit interfaces with our product as the users tablet would. Embedded system, iMX51 platform. SVN, Visual studio 2008 31-60 seconds We have a coding standard defined in a document which I try to adhere to. Beyond that I try to reduce dependencies and utilize dependency injection to make for easier testing. Generally I think the most important thing is that a function should have only one function. But if a function does not fit on the screen all at once its def. too long. We don't do code reviews often. When we do them they are quite informal, mostly someone just has a look at the SVN changes or you go through them together. 20 40 40 When you feel like you have written some quality code that is reusable and well tested. Writing ugly fixes due to time constraints. Working in code that should have been refactored long ago. I't was part of some courses at the university so I think I have a general grasp of the concept. Write tests first. Implement. Build and run tests fast. Done when tests pass. Repeat. I think TDD is a good concept but haven't used it a lot in practice as an embedded developer. So I'm hoping to learn some good ways to make it work in an embedded environment. Show
6 10 C/C++ C#, assembler NUNIT, TUT, IAR I am normally a happy person Automated testing (NUNIT) Manual testing Embedded FW on a Windows CE OS Visual Studio, NUNIT, Team City 5-30 minutes Our development group has written guide lines. Trying to adhere. I can't follow the logic Nearly non-existant 40 40 20 Logical Fast feedback That our instruments (target) vary between individual to individual. We practiced at least one form at my previous work. I have recently become a project manager and I want to know what the developers learn on this course in order to facilitate the use of TDD practices in our projects. Show
29 29 C++, C C# nunit I work mostly with embedded system, with high real time demands. Coding is not main task. Mostly manually. Arm11 rt-os arm, eclipse 1-5 minutes Non When you lost the overview Non 30 40 30 To solve problem with software. When you gets an unimaginable bug. Make the test first. I want to development faster and better code without error. Show
5 10 C C++ NA NA writing a unit test component QNX platform EA and qnx momentics IDE 1-5 minutes Misra na na na na na na na nothing to under how tdd will help create a better software. Show
4 11 c c++ MS Visual Studio Test Suite Made the first IoT device long before they called it an internet appliance or IoT item. Circa 2001. Love technology. Mostly debugger. However, I write it extremely cautiously with a very pessimistic / defensive attitude. I still generate an occasional bug and have little way to prevent others from injecting errors after release; #1 gripe: careless programmers. Many. Some embedded, some more like PCs. Various IDEs / 3rd party tool-chains. GCC is most prevalent here. 1-5 minutes Documented and available; but few know where it is. CCM, cant see it all on the screen, takes on more than one purpose, etc. I will probably comment on every changed line. I am a pretty good bug finder. 50 20 30 - Verification time. Not sure any more. Develop less than i used to :) bugs, carelessness, cost of going back to fix really simple errors that should have have existed in the first place. A little from past experiences with Micrium and Schlumberger. To find the sweet spot between TDD and unit testing. Show
6 10+ C++ C Google Test Domain lead of most visible module in product. Inherited role of a SME for TDD and unit testing setup. Manual functional testing QNX6.5/6.6 ARM Eclipse/QNX Momentics 1-5 minutes One exists, but not enforced Over 50 LOC Peer reviewed using Code Collaborator 10 30 60 Designing logic solutions to a problem/use case. Root cause analysis Time and effort taken to root cause an issue (reproducing the conditions that lead to it). Actively practicing the basic methodology for the past 2 months on designing re-usable components. Support my organization in achieving success in using TDD and unit testing. Gain knowledge/insight to continue in-house training and consultation to enable organization on TDD and unit testing. Show
2.75 7 C, C++ Qt - currently working with Sync 3 HMI team as DPC. nowadays not coding more managing work. qt simulator and test hardware ford provided test hardware qnx based qt creator, qnx momentics, git repo 30-60 minutes - too many lines of code jerrit code review 50 10 40 gives a thrill to achieve something I like developing and nowadays I don't get much chance nothing recent change of focus from mgmt. team to focus more on testing. Show
12 20 c C++, Java, Python N/A test engineering local test customer HW, VM Momentics, Netbeans, Android 1-5 minutes Coverity Cyclomatic Complexity too high Code Collaborator 40 10 50 it runs complexity of tools, code. What I Googled Panasonic development standard. Show
12 9 C Objective C None I spend very little time actually looking at code based on my job responsibilities. Black box QNX QDE 5-30 minutes MISRA 100 Lines max Collaborator 0 0 0 Problem solving. Defects that appear Friday at 5pm. Not much. I've read a bit about it but I haven't actually tried it. I'm asking the people who work under me to practice TDD to support a department initiative to write better code. I want to understand what I'm asking my team to do. Show
4 10 C C++ CANTATA, PUT have experience in Automotive domain for a longtime. experience working with major tier 1 suppliers. Has good knowledge on Embedded systems and C using stubs and test applications QNX OS QNX IDE 1-5 minutes MISRA based on complexity of the function I use Code collaborator for reviews 40 40 20 Creating new software for cutting edge tech - Develop code and test in parallel Want to learn about TDD and know how effectively can be used in our development. Show
1.5 11 Java C++, Python JUnit I lead a team of 20 (offshore and onsite), and responsible for on time delivery of features assigned to my domain. I am the Domain Project Coordinator for SAL (Service Abstraction Layer) Code is getting tested as part of integration testing. armv7 QNX Momemtics, Eclipse, Android Studio 1-5 minutes I am not sure if I understood the question. I follow PASA coding standard for C++ and refer Java Coding standard for Java development. Number of lines exceeds 80, Or branching logic is complex Using Collaborator 40 30 30 - Design, Coding and Debugging - Manual testing - Designing a software with Testing perspective. Testing the code I develop needs to be first thought than an after thought - Need to improve the way present day software design is done. - Have some question, and looking for the answer from the experts. Show
1.5 13 C Assembly internal passionate about quality and bug-free code using debugger to execute all negative paths RH850 GHS MULTI 31-60 seconds MISRA-C using metrics tool and objective analysis collaborator tool 30 50 20 Building some tangible products Thinking sw is malleable and can take-up all work-around for HW team issues org initiatives would like to implement the same for C code Show
4 12 C C++, Qt, Assembly none -- test scripts -- Qt Creator 1-5 minutes -- -- gerrit, code collaborator 65 15 20 -- -- -- -- Show
5 15 C, C++ Python, Java GTest, GMock, Cppunit Have experience developing in all layers of software stack. Mainly integration testing or sanity testing. Limited / No unit testing. Arm based running QNX OS. compilers/linkers, Debuggers, post mortem analysis (gdb), profilers, Eclipse based IDE (QNX Momentics), 5-30 minutes We have one somewhere .. but each developer ends up using his or her own standard! when I cant see it all in one screen (~30 lines). use code collaborator to review code. 50% 20% 30% Getting features working. Making code scalable Code should be maintainable and easy to understand. Code that is hard to understand (eg legacy code that is monolithic) Debugging issues that should have been identified early in the development lifecycle. It is a paradigm of developing test cases from requirements and code to pass these test cases. 1. To better understand TDD. It is not clear how TDD flow would ensure the customer requirements are met. 2. Best practices to make TDD successful 3. The challenges faced & addressed due to the churn due to refactoring Show
11 14 C C++ None I like programming very much. But with bigger teams, we don't get to spend time programming. Lot of time is spent in coordinating. A good testing strategy may be helpful to reduce the coordination time. We perform module level testing, Integration testing and Functional testing. We have now initiated unit testing using GMock QNX QNX Momentics 1-5 minutes Company defined standards When it cannot be seen in one page We use code collaborator 50% 30% 20% It gives immense pleasure when we do it alone or in a small team. Developing software with bigger teams is difficult. I do not know much With bigger teams, we don't get to spend time programming. Lot of time is spent in coordinating. A good testing strategy may be helpful to reduce the coordination time. Show
1.4 Years 16 C & C++ C & C++ GTest, Cantata I am passionate about multimedia technology. Automated Testing, Integration Testing QNX, Android Visual Studio, QDE 1-5 minutes Standard C++ Whent it has a lot of conditional branching. More than 200 lines of code. It uses a lot of local variables etc We use Code Collaborator 25% 25% 50% - Software Development is Innovative - Software Development is Challenging (Problem Solving) - Continuous Learning and Improving opportunities - Many times we cannot predict results especially in real time environments - Different paradigm for software development, where you think about requirements and test ability before actual software development - Improve Quality of the software Me and my team develop. - Bring More confidence on software deliveries Show
1.2 7 C++ C# Microsoft Unit Test I like coding in C#. Normally I don't do, may be Unit Test sometimes QNX Visual studio, QNX IDE 5-30 minutes Normal Its a line of code Don't undergo very frequently 40 30 30 Its amazing because functionality works and make life easier More bugs.. From colleague Because It may be useful and new learning practice that may improve the quality of SW Show
4 10 C++ C Non standard tools I am a domain project lead for multimedia, I want to encourage my team to perform unit testing. Some level of unit and mostly integration testing QNX, ARM QDE, RTC, GTest 1-5 minutes Basic-Moderate too many if else condition, logic more than 10 lines of code Moderate 40 30 30 i like to solve complex problems. Documentation. Very little, basic concets, would like to know more My manager nominated me. Hoping this would encourage me motivate my team to to use TDD. Show
5 12 C++ C proprietery I am a SW lead but also doing programming whenever there is a need. writing my own simulator code C++ QNX IDE 5-30 minutes PASA Guidelines No of lines Code Collaborator 50% 40% 10% Programming too many bugs basics to know more about TDD Show
9 13 C C++ none I do hardware development as well,and play a little guitar We test out final software against a software verification document which is intended to test all functionality in the extremes of possible configurations. Custom board based around Analog Devices Blackfin 536 Processor Analog Devices VisualDSP++ 31-60 seconds We don't have an official coding standard, but I try to maintain MISRA C that is a good question Limited resources don't always allow code review. Doesn't happen very often. 60 20 20 Small attainable goals, immersion in work. debugging, digging through documentation to understand development software tools. nothing I want to adapt some sort of software testing in our group, and I want to get better at specifying the software I am writing before just going to work on it. Show
6 30 C none none ?? Using execution or debug mode of the IDE running on the target system. 8 bit microcontrollers from MicroChip MPLABX from Microchip, PC-Lint, 11-30 seconds Embedded C Coding Standard by Michael Barr Greater than one page, or Cyclomatic Complexity > 15 1-on-1 typically for small changes, independent reviewer for whole projects 45 35 20 ?? ?? very little To learn if this is a technique we could use where I work. Show
2.5 16+ C C#, Java, Python None I'm an electrical engineer with an emphasis in computer design (BS) and control systems (MS). Functional tests, system testing, stepping through code. (aka, did it break? no? then it's working) ARM Cortex-M3 IAR EWARM Under 10 seconds None I don't None 20 20 60 The versatility and flexibility it has unlike any other engineering discipline. Low cost (time/money) to implement and test new features or hypothesis. My own lack of understanding. I'm sure most of my issues are solved problems. Just the basics: Define desired functionality, code up a test harness, write code against it. I'm the only embedded programmer at my division. Our code is becoming more complex and I need a way to ensure our devices are absolutely reliable without having access to peer code review. Show
6 6 C C# N/A I'm a private pilot. Manually test features of the hardware. Have external tools parse debug log output for specific entries. 8bit MCU / 32 Bit ARM AVRStudio, LPCExpresso 1-5 minutes A loose set of conventions agreed upon by the team (3 people) Anything >100 lines is suspicious. Having to scroll down or anything that gets so long its hard to follow the logic of the function One team member checks in changes, requests other team members to review the SVN revisions. They offer comments, changes are needed and the process repeats until everyone agrees on the changes. 40 25 35 I like writing software that goes onto a device that people use in the real world. I can see my product in machines all over the world. Its frustrating when people who dont understand much about embedded systems ask for changes/features that are extremely difficult to implement. Not a whole lot. My company has always had trouble building a good QA process for our embedded products as we've grown. We need to learn what others in the industry are doing and see if we can apply that to my company. Show
2 years 5 years C only C ??? I am a good man Depends what part of my code I am testing(Communication, motion,temperature,servo,hours,state machine) for each of these I have deferent test-bench written in Labwindows Embeded Keil,Labwindows,C# 31-60 seconds basic standard programming like indentation,for every if,else always have '{ }, naming convention ,comments , If I cannot see the whole function in my screen(laptop) Mostly done when I have question and cannot solve or debug the software 30 60 10 Challenges Patching,debugging Short development and short test, and improve the software for new test. the software has to pass all the old test. My Manager Show
1.5 14 C, C++, C#, Python automation tests in the embedded system n/a n/a ARM, PIC, C8051 IDEs 11-30 seconds industry standard over 100 lines peer review 40 30 30 user stories to real products debugging other developer's codes Uncle Bob, TDD for software development Interested in TDD in embedded system. Show
0 25 C# PHP, JavaScript, C, Java PHPUnit, JUnit, C#'s Built in Unit Testing I don't have a lot of embedded experience. Some Assembly 20 years ago, a lot of Arduino lately, some C here and there on Linux. Lots of higher level development experience. Doing some work with the FTDI Vinculum 2, Company product built on PIC chips. Test my code??! What! :) PIC32, and possibly ARM in the future. Eclipse 11-30 seconds It's pretty strict If you can't look at it and understand what it does after a read through. Currently informal, but moving to Mercurial so they can be more formal. 70% 10% 20% Solving Problems and making cool stuff. Poor Documentation... I've fully embraced it at other jobs, and am a convert of it, just not familiar enough with the tools in C# and C to go back to it at the moment. My Boss (Jason Smith, also attending) has hopes and dreams of turning me into an Embedded developer so that he can just hire a new C# developer instead of trying to find a good Embedded developer. Show
9 20 C/C++ C#, VB LDRA I am manager of software engineering. I'd like to know more about test driven quality improvement of programming. code review, static code analysis, functional module level test, system level test medical instrument IAR 1-2 hours MISRA C/C++ line of code, complexity Use code collabrator 30 40 30 generate high quality bug free software take over some bad design existing code and fix bugs very little I heard TDD, but know very little about it. I'd like to know more about it to improve software development quality. Show
10 20 C C++, python None Studied Digital Signal Processing, have worked on cellular modems, and currently work in audio processing. Manually TI64x processor on a small device, and a Xeon x86 in a rack mount product Eclipse, QTCreator, Visual Studio, Cygwin, Notepad++ 5-30 minutes No formal coding standard. Generally, follow local conventions When it doesn't fit on the page. Online using Code Collaborator. Generally, submit to depot, then start a review. 15% 25% 60% Making new features work. Figuring out how/where to make changes, resolving merges, and integrate libraries. Incremental edits with minimal functionality adds. For every line of code that is added, there is already a test, & a set of tests that continue to pass, showing that no regressions have been made. The option was made available to me via my company! Show
Less than one year Academically, 3 years. Professionally less than 1 year. C Python, C++, MATLAB CppUTest My job mostly consists of implementing algorithms in software to manipulate audio files. My team currently uses CppUTest, and listening tests. We also have a dedicated QA team, who perform regression tests. I'm a new hire, so learning CppUTest is definitely in my training list. Windows, Mac, Linux systems, and TI C6xxx DSP processor embedded systems Visual Studio 2010. CCStudio 31-60 seconds I follow my company's coding standard When a function actually performs more than two distinct operations that could be contained within their own functions for better abstraction. My team uses Swarm reviews. So when I modify a file, Swarm is able to identify and visualize the difference, and my team uses that to review code. 33 33 33 More often than not, I get into a mental state, and laser focus while developing software, and it's a great experience. When the code does not perform as expected , even after I've debugged it. Ddifferent approach to standard code development. Traditionally, dev code is created, then tested against required behaviour. It TDD, it is reversed, the test modules are created first, and then the dev code is developed. I'm the new guy in my team, and I want to prove myself as invaluable team-member. The team uses TDD through CppUTest, and I want to be able to understand it at their level. Show
1 1 C Python Munit I am a new software engineer looking to develop better habits. Write unit tests as we develop. Write Python regression tests after. Windows 64-bit Visual Studio, PyCharm 1-5 minutes We follow a style guide published for our department. I don't. A team of 5 reviews the code via a collaborator tool. 20 20 60 Things don't blow up when I make a mistake. Tracing low-level issues. By testing your code as you develop it, you can save time in the debugger. I'd like a more formal training on the TDD process - I've loosely implemented it in the past, but found myself dropping it as time passed. Show
9 yrs 11 months 30 c/c++ python, bash, javascript, java, ruby internal; rspec and cucumber for ruby My hobbies are rock climbing and vintage Vespa scooter. Manual testing; system-level testing (some automation); some unit testing with internal test framework x64 based Linux; TI DSP on DSP/BIOS os Visual Studio (w/ Visual Assist addon); vim; cmake; cygwin; TI Eclipse-based IDE 5-30 minutes Dolby developed standard that is loosely followed When it has too many responsibilities. We use code collaborator for almost all checkins. We allow a day for code reviews to be completed before checking in. 40 20 50 The challenge of creating something out of nothing. Constant interruptions. Fear to change things. The overwhelming amount of bad code out there. A little. I have read your book but haven't tried to follow along by actually performing TDD. I have done a little bit of TDD during library development of self-contained functionality. I would like to try to do more TDD and the opportunity was offered. Show
1.5 3 C Java, Javascript Karma with Jasmine I don't have an education in computer science, but have been programming for a few years. Manual plus basic unit tests Embedded with custom FPGA Linux based C development, Perforce, VIM and other diff tools. 1-5 minutes Not very ethical More than 1 screen length, more than 3 levels of nesting I don't have a good eye for catching errors through code review. 30 30 40 It helps in strengthening my problem solving skills. Portability of code between different hardware types is never seamless. Takes ages to debug. Not much. I actually want to learn what this is about. But not sure if I have the bandwidth to implement these practices. Show
8 3 C C# none I'm a technical manager, I haven't developed full-time for a while now. Manually or with simple python scripts 16 bit uC (24H & 33E), runs an OBD-II stack MPLab, C30 11-30 seconds Similar to the Netrino Embedded C Coding Standard When you have to scroll. If you want to put "and" in the function name. If it's hard coming up with a name, it may mean that it's doing too many things and needs to be broken down into smaller parts. Manual, one-on-ones, don't happen as often as they should 20 50 30 The creativity it requires Debugging really low level errors (silicon errors and interrupts) Not much The firmware architect was unable to make the conference. The goal is that by sending myself and another team member (our C# developer), we can derive 80%+ of the value of just him going; we will see. Show
5 3 C Python, C++ An internal unit test framework I like to play tennis. Through a set of unit tests and regression tests. Windows, Linux, OSX 32 and 64 bit Visual Studio, Visual Studio Code, GNU 1-5 minutes We use a company-wide coding convention. When it becomes difficult to maintain or understand Code reviews are performed by the team when developing features. 20 30 50 Being able to build and create something. The amount of time spent on fixing bugs. It is a design strategy that involves preventing bugs, more than managing them. To improve the quality of my code and to learn to develop software from a different perspective. Co-workers have taken this course and have good things to say. Show
3 6 C C++, Ruby Ceedling, Unity, Cucumber My goal is to make maintainable, reliable systems. I'm originally from Southern California, and studied Computer Engineering during undergraduate. When I saw the TDD for Embedded C book, I knew I had to have it! TDD, in the future would like to do BDD, integration testing, and perhaps Design By Contract Ruggedized, cartridge-based power system that delivers maximum reliability and flexibility over a typical 72 hour mission, at a weight savings to the soldier of more than 65% compared to conventional lithium-ion batteries Previously AVR JTAGICE, Atmel Studio, transitioning to STM32 and IAR IDE 31-60 seconds Attempt to follow MISRA, efforts trailed off at some point... When I need to scroll. Casual, sometimes rushed, sometimes too detailed. 35 50 15 When things work. When customers like the things that work. I think the integration between hardware and software is fun to work with. Legacy code that sucks. Difficult to find spontaneously combusting bugs. I've read most of the TDD for Embedded C book, and have used it in production code, but would like to gain more understanding with more of the advanced concepts. Would like to gain more insight into how to TDD more effectively, understand the concepts better AND would love to see how TDD fits into the bigger picture, e.g. what tools and how TDD fits into integration and system-level testing. Show
< 1 3 C++ Action script, LUA None Currently involved in project management more than looking at actual code Run it on the target and perform use cases embedded infotainment running QNX os Eclipse IDE 1-5 minutes tend to use camelCase nomenclature and have a modular design approach When you spend more than two minutes debugging/understanding it Usually 2-3 people review the code 20 40 40 come across different sets of problems and trying to find innovative solutions to fix them involves working on code someone else might have written and you dont necessarily agree with the design approach Just have the basic understanding of creating a test case before writing the actual code I can impart this concept to my team Show
0.5 3 C++ java, C SYNC 3 NA google unit test NA QNX 1-2 hours NA Over 100 lines NA 50 20 30 NA NA NA I'm working on the unit test and would like to improve Show
4 25 C++ Assembly, C#, Windows batch script, UNIX shell script, Python, Perl In-house test harnesses Navigation domain engineer Automated unit test. Manual test. QNX QNX 1-5 minutes PASA C++ Coding Standard If the function is more than two pages of computer screen. Code Collaborator 3.3 3.3 3.3 It's always fun. Never be bored. No need of other brain teaser activities. Not much chance for physical exercise. I didn't know TDD, but some of ideas might be already applied in our daily activities. I would like to know some more detail and examples. Recommendation from management. Show
15 20 C C++ None been out of actual S/W development for a couple of years Usually in the target system with PC to simulate pieces of the system that are not present VP4 Radio (for a vehicle) RTC 5-30 minutes enforced by Coverity In theory it should do one thing well. if you have to do alot of page up and page downt then it is too long. Ideally the meat of the function should display on a single screen. Code Collaborator is used. 30 30 40 The logic The tool and system set up Short presentation inside Panasonic Company Initiative. It may be a cleaner way to develop. More "agile" if you will. Show
9 8+ C C++ G-MOCK, CPPtest I started as a Automotive Engineer working for Panasonic in 2006 and performed different roles. I become the Sync Product Architect in 2013 and Launched the Sync Gen 3 (MY16). Now, I am working as a Software Lead for MY18 Program and participate in Design/code reviews for the product. We have started using G-Mock in Sync and previously we used to have Unit testing at a developer level and archive the results/review to ensure code quality. QNX6.5 based system QNX6.5, RTC, G-Mock 1-5 minutes Misra Standard In terms of LOC, I think it should be < 50 and also small enough for developer to easily domonstrate logic to write test cases to each all paths. Using code colloborator I am coding close to 0 in the past 3 years but focus mostly on Architecture and Project management 0 0 It gives immense pleasure to me to develop something that you can feel and interact and can do amazing things. Also it enhances the User experience and is fun to develop. It is also fun to understand how each developer is unique and the thought process is different to resolve a given issue. Went through the videos and feel it is a great concept. Only skeptical how to bring it up organization wide for SW dept. Since I am in the PM, I want to understand how this will help my developers to develop code that is much easier to maintain and create something that is consistent always. Also increase the Productivity/avoid rework. Show
2.5 years 12 C, CPP VB, Python, C#, QT cli test code ... CLI Test cases, Visual Review, Run Through Code (logically) with predetermined input parameters ( in-boundary params, good values, out of bound params) MQX OS with GDB capability gcc, debug logs, jtag 1-5 minutes MISRA C when i have to pan and scan to understand what it does ( more than 1 page on screen) Code Reviews are done in process, and many defects are found in reviews ( but not all) 60 ( Design 40 and 20 code) 20 20 Algorithms !!! No two programmers are the same !!! One of the mechanisms in V Model where unit test cases are created while writing the actual logic of code. I would like to learn how to create automated test cases which test code that is newly written. I would like to understand an adopt a Dynamic Test tool for this purpose. Show
5 3 C++ C CXX Currently, I am DPC of a domain. My role is to plan , track , design reviews and code reviews, analysis reviews. TestAgent QNX RTC QNX IDE 1-5 minutes MISRA, PASA coding guidelines Code revies or debugging a defect We use We use Code Collabborator for the revies 10 20 20 I like when software runs correctly and flawless. If the issue doesn't get solved or no roo cause find. Or the code is very hard to debug Nothing. But, we write test cases after the code is written but we don't do test driven development. To improve the quality of testing. Show
2 13 C Python NA Working in OB/BSP area focusing on driver/platform code development. By writing functional test cases. Embedded systems QNX/Linux ARM tool chains 30-60 minutes Panasonic specific duirng self review Code collaborator 40% 30% 30% Defining scalable interfaces and designing Sorting out issues/glitches in test environment. Just basic concept Better productivity from the team Show
12 14 C C++ None I haven't used any unit test framework. We do Interface testing, Integration testing and Functional testing QNX QNX Momentics, GDB Debugger 1-5 minutes PASA Coding Standards When it cannot be seen in one page Code Collaborator 50% 25% 25% Writing logic and seeing things working gives a tremendous happiness When working in big teams it is difficult to maintain the quality Nothing I got invitation for this training and I am curious to understand if it can solve our problem of developing in large teams. Show
4 10 C C++ PUT, test client I am responsible for tuner development for a customer project test client, GMOCK/GTEST QNX QDE 5-30 minutes MISRA number of lines Use code collaborator and checklist for review 40% 30% 30% Developing SW for realtime scenarios and challenges in bug fixing debugging unit test while development to understand how to reduce bugs Show
0 20 c/c++ c# parasoft, tessy (Hitex) primarily focused on embedded systems using ICE, Hardware in the loop Freescale consol make 5-30 minutes ANSI, MISRA once you lose track of what happend before. experience as lead 50 25 25 making complex system easy Lack of clear goals. Assumption is code change are easy the videos assigned by my boss Show
10 9 C C++ code checker curently i am working as a product architect Integration testing, Functional testing ARM QNX momentics 1-5 minutes MISRA Manual inspection, Static analysis report We use code collabrator to review the code changes 10 10 10 No comments No comments Test driven development- test the sw as on when you write piece of code instead of waiting till end of the development cycle. To reduce the SW development efforts Show
5 10 C C++ None i am very interested in debugging issues Unit test and debugging tools J6 processor with QNX QNX momentics IDE 11-30 seconds MISRA coding standard when it is doing more than what it is expected NA 30 60 10 Challenge in putting our thoughts and ideas onto a system Time munching coz of different tools and depedencies Nothing. To understand what TDD is all aabout and what is the value added by TDD to the product, my skill set and to my company. Show
9 10 C++ C#, VB.NET none I mostly work on Windows desktop app and services. Lately I also developed some Web Services using WCF. Manually doing unit tests after implementing changes/new features. not yet defined Visual Studio, Borland Turbo C++ builder, Embarcadero RAD 31-60 seconds Try to stick as much as possible to the coding standard used in legacy code I work on. When it does too many things consequently. Usually do code review within our development team (3-4 developers) 40 % 30 % 30 % You can do the same thing in many different ways. I like optimizing stuff. In large projects I don't like if there are too many external libraries involved over which you have almost no control. Bugs. I know the basics of TDD - attended a short presentation on TDD within our group some time ago where I learned "write test functions first and then the real code" Want to get some deeper knowledge and learn how to use it in my existing code. Show
Less than one year More than 17 years C Assembler, C++ None Embedded development is my hobby Step by step ARMs IAR, Eclipse, NetBeans, Keil 11-30 seconds Doxygen style comments and simple human readable code When it does more than one thing I don't have experience with reviewing other people's code for production 40% 30% 30% I really enjoy when something that I have imagined and then created starts to work Many hours spent because of one stupid bug 1. Test code must be written before production code 2. Production code must pass all tests 3. Tests must be written for production code to fail if it does not meet specifications I want to use TDD Show
4 15 C C++ none Working on embedded platforms as Analog DSP, TI DSP, Cortex M0,M3,AVR,... with debugger: monitoring memory, variables. Functional testing without debugger. embedded platforms mostly based on micro-controllers and DSP's Code composer, Atmel studio, Visual DSP++ 1-5 minutes x when it can't be displayed in 1 screen x 20 30 50 -software brings hardware to live. -not a monotone work, because I work on different embedded applications. -challenge with limited platform resources and application requirements. - debug, fix code from other programmers. - hard to catch bugs - difficult to reproduce. - start programming from the scratch. nothing Company decision. Show
12 12 C, C++ Arm assembly / Fimrware developer, system designer, RTOS kernel designer 1) Unit testing, but not methodologically and systematically. 2) SQA department ARM Cortex M7; Running Quantum Leaps GCC, JTAG debuggers 11-30 seconds Unit segregated in concise, clear functions. Well defined API. High cyclomatic complexity, high "wtf" factor. Code reviews tends to discuss personal coding style rather than reviewing code. 30 10 60 Creativity Potential for failure, bugs that show up once released. It's a design approach that designs a test before the actual code. In theory produces better code as the code is more modular and with less independence. Good for production, bad for early prototyping. We're trying to embrace TDD in our development flow. Show
2 2 c c#, Pyton / / Manualy Linux gcc, netbeans 1-5 minutes / / / 40 30 30 I earn money. I do not earn enough money. Speed up the process. Because our company uses TDD. Show
12 18 C C++; asm; / embedded hw/sw developer regresion / / 11-30 seconds / / / 30 60 10 / / not much adopting best practices Show
2 14 C asm, VB none M.Sc. and Ph.D in electronics - HW/SW co-design Experience with FPGA, microcontrollers, limited in Win .net apps Mostly ad-hoc in the current project. Used plain "hand made" functions as unit test harness at function level testing. In Visual studio I used MS built-in testing framework a couple of times. Embedded linux Netbeans IDE, remote build server (gcc based), svn 31-60 seconds Mostly standard C, but prefer camel case over underscore separator, macros in caps, tend to keep it readable in multiline :-) When it is difficult for me to follow the flow. If long in lines, but readable nicely, I keep it Using Fisheye/Crucible 33 33 33 Freedom in creativity to give "life" to void silicon the way I envision it Fixing legacy code or maintenance Understand the idea, but don't have much hands-on knowledge to apply straight into the current projects Want to learn the techniques so I can make my coding more efficient and reliable. For real!!! Show
5 5 C C++ cunit? moved to software 5 years ago from hardware Component testing mostly, very little unit testing. multiple platforms (STB) gcc and vim 1-5 minutes not sure what is meant here - we use coverity and safec libraries? they are all too long! gerrit 20% 40% 40% coding - when you start something new is better fun than digging into existing software and modify debugging very little I hope it will be useful Show
4 20 C Java CUnit JUnit Dislike filling in questionnaires CUnit, CppTest Embedded Linux STB Eclipse 5-30 minutes It must be readable. When more than 2 pages on a screen Gerrit, all team members receive the review 30 40 20 Problem solving waiting for builds and test runs very little because tdd sound usefull Show
5 20 C C++, Python, C# CPPU, gtest Love the outdoors. Interested in physics and cosmology. I became a father last week - the mother is an astrophysicist! I own a high end virtual reality headset and I'm interested in tinkering with in Unity with that. Component, Full stack, Continuous Integration. I've recently been introduced to the CPPU test framework. set top box software for satellite broadcasters. Very large code base. git, gerrit, eclipse, sublime, vim, continuous integration, jenkins, coverity 30-60 minutes I should probably look that up again. When you can't see it all on one page. We use gerrit. Sometimes pair programming. 30 40 40 It's creative, I'm always learning. Nothing ever works first time. Maybe TDD can help with that :-) Can massively reduce test times. Much more iterative. Tightly coupled with development. It sounds like a good approach. My manager has been keen to get me on this for some time now. Show
1 10-15 C C++ Nothing standard Mainly worked in embedded area of development, device drivers and BSP Functional level validation with manual and scripts to cover code paths. Settop boxes GCC, GDB, Python scripts, vim, cscope, source insight, eclipse 5-30 minutes Follow the Organisation standard coding Guildeines Usually when it crosses certain number or lines gets deep in indentation. Usually done through Gerrits and other peer level reviews 40 20 40 I like the way I can have our imagination being written in software and see the computer doing the job efficiently. It can get complicated at times. Only abstract. Like write your software such a way that it tests itself resulting in efficient testing and debugging time. I want to improve efficiency in my software development. Show
7 24 C python js perl Cunit CppUTest Have a chat! A combination of: unit test - newer initiative to use CppUTest to test new features component test - historical test harness, large mock harness around component in test integration test - creating new standalone test cases in C full stack manual testing - exercising customer usecases with end to end intrastructure cross compile from build server(s) to STB H/W mainly 1-5 minutes Coverity being rolled out, but more tailoring of rules required when it's purpose and basic functionality cannot be easily remembered Gerrit 15 50 35 Seeing a new feature taking shape from design to functionality. Technical debt building up in code or test harnesses. I know the principles - putting it fully into practice is not always straight forward. In our project, the benefits of unit testing is being seen over the existing component test frameworks. While I have been using CppUTest recently, I have learnt it on the job without formal guidance or introduction. Show
10 15 c a bit of python a long time ago C Unit Im a System Integration Team Lead, this involves integrating 50 odd components, a dozen of which are developed by the customer (epg drivers). Full stack testing is run in Jenkins, there re approximately 70 testsscript driven tests than run on all flavors of the build (builds being production, release debug debug). Depending on a go/no test it gets delivered to the customer. Typically there are 3or 4 builds a day. The process takes about 3hours to complete. Linux source insight 2-4 hours We do have one! its been ages since i looked at it when it dosennt fir in your display We use gerrit for code revies it has to be plussed +2 to deliver 5 30 65 its been to long since ive developed meaningful code, entrenched in full stack integration see above TDD to me is short repetatvite tests I want to refresh skills Show
5.8 37 C C#, years ago Delphi DUnit Electrical Engineer - Analog. Now the Firmware Manager (and the Engineering Manager) Started unit testing back in about 1997. Contributed to DUnit on SourceForge. Did embedded C testing using DUnit with C++Builder and Delphi. Just starting to use AceUnit Various ARM based microcontrollers (M0, M4), Coldfire based ASICs Keil, Visual Studio, Eclipse 11-30 seconds Fairly minimalist coding standard - created by the group I imagine I'm writing unit tests. Once the number of pathways gets too high I break it up. Jira - Crucible - the coding process requires a review before a merge back to the trunk 30 30 40 The problem solving The time pressure I've done it at a prior job. All the way down to writing a simulator for the hardware. Had a database as well. Good times. I want to improve the skill set of everyone in firmware and software development. My TDD skill set is outdated. I need to know what you teach and how so I can assist with the post-class learning. Show
5 30 C, C++, C# Java, SQL nUnit I love to fish and camp. Manual Microcontrollers, Windows Keil, Visual Studio 31-60 seconds It's pretty standard Generally more than about 100 lines of code. Lacking 50 25 25 Everything but especially the challenge! Nothing that I can think of, except dealing with Sales/Marketing! ;-) Test functions are written against production functions to ensure they do what they are expected to do, such as return proper values, return errors on improper parameters, etc... My boss signed me up for it! :-) And, truthfully, I'm interested in learning it. Show
5 0 Very small amount of C++ Will be learning C# None I enjoy riding and racing motocross in my spare time. I don't as I have just recently started to learn programming. . Visual Studio 1-5 minutes Don't have one yet but will try to follow what I learn from my coworkers Not sure Haven't had one yet . . . Seeing a result of your actions Nothing so far Not much To learn about TDD as all of programming is new to me Show
0.25 6 C C# none I am both a hardware engineer as well as firmware/software. Beta testing finished code to find bugs. Not ideal. High-level GUI on PC, down to low-level, real-time embedded C. Visual Studio, Keil 1-5 minutes Company When it executes multiple actions that should be refactored into separate functions. Organized via Crucible in conjunction with Fisheye (Atlassian) 40 20 40 No delivery lead-times, as with hardware design. Debugging it. Not much. Technical management feels like this will help us (engineers) produce better perceived value to the customer through more reliable software/firmware. I agree with this. Show
Almost 2 12 years C C++, C# AceUnit, VisualStudio's C# unit test, a little CppUTest I grew up in Spokane, Washington. I graduated in Electrical Engineering with an emphasis on embedded systems. I minored in Japanese. My wife and I just had a baby girl last week. I have been a proponent of unit testing, but never had a clear framework or training on how to go about it. Since working at Cirque, I have been starting up a new repository that was meant to be flexible and the only repository of our code. To make that more manageable, I've been writing unit tests all along whenever I ported something to this repository. Chiefly embedded micro-controllers Visual Studio, Kiel (ARM-based projects), Various versions of Eclipse as put out by microcontroller vendors. 31-60 seconds We have a standard for look-and-feel (naming conventions, brace placement, etc.) to keep the code readable. Good question. We haven't gotten that far in our coding standard We use the Atlassian tool Crucible to manage code reviews for non-trivial changes. 55% (including planning/diagramming) 30% 15% I like having a problem to solve given the constraints of a system or product, whether that is a product feature or a requirement of how the code needs to be structured. I like the idea of driving efficiency and making things make sense. I don't like repetitious work unless it is a one-time thing. I've read your book, but had a little bit of programming experience and training on it before, but never stuck to it. I get the basic pattern down, but all the related principles, like code-smells and SOLID, haven't become ingrained yet. I'd really like to learn TDD well enough to keep the practice going. However, I also want to be able to help classmates so everyone keeps using it as a useful tool. Show
15 33 C C++ None I am married. Manually. Windows OS Microsoft Visual Studio 11-30 seconds I have no standard. The function is too long when its length creates problems. They are slow and painful. 70% 10% 20% I like finding solutions to challenging problems. I don't like routine coding. A general idea. Because it was recommended (required?) by the company management. Show
27 36 c assembler, c++, scripts none I prefer the simple solution. Test if it does what I meant for it to do. embedded microcontrollers with lots of human and computer real time input lots 1-5 minutes my own, varies depending on application length is not a useful criterion they are pro forma and a waste of time (they happen too late in the process) 10 10 30 solving problems constantly being forced to use someone else's crappy code what I read in the first few chapters of Test Driven Development for Embedded C management plan for our group Show
15 27 C# C++, C na I enjoy the outdoors GUI interaction Win 10 Visual Studio 11-30 seconds na na na na na na Solving things and coming up with a beautiful result na na Assigned by manager Show
6 25 C# perl python none I am primarily an analog IC designer. I write C# code to test my ASICs My code is for internal use only Manually compare to expected values Windows 10 Visual Studio 2013 for C# 31-60 seconds it varies When it is hard to read internal use software so colleagues tell me if there is a bug. 60 20 20 clicking on a button and watching the screen show what I created debug just heard of it but it sounds like a great idea to learn a better way to write and test code - really I am excited to learn. Never had an official class on programming so I am really a hack Show
6 35 C C++, bash, Perl none I like coffee O-scope, logic analyzer, breakpoints, watch lists, throw-away stimulus codd various ARM micros GNU, Keil, other vendor IDEs Under 10 seconds 4-space indents, curlies on the next line, camel case functions When I can't follow and understand it with the compiler in my brain knowledgeable peers 60 20 20 Making my thoughts and creativity manifest in the operation of a digital machine. Time constraints It's yet another coding methodology (of many) that has a pseudo-religious following. The difference with TDD is that it actually has intuitive merit. I'm genuinely interested in tdd and what can be gleaned from it to add to my own MO. Show
8 15+ C++ Python Boot Unit I'm planning to watch the new John Wick movie this weekend. Ad-hoc, primarily. Automotive Infotainment Eclipse, Emacs, gcc, gdb, python Under 10 seconds I wrote it based on Misra, Google C++, and a few others. Nobody follows it. When it does more than one thing All check-ins must be reviewed. We use an online tool called Code Collaborator 75 5 20 Writing elegant, robust software. I also love deleting code. Other people's code. As I understand it, the idea is to drive your development forward one test at a time. Start by creating a failing test case, and then implement just enough code to make that test case pass. Rinse repeat. Honestly, I don't think TDD is a good idea. I am attending only on the off chance that I might be misjudging it. Also, with the company pushing TDD, I am obligated to at least understand the particulars enough to be able guide my team in using it. Show
0.5 6 C++ C, java inner private UT tools interesting in programming and any other things in computer science. get it running in the production environment, analyze the log QNX , uITRON eclipse, gcc , jdk, rtc, svn 1-5 minutes readable, simple longer than two pages in my monitor face to face, discuss about the changes 20% 50% 30% It's a creative work. there are two many processes when you are working in a huge project and many other works other than developing. 1.write test code before project code. should be test every time after you change the code, they won't miss any test code. 3.not easy to write I want to learn how to use it in my project to see if it could save my time. Show
0 6 C++ / JAVA Python None I'm a software engineer, I don't have real embedded programing experience write test by myself Android Android studio 1-2 hours high base the lines of this function medium 50 % 25 % 25 % can create some really cool stuffs debug only the name and basic concept really want to learn something about TDD Show
1 7 c++ & javascript python java not yet I'm not a robot Manually Android Terminal, IDE and Hammer 31-60 seconds American when it overflows as long Good 50 70 80 when it's almost completed when it just started we need it. it sounds fun to me, why not? Show
2 12 C C++ Mock Client/Server for input and verify logs/prints for output My area of expertise is wireless network communication protocols like Bluetooth and WiFi. Most of time I'm involved in developing middleware software on these communication protocols. Most of the time I mock input from client/server to middleware and verify the output in logs/prints. Since there is a third-party dependency on lower layers, most of the times it is difficult to mock the device behavior. Automotive embeded systems QNX IDE, Enterpeise Architect, UML 5-30 minutes PASA coding standard, C99 multiple actions/logical blocks, number of lines PASA code review guidelines using collaborator 40% 40% 20% Using the tools, methods and best practices to create or enhance re-usable software modules within the estimated time. Writing a piece of code never gets executed. Writing throwaway codes. TDD helps in visualize the use-case and write test cases first. Helps write only necessary code. Spend less time in debugging and reduce the integration testing time. I would like to understand how to mock asynchronous events from lower layers and application layers to simulate different timing conditions observed in the field testing. Show
11 16 C++ C, VBA CppUnit Expatriate from Japan and have some experience of TDD in embedded software Using log output QNX QNX momentics 1-5 minutes following MISRA-C and company original standard when the line of code get more than 100 lines using code collaborator 10 30 60 write down my own idea in code, and let something work. improve efficiency very much many environmental issue happens and blocks development Create test code based on requirement at first, then create actual code. To learn practical TDD especially done in USA. Show
5 5 C c++ Logging I Mainly get involved in Feature design , Interface design and Coding. Using Debugger , breakpoints and from Logging. Target system based on TI chipset ( j6) and QC S820 ( Os QNX,And android respectively) QDE , Android studio 1-5 minutes Structured , Properly formattaed ,Good Naming Convenation So easy to maintain and debug (1) if a function has nested loops (2) If there is no use of re-usable code We have a process of 2 code reviews ( using tools code collaborator and geriit) 40 30 30 Like to do programming and solve challenging problems. Not applicable. No earlier experience on tdd . just started learning about tdd recently and it looks interesting and useful. to improve the code quality , spent time efficiently , and found more defects in early stages. Show
2 7 C Java, C#, VB, .net None Never used TDD before Test each portion of the code as I write it Amplifier debugger, serial logs 1-5 minutes Pana standard When it is doing more than a couple things Relevent developers checking changes 45 20 35 The process of creating something The stress that comes with the job basic information on test cases and the process of testing your code as you are developing it My manager made me aware of it and offered the training to me Show
3 14 C Assembly manual testing Linux device driver, board bringup Manual testing ARM RTC 1-5 minutes C Depends on how its impelemted. in general not more than 100 lines. Simple, parameter checking, error handling, overflow, resource handling 50% 30% 20% new codes repeated codes Software should have interfaces/functions exposed to testing the functionalities implemented. How can we enhance test capability of software and find issues at early stage. Show
4 9 C++ C HU I am SW Lead of a program developed by Panasonic. Have been working with automotive domain for the last 4 years across various areas. Test stubs and simulations HU RTC, GDB, Source Insight, USB Sniffer, ValueCAN 11-30 seconds MISRA When it goes out of traceability Short, in-person to discuss all impacting usecases 3 2 2 Innovation and learning new ideas Debugging memory corruption issues Its a programming technique where we can be test ready before implementation. I want to learn new ideas to improve my skillset and contribute in a better way. Show
9 9 C C++ gtest I am having difficult using unit test framework on database management routines. I unit test by adding test stubs and faking the events. QNX QNX 1-5 minutes follow PASA coding guidelines when code contains logic use code collaborator for review. 60 20 20 Seeing your code translating to a user experience. Resolving external dependencies. Just Basic To understand if tdd is actually helpful in development. Show
8 5 C/C++, Java xml No believe testing is as important as developing of software. And it requires effort to do it efficiently self Android/QNX Android Studio, QT editor 1-5 minutes Misra When in generally expands more than 20-30 lines gerrit 40 30 30 Solving problems and working on features which end user can use. Bugs It is framework to test the interfaces between modules and remove tight coupling between modules. I am coming with open mind and wants to understand usefulness of this training. Show
3 8 C++ and Java VXML Junit - Manual testing develop -> flash it in hardware and check. QNX and MFS QDE and GCC 11-30 seconds Google coding standard Max 50 lines - 30 mins 2 hr 1hr Yes. I always feel developing a baby by creating a software. That is going to help everyone in day to day life Living with old existing poor design how to make it simple and easy to use looking for design solution to make use TDD in easy ways with my existing design Show
0.5 3 Matlab C, C++, Python None I have a background in Physics and have primarily experience with scientific programming. Send some input to it and see if I get the expected output. If not, I'll step through the code to see where it went wrong. Microchip PIC32 MPlab x 11-30 seconds MISRA C: 2012 When I loose overview of it Small and fast. We are working on improving code reviews 50 20 30 Using logic to solve a complex problem. When code doesn't work because of some feature I do not know about Not much Because I want to learn to have a more structured and result-driven workflow when programming Show
3 28 C# C NUnit, VSTest Online gamer - Rainbow Six Siege has my gaze at the moment. Automated tests developed in parallel. Some TDD development. Windows Embedded - but future will be Arm Visual Studio 2013 + Resharper Ultimate, some Keil Under 10 seconds Resharper Ultimate enforced + Company Standard When it is doing more than one thing. Typically 10 lines or less. Normally single colleague using Atlassian Crucible. Critical code will be author presenting to reviewer. 60% 35% 5% Delivering high quality features that users want to use. Nothing Lots of theory, worked with teams that use it extensively, only used it a little myself. My background is 16 years at Microsoft, using agile approaches. I switched to embedded 3 years back and found an industry 20 years behind. Keen to seem TDD paired with embedded. Show
1.5 8 C C#, Python Parasoft C/C++Test, Unity, VS Unit Test. I've spent most of my time in my current role fixing bugs and adding features to legacy code which only have manual tests running on target so I am looking forward to moving to a TDD process. C# - Unit testing and integration testing. C - Manual testing. Started unit testing this year. STM32 Keil uVision, Parasoft, Eclipse, Visual Studio. 11-30 seconds Small development team with similar styles, coding standard is not really enforced. When it does more than one thing. We use git pull-requests for small iterations then Crucible for final reviews of full code. 5% 70% 25% Solving problems. Paperwork and manual tests. The principle. I know that you start by writing failing tests that state what you expect the function to do and then you write the function to get the tests to pass and you change the tests / function as you understand the purpose better. I've only been introduced to TDD in the past year and it seems like the correct way that all code should be written but I find it difficult to stick with the mindset as it takes a while to see the benefits. Show
3 25 C C++, C# Parasoft I enjoy dealing with hardware. Testing, debugging and validation Embedded Keil, MS Studio 1-5 minutes IEC 61508-3 and MISRA-C More than 10 lines long Peer reviews 40% 40% 20% The process of producing a final product and the mental exercise of producing code. Having to maintain poorly written code. At a basic level. To develop new skills, develop software faster and safer. Produce better software which is maintainable and scale-able. Show
1 48 c c# assembler basic c++ Python CppUTest Parasoft Old and jaded Unit testing and functional testing STM32 embedded systems Visual Studio with VisualGDB plug-in and Keil 11-30 seconds Company specified When I stop being able to follow it What's to say? 50 20 30 It is fun The associated paperwork Not much I was booked onto it Show
3 3 years of embedded C (aggregate over several years) C Python, VHDL, Verilog, Matlab None BSEE and MSEE. Long time (24 years) RF hardware engineer. During that time have intermittently wrote embedded C. Did a 7 year stint implementing DSP algorithms in FPGAs (Matlab and VHDL) for military RF modems. Writing embedded C about 60 % of my time now (RF hardware the other 40%). I love programming and want to become an expert in that area. Old dogs can learn new tricks and have fun doing it. Manually ARM Cortex M4. GPS, Bluetooth, UHF RF transciever gcc compiler, VisualGDB and Visual Studio, Segger J-Link debugger 11-30 seconds Nothing formal. Small company More than 1.5 screens long and difficult to explain to another engineer None (I know this needs to change) 30 30 40 I love the creative process of making a new product work. For many years I always designed the hardware and someone else did the code. Now I am doing both and it feels empowering to understand both disciplines. It is fun. I hate it when our customers have bad experiences with our products because products were deployed with bugs. Have read about 50% of your book. Plan to finish it this weekend before course starts. Have listened to episode 109. Have watched Bob Martins 3 laws of TDD a couple of times recently. We are hiring more engineers soon and I want to have the entire team doing TDD. I want to become an expert embedded firmware engineer also. I believe TDD will be a critical part of this. I want our company to succeed. Show
2 4 C C++ None I sustain legacy code, wherein we have requirements to use TDD code when adding new features for rapid response projects. Regression Tests C166 uC, AVR Xmega JTAG 11-30 seconds Since I am mostly sustaining legacy code, I follow the protocol that is already in place To be honest, not sure. I would frankly say, when readability or performance suffers for the intended purpose of that function. We have informal reviews with my mentor and I, and formal reviews whenever I am publishing a new framework. 40 20 40 It is exciting to control something very efficiently, to see how the 'pixies' in a MCU work during run time. Changing requirements, working with legacy processors, and obviously over-buggy code. It is a tool used to develop tests prior to developing code, this leads to less bugs in the lifetime of the code, which means a less costly development process I am genuinely interested in learning TDD. So many electrical (not firmware) engineers blow of TDD as a bloated requirement. However, I believe there must be value, or else embedded people would not be interested. Show
20 25 C/C++ Python, Matlab Pytest, C# Unittest involved in biomedical research, typically a combination of hardware and software. Historically mostly PC programming with some embedded, but embedded projects are increasing. I am an electrical engineer with mostly self-taught programming experience. No formal methods used regularly. Methods change depending on specific project and team members. varies usually Code Composer Studio for embedded C projects Under 10 seconds varies with project generally use page of text rule-of-thumb, or can no longer simply state what is does mostly self-review 60 20 20 The general design aspect of it, seeing a project develop and become usable in solving a problem. I guess the final stages or maintenance...taking care of the more trivial things Basically, I have read some blog posts on it. I'm looking to see if more formal techniques like TDD or Agile can be applied to our small group (research-oriented, mostly one-off prototypes). I want to improve my own skill sets and hopefully improve productivity. Show
4 4 C VB.Net, C++ none I have my degree in electrical engineering. Now I'm doing all programming. So there are some fundamental software development courses I never took. Before learning about TDD, it was tested on the hardware, with my fingers crossed it will still work when out on the field. Now, I've started taking any new code I write, and testing it in a C++ environment on my PC (but not a unit test). Microcontroller running inside of an AC/DC power supply. MPLAB X on microchip. However, we are moving towards ARM (I'm unsure on what tools we will be using for that) 31-60 seconds MISRA-C, as well as an internal coding standard that is enforced by Coverity and Jenkins. (I just follow MISRA-C and I haven't been yelled at during code reviews) When it can't fit on my screen, or there are more than 2 nested 'if' or 'case' statements. We will work on code individually, then the person will issue a Pull Request, and all team members will review each others changes. If every team member agrees the code is good, the PR is merged. 10 50 40 It keeps me busy, and I enjoy being able to write a piece of code, and test it immediately (no need to breadboard a circuit, or get a PCB fab'd). Bugs, and testing. In hardware, you can just change a capacitor to change that RC filter, without worrying about negative overflows and untested boundary conditions. In firmware... First, write the test, then write the code. Then test the code. There are other details (I have your TDD book). But, I don't fully understand the process of actually writing the unit tests, or how to best execute them. I need less bugs in my code. It's hurting our business and our customers. Show
2 6 C C# None Embedded C developer Functional testing Power supply MPLAB 1-5 minutes Defined Does not fit on screen at normal zoom Weekly 10 50 40 Design aspect Debugging Write tests first, make sure they fail, then write minimal code that makes tests pass Less debugging, more code confidence Show
7 months 6 years C MATLAB, C++ CppUTest, Unity I collect CD's and the occasional vinyl. Unit testing and manual testing for code that interacts directly with hardware registers. Microcontrollers in a power supply Code Composer Studio, Eclipse, MPLabX, Cygwin 1-5 minutes It isn't very strictly adhered to. It's recently been updated and some projects have been slow to adjust. If it's started taking on multiple responsibilities. A function should be able to do one thing and do it very well. Team wide code review of ONLY 1 hour a week for all code that gets written. I would much prefer a tool like Collaborator to the current method. 30% 30% 40% Seeing the code do what you expect it to. When the code does what you tell it to, but it isn't what you expect. Red, green, refactor. Write a failing test, write enough code to get it to pass, break repeated code segments out into functions. To gain a deeper understanding of TDD. Show
4 15 C C++, JAVA, Java Script, perl, Pathon unity I am a EE background, but like to code. Manually Cortex-M GCC, GDB, 1-5 minutes No official When you can't describe the function in one sentence Gerrit 10 20 70 Logic work Debug other people's code Just learned the concept. Haven't get a chance to apply Want to learn more about TDD and apply it to my work. Show
2 20 C VB, C# LDRA I live in Tucson, and I have four cats High-level requirements-based test plan Emergency lighting application using PIC16LF18346 MCU MPLAB-X 11-30 seconds MISRA (used informally, checked via PC-Lint) 100 lines or so max, and if similar code is repeated more than once Not enough software people at my company to do code reviews, use PC-Lint instead 25% 25% 25% It allows me to express my creativity Requirements definition (people are always changing their minds) Not much Director of R&D thinks it is a good idea Show
2 10 C assembly n/a I have not developed much software since 2004 functional, pc-lint Microchip Microchip 11-30 seconds MISRA when it becomes hard to read n/a 50 30 20 software/hardware interaction debugging very little, only in reading To better our software quality Show
13 25 C# Java, C, C++, Python None Live in Cincinnati Ad-hoc method, nothing formalized. Windows, Linux Visual Studio, Atmel Studio 1-5 minutes Some projects I work on enforce them, some do not Some projects have coding standards about this some do not. We use Code Collaborator on projects that require them. 25 37.5 37.5 The beauty of the elegant transformations of data. The substitutability principle in object oriented design. Concurrent software design. Documentation. Just a little. I worked on a project with someone who was really into it. I was impressed with how he much thought he gave to testing in his designs. I would like to bring some helpful techniques back to the office. Show
13 20 C/C++ Not much others None I'm a half manager and a half designer. Yes. Embedded Linux System GDB 5-30 minutes Common sense When you do different things in one function Peer review using Gerrit 20 30 50 Solve problems. Quick feedback on the results of software. It's fun. Spend too much time on debugging. Spend too much time on setting up test environment. Not much. I'm just curious. Show
5 30+ C++ Java, Ada, Python google-test, cppunit, pytest, junit Telecom embedded and software development tools experience unit test, system test, valgrind, debugger Linux, Windows, Solaris, HPUX, AIX Eclipse, Visual Studio, platform specificompilers/debuggers 1-5 minutes We don't have a coding standard. Lots of legacy code from different products and companys If its more than the view size I use to look at the code. I.e. if I have to scroll its too long. Strong proponent of code reviews. 15 15 10 designing good to solutions to difficult problems supporting multiple platforms ;-) Some knowledge. Evaluate to see if others should take it. Possibly learn new testing patterns.u Show
3 6 c++ java, python, bash, lua, javascript, html Jenkins + pytest something else. We have unit tests that run on git push and a coverage report that will +1 or -1 the code review, when code is submitted component and integration tests are ran. Centos system ssh, ftp, eclipse, pycharm, vim 1-5 minutes We don't have one we try to avoid religious battles. the only rule is when modifying a file use the original authors style. Our rule is if it doesn't fit in one normal editor view or contains repetition. Code is checked in and must receive a +1 from builds +1 from two team members and finally a sr member +2 and submits the code. 50 30 20 Creating something out of nothing but a few or a lot of words :P Red corporate tape. Only what we have been doing witch is writing unit tests and components tests before we write the software. One i was volunteered but i would like to get better and TDD so that i can bring these skills to my team. Show
8 8 (In addition to programming at home) C python, java, c++, c# cunit, cmocka, ctest I have a Masters degree in Electronics: Communication and Radio Systems. Currently managing the Software Department for Nordic Semiconductor in Oslo in addition to being one of the developers. Ideally before writing the code, but I do write the unit tests after writing the code. I also try to make a test to run the changes on target device. AMR Cortex-M0/M4 Keil, gcc, cmake 31-60 seconds We have adapted our own coding standard and it is close to misra c but not as restricted. When you have problems explaining the functionality of the function We have to have a code review before the code is pushed to master 35 45 20 Sometimes you have interesting problems that need to be solved, and I like solving problems and debugging issues. Interesting conversations with colleagues. Having too many people working on the same code and maintaining different products with a lot of branches. Spends a lot of time in merges and resolving conflicts. TDD helps limiting the amount of code required to achieve the specification of the goal. No "dead" code and verify if any of the existing functionality changes. A lot of colleagues have attended previous TDD courses and recommended doing it, especially since it was you holding the course. I would also like to get a bigger motivation for writing the tests before the implementation. Show
1 5 C C++, Python CMocka On my spare time I like to do outdoor activities, especially rock climbing. Unit tests and target tests nRF52. An SoC designed for low power wireless applications, mainly Bluetooth LE. Keil, Visual Studio 30-60 minutes We have our own coding standard. Using some parts of Misra I think. We do have a lot of (old) code that don't follow the standard however. I don't know.. But a function should be comprehensible and the cyclomatic complexity must be limited. We use CodeCollaborator. We have very productive reviews. Recently we started doing review kickoff meetings when the review is big or complex; this has been very useful. 40 30 30 Designing, discussing and implementing new features. That the requirements and priorities of the software changes quite often. That all the code is supposed to be unit testable and that you're supposed to write the unit tests before you actually code anything. I heard a lot about TDD and would like to find out if this is something I can use to become a more efficient and structured developer. How can I actually write unit tests before doing the coding? Show
3 8 C and python Rust Cmock, cmocka I play drums and guitar. Call me and we can jam! What about some good old CCR, or Hendrix? I don't :( Nrf52, a cortex m4 with a 2.4 ghz radio Vim and git (youcompleteme for semantic auto completion in C) 11-30 seconds I disagree with it (don't we all?), but at least we got one, a comprehensive list with rationale for each point When I can't fit the function on one screen page Through atlassian stash, not obligatory but recommended 30 0 70 I like design, and I think tdd brings some interesting mechanics into the api and structural design Others code ;) On a serious note, I hate trying to convince the managers or the group that code review and unit tests is time well spent. Not much. Bought your book but did not read it yet. I find it hard to actually implement Tdd in practice for embedded systems. Do you test static (private) functions, and if so how?), how do you test a hal? How do you test code in irqs? How do you test code that relies on hw timing? Show
17 27 C/C++ csh/bash/python google test programmer on purpose google test framework multiple, ppc family as well as arm, x86 for tests gcc, proprietary build system, git, google test, visual slickedit, salea logic 11-30 seconds company specific, camelcase starting on lower case, brackets like pascal depends, when it can't fit in my editor window peer reviews before code is submitted 60 30 10 controlling the invisible machine controlling hardware with software, like LEDs documentation got your book in the dead tree edition :D writing unit tests in current project I want to learn the rules/theory/background of TDD properly. Show
1 9 c python, assembly JUnit (very basic, a long time ago) I'm from Scotland (but now living Trondheim) continuous integration test suite (I write tests to test HW, but they can often fail if there is a code bug, and I sometimes write a few unit tests for key functions, which also runs on CI on the test HW) ARM M4 ASICs and FPGAs SCons, GCC, GDB, Git, Stash Under 10 seconds Company wide standard traditionally ignored by department, trying to reverse that, and add additional department rules general impression, code review vague guidelines of when they are required, usually 2 reviewers on a major change (except TCD additions/changes where they are mandatory, and should involve other testers and HW designers) 50 20 30 problem solving dealing with legacy code vague knowlege - a couple of lectures at uni (part of an outside subject comp-sci course early in an electronics degree) I write and maintain embedded C tests (to test the HW). I think TDD ideas could be applied to our tests. I think our test framework (lib functions, test framework, and possibly tests) could be more robust using TDD Show
1.5 12 C Python Catch ee and digital design background, father, choir singer. DIY, Unit tests, hw-sw integration tests Cortex m4, rtos eclipse, IAR IDE, visual studio 5-30 minutes Fairly standard +misra + iec61508 Experience, levels of indentation, reports of cyclomatic complexity Bitbucket pull requests + checklists 40 30 30 Enjoy giving life to hardware, making hw work No particular dislikes The principles, some skills and methods Formal training, new input, hope to get ideas about specific problems, more social than reading your book, see where we stand compared to state of the art tdd for embedded Show
3 20 C Python, C++ cunit, unity no unit, target arm cortex m4 cmake, keil/armcc, gcc 1-5 minutes Misra based number of lines we use code collaborator 40 30 20 Getting things to work Things that don't work Write tests first, then make the code To learn TD. Show
1 5 C none none Electronics Engineer by job. Needed to be Jack of All Trades Mostly manually Very hardware centric system (hardware monitoring and interaction) MPLAB IDE, JIRA, SourceTree, GitBucket 2-4 hours Unified coding standard in the company When you dont know what it does Peer reviews. 30 30 40 Creative aspect documenting Very little Got an opportunity to learn about TDD. We do not use it completely yet (because we are an hardware company first with simplish software), but we slowly are moving into that direction Show
2 3 embedded C none Jenkins - Jenkins but mostly real life equipment Supercapacitor Module Mplab X 1-5 minutes NetBSD's style guideline It is not intuitive to understand anymore Done inside and outside the team 30 30 40 Developing new products gets the creative juices flowing. When the embedded C just doesn't work for no apparent reason The bare basics To learn something new which might help us accelerate with module design. Show
6 5 C C++, C# Catch mainly developing the Firmware We have automated test framework based on Microsoft MSTest in Visual Studio. Also, we are using Catch as our unit test module in some projects. Also Google Gtest is used (although i have no experience with this). Low voltage drives used for electric motors Visual Studio code as editor, IAR ARM compiler with IAR debugging tools (I-Jet JTAG), Lauterbach Microtrace for tracing. Also oscilloscope, logic analyser etc. 5-30 minutes We have our own coding guidelines, based on C++11 When you start to forget it´s purpose We are using codecollab and over-the-shoulder reviews 30 40 30 Challenging issues Probably dealing with product managers and sales teams. Only some basic principles like "writing the small test case beforehand, that fails and then develop until it passes. etc." My boss sent me. They are interested to see, if this is useful for our team. Show
1 5 C VHDL, Java JUnit under Java. I work on embedded systems, main area currently is UWB radio and writing communication drivers. Debugging through. TI ARM and MSP uCPUs. Code composer studio v7 31-60 seconds Small functions, keep modularity I have to scroll through it. Small team discussions. 20% 10% 70% Problem solving, instant debugging and testing available. I dont always know if the module is safe enough and is the hardware i am developing functioning properly. TDD development cycle, few harnesses (ceedling), and for embedded development, lots of mock functions. I am paranoid about my code. Show
0 15 C++ C None Been in software development for long time, but now have started my job as Tehcnical Project Manager. By checking it works. Multiple GCC 31-60 seconds Not more than 40 lines per function, not more than 80 characters per line. More than 40 lines. Very few 50 30 20 Able to create new things. Becomes too routine sometimes. Have heard about it, but not actually used. To be able to create some rules on coding in our team. Show
9 12 C C++ Our own test harness I enjoy music We can write unit tests and module tests, but I mostly write code very close to HW and we write too few tests in that area. Nvidia Tegra X1 (ARM Cortex-A57). gcc, clang 11-30 seconds We don't have one written down, but tend to agree through discussions When it does different things and becomes difficult to understand We use a mailing list 50 5 45 I like to help create useful products Going back to fix bugs. I have practiced it a bit, but would like to do it more. I would like to write code that works and stays working with short validation iterations. Show
10 18 Cpp C, Cpp, GLSL, Python, Verilog, System Verilog, VHDL none Have been working with embedded SW/GPU programming the last two years. Before that I designed/programmed FPGA's. Main subjects have been within signal processing and digital design. Mostly by visual evaluation of video. Telepresence systems Emacs, gcc, proprietary build system 31-60 seconds Doesn't have one - intentionally When it fills more than one screen page Doesn't do 30 40 30 - Solving difficult problems - Getting quick feedback Difficult debugging, and in particular that it is literally impossible to estimate how long it takes. Have attended some courses, but none directed towards embedded systems. Have a basic TDD overview and buys into the advantages. I would like to find a way to always use TDD also for video processing applications. Show
14 15 c++ python, javascript cpputest Originally electronics engineer, but haven't touched hw in a long time. I am mostly doing sw application and gui development. Aside from work I currently have two small kids that keep me pretty occupied in my spare time. Mainly using the Cisco Lysaker in-house "helmet" test system. This is more a integration test system than a unit-test system. Video conferencing box or host running on pc Emacs, gcc, gdb, qt creator 31-60 seconds I try to follow the standard already established in the file I am working on. When I loose overview of what it is doing. Rule of thumb, one screen length? Not used so much 40 30 30 Mental challenge, have a good domain knowledge, create cool products. Working with code that is messy. I guess it is the way to develop sw. Always start with writing a test. Then write enough to make test go green. Then expand test or add a new test before continuing the cycle. I am currently not really doing tdd. I add tests to cover my code, but often after the code has been developed. Show
5 10 C Python, bash, php, haskell pyunit, cppunit,phpunit kernelwhacker, rt-enthusiast via tailored bash-scripts that run after the kernel/driver has compiled and bootet a VM or target system Linux kernel emacs, gcc, make 1-5 minutes trying to aspire to higher standards, often degenerate into an uholy mess when does more than 1 (or in some cases, a few) things. patch-reviews via email 50 10 40 Create new things when the newly created things turns out to be monsters :) A little bit, it is a smart thing To improve, my tests tend to grow too large and I jump ahead and implement too much too early (partially bad at procrastinating) Show
5 months 6 years C++ Structured Text, C CUnit Finished master Embedded Systems on Technical University Eindhoven 6 month ago Using a Simulator and trying , in the process of starting with automatic testing Equipment disinfection system Codesys 31-60 seconds Specific for project (PLCOpen) - - 30 20 50 Creating reusable and understandable software restructuring and changing unorganized existing software The development approach for a new piece of software. First write a minimal test that fails, write the code such that the test is successful. Repeat this process to add new functionality To better understand the usage and possibilities of some test frameworks. Possibly parts the frameworks could be re-implemented for our development environment. Show
3 13 C++ C, C#, Python Google Test/Mock, Unity, CMock Will do this in person Unit, integration/smoke tests with Google Test/Mock Xilinx ZYNQ MS Visual Studio, Xilinx SDK, git 1-5 minutes Don't know where it is specified, but is automatically checked by TICS If it is difficult to understand it. Done in informal way (no tooling) 30 30 30 That you can use your creativity That you're sitting inside, staring at a screen all day That it helps focusing on the usability aspect of a piece of software. To convince myself to actually apply it and to learn ways of using it with plain C code. Show
3 15+ C++ Python, QML, C# GTest/GMock, QtTest Started programming as a hobby while still at high school. Worked as software engineer professionally after graduating in 2011 (Computer Science masters degree). First in a C# web services based environment, switching to embedded development after a couple of years. Unit tests if feasible, using either GTest+GMock or QtTest Embedded Linux platform QtCreator/KDevelop/VisualStudio IDEs, gdb debugger, gcc compiler mostly, sometimes valgrind for profiling 11-30 seconds Consistency within a project is the most important aspect. Too deep nesting of control logic, it no longer fits on a screen (roughly), or when I start adding comments above blocks of code ("// Step 1: ..." etc) Standard (required) practice in one project, more or less non-existent in another 25 25 50 Technical challenges (solving problems), trying to analyse what's going wrong etc Writing tons of boiler plate code over and over again Only that the main thing is to write tests before writing other code. To learn more about TDD and how it can help improve software quality, especially to find out if it's better than writing tests after the "real" code. Show
2 years 6 years C Python, Java JUnit Graduated from college 6 years ago. Worked with Ericsson for the 1st year as a Software Developer mainly using Java. Then took a role as Embedded Engineer working on Electronic Design and embedded software. My current role is solely Embedded Software Development. We generate test cases which we test against. These are manual test cases based on the input requirements. Debugging is done via the development environment with breakpoints. Testing during development is also performed via the development environment with breakpoints. Watch windows are used to manipulate data to test various scenarios. Medical device IAR, MPLAB, Kinetics Studio, PSOC Studio 1-5 minutes Our coding standrad is drawn up internally. It is outdated and needs to be reviewed. The coding standard mainly outlines requiremnts for comments, naming conventions and syntax When it provides more than 1 purpose Our code reviews are based on our coding standard 40 40 20 I will change this to what I like about developing embedded software. I like developing when there is a physical output at the end. The paper work that is required with Medical Device software Not much. It is a development approach where you write tests first and then develop the code to pass the tests My manager approached me and asked if I would be interested in attending. I agreed because I want to improve my skills and knowledge Show
0.5 10 C Java, C++, Python Junit Graduated ~6 months ago as an embedded systems engineer with a background in electrical engineering, currently working on a Java project. Junit Unit tests per class and larger-scale integration tests Currently the JVM/Java8, previously x86 and ARM Eclipse, Emacs, GNU toolchain 11-30 seconds Style: Default Eclipse style. Design: Strong separation of concerns, focus on testability and a single responsibility per class When it performs multiple operations that could be separated into independent functions Code reviews are mandatory for each pull request, mostly 1-2 reviewers per PR 40 30 30 Solving difficult problems, thinking about architecture/design, optimizing programs and optimizing processes Currently: the verbosity of Java In general: writing lots of boilerplate code before doing anything productive Tests should be written before other code, code should be written to make a failing test pass I want to get better at designing software. Currently stuff often falls apart as soon as more rigorous tests are used. Would be nice to get some tools to streamline my development process. Show
< 1 > 6 Dutch C, C++, C#, Java, Javascript nUnit, jUnit Recently graduated MSc Embedded Systems from TU Delft. This is my 'real' first job I have been working more on theory than practice, and as a result do way less coding and even less testing. Usually an arduino or something similar with 1 or more sensors/devices attached. gcc, git, svn 11-30 seconds ?? if you can't immediately determine the function's purpose ?? 60 20 20 I mainly work with embedded devices. What I like is that you create something you can actually see working en hold in you hand. Nothing, its beautiful ;) That you should first write tests that test certain behavior of functions (edge cases etc.) and then you should write the actual logic code itself. I do not have experience with actually proper testing with embedded. Show
7 5 (but not anymore, I am a Test Architect) C C++, and scripting like ruby, tcl, perl I advocate gTest& gMock (in my current project) but do not use them myself 15 years ago I switched from programming to testing (automating a lot in perl, tcl, ruby) and now I am a Test Architect. In my current role/project I improve testing (of both developers and testers) at a customer .Because I advocate TDD and unit testing, I think it would be could to experience it myself. Besides that I provide test related courses and now and then I give presentations and workshops on test related conferences. not writing code anymore. test code is mostly written in ruby/python, etc. lithographic wafer scanner (in previous project: electron microscope, X-Ray scanner, professional harddisk recorder) not anymore 30-60 minutes n/a it should fit on a screen (improves readability and understandibility) n/a 0 0 0 I like testing software ;) n/a I know some theoretical items, and advocate it. As I am advocating TDD in my current project (and my previous project), I would like to experience it myself, so I know what I am talking about. Show
10 16 C++ C, python gtest Big fan of TDD. Interested in BDD, agile working, software craftsmanship. I use modelling tools (ASD) and generate parts of my code. Unit test with gtest/gmock System tests with python autotesters Server running linux Eclipse 30-60 minutes TICS Nobody cares CodeCollaborator 30% 30% 10% building stuff Analysing bugs A lot already Need help/inspiration implementing TDD in current environment/organization Show
5 20 C# C++, scripting nunit, cppunit, boost.test I am a happy and experienced software tester, focusing on test automation. Propagating TDD a lot, but as a tester, not really able to follow it exactly. For complete overview: Our devs use unit tests, I do additional integration and end to end testing (automated as much as possible). Currently web services, but wanting to go back into (embedded) software testing Visual Studio, Resharper 1-2 hours We follow the CleanCode guidelines as advocated by Robert C. Martin as much as possible. If I loose the overview of the function, or if it does more than 1 thing Varying quality... Depending totally on the person 40 50 10 Making a whole system move through its paces and actually check what it does (from a testing point of view) When non reproducible problems occur, which cause much troubleshooting or debugging... Quite a lot already, in C#/.NET context that is. In a SOA environment. Have been reading a lot on it, and watched up to episode 26 of the CleanCode series (some episodes more than once). As tester I can’t do pure TDD (test the test discussion). I do try to work with devs as early as possible, reviewing unit tests. I want to feel TDD, to be able to better work with devs. This will also be a refresher for me on C/C++ (going back to it) Show
4 15 C JAVA, C# Google test, junit, nunit I am 36 years old embedded software engineer. Worked almost always with embedded software using realtime microcontrollers. Last 2/3 years have been working with application software using JAVA,C#,SQL. Will start doing embedded software again within a few weeks. Through unit tests and system tests. Some system tests are automated. n/a GNU tools, Eclipse, MINGW, Jira 11-30 seconds I follow the standards of TICS (code analysis tool) If it gets difficult to understand. Most of the time it is too long when it doesnt fit on the screen. All implementations get reviewed using Jira or Crucible 40 40 20 Puzzling Finding solutions for problems Learning new technology. repeatedly manual testing. Its a way of working resulting in high test coverage that implies better code quality. I want to make more use of TDD in the embedded software environment. In the embedded world this is more difficult than within the application software. Show
1 30 C++ C Product specific stubbed environment and product specific simulation environment. I studied electrical engineering. Graduated in computer integrated manufacturing and medical electrical engineering. I worked as and embedded software engineer on various research&development departments at various companies. More recent I also started developing websites. Reviews, stubbed environment, on the target system. Windows, Embedded Linux. RSARTE 30-60 minutes Company specific coding standard. When the function name can no longer describe the functionality in a clear way. Peer reviews, no formal process. 30 20 10 What I like about software development is that it allows me to work on a harmonious system that meets the expectations of all users effectively with a minimal use of effort and resources. Unexpected changes (either hardware or software), just before a release. Little. I'm always looking for ways to improve my skills. I read the course outline and I was interested. Also the trainer seems to be an experienced guy, so I think I can learn from him. Furthermore I hope I can apply the things I learn in my daily work. Show
19 25 C Python Cop unit Jack of all trades. HW, software, RF, Test engineer.Get re done! Few enuit tests, run the code, manual tests. Cuerrently work in on automating re add tests for complete products. SiLabs ZigBee HVAC and Home automation. IAR PC Lint, Bcc, python, git, redmine, 1-5 minutes Company, none. Have started adopting BARR group for mine I say so! Do not existj 10 10 10 I like building things and making them work. Tedious sometimes. need more automated tools. Unclear specs. I work as a lone cowboy with the rest of the company in. China. Every body should work as a team. This is an organizational issue I attempting to work on.Learn a Read some, like the concept. Need a way to incrementally work it in in small steps and see some results as I implement it. This keeps the projects moving while I improve the process. Learn TDD, get the company to pay for my PE continuing Ed hours. I think the company needs it. I do have the VP of engineering agreeing that it is valuable. Getting the company to implement it is not so simple. Show
19 25 C Python Cop unit Jack of all trades. HW, software, RF, Test engineer.Get re done! Few enuit tests, run the code, manual tests. Cuerrently work in on automating re add tests for complete products. SiLabs ZigBee HVAC and Home automation. IAR PC Lint, Bcc, python, git, redmine, 1-5 minutes Company, none. Have started adopting BARR group for mine I say so! It gets had to work with and understand. Do not existj 10 10 10 I like building things and making them work. Tedious sometimes. need more automated tools. Unclear specs. I work as a lone cowboy with the rest of the company on another continent. Every body should work as a team. This is an organizational issue I attempting to work on. Read some, like the concept. Need a way to incrementally work it in in small steps and see some results as I implement it. This keeps the projects moving while I improve the process. Learn TDD, get the company to pay for my PE continuing Ed hours. I think the company needs it. I do have the VP of engineering agreeing that it is valuable. Getting the company to implement it is not so simple. Show
1.5year 20+ years C python, tiny bits of C++ none... that's why I am here I have been suffering at step 0 of working through your book. But I have read the book when it first came out. Manually. Identify new test cases, see that they fail with the changes, add changes, and see thath they fix the problem. List them in commit message. multi part system but both targets are ARM based. built under Mac and Windows gcc as toolchain but some processors require Windows to be built completely 31-60 seconds Mixed. started with one and now moving to the company's internal standard (google's C/C++ ) when it's over 1 page on the screen ~50-100 lines... using Gerrit. Requires votes for code, build, verification, and test... we ignore test. 30 20 50 Making this happen ongoing changes, working with many people and we aren't aligned on how to get things done. Read your book and have wanted my team's to leverage this. I do this in a manual sense but automating it would make my team and I sleep better at night. If not now, when? Especially when I can't seem to get the tools installed It will add my skill set when I start managing my next team as well as my consultancy. Show
6 11 C++ Bit of Java, previous company mostly C CPPUnit, JUnit, GoogleTest (seen them in a few short term projects) - Manual, using test steps defined in Excel files Win + Mac Visual Studio, XCode, Jenkins 31-60 seconds Using company standard, adapted for the project When it does not fit on the screen Reviewboard, request review for each commit 20 30 50 The creative process Repetitive tasks Received a basic introduction on one of the projects that used it Basic introduction was years ago, and have not used it much since then. Trying to find out how it can be used for our current legacy project where no automatic tests exist Show
0.5 3 years sort of. Actively been coding for 2 years C python for scripting, reading C++ none I started working as a firmware engineer 2 years ago and have learned most of what I know through work. I do have an MS in Computer Engineer but I feel I learn the most through actually doing.I've been the first firmware engineer at both the companies that I've worked for and have been responsible for setting up the infrastructure for firmware development Manually. I run long tests and debug myself. I'm using a nordic chip with m4 arm processor. I use IAR to build and flash the code. IAR, sublime text editor 11-30 seconds I've been using Barr groups coding standard book If it's not readable anymore. I generally try to do one simple thing in a function, if it gets too complicated, i try to split into several functions. We use github and create PRs where I generally tag other software engineers. We go through the code thoroughly for good practices, algorithmic correctness and general coding etiquette. 50 20 30 I like being able to solve problems and create logics. I like to look at an issue and think of how I can solve it in the best possible way. I don't like when I get stuck with debugging or fixing bugs, especially intermittent bugs! not much. I did buy your book some time back but I haven't been able to read it past the intro. Hence, this course :) I like writing code and take a weird pride in writing the best possible and most efficient code. I also hate debugging. I feel being able to write unit tests will help me with these things. Show
1 7 C C++, ADA ADA Unit Test framework I've been a software developer for 8 years now, but I think my test skills are somehow deficient since this is something that's usually "weak" in companies (lot of effort in developing, little effort on testing) ADA Unit Test framework Embedded Systems Eclipse , GNAT 5-30 minutes not really an official coding standard, following legacy code guidelines it doesn't fit in the screen very much like pair programming 70 20 10 It's challenging, it's structured, i can make things move! Flaws in human interactions that are involved in code, such as incomplete/lack of requirements because people are too lazy to spend time preparing a document or to review them, etc. Just started a project 4 months which is based in TDD (but I'm not sure if 100% of it) TDD is something new for me. Show
6 months academic knowlege only C and python Java and C++ pyats I am from IOT department and working as a Test engineer. mostly manually and also using Pyats Router IR800 and CGR1000 vi, python idle 1-5 minutes beginner If you can't immediately determine the function's purpose NA less little more more Never tried NA Not much Just for knowledge. Show
1 15 C C++, JavaScript, Python Catch, Jasmine I taught myself to code when I was young in order to modify video games. I studied Electrical Engineering in college with very little software instruction, but my career has taken me in the direction of software leadership. I have continued to self-teach in an effort to learn and establish the best possible practices for my team. I have recently started writing unit tests alongside new code. Previously, I would run code and observe its behavior. Proprietary ARM-based hardware for use in aircraft. Green Hills MULTI, Eclipse, Jira, Git 11-30 seconds Proprietary, derived from JSF++ and MISRA-C. When the expected output is unclear. We use pull requests to check code against our standard and look for anything concerning. More relaxed when prototyping. 55 10 35 I like to create tangible, useful programs and systems that contribute to a larger product. Writing helpful software that I can be proud of is very fulfilling. Debugging and refactoring legacy code. It is a technique for writing testable code by writing tests first. Code that is testable is inherently high quality, but writing testable code is not always intuitive. TDD provides a way to achieve this quality with minimal effort. I would like my team to adopt TDD for our embedded software development. I proposed this training because I believe it will be an effective way to learn good habits and improve my understanding. Show
16 30 C that's mostly it GHS scripting I've been working on safety critical optical sensors for industrial applications for the last 16 years, so always looking to improve SW quality. GHS scripting on MULTI IDE ARM embedded GHS, PR QAC static analysis, several IDEs 11-30 seconds Developed in house, enfoced loosely with a-style When it looks too long - but PR QAC offers metrics we can look at Peer review, using Excel spreadsheets to track issues 50 30 20 The thrill of watching a new feature operate properly knowing that the logic in the code is perfect. The repetitive testing Sounds good in theory, not sure how to do it in practice Actually I was set up for another seminar (best practices for designing safety systems) that got cancelled so I was offered this one, which I also thing it is applicable to me. Show
2 3 C Python Unity I work remote, I am learning to improve productivity. I work solo, learning to leverage teamwork. Manual Testing, if at all. I've been writing unit tests for some new code modules. 802.15.4 WSN Makefile, git 1-5 minutes N/A I work solo Lots of reasons. But I usually won't break up a function unless I have to modify it. N/A I work solo 45 10 45 It's one of the greatest things ever. It's hard. I'm sold on it. I've read the books. Don't know how else to get started. Signing up for this course was faster than finding a relevant job (particularly in the embedded space). Show
5 6 Java Python, C pyats I havent worked on C extensively. But would like to learn test driven development in C Unit test and functional test linux intellij idea , vim 1-5 minutes used to follow coding standard, but still catching up on that. When it is very difficult to read and follow through, breaking it would help we use kingart for the same 30 30 40 the happiness that you get after you achieve something Process overhead. we have few processes that we have to go through to submit the code. there are lot of overheads which i dont like in software development haven't worked on C that well. my manager asked to represent my team to understand how helpful this course is for our team. we have been doing some C development recently. we think this class would be helpful for our development, hence attending this class. Show
11 25 c/c++ python Java javascript google test I am good with C/C++ not with C++11/4/7. google test is used but I do not know how to use it yet. Arm processor CLION, vi, gdb 1-5 minutes very stick on style include too many functionalities GitHub 50 10 40 I enjoy it. debugging. not much Understand the tdd, and gtest, mock Show
2 6+ Java, C/C++, Python bash, Perl/CGI Mockito (GWT Unit Tests), Basic Unit Test framework for C/C++ I like to spend time reading. I love to continue learning / strengthening my programming skills by doing side projects with the raspberry pi on my free time (some HackerRank challenges are fun too). Using Unit Test framework, White Box Testing, and Functional Testing. linux vim, tmux, ctags, cscope for C/C++, IntelliJ IDE for JAVA code. 5-30 minutes I try to follow the standards for whatever language I am working with. I prefer tabs over spaces Definitely more than 20 lines of code. Get really good constructive feedback from senior engineers which helps me improve. 30% 10% 60% The fact that I am contributing to a large/legacy project. Pretty much the ability to build something is really fun. Weird bugs in the code that are very hard to track down sometimes. Make your code testable. To learn new techniques/skills for testing my code in C/C++ Show
0.5 6 C C++, Python None I've always approached software from a Mathematics perspective, but that was only from the design standpoint. I'd heard of unit-testing years ago but didn't know much about it. Recently, I've inherited a legacy project and decided that my only way to get through this was to bring it all under test. I bought and read Grenning's TDD book over vacation (so I didn't do the exercises really) but the process of TDD as presented clicked with me. It seems like I was doing Math without proofs if I don't do TDD. Another thing I am adopting that I am very excited about is the QP Framework by Miro Samek. Before reading Grenning's TDD book, I would write some "test" code that showed what I wanted my new code to do from a client standpoint. I would instantiate the thing, make some requests, etc, to get an idea of what I expected. Then I would write a flurry of code, possibly rewrite my "test" code and cycle that until it worked. These tests never used a test harness. Since I've ready the book, I haven't had the opportunity to write a lot of code but when I do, I try to follow the TDD-style in defining some tests more formally. I don't use a test harness yet but I am testing much lower-level functions now rather than testing very high-level things before (when they didn't work, finding out what was wrong in my 20-30 lines of code was where my time went). My legacy project runs on an STM32F4 that interfaces with a Broadcom WiFi/BLE chip Eclipse GCC in Linux at the moment. Considering IAR Under 10 seconds Nothing formal yet. I am investigating using Gimball on my project. I don't think there are any hard rules but there are red flags. That it can't find on the screen is a good rule of thumb that you should look at refactoring and abstracting your code s.t. the function can be "read" more easily. Nothing yet. Team of 1 25 25 50 Logic puzzles. Also that great feeling when you designed something properly that you make a bold change and things haven't exploded. Being stuck with other people's crappy design choices. See above. To get my hands dirty with a test harness and learn more about how to find the seams! Show
5 10 C Python Pytest _ Manual test procedures. ASSERT macros. Low power embedded microcontrollers. IAR embedded workbench 11-30 seconds Work in progress written document. Style guide as much as code standard. Nests more than 3 times (loops/conditionals). More than one natural exit point. Relies on too much external state to reason about easily. Email reviewers ahead of meeting to give them time to review code indiviually. Sit together and review as a group. 33 33 33 Few restrictions on what behavior you can achieve. Extremely powerful and accessible tool, often the best or only way to solve a problem. Complexity can quickly spiral out of control. Hyper-nonlinear, tiny code changes can have massive impacts to the behavior of the code. Cursory knowledge from research. Not much first hand experience. Want to use TDD to accelerate our embedded C firmware development by automating some tests. Want to develop confidence in newly written code more quicly. Show
12 16 c c++/c# Home brewed We do Agile in a Waterfall world. TDD is looked down upon by my boss. Existing integration tests to make sure we don't break something (regression), new tests at a functional level for new features Embedded device using C, compiled in IAR. Used by Utility companies IAR, Lint, C-Stat 5-30 minutes Based on Barr and JSF Air Force When code complexity is over 15 Every commit through Fisheye/crucible 75 15 10 It's fun to see the finished product. Hint of pride when it works Fighting against bureaucracy. A fair amount of experience Fill in any gaps that I don't understand, try and evangelicalize it to the rest of my company. Look good on resume. Show
1 8 C C#, Python, Javascript Unity Embedded software engineer for 7 years, like to snowboard, climb and mountain bike. Whitebox, GDB, very limited JTAG debugging when doing kernel development Embedded linux built by Yocto Yocto, Visual Studio Code 1-5 minutes Similar to Green Hills Has too many local variables Don't do them 80 10 10 Problem solving Restrictions placed on dev environment by IT I have your book on my shelf already. Couldn't figure out how to use Unity/CMock/Ceedling with the build environment created by Yocto. Hoping you can shed some light on it. It would be great if we could also figure out how to integrate TDD tests into our Jenkins build system. Show
2 12 C Java Unity I have worked on developing data networking protocols for organizations such as Alcatel-Lucent, Aruba Networks, Cisco Systems. Not doing any unit level testing. The unit testing as we have been calling it, is actually integration testing. Target Systems are mostly x86 processor based routers. Vim, Ctags, Cscope, make 2-4 hours Org-level agreed upon coding standard When the lines of code are above 20. Code reviews are done without miss. Diffs are uploaded to an internal tool, which will be later reviewed by teammates. 20 30 50 An opportunity to be creative in every step. Not being able to crack the problem at hand and move forward. I detest being stuck, while developing software. I was introduced to TDD while attending a Certified Scrum Developer course. Read the book by James Grenning, to get further insights on TDD. To get an understanding of ways to apply TDD in practice at my organization. Also, to understand the effective ways to spread the practice across the team. Show
1 2 C C++ unity embedded engineer, HW and SW development unit test with unity embedded keil, IAR, codelite 11-30 seconds use company standard as far as possible scrolling needed to see the whole function, separtion into multiple functions possible peer review 30 20 50 when it does what i want searching for bugs, rewriting SW the basic concept to get started with tdd, improve SW quality with tdd approach Show
1+ 25+ C C++, Java, Pascal, Python JUnit Developed firmware for many instruments. Jenkins - custom automated, Manual Arm Eclipse Under 10 seconds Basic - K&R based Too many lines or too many levels of indent. Infrequent 60 30 10 Design challenge Tedious Syntax 10 min. introduction Required Show
2 3 C Python none Mixed hardware - software engineer. Want to become more professional in software development Uploading it to hardware Wireless sensor module Keil, IAR, PyCharm 11-30 seconds Following the standards of my company When it can be shorter Looking for functionality, readability and simplicity 30 20 50 Lots of freedom and different approaches for implementation Annoying bugs It is based on writing code to pass certain tests I have never written sw tests and never used tdd. Want to gain more experience as well. Show
16 20 C# C,C++,VB NUnit Most comfortable in Windows. Create GUI test harness to exercise interfaces. Create unit tests to automate regression testing. Desktop and Mobile application Visual Studio 31-60 seconds None More than 25 lines None 35 40 25 Can see results almost immediately. The short time schedules and ambiguous requirements. Write a test, then write code to pass the test. tdd sounds good, but my experience is when a change to the existing code base is done then you get bogged down maintaining tests instead of developing the next feature. Want to know how tdd is really supposed to be implemented? Show
3 5 C C++, C#, python Unity I studied Electronic Engineering in England before moving to Germany to begin work as a Field Application Engineer. I then changed my role to become Embedded Software Developer for the same company. In my spare time I enjoy running, cycling and skiing. Unit testing after implementation Low power, embedded, Arm-core microcontollers. Typically M0. IAR, Keil, SVN, Unity, Jenkins, 31-60 seconds We have a coding standard with a list of guidelines/rules for writing code. This was created within the team and reviewed as necessary. When the function does more than one thing. When it's difficult to read/understand. Too much scrolling. Difficult to unit test Code reviews are requested using Review Board. They are done within the team. Not really enforced, it's the responsibility of each team member to request a code review. 50% 25% 25% Creative. Challenging. Solving problems. Always ways to improve and learn. Often a difference between how I would like things to be done and reality. Planning accurately is very difficult! -Tests are written before implementation -Interfaces must be well defined -Code is written to make the unit tests pass -Tests should be executed automatically and continuously. -Changes to the interfaces require the tests to be updated. We decided in our team that we would like to move towards test driven development. We want to do it correctly. Show
10 10 C++ C, C# None I play bridge :) Manually An old systemfull of code from 20 + years Rad Studio, Visual Studio 1-5 minutes We have many... When you have to recheck Sporadic at best 33 33 34 It's fun Challenging and rewarding Stress Not much Courses are fun, and I'm hoping to learn something useful Show
6 8 C++ C, C#, python none Hikes, nature, workout, football Manual unit test, google test Subsea Control System uVision, Visual Studio 1-2 hours project depended When it seems complicated and it can be split code review 60 25 15 You can do it in many ways, but the output can still be the same Manually perform regression tests Not much, have heard of it and seen some instructions, but never practiced it in daily use Too learn more about TDD and to get hands-on experience. Show
14 14 C++ C, C# N/A Signal processing, programming is secondary to me System tests Runs on Windows RAD Studio 1-2 hours We dont have a formal standard When it's to hard to understand whats going on N/A 60 20 20 Seeing theory comes alive Bugs Very little I want to learn some more about TDD Show
1 15 C C++, Javascript, Python Some old deprecated C# one I'm working mostly with prototyping and support, not "production" code. If the device is not on fire it is working! Mostly low-power ARM M0-M3 controllers or ESP8266 Platformio, Arduino 11-30 seconds None It does not fit the screen None 40% 30% 30% The power of making machines carry out my will Difficult debugging It is popular in software engineering and can produce fewer bugs. TDD is also getting more popular in embedded, but it can be tricky to get it right. I tried to learn on my own but did not know how to start. Good to set aside some dedicated time for it. Show
3 months 30 c# Python, JavaScript, none Love technology and especially the combination of SW and HW. Father of 2 boys, married. Do not have a great strategy at the moment. Windows + VxWorks. Visual Studio 31-60 seconds Not standardized yet When it does more than one thing Not standardized yet 60 20 20 I enjo solving problems and making things work Nothing It's the greatest thing since sliced bread. I want to understand how we can apply TDD in our organization. We need it to increase quality of our products. Show
It is my first year 10 years C C++, Python, Java None I am a curious person. N/A Linux eclipse 1-5 minutes ANSI-C When a function start doing more than it is expected. It should only perform one task. If it exceeds more than 20 lines we should think about making small functions. I tend to get much in the start but now things are getting better. 40% 20% 40% Most of the time it works as I have planned. Sometimes it does not work as I have planned. Not much. I want to learn test-driven embedded development. Show
8 13 C++ C, Javascript, Python, PHP JUnit, BOOST_TEST, Google test, PHPUnit, Intern.js Using C/C++ for 4-5 years, never considered myself a C++ or C programmer, but ended up liking it. Mostly manual testing. No TDD, jury rigged mocking using GCC's __wrap. Not very elegant. Various, some regular C++ under linux, some libraries for "semi-embedded" systems. Fairly bare bones, vim with clang plugins, CMake 31-60 seconds Nothing concrete Longer than the screen-ish Almost non-existant 40 30 30 Solving mysteries, automation Having to write things in a rush, taking shortcuts Write tests first, then the implementation. Learn best practices, got a feeling I'm doing things wrong. Show
2 15 C C++, various scripting languages Nothing relevant to C / embedded Not much experience writing tests: that has never been a priority in all the companies i worked for. A mix of unit tests (Windows), manual testing (on target). Embedded system Visual Studio, gcc, scripts written in house. 1-5 minutes Internal standard loosely based on MISRA.C and equivalent More than one screen? Peer-reviewrd by another programmer 40 20 40 The fact that embedded development is rarely boring and the mix of design, implementation, debugging, etc. When tools are not appropriate for the job at hand and thus frustrating to use. Have only heard about it in school 15 years ago (but not for embedded/C) and never really used it after that. Interested in learning how TDD can be used in a non object-oriented, embedded context. Show
16 31 C Objective-C, Python, C++, Assembly Company internal - New code is tested using unit tests developed on Windows and executed on target. Legacy code is tested using manual test procedures. PowerPC based real time controllers for automation and control systems. WindRiver Tornado, Workbench, GCC, Testwell C++ 1-5 minutes Avoid dynamic memory allocation during normal execution, allowed during reconfiguration phases. Mapping standard between object oriented UML models to C code. Nothing explicit. A function split into sub-statements (functions) rarely become very long. Mandatory review by at least one other person. Now based on Git pull requests. - - - To solve a problem. To solve the same problem again and again. I know the term and the concept. I work as an architect for a code base that has evolved since the 80s. I know the pain of lack of automated tests and the difficulty of introduced them later. Show
0 18 c-like languages ruby, python, js some minitest but mostly rspec and cucumber i feel behind on the whole TDD/BDD movement (last company was not so progressive) and am eager to dive in. From what little i've experimented with, I have liked cucumber/BDD in that it seems to be low touch. manual test plans (smoke tests). RHEL-like linuxes running enterprise IT systems gcc, vagrant for local testing, docker for building kernel modules of various distros, 5-30 minutes there currently isnt one that i know of. Personally, I use syntastic linters in my vim setup does too many things or needs to be scrolled too much informal peer reviews. after two thumbs-up, we can merge into the code repository 10 50 40 learning being stuck I know of it relative to BDD but I havent done much TDD itself Need to setup my team's new test automation framework Show
almost 2 years 20 years C/C++ Python, Ruby, Bash Scripting, Applescript, Java Script, others... All home grown. Mostly python based. I work remotely from NH. I am married with two boys (5 and 3). Debug printing. End-to-end testing. RHEL/Centos 6.5-6.9 and 7.0-7.4 GCC, Docker, Docker Compose, Vagrant, Virtual Box, Vmware, BBedit 11-30 seconds . When it is doing many different things, and not clear what the purpose of the function is. Also another indication is if there are deeply nested if statements. Push commits to a topic branch. Create a merge request in gitlab where we can review the code changes. Our team requires sign off of at least two reviewers. 50 15 35 I enjoy the challenge. I like to learn new things. . That you "somehow" write your tests first. Because I was told to! =) But honestly I am interested. I am driving an effort to share code across platform and/or products. My plan is to have shared code in one repo, and not forked into different projects. (We have a lot of forking now.) Show
1 40+ C C++, Python my own Mr. Spock's brother runtime instrumentation + standalone unit tests linux kernel editor, compiler, linker, Google + my head 1-5 minutes K&R+; linux kernel; >24 lines mostly useless 40 (you are missing design: 40) 20 0 Activity that can be done right C++ programmers (or more precisely those who taught them to create the bad code they write) I practice it My manager made me Show
2.5 12 c/c++ python, bash custom ones ... functional testing based on changes Red Hat based Linux systems vim, gcc, make, docker 1-5 minutes it's pretty loose When it does more than a single thing. We have them, and they do uncover issues from time to time. 25 35 40 Solving the problems. Fluid requirements. Not much outside of the general idea of it. Told to. Show
0 19 C++ C, Java, bash, D gtest, CppUnit, JUnit, boost::test I live in Maryland gtest, custom test frameworks endpoint sensor gcc, git, Make, CMake, JIRA 1-5 minutes informally defined at the moment based on how long it takes to understand what it does or why we do code reviews on all changes 25 25 50 architecture, design, and coding; solving interesting problems and working on my craftsmanship when I know how to solve a problem but am not allowed to or not given the tools to do so; when too much is done manually that should be automated I've used it before, some of the time, especially for home projects my management scheduled it for my team; however, I think it could be a valuable learning and level-setting activity Show
7 29 C++ C, Objective C/C++, C#, Python, Bash, SQL(various) X-test, G-Test, custom I'm doing what I've always wanted to do: develop challenging software. I've worked for companies large and small, from GE, Microsoft and Siemens to startups like NuMega and Reflectant that got acquired. I was an independent contractor for more than a decade before I joined Carbon Black. I've been here longer than any company I've worked for. Unit tests (custom framework), writing test programs (either in C++ or python) for functional validation testing, manual testing Software I work on targets enterprise Mac and Linux platforms gcc, xcode, pycharm, 5-30 minutes We have a coding standard we share across teams via confluence When I can't understand what it's doing we use review board or merge requests depending on the team/source control 20 60 20 It's what I've always wanted to do Having to work with bad code Moderate amount My boss set it up Show
4 months 6 Python Java, C, C++, Groovy JUnit, Pytest Favorite pastimes include hiking and baking Automation framework to test end to end functionality, but no well-defined way to test automation code as its written Multiple flavors of linux, goal is to have good TDD practices established for new team Pycharm 5-30 minutes Established a style doc for automation tests, working on integrating a linter as part of the build pipeline. >40 lines or has lots of repetitive elements Any merge request needs be reviewed and approved by at least 1 person. (Team is small, ~6 people, so everyone has a good knowledge of most of the codebase) 50 15 35 It's always a new challenge to solve, and solving those challenges feels incredibly rewarding. Having to deal with nuances of languages, environments, configurations, etc. I took a TDD course in college ~8 months ago that went emphasized the red, green, refactor pattern, and the notion of having tests for every addition that are quick and run frequently. I was signed up for it as a member of the new team, and think TDD is an excellent practice that should be more widely adopted w/in our organization. Show
< 1 ~40 python, Ruby verilog, C, C++ google test I'm a Software Developer in test, used to do C, have been a diagnostic engineer and a verification engineer for *big* integrated circuits. hahaha - by interactions between product code and the test framework I am using. python coded tests for sensor product on Linux using an in house test framework that simulates Server components. Intellij, emacs Under 10 seconds I breezed by it and skimmed it for later review when I can't explain it to someone or remember what it does after 3 months standards set by my Agile team 30 30 40 I like testing because its a neglected discipline and complex software needs a methodical approach. bickering have done some toy tasks in a boot camp (Launch Academy) to bond with my team and learn something Show
2 1 C++ C, Python N/A I don't have much coding experience outside of school. I have a EE degree, but took two coding classes and did a senior project that was primarily code-based (wrote everything in C). N/A None None 1 day or more N/A N/A N/A None N/A N/A I like tackling the logical problems that need to be solved using creative methods. Lack of variety N/A I'm primarily an RF engineer, but I am interested in moving into software. Show
3 10 C# TypeScript, C++, F#, Scala GTest, NUnit, Scalatest I like static type systems and compilers. Combination of whole system integration tests, some unit tests, and manual testing. Desktop/Mobile/Embedded Linux Visual Studio, Visual Studio Code, .NET SDK, Git, SVN 31-60 seconds - When you can't tell what it does. - 60 20 20 Solving problems Boilerplate code Any changes to the code require the tests to be updated first. It was assigned for our department. Show
11 21 C/C++ C# Java MS Visual Studio testing unit tool I am mostly involved embedded and real time system in my current and previous jobs. aware of testing oriented software develop procedure/tool is very important for development for its efficient and debug purposes. not really as a routine but a separate process. the curent job is a STM32 MCU MS Visual Studio, Eclips, etc. 1-5 minutes most for GUI folling MS C# standards I give a short funciton in general, within 20~30 lines if can once two weeks as suppose 60 20 20 Help me to improve the software development on coding, manage project, debugging, improving efficiency and quality. if not fit in above. Not really It is planned by the department but I like to learn and practice. Show
1.75 3 C Python, VBA, LabVIEW None My B.S. degree is in applied physics, and I am currently pursuing a M.S.E.E In stages. Write, Test, Repeat. Atmel 8-bit Atmel Studio 11-30 seconds Consistent indentation and spacing for clarity to avoid syntax errors. When it starts to annoy me. So far, so good. .85 .05 .1 Getting better at it. Not understanding certain things. I'm fairly confident I use it as a general template already, but I am interested in learning more. I want to evaluate my skills in the field and expand them. Show
4.5 20 C++ python, C, java, javascript, typescript GTest, JUnit, pyUnit, nUnit I like to play music (piano and guitar) in my spare time. Haphazardly. I start with unit testing, but once the work of mocking becomes large, time pressure generally puts the focus on writing more features rather than mocks. At the intermediate level, we do some integration testing. For example, test that all endpoints of our embedded webserver respond as expected, with the hardware mocked out. At the final level, we test that the UI behaves as expected and that the device behaves as expected, but often overlook testing error conditions or trying to cause error conditions. Currently it is an Arria 10 SoC, which is serving up a webpage for user control. VS Code, Visual Studio, PyCharm 31-60 seconds We do not have a coding standard which is enforced. When it tries to do more than one thing. Generally, the the reviewers know what the code is supposed to accomplish and the primary developer explains how the code achieves the goal. 50 25 25 I building a system to accomplish a task and partitioning the complexity into realizable components. Moving targets. I know that the idea is to define the tests before writing the code. However, I've found that very difficult to do in practice. I have two major questions that I would like practical answers to: 1. In the embedded world what are good approaches to mocking out hardware. 2. How do you minimize the impact of changing requirements while using TDD. Show
0 35 C Python, VB, C# none Long history of building embedded systems. Automated test machine software for anything from automatic transmission to fuel pumps and fuel injectors in hazardous conditions. (Class I Div I Group D) Run it against requirements and my own list of where I'm likely to make a mistake. Boundary conditions, timing jitter, etc. Embedded devices various embedded IDEs. 11-30 seconds none Does multiple tasks n/a 20 40 40 Always something new. Maintaining old, undocumented, critical code. Nothing. Would love to make a change, connect the device to a test system that would validate that I didn't inadvertently break existing functions. Show
4 months 1 Python C n/a My code is mainly focused on the testing of products under development. Manually n/a Pycharm Under 10 seconds n/a n/a n/a 70 10 20 It Speeds up and increases accuracy of testing, while also allowing me to focus on other tasks. Not understanding why a fix to the code made it work. n/a To learn more about the software development process. Show
3 3 C++ C, C#, Python None I'm a systems/applications engineer for the company and I don't write a lot of code. I attended BYU, I am married with 2 great kids. Test by hand on the product. ATmega328P, SAM3X8E, Embedded Linux ARM Atmel Studio, Eclipse 11-30 seconds I haven't been given a standard within the company, Power of 10. Longer than a single printed page, performs more than one specific task. I haven't participated in code reviews with Bird 80 10 10 I enjoy the process of defining a problem, solving it, and seeing the result. I don't enjoy when things become overly complex and when debugging becomes the main task. TDD is developing software tests before developing production code and then writing code to pass those tests. 1. There is a free lunch (;. 2. I am interested in becoming a better coder and making this a larger part of what I get to do at work. Honestly, it seems like a very logical and easily implemented method to code more effectively. Show
< 1 programmed for 10 years. But now in product Educated in C++, practiced VB and Java Mainly SaaS based development when coding JUnit Formerly a coder building SaaS/cloud based solutions for eCommerce, RFP systems, and attendee management systems (hospitality meetings, events, and business travel). I spent ~10 years (mixed between developer and product) practicing Agile (Scrum) based development I am currently a Product Manager N/A N/A Under 10 seconds N/A N/A N/A N/A N/A N/A I love having the ability to solve problems using software. Additionally, since software is never done and always changing, you're constantly looking for ways to deliver additional value to customers and streamline what's already written. From the product side of things, it's the same ole story, I can't have it created for me fast enough :) My main experience with tdd is from the product side of things, so I have exposure to writing user stories with both the main success and failure paths. I was asked to attend because of my previous experience with Agile software development Show
4 days 1 yr C++ c N/A I am a student at the University of Akron. Currently, I am working in Bird tech as a software intern. I usually go through the code because yet, I didn't have to write long code. N/A Code Blocks, NetBeans 31-60 seconds B- when we start overloading functions or variable N/A 0 0 0 I don't have experience yet to answer it. N/A Test Driven Development, initially write a test case and later on refactor it I have bit experience in C, and C++. Additionally, i have taken Embedded Interfacing course at University of Akron, which i enjoyed it. Show
10 17 C C++, Python, TypeScript, Rust cpputest, unity, unittest (Python), jest (TypeScript), supertest (TypeScript), cargo (Rust) I would rather be snowboarding than sitting in our uncomfortable conference room chairs. Python unittest for REST interface. cpputest for C/C++ unit tests Embedded Linux 3.14 or 4.9 running on armv7hf atom editor, custom build environment 1-5 minutes What's that? When it gets to 2000 lines, it's probably too long. We have them, we facilitate with Gerrit. 50 20 30 I am not constrained by three dimensional reality. My product is more malleable than electrical or mechanical systems. I'm a little tired of embedded. Specifically, I'm a little tired of cross compiling everything and the resource constraints. I know the idea of it. That is, I don't usually write my tests before my code. I usually write some code, write some tests, and then write some more code. I'm one of the few engineers in the lab that likes writing tests. Show
16 6 C Java Unity, Cpputest Most of my career has been as a HW engineer On target. Test at a system level. embedded Greehills 5-30 minutes In house Shouldn't cover more than one screen Gerrit 60 20 20 A puzzle to be solved, with lots of freedom on how to solve it. Legacy FW, covering a multitude or projects, so must always keep doing things the same way to avoid breaking targets that we can't test locally. What I've read in the book. :-) TDD microcycle. Reduce time from introduction of bug to finding of bug. Move testing closer to development. My manager is a big proponent of unit testing and TDD. He wanted us to all read the book on TDD. The more I read, the more I liked it. Only a few of us from each team can attend and I want to be one of those. Show
>20 >20 C -- -- -- Run it on real HW. Custom ASIC / SOCs -- 5-30 minutes What standard? -- Everything gets reviewed by a peer. 50 20 30 The creativity Unclear documentation A little: Write and run the test first. Then develop the code. We've been asked to learn about TDD. Show
21 38 years (Basic on a TRS-80 in High School was my first foray) C# C, C++, Java, VB CppUnitLite, Visual Studio Test Framework, JUnit My first 10 years were lived in the Philippines.I am a musician, a cyclist, and a amateur photographer. Some unit test, some manual, some semi automated integration and application acceptance testing. We target multiple uC - 8 and 32 bit, baremetal, RTOS, Limux, Windows and Android Atmel Studio, Visual Studio, GCC, a few others for legacy projects 1-5 minutes C and C++ standards exist, but are sporadically enforced. When I cant read it on one page. I would guess that <50% is reviewed. A couple of teams schedule and conduct them explicitly. 25 25 50 Solving a problem and seeing my work run is very satisfying. 1. constantly changing priorities and requirements. 2. Interruptions 3. Big I have been to a seminar that you taught at an Embedded Systems Conference, and I have read your book. Interest in TDD and automated Unit Testing. Show
1 20 C C# none Current main responsibilities - problem solver, debugger. test on target windows control, unix based target MS Visual Studio 31-60 seconds No custom standard Contains unrelated functionality. One on one with boss. 10% 30% 60% Creating useful functionality. Difficult development environments. very little New company initiative. Show
4+ 31+ C Currently C#, C++ None From a development perspective, I've grown accustomed to a "stone knives and bear skins" approach due to the lack of availability of tools and budget. So, I've learned to make due. I tend to build testing into a module and then exercise module functionality using those test functions. RF IQ Capture and PLayback devices Currenlty Visual Studio and QT 11-30 seconds Modular and typical C formatting but I like lots of white space so that it's easy for me to read at a glance. When I can no longer digest it's purpose in a screen or two of scrolling. Since becoming involved in engineering at X-COM, I've been fixing & maintaining code that was written by interns. There are only two of us and we work together daily. 5-10 25 65-70 It's just fun to see your work come to life. Nothing really. Maybe not a lot of TDD, but in development projects in the past before X-COM, testing was always a part of the design and development process from the beginning. I love to learn something new every day. Show
28 37 C C++ unity, cpputest I like solving problems. Desk/bench testing, run smoke test. Otherwise rely on other test labs, automated testing. printer engine running on threadx Custom build, git, multi, gerrit, emacs 1-5 minutes We have one, don't often look at it More than a couple of screens gerrit, mandatory 40 40 20 Opportunity to be creative, striving to elegantly solve complex problems. When tools are flaky or slow. Parts of our organization are using it, some. Read The Clean Coder and parts of TDD for Embedded C. Organization has decided to increase TDD usage, and want to be effective in that world. Show
28 37 C C++, Assembly None I build stuff with Arduinos as a hobby On target hardware with semi-automated test scripts Dozens of different ink jet printers with custom asics and custom smart chip solutions. Printers span a range of end user prices of $39 to $100000+. Greenhills compiler, Multi debugger 5-30 minutes We have some old coding standards that are very loosely enforced LOL We use Gerrit to do code reviews on every check in. This is automatically enforced as part of our check in process. 50 25 25 Writing code to solve interesting problems. Going to meetings and arguing about what the code should do. Making changes to products from 1 or 2 years ago (especially adding new features to old products, which is worse than fixing bugs in old products) Not much. 1. Management sent me 2. I actually want to know how to make this work with code that's very dependent on specialized hardware Show
12 10 Python None Python unittest I've been in QA for 10 years, and have been writing tests for firmware. We recently started writing unit tests, so I'm not hugely proficient, but know a little. Unit test, functional tests. Embedded firmware PyCharm Under 10 seconds n/a When unit tests get too complicated Informal 60 20 20 Logical application of creative thought process Deadlines, inevitable scope-creep I know it's about writing tests first, then writing the code. It's about putting testing where it should be: in every stage of coding. I would like a formal course in tdd, rather than the informal learn-as-you-go approach my team took over the past year. Show
18 21 C C++, Perl None I'm a firmware engineer. Running it on hardware Printer hardware Linux, Multi 30-60 minutes ? by feel, too complicated to understand all at once Use of Gerrit, all code is reviewed 50 25 25 Known quantity Can be mundane Developing tests and code at the same time Move by our organization to go more towards test driven development Show
25 25 C Python, cpputest I have worked in both Windows and embedded environment. mostly manual testing since it require working hardware. ARM based in-house tools, multi 5-30 minutes code should be readable and easy to understand when you forget what it is supposed to do? use jenkens 30 30 40 Because it usually solve a problem. Code tends to get complicated over time. not much to learn if there is a better way than the current methodology. Show
22 21 C/C++ C#, Java, Python cppunit I'm a firmware/software engineer Ad hoc Multi-core ARM system running Linux and ThreadX (on different cores) GHS Multi, Eclipse, Visual Studio 5-30 minutes Differs When I need to scroll more than two screens Gerrit 50 25 25 Solving problems Mature, ugly code that everyone is afraid to refactor Write the tests first We're moving to Agile development Show
31 35 C C++ unity, cpputest, some home grown I have been in a lead role for a number of years, and do not currently do as much development as I have done in the past. Mostly manually by interacting with the product or using some built in "shell" functionality that enables invoking operations via a serial port. printer or all in one device Products contain Linux and ThreadX RTOS running on different processors. RTOS uses green hills compiler and debugger. On Linux gcc and the green hills debugger. 1-5 minutes Our coding standard is not enforced It depends, a long linear sequence of statements may be ok. Lots of conditional statements especially nested is more problematic. All changes must be reviewed with at least one person via gerrit 50 30 20 Making things Large organizations spend a lot more time communicating than doing things. I don't enjoy the communication so as much. I do TDD where I can apply it, but much of my work involves hardware interactions that make it difficult to apply TDD. I wrote tests for a graphics device driver I developed. But other firmware has been more challenging. I would like to find out how to create automated tests for the parts of our firmware that involve heavy hardware interaction. Show
27 33 C C++ unity, cpputest I am one of the architects of the entire system that we call 'Sirius'. I am primarily responsible for the underlying system infrastructure framework that spans across ThreadX (RTOS) and Linux (the main application OS). This includes system composition, startup, shutdown, IPCs, system memory management & performance, MFP system contention, OTA FW updates and device security. The rest of the application code relies on the framework layer to access various system services. I test on a representative target using special (UDW) commands that is part of the embedded code that allows direct API access into specific modules. These commands could be run from a target shell or driven by external scripts. ARM baed asysmmetric multi-processing system on a custom ASIC running ThreadX and Linux OS. ARM gcc, git, gdb, MULTI, shell 1-5 minutes HP Sirius coding guidelines The number of lines do not matter as much as very intricate nesting of conditions that makes the code difficult to follow after some time peer review using gerrit 60 20 20 New challenges that makes me eager to come to work on Monday morning. Anything that is not productive and slows me down. Write tests that has good code coverage. Tests are written first based on requirements before developing code. Test automation helps to keep the code healthy in the future. I hope to find some useful tools and methodologies for better test automation. Show
4 6 C Java never I work as Firmware integrator in my previously role. My primary duty is first level triage on issues and manage production release. It surprises me how many defects are made by developer as if they never test their own code. Put debug statement and manually test. linux na 5-30 minutes need to be fully tested before going into production code when I can't fit then into my window on my monitor or size of letter paper code reviews is done via gerrit 30 40 30 finding small defects and how a small or one line changes can significantly change the behavior of the program. time to debug and testing is more than actual coding because of legacy code. After the course I know much more about TDD. Backfill the person on my team that can't attend. Show
2 27 C++ python java sql javascript googletest pytest junit I like to ski unit tests, functional tests, full system tests arm based embedded linux system gnu C++, python, eclipse, pycharm Under 10 seconds I'm not sure that we have a formal standard I usually decide a function is too long when I find myself having to mock too many different dependencies in a unit test We use git/bitbucket pull request mechanism for important/complex code that needs to be reviewed 30 40 40 The opportunity to exercise creativity having to learn some one else's complex code that tests are written first, then you write the code to pass the tests I am personally big on unit testing, but I've never done "pure" TDD and would like to learn more. Show
3 months 20 c++ c, java, python, bash google test, JUnit, TestNG, home grown solutions with bash I love motocross and mountain biking, and so do my kids. We spend time riding, and the kids race. With unit tests, and have created functional integration test frameworks for black box testing Embedded linux Qt, python Under 10 seconds Keep my code well commented,Write unit tests to drive my code, and prefere to have frameworks in place like jenkins to constantly run and find issues. This is especially useful in environments with multiple contributors if i have to scroll through a little over a page Currently, it's ad-hoc and will walk through the code with a peer if necessary 50 30 20 Freedom to create solutions to problems, and to create re-usable components that can be used in other projects. I like learning about new technologies and how to apply them to make my job easier. Can't think of anything now. That tests are created first, they fail, then you write your code and find failures, fix, iterate. Our scrum master signed our team up. Show
2 5 Java Python, C++ JUnit In my free time, I make computer-generated art. You can see my work here: I've mostly done Test After Development, but I've recently been trying to switch to TDD. Android, embedded Linux, Windows Android Studio, Eclipse, IntelliJ 31-60 seconds None It does more than one thing, I cannot hold the whole thing in my mind at once, or it doesn't fit on a page. None 20 40 40 Creating solutions to interesting problems. Setting up development environments, especially getting all the dependencies working. I took a class on Java TDD last week. I am not very comfortable in C++, so I hope this class will give me a bit more experience, and because I want to use TDD in C++ but currently don't know how. Show
3.5 4 Matlab, C python, C++, Java Junit I am an electrical engineer. I am a graduate of UCSB. Not formally ARM Microcontroller lpcxpresso (eclipse) 11-30 seconds NA When it does more then one logical task. NA 30 20 50 Making the hardware do cool stuff. Getting stuck because of a stupid bug. Write unit tests up front and then continuously test during the development cycle. To learn about the tools and workflow behind tdd. Show
6 12 Python C, C++ nosetests I primarily do manufacturing testing system testing armv7 netbeans 30-60 minutes K&R, GNU > than 2 paragrahps none 33 33 33 the challenge the business aspect none learn more about testing on the embedded level Show
4 18 Python, C C++, Ruby, Java python unittest, junit I like turtles test concurrent linux kernel, embedded linux, mcu text editor Under 10 seconds Try to be consistent with language standards does more than one thing Don't do them 33 33 33 Solving hard problems Incomplete or inconsistent user manuals for hardware That it works for many people Requirement from management Show
1 5 Java Python, C++ JUnit I love the outdoors! Manually :( Android and Linux Android Studio 31-60 seconds N/A If I have to scroll to see the whole thing and can't remember what is happening outside of what I can currently see. N/A 70 20 5 I like the rewarding feeling that I get when I complete something and see it working in real time. Sometimes it can be very frustrating/stressful/tedious. It's hard sitting in front of a computer for so long! I know that it emphasizes writing the tests before developing the code, and doing this incrementally and continually as you develop. My manager is making me (just kidding (; ) I haven't been using C/C++ for a while and it will be a good refresher for me, while at the same time I will be introduced to a completely new programming method! Show
2 2 c# python, ruby visual studios unit test Software QA engineer focusing on embedded testing. Run everything in debug mode and when it fails check where it fails. embedded linux systems visual studios 11-30 seconds General best practices when its trying to more than it should. There are redundancy in the code Do code review on major changes 50% 30% 20% Developing new features Defects Code is written in mind of test data. To learn what the dev team is working on and how I might benefit. Show
5 20 Java C#, C/C++, Python Junit, Nunit Software engineer working on broad range of systems. Unit test and manual test Embedded and Web Application Eclipse, Clion, PyCharm, IntelliJ, Android Studio 1-5 minutes OK Over 30 lines? Peer review 40% 20% 40% Make things happen Figuring out the right dev environment It makes better code. Do good job. Show
6 30 C/C++ Xcode Google Test I was a primary contributor for years, now I am more of a manager. I don't do a lot of programming anymore. Mostly Developer test Embedded Linux Lots, mostly Netbeans now. 11-30 seconds Not sure what you mean experience As needed 60 20 20 It's fun. Documentation Not a lot. I am interested in continuing our team's growth in unit testing. Show
4 35 c python google test, nosetest (python) Old dad, young kids printk Embeddded Linux - kernel level and mid stack, drivers, ARM gcc, emacs, vi, gdb, oscilloscopes, logic analyzer 5-30 minutes Linux Kernel for Linux kernel code, PEP 8 for Python more thand a few pages limited 5 5 40 I can be modified. Can be tedioius Write the test first. Write code itteratively to pass the test. Want to learn TDD and Unit Test for C code, especially embedded. Most TDD assumes OOP. Show
3 25+ C++ Python gtest, some roll-your-own stuff using C++ templates I'm also the scrum master for the team Writing my own quick test harness if I can Kernel + User-mode Xcode 1-5 minutes Not sure When it does more than one thing One or two reviewers 40 40 20 Making things work! Deadlines! Some previous classes when I worked for Microsoft. My manager signed me up for it. Show
2 18 cpp python JUnit N/A Application specific unit tests, manual tests, automated tests macOS XCode 1-5 minutes In-house coding standard Have to page up/down to understand it Using ReviewBoard 20 30 50 Sometimes exciting Sometimes boring/stressed Testing as an integral part of development For more confidence in code quality Show
0 39 c++ objc, swift, java, x86 asm junit, cppunit - depends - sometimes with test driver code, sometimes following flow with a debugger MacOS services & device drivers xcode, eclipse 5-30 minutes for existing code ... follow existing style if it's not readable code reviews are via automated diff generation 35 15 50 The creative process debugging other developer's code not much Improve development skills Show
0.6 ish about 4.5 C++ Python, C, Objective C JUnit a long time ago I'm really excited for the course We don't really haha. Debug statements by hand I guess. There is some automation for QA but in terms of me trying to figure out if what I wrote does what I think it does there's not much there. Mac OS 10.13 Xcode 1-5 minutes We don't have much. I kind of know what the expectations are but not much in terms of official rules are written down. Someone with more experience tells me haha. I have opinions I guess but I'd defer to my elders in most cases Usually very thorough but not a whole lot of rules or procedures 40% 20% 40% There are usually pretty clear rules and when done right you can be fairly confident something works exactly how it should Sometimes solutions are obscure and feedback can be few and far between with small to nonexistent positive reinforcement. In short, it can be very tedious sometimes if you work on stuff for a long time with little positive progress I learned about it in school and love the concept but lack the experience and tools to utilize it properly. I'm legitimately looking forward to learning something new that I'm already familiar enough to sort of "believe in" and apply it to my own work to make me a better programmer and share what I learn with my team. Show
0 7 C++ C, SQL Proprietary No thanks. Unit/functional tests. Win7+ Visual Studio 1-5 minutes That's a broad question. If it violates the Single Responsibility Principle. Peer-reviewed by fellow co-workers, across teams. 30% 40% 30% Solving problems. Resolving inter-team communication issues. Not much, hence me signing up for this course. I'm new to software development and would like to improve. Show
<1 6 c++ c,c# gtest,cppunit I worked in QA prior to dev position yes windows Visual Studio, WinDbg 5-30 minutes Adhere to the standard of the code base. Adhere to design patterns when appropriate. goto's are used (outside of a single "goto cleanup" or something..); When the code path is untrack'able. A must-have 50 35 15 solving problems old crappy code some to improve my standard of coding using TDD, & better my ability to be able to write unit tests for any scenario. Show
2 14 C C++ python N/A N/A test module functionality varies eclipse, gcc, visual studio 11-30 seconds N/A varies Github reviews 60 20 20 n/a n/a nothing to learn/improve Show
1.5 1.5 professionally, 4 years college (computer science) Python C++/C pytest Currently moving from test/QA automation role -> developer. This my first job out of college and I'm new to the development role in general. Honestly, logging statements for the most part. MacOS endpoints Xcode, IntelliJ 5-30 minutes Not sure if we have one If it's on my 24" monitor and I have to scroll to get to the end of it 1-3 other developers and review, wait for "ship its" 45 10 45 Solving new problems, making existing stuff better Trying to reproduce a bug and not being able to Not much at all but it seems terrific Got signed up for this by management Show
0 10 Java Script C/C++, Python, Mocha I like to go kayaking and saltwater fishing. Often times by running the code and seing the results first hand. printer Eclipse and VS code 1-5 minutes unsure When I see parts of the function performing unique operations that can be isolated. haven't been part of one yet 35 25 40 Solving problems and building multiple parts into a large finished product. physically sitting around most of the time and reading through very old code. Its great! I have used it a little bit before in past school projects but never been able to fully implement it from day one on a project. My manager believe it will help me better contribute to our team and better understand the workings of the software development at Zebra. Show
1.5 20 C++ C, python, homemade I was an EE major run it on the printer! unit tests if written on epoch codebase. Micrium imx6 dual core Eclipse, ARM DS-5 1-5 minutes It is not very extensive I can't see it in the IDE Online, mostly find functional erros 40 10 50 The flexibility, the ability to construct abstract structures. When requirements are amorphous. It means test driven development. Maybe you write the tests first before coding. Sounds interesting, I don't have any reason to say to it. Show
1.5 year 15 c++ c, c#, java, python CppUnit I like basketball and NBA. No unit tests, functional test at a high level. ARM Imx5, Imx6 ARM DS-5 IDE, Onx IDE 1-5 minutes We have one but more of a stylish thing. Coding best practises are not applied. When it doesn't fit my screen. We use code collobarator or pair with someone else 30 20 50 I like working on problems at an abstract level, designing code from scratch, applying design patterns. I don't like working on poorly designed and written codebases. I've taken a training in the past before but never worked in a company that uses it. It wasn't my choice but would want it if asked. Show
10 months 8 Java Python, C++, Perl Zebra in-house tool I am a senior at the University of Rhode Island. I am currently part time at Zebra as I am finishing my degree. Verify that it works as necessary to meet specification. Use Zebra unit test harness. Zebra Mobile Printers Eclipse, Notepad++, Beyond Compare, Cygwin, Toolbox 31-60 seconds Comment appropriately. Use naming schemes that make sense. When it does more than one thing/ can be split into smaller sub-functions. Have not participated in a code review. 25 35 40 I like creating new thing and fixing/solving problems. I don't like interpreting code without comments or unhelpfully named variables. I don't like writing tests. I know that it is centered around writing a test before writing the code. Attending this for work. I have heard that this technique is important, and would like to learn to code with TDD methods. Show
1 20 C++ C, Python CppUnit I enjoy skiing and volleyball unit tests, automated black box testing, system testing. NXP iMX6.SoloX ARM DS-5 toolchain 31-60 seconds Minimal standard best practices. more than 2 screens in length Code changes are reviewed by at least two other developers via online platform, or are developed using pair programming 50 25 25 The challenge of designing and creating solutions to unique problems Dealing with code that comes from previous "questionable" decisions and design (or lack thereof). That I'm supposed to write exhaustive unit tests for my code/functions before I develop them, then write the code to get the unit tests to pass. It was offered to my team and I do not have any formal TDD training. My team uses TDD and I want a better understanding. (It was not mandated that we attend.) Show
2.5 7 (2.5 professionally) C++ C, C#, Python, Perl cpputest I am fascinated by video game development and the underlying algorithms/systems. Unit/Acceptance tests. Linux Visual Studio, Eclipse 5-30 minutes Write neat, efficient, well structured code When it does more than it is supposed to. Code reviews are done before committing code 50 30 20 Seeing code I wrote in action Dealing with code that is as old as me It is beneficial to long term development as it allows code to be well maintained and relatively bug free over time. The company wants me to take the class. Show
2.5 years 10 years Python C++, Java, C, R, Perl, Swift, Objective-C junit, cpputest, mockito Currently a Master's student Writing acceptance tests, unit tests. Sometimes manual use case testing. Zebra Printer/Web/Mobile Device Momentics, Jetbrains IDE's, etc. 1-5 minutes Snake case for methods and variables. Pascal case for class names. Spaces not tabs If it does more than one thing(more than it needs too). Peer code review, where a colleague comes to my desk before checking in. As well as pull requests. 70 10 20 The problem solving part. Poor development environments (long build times, poor debugging tools, etc.) Tests are written before implementation. Required training but am interested to see what I'll learn Show
3 5 C/C++ Java,C# cpputest, junit N/A Create cpputest, junit, some times manual testing linux, windows, android eclipse, VS, momentics 5-30 minutes N/A N/A self and peer 50 30 20 problem solving all the initial setup to get to point where you start writing code. N/A N/A Show
22 25 C++ C, Java, Python The C++ test harness is integrated with our development environment. I manage a team of 6 developers. Unit tests, automated acceptance tests embedded system Momentics IDE in a development VM 31-60 seconds Unit tests are are required for all new code checked into the repository When it appears that it's trying to do too much (i.e. too many conditionals) We do either pair programming or code reviews using Code Collaborator 60 20 20 I enjoy getting things to work with software and learning new technologies. Looking at undocumented code I didn't write and trying to understand how it works. It helps to ensure quality code. Having tests also makes it easier to understand how a particular piece of code is supposed to work. To help my team gain a deeper understanding about the benefits of test driven development and develop skills that make it easier to test their code. Show
3 17 Python The one that gets the job done. (C!) Mostly python unittest I bike. Unittests, acceptance test frameworks, manual tests where necessary Ask me about my target system. vim? Linux? 1-5 minutes Python: pep 8, more or less. Describing what it does requires too many "ands"; does not fit on two 25 line terminals; makes me curse Git pull requests. 1-2 reviewers 33 33 33 Problem solving When the problem is too easy. I know what the acronym stands for, and I like to think I know what that means, but I'm probably wrong. Someone trust descried it as "very good". Show
1 month 7 C++ python - - - - - 5-30 minutes - - - 60% 10% 30% - - - To gain more knowledge on how the TDD process can be more effective and apply it to current project Show
2 8 C++ C, PHP, JS, Java, C#, Python Not Sure. My favorite part about work meetings is the food. Unit Testing. Black Box Testing. Embedded IDE - Momentics, Build Server, SVN, Google Search, Collaborator 30-60 minutes OCD-Neat. No tabs. Favor speed of execution. My "codey" sense tingles. Meh. Usually good for checking syntax.. Normally not very effective for concept understanding. 50 10 40 Good mix of logic and creativity. It's a puzzle that, in many cases, has visible outcomes/rewards. Head-ache debugging. Someone else "messing" up my particularly neat code. Test Driven Development? ....I'm guessing. Still armature level. I have been assigned by my company to take this course. Show
14 20 Java, C# BAL, Cobol, C, TAL TestComplete, AutoIT, RobotFramework I wrote a 5-card draw poker application in APL on an IBM 1130 and a Hangman CList on an IBM370. Develop manual and automated test cases and execute them It varies, currently testing an SDK Visual Studio, 11-30 seconds kiss you have to turn the page never had one ~0 60 40 Watching it provide value to the user. Watching the user get frustrated. I understand the concept (I think) To see what parts are applicable to what I do. Show
.5 month 9 C++ C, perl, html, python ???? I like working here. I'm from San Diego. Unit tests arm processor momentix 5-30 minutes I follow the general style of the file I'm working in I don't know I find them helpful. 40 30 30 Seeing it work. Trying out different algorithms. Seeing how I can improve the code. Not sure. I like developing software. Not much Because it's available to me. I hear it's a really good class. I'm excited to take it. Show
2 3 C++ C, Java none? i don;t know what to put here Using the debugger printers Momentics 5-30 minutes n/a can't find where the bug is sometimes we pair program with more experienced developers 30 10 60 making things work debugging nothing to make my job easier Show
5 14 C# C++, Java None I value my privacy when it comes to technology. Debugging and/or sending data and checking the output. Printers, Windows, Android Momentics (Eclipse sort of), Visual Studio, Eclipse, Android Studio 1-5 minutes No real specific standard. Tabs? Depends on the project. Duplicate code or deep nesting usually. Not being able to tell, within a reasonable time, what the function does. Only in certain projects; pair program and review code together or review the code by myself 50 25 25 Solving a problem for myself or others. Creating a solution, hopefully one that is simple, that can be used with ease. Running into issues beyond my knowledge or having harsh deadlines. Not much. I don't do it here and didn't do it in school either. To learn about TDD and hopefully become a better developer. Show
7 12 C#/C++ C, Java, Perl JUnit No By running through a suite of tests that verify output from our products. Firmware Eclipse, Visual Studio, Resharper, Various in-house tools for testing and communication 5-30 minutes Varies based on project/language/firmware base Depends on context We don't do them in most projects 80 5 15 Solving problems Testing Most of the basic concepts and a few variations on methodology Because my manager told me to Show
5+ 10+ c++ C/C# NONE I feel as though I do not abide by best practices/industry standards while programming at this company We put the burden on the end user to test the code (user acceptance test). New product engineering here produces unit tests for proper code coverage, however our business model does not easily facilitate creating/testing code in the typical manner. QNX/arm Momentics, GCC 5-30 minutes low when it performs more than what should be an isolated task. Should not be larger than 30 lines of code if you can help it. they don't exist 25 50 25 the challenge, the organization of a proper solution. That feeling when you write code that is clean AND performs well... :) Atthis company, I don't like customizing a code base I know nothing about, and have no knowledgeable resources to bounce idea's off of. We don't know the overall design/ application of design patterns, ect... Make the test, make it pass, refactor. Start w/ the test, write the minimum amount of code to pass the test...refactor.. We literally have received next to 0 training. As a group we had taken TDD training about 4 years ago, it was in JAVA which I do not know, and in addition we do not program in JAVA for this job. Show
13.5 30 G (LabVIEW) C++, C and a little python The unit test harness built into the LabVIEW IDE Professionally, I am a Certified LabVIEW Architect and a LabVIEW Champion. I primarily have worked on the test side of software development with an emphasis on automation. I also have extensive networking background. Unit test individual code components. Write small test applications to test the code. Primarily PC application with some RT controllers Mostly the tools that come with the LabVIEW IDE. G is a graphical programming language and traditional text based tools do not work. Under 10 seconds We generally follow the standards set forth for LabVIEW certification. We also have naming conventions in place. Being a graphical language, any code larger that a single screen is much to large. We generally do pair programming for more complex development and use peer code reviews for other code. 40% 40% 20% I like coming up with solutions to problems. I find the design phase to be a very stimulating and creative process. I also strive to always keep re-use in mind and enjoy when code that I wrote has a long life. Poorly written code. I see too much of it. Clean code makes everyone's life much easier. TDD is focused on defining test before code is written. The goal is to allow the test to verify that the requirements are being met and that as code is modified in the future the tests can be used to verify everything. Mainly a refresher. I took the class years ago when you came to Zebra in the past. Show
6 13 Python Java Junit, pyunit, pytest, Robot Framework My primary focus at Zebra is testing software. However, my main coding hobby is creating Alexa (Amazon Echo) skills. Manually Web Platforms (Spring and Tomcat based), Android Development, and Android / Windows SDKs Intellij, PyCharm, Atom, Beyond Compare, git, jira, jenkins, bitbucket, Android Studio, AWS 31-60 seconds Peer Reviewed pull requests more than 30 lines long? rarely performed 20 30 50 I can turn an idea into reality with enough work and determination. Many tools to do this are free. It's fun. When political obstacles get in the way. Start with test and work backwards to implement code. Pair Programming. Agile. Offered a chance to attend. Show
8 months 15 years C Python NA NA PDB/Pycharm debugger, prints Zebra Printers NA 1-5 minutes Python PEP guidelines When it does more than 1 core thing Pair 20 50 30 Automating repetitive tasks Debugging bugs Not too familiar To pick up debug skills Show
0 4 C# Java,C++,HTML,Python None Less than a year out of college - - VS,Momentics 31-60 seconds - - None 90 5 5 its rewarding when things work tedious write tests first then start developing from there to learn Show
14 14 C Python unity I am a person with big curiousity. This curiosity is directed to many different topics like the nature, hiking, reading books or having a good conversation (yes, that is very Spanish :)). I have a in Master in Physics and also in Electronics. In-system debugging Blackbox tests Our applications are energy harvesting or low powered radio transceiver/transmitters. Current micontroller platform is STM32L0 (ARM-M0 core). We also worked with MSP430, 8051 platform and Microchip 18F, 16F and 12F families. Keil µVision with ARM compiler. In the past also IAR-ARM/MSP430 and MPlab 11-30 seconds Internal coding guidelines When it implements different functionalities instead of being focused on one single task. Length also plays a role. And I assume testability plays another role. Done/documented by another partner before product is going to be released. 45 55 5 I enjoy putting ideas into a system with a well structured logical behaviour. Having bugs on the field. It is a methodology to test while developing the sw (instead of after having developed the software) to improve sw quality and speed up development. Because I want to learn how to test while developing in a more systematic way. Also because other collegues found the ideas/methods in the course very useful. Show
.5 25 C Assembly, C++, C#, Python, Perl Haven't really Currently hold all NC state power lifting records for USPA Masters Mens SHW. Manually STM32M (ARM-M4) IAR, Git 1-5 minutes I'm currently developing the standard for embedded platforms. Generally 20 lines or so of code, but it's flexable. Implementing via Atlassian tool-chain; Bitbucket pull requests. 33.3% 33.3% 33.4% Solving puzzles, creating something from nothing. Being bothered Just the very basics, need concrete examples on how to turn the concepts into practice. I'm looking to make this a standard practice within the firmware group: would like to make it standard with-in all software but don't have control of that domain. Show
0.616 10 C++ matlab, python gtest On my spare time I like to play board games with my friends. mostly printf. i.mx35 and STM32 with a ARM cortex M3 optima, visual studio, lauterbach debugger, keil µVision, svn 1-5 minutes There seem to be a few different ones for specific platforms, but I'm not familiar enough with coding standards to describe them efficiently. when I decide it starts to look ugly and hard to follow. send the code to a colleague who usually returns it with some critique, if a larger discussion is needed a forum for all developers is held every other week where such questions can be raised. 34 33 33 Problem solving, figuring out how make the different parts go together to make them do what I want. hard to debug intermittent errors keeping you up at night. A coding philosophy based on developing tests for your code as you go along in order to verify the function of each small part, and to stop to try to make the small part of code fail instead of instantly moving on to writing the next one. I'd like some inspiration as how to improve my coding and see a few tools that would allow it. Also getting some variation to my workday as I've been doing non coding stuff for a while. Show
4 13 C# Java, VB, C n/a I started getting into Hydroponics. Use a Documented Test Plan I usually write software for desktops or web. Visual Studio Under 10 seconds N/A When Running - When it doesn't work./ In Code Drops off the page. N/A - We have just started doing this here 25 50 25 Instant Gratification Digitally Signing Drivers for Windows Nothing I was told by a Co-Worker that I'm taking this. Show
2 20 Python, C Lua, PHP, javascript (?) gitlab CI, buildbot, jenkins, cron... dont remember. But CI is a real time saver. I'm tall, 1.90m and have a great sense of humor :) nose2 for python or make test for C. Local gitlab server with CI. Use pylint or flake8 as a linter for python. I would love to have a good linter for C. Always compile with -Wall -Werror in CI. x89, arm, blackfin vim, cscope, ctags. Sometimes an IDE like pycharm. depends on language,codebase and build system. Have started to look into docker but have not had the time to do anything usefull with it. 1-5 minutes Varies on codebase and language. But I like consistency in the code. 20 lines or 5-6 variables? As small as possible but don't over do it. Readability and scope is King. I love constructive criticism. It helps me grow and improve. 70 10 20 The only thing worse then programming is not to program. The only thing worse then programming is not to program. Have used TDD extensively in Java, ROR but not so much in C. It has many great uses but I often find system testing to be more time efficient in C. But designing for testability is very good design. "If I have seen further it is by standing on the shoulders of Giants". I have learned much in the past from reading code of really skilled programmers. And I always strive to improve my own code. Show
0.3 6 C C#, Python Unity, Pytest I recently switched from Games development to Embedded. Also last week I moved into the House I renovated from groud up myself. If I'm not busy building in either profession I like all kind of mountain sports. Unity for Unittest. Pytest on Raspberry Pi for Black Box testing on hardware. STM32l0 We hope getting away from Keil in the near future 31-60 seconds Basically MSDN It does more than one thing which can be described by the funtion name. We use ReviewTool 45 20 35 The riddles when finding elegant solutions or finding complicated bugs. Beeing slowed down by crappy tools. The basics Want to try a different approach on testing. Also the others from my company recommended it. Show
13 37 C assembly, tcl, php, awk mainly homebuilt Mainly lowlevel prograqmmer (uC, drivers etc) and HW designer In-system uC & DSP-based RF-system gcc, gnu make 5-30 minutes wellcommented readable when you cant understand it, maybe >100 lines sparse 40 20 40 Free and creative Bad tools A good way ti increase SW quality and reduce debugging time Increase productivity and quality in new projects and also a wish from managers. Show
3.25 5 C/C++ C# .NET none I enjoy drawing and play the guitar Full device I/O tests. mostly microcontrollers IDEs, debuggers, Understand 1-5 minutes No company standard It either encompasses multiple functionalites or it becomes hard to follow Several people in a conf. room who review changes to the code. 35% 15% 50% Creating/designing a system, which includes solving semi-complex issues. Dealing with legacy code that wasn't written well. I understand the high level concept from a few articles: write your test before you write your code. Our SW and FW team is building up, so we are getting trained on best practices and forming our coding standards and best practices. Show
2 7 C# JavaScript, Angular, TypeScript MSTest Unit Test Projects, MSTest Coded UI Test Projects I enjoy playing/watching baseball Write Unit Tests after writing the code, then altering the code to work better for the tests Medical Instrument Visual Studio 1-5 minutes Project Coding Standards are not well defined or publicized When it does more than one or two things or it gets above 300 lines. Require 2 code reviewers on every code change 15 30 55 Solving problems Don't get to be out in the sunshine It improves efficiency in writing code. It improves code stability. It requires a behavioral change to implement Because TDD is very interesting to me and I would like to improve my behaviors to be able to be more efficient at coding solutions to complicated problems Show
<1 20+ C/C++ C#, Bash, VB none No By Hand For BD - Target embedded PC, Windows 10 VS 2015 CE 11-30 seconds Coding std defined by BD When the function starts performing operations not related to the function name Code reviews done in TFS/VSTS 30 50 20 Challenge, seeing Computer/world interfaces. Beauty in architecture. Over-reacking processes and software that has little structure. It is a method od developing where the tests are written aginst the spec until they fail, then code is written to make the tests pass. I was told to. Show
1 20 C# TypeScript, JavaScript, C++, SQL nUnit, cppunit, mstest Love ethnic food unit test + manual testing Win 10 IOT Visual Studio, SSMS, notepad++, linqpad 5-30 minutes loose have to scroll we have them 40 30 30 I like debugging, I realy do. Long Build Time, not having coding standards. People that think they know it all... Tried to follow it few times. Trying to better my self. You are the expert, make it worth my time :-) Show
<1 32 C# C++ ? I am married with 3 kids. I've been developing software professionally since 1984. Unit Tests, Module Level Tests Windows Visual Studio 2015 1-5 minutes Try to employ best practices If it tries to do accomplish more than one task Try to concentrate on function rather than standards 75 10 15 Creating novel solutions to hard problems. ? Nothing Learn more effective ways to develop and test code. Show
2 8 C# Angular, Php, Java MS Test, Azure cloud test Someone who wants to write as well. Mix of automatic, simulator and manual test Medical instrument visual studio 5-30 minutes Try to follow oods Function does more than one thing 2 code reviews 40 30 30 Feeling of problem solving. When same code fails multiple times on multiple paths Attempt to write test before actually developing, so that production code can be tested automatically. Due to company training Show
9.5 26 C# C++, Typescript, Javascript NUnit, MSTest Duck Tales > Star Trek Repeatedly Windows Embedded VS2017, VSTS 1-5 minutes Variation of the MS standard >2 screens Online via VSTS 40 40 20 Solving problems Finding innovative solutions Helping people Building cool stuff Not enough time spent on it. It produces good results but takes too long. There are more efficient routes to producing a good unit tested product that consume less time. However, I think it is good to present this so the team knows how far off the mark they are. The team is not writing good unit tests. Some don't know how. Many of them do know, in theory, what to do but they don't practice it. More rigor would make us more efficient. Show
3.5 35 C# C++, C, etc VSTest, MOQ advocate of classical education unit test, on machine, in simulator W10 SBC Visual Studio, IAR 1-5 minutes to achieve business objectives i can't figure out what it does quickly verify developer understands how what they're doing fits into larger system 70 20 10 i'm a math and science guy, so it falls into that ballpark working with developers who don't collaborate/communicate, don't test their code; working with developers who care more about code than about the impact of that code on the product they're developing code for write the test first and then write the code to make the test pass? because I have to and because I might learn something to help my employer succeed with their product development Show
1 3 c# C++, Java, Pyton Junit I am a Junior in College Using the tests already implemented. Windows 10 IoT Visual Studio 30-60 minutes High When the compile time exceeds expected Normally last about 3 minutes with light questions about pull requests 30 40 30 It gives me the freedom to solve virtually any problem in virtually any way. Sitting at a desk for extended periods of time. ?? Because I want to absorb all of the information I possibly can while I'm here. Show
3 15+ c# c++, javascript nunit, mstest experienced engineer automated tests and instrument tests windows visual studio 1-5 minutes BD standard it spans several pages we review the pull requests agaisnt the team branch. 50 10 40 creativity all the time some aspects of agile good concept want learn something from others Show
16 33 c# none visual studio I'm old Manual tests and Visual Studio Microsoft Windows visual studio, NuGet packages 1-5 minutes BD coding standard it does not fit on a single screen manual and git pull requests 25 25 25 learning new technologies nothing not much manditory Show
28 35 C# asm86, C++, C VS Nearing retirement! Automated unit test using Moq & Fakes. Debug on instruments. Windows OS VS, Git 31-60 seconds Coding standards documented and required training When it performs more than one function. Is not maintainable. >= 2 developers in MS Team. Follow coding standards. Review unit test effectiveness. 45 45 10 Immediate feedback when driving motors. Solving complex problems. Architecting & designing complex systems. Making a difference in the world. Difficulty in getting good specs & reqs.Management & schedules. Reteaching that software is not always that simple. Documentation. Proving that it's not always software - sometimes electrical issues/hardware. it's a 3 letter acroynm. Management signed me up. Show
2.5 30 C# C/C++ Java Javascript Python NUnit, MSTest, JUnit I like turtles unit testing, instrument testing medical device system visual studio 1-5 minutes reasonable It doesn't fit on one screen Last project: pretty thorough. 33 33 33 developing software nothing I done it professionaly assigned Show
18 27 C# C, C++, assembler, Prolog none I like beer. Debugger A mix of embedded C++ and a Windows computer running a C# application VS 2015, IAR 11-30 seconds C# is mainly Microsoft recomendations, C and C++ are pretty standard More than a couple hundred lines Much better now that we use TFS. We used to print diffs and walk through with other developers in a meeting 40 30 30 Creating things Process overhead Create tests based on specs so that when the code executes all tests correctly it should be done. free lunch and learn more about TDD. Show
<1 4 C# C++, Java N/A I'm an EE who stumbled into programming while in college. Unit tests and on-instrument testing Windows 10 IoT Visual Studio, TypeScript, npm, SQL Management Studio 5-30 minutes Pretty standard C# conventions If you can't name the function succinctly, or if it encompasses logic that a whole class could do in multiple functions. Online using VSO, or in-person if need be 20% 50% 30% I like that you can see immediate results, and that it's often very abstract/mathematical in nature. The agile process and company process sometimes get in the way of being able to do productive work, like fixing bugs, and replace it with tedious work like typing up SCRs, PBIs, etc. I vaguely remember learning about it in college; it's mostly the idea that you should not only write your code to solve a problem, but to be easily testable as well. I was required to be here. But I'm also interested in the topic, so it's not like I wouldn't have been here anyway. Show
1 16 c++, c# Java, Python, R Proprietary, MSTest, NUnit Test Unit, Integrated and directed testing directed testing Visual Studio, MS SQL Server 4-8 hours microsoft you have to scroll down a page industry standard 20 50 30 problem-solving excess documentation write more stable and reliable code to learn more about TDD Show
6 25 C# JavaScript, C JUnit, NUnit, CPPUnit I'm a Christian, Married, 4 kids (Allison 23, Erin 21, Megan 19, Kevin 16) Automated and manual tests x64 Window 10 Iot Visual Studio 1-5 minutes We have a style standard, test coverage 60%, 2 reviewers when I have to scroll twice Done using VSTS tools on git pulls requests. 2 peers review and comment, and pulls are gated on branch policies. 40% 40% 20% I enjoy solving problems, and software is the closest thing to executable knowledge. That there seems to be a never ending wave of new technologies that do the same thing just a little little differently, but offer little value over prior art. It stand for Test Driven Development. It's a tactical method for development where you write all the tests first such that they fail. Then impl till they all succeeded. I think BDD is a superior mindset, but is basically the same tactic. Told to attend. Show
6 20 c# java, javascript microsoft's i hate cold weather 1) unit tests 2) simulators 3) on instrument 4) mini test programs bd instrument visual studio 5-30 minutes generally follow industry best practices when it is doing so many disparate things that there is no way to name it in a way that makes sense and it is not reusable often perfunctory 30 40 30 solving complicated problems configuration and administrative type problems, for example not having rights, having to figure out the exact version of some 3rd party software to use not much! I want to understand more about tdd Show
2 8 C hashtag (aka C#) Xml, Javascript MSTest I enjoy snowboarding in the winter time and I live in Baltimore, may pursue an MBA in the near future. We start using device simulators to run a "simulated run" Then we basically make sure it didn't break any unit tests, which are mostly integration tests in our case. Then we take it to a real instrument and test the code on the instrument, if it works it's usually approved for a merge. Lots of devices which we connect to by creating objects to represent them via XML Configuration files, we have "Device Simulator" versions of these Devices for running in simulator (testing) mode. Node, Sql Server Express, Git, Visual Studio Team Services, NuGet 5-30 minutes Pretty strict regarding how we follow our design patterns. Our solution is heavily based on a factory model. When it can easily be reduced to more testable units -So its modular and you know everything about the method by reading its Description and Title We require 2 reviewers for any merge - usually people who are the most knowledgeable of the areas of code you're changing. 15% 60% 25% I like to solve problems - I like thinking about things in terms of modular components which can be combined and moved around to achieve different outcomes. I don't like when it takes forever to test something I don't like long build times Fixing bugs that should have already been fixed. Write tests before methods are written I have to Show
2 5 C# C++, Java None I dislike survey questions which break anonymity. Run existing automated tests and then manually test on a real device. Windows 10 VS2015 5-30 minutes - When it no longer does the task in the function name (entire purpose and tasks of function should be describable in a couple words) Too infrequent; not substantial enough 30 20 50 It's creative and challenging. Think Brainteasers. It can be frustrating. Enough to know we don't use it often. It's an opportunity to learn about testing. Show
3 10 C# Java, Javascript MSTest, JUnit I learned to code with True BASIC It depends on what type of testing I am doing. I do a combination of simulation, integration, and instrument testing depending on the code changes I have made. Instrument, Azure VMs Visual Studio 5-30 minutes Good? We code, test, and code review so that we have a robust system. If I must scroll more than one-two pages, it is probably too long. Code reviews tend to be fast, but also tend to catch at least some errors. 60 20 20 I enjoy solving new problems. I also enjoy the ability it gives me to create things that can eventually be consumed by other people. I do not always enjoy acquiring requirements and editing code based on changed requirements. My understanding is that a test is written before the code is implemented. The code is then complete when the associated test(s) pass. This is a required training course. Also, it would be good to learn more about testing. Show
one and half hours 8years C# Javascript mstest, NUnit I am programmer and worked on different products that run on windows environment and developing software with C#, SQL server, javascript Testing involves unit test and manual testing on instruments Windows based computer that talks to different devices TFS, Visual Studio, SQL Management Studio 1-5 minutes simple when it is trying to do more than 5 different things code reviewed by two people 40 40 20 figuring out solutions dealing with third party software problems used TDD in one of the project learn unit testing Show
6.5yrs 25 yrs Currently C VHDL, Verilog, C++ None Driven, big picture mentality, system oriented After complete, hardcore functional testing. Embedded System using MicroChip controllers. CCS IDE system 1-5 minutes Recent adoptation of Misra C Personally, if it is more than a screen page it is to long. Determination of when to create a function is when I need tor repeat the process more than 2 times. local colleagues and a 3rd party resource. Been favorable, though high cyclomatic and cognitive scores 40% 25% 35% Creative and control aspects. IDE's and low level setup of the registers. Concept is a paradigm shift from what I have done before, but it is what I need in my current environment. Needed a break from company politics. New manager used TDD in previous employment and wants to see it happen here. I agreed with him after a 2 yr FW dev cycle that nearly burned me out. I see a lot of potential for improvement. Show
3 12 c c++, python vectorcast, gtest, cmocka I like to cook and garden. desktop tests, unit tests, hardware in the loop, software in the loop and system level verification Battery powered device with radios IAR, gcc, cmake 1-5 minutes Derived from MISRA along with other best practices If its doing more than one task, if you can't see everything without scrolling We require 2 people to approve a Git pull request. We also do more formal design reviews based on risk/safety 60 20 20 Solving challenges Trying to give estimates for how long something will take. Allows you to refactor code and be confident it still works. Easier to find problems quicker. One of the things I am struggling with TDD is at what level within the hardware drivers should unit testing stop and just be stubbed for other tests to work. Show
2 14 C/C++ Ruby, Julia, Matlab gmock I was a competitive water skier in college. Some automation w/ Cygwin and gmock, but mostly manual on-target testing though a debugger 16-bit NXP MCU (S12Z) CodeWarrior, Visual Studio Code, PE Micro debugger 11-30 seconds Internally developed, but references the JSF-AV rules, MISRA-C guidelines, and articles from Michael Barr and Dan Saks on I have to scroll to read the whole thing they are done virtually through our VCS (GitLab) 40 40 20 the artistic creation aspect of it, and the immediate effects you can have on the physical world with embedded systems explaining computational complexity, tell-don't-ask, and other software paradigms to non-software folks. Also the limitations of cross-compiling are annoying. I went through the first half of James's book and tried it out with our system at work. To make connections with other embedded developers and get more exposure to the use of agile methods in the embedded realm. Show
3 23 C python Unity, CMock, Ceedling Always trying new things and looking for ways to improve myself. Manual unit tests and manual regression tests Battery powered microcontrollers GCC, IAR, and Eclipse 11-30 seconds Based on Barr Group Embedded C Coding Standards If cannot understand the basic behavior with a glance Use SmartBear's Collaborator tool. Some code, but not all. 20 40 40 Seeing output relative quickly. Regression testing. Allows you to develop unit tests and regression tests as you develop code. After making a small change in your code, you can quickly retest your code to make sure the original behavior still works. Makes you think about making testable code. Want to develop software faster and higher quality. Be able to explain to management why we need TDD and teach co-workers about TDD. Show
11 13 C structured text (PLC), C# NA Myself and the firmware discipline within our company have slowly migrated from electrical hardware to the Software group. If I'm not with family or in at a church function, I'm probably working on my house (which I suppose makes it my unintended hobby). Machine system/regression tests. Mail processing equipment controls. Specifically Atmel ARM (AT91 and ATSAM) using GPIO, CAN, Serial etc. Lots of control state machines. Rowley Crossworks, AtmelStudio, B&R Automation Studio (PLC) Under 10 seconds Roughly based on Barr Group's standard More than one screen. I'm the only experienced embedded developer, so code reviews are essentially, me explaining my code to the very junior C developer or to experienced C# developers. 50% 15% 35% (debugging before release, very few errors make it to the field) I enjoy the design stages and figuring out how to solve the problem. I enjoy the actual coding of course and creating clean interfaces. Coming up with and documenting test plans isn't much fun. I also become extremely grumpy when all the other groups make unscheduled, undocumented and unannounced changes to my test machine when I'm trying to qualify brand new code functionality. I know what it is supposed to be. I've been to several short talks about TDD/unit testing for higher level languages. I purchased TDD for Embedded C a year ago and started through it. But progress slowed to a halt as project priorities picked up... I am convinced that TDD is the way to go. My new boss, Vanessa (attending the class with me) seems dedicated to the cause. I think I just need a jump start in how to practically implement TDD and how to setup the tools for our environment(s). Show
7 26 C Java, C#, shell junit. modified to run on-unit for our firmware. I created a number of pseudo unit-tests with it, but the team didn't adopt it. In addition, we ran out of room on our processors to keep the tests around. I have a 6 year-old daughter, so spend most of my time outside of work with her. My wife runs a photography business, so I get to be involved in her creative process and running of her business. Hand testing, a custom in-unit test framework is sometimes utilized. CLI environment and debugger often used to introduce conditions. Custom code to change paths. Microprocessors, typically ARM based running FreeRTOS, but a decent number of Microchip PICs. Some Embedded Linux is appearing. Some java for non-embedded. IAR, Jenkins for Continuous build. Segger J-Flash. Tracealyzer 31-60 seconds It is not formalized. However we do have pretty consistent coding standards. We notice coding standard issues in code reviews (although this is not the focus of the reviews). We don't. I'm personally evolving to write shorter functions, however my entire team is not on the same path. Architecture is helping with this a bit as our architecture is well defined. We try to review everything.Reviews are deskchecks for small changes, meetings w/ 2-4 people for bigger changes. Focus on fitting in the code architecture + error paths. Led by the developer. 20 20 20 Taking on a new challenge and meeting it. Learning new things. Delivering successful product. Enabling others to be more successful via training or tools. Collaborating with others. Solving difficult architecture problems in clean ways. Schedules that don't allow for things to be done right! Politics. Create test. Run test. It will fail. Write code. Run test. It should pass. I have wanted to introduce unit and automated tests for our firmware projects for years. My organization is getting behind the need for unit level tests to supplement the system level testing we already do. Show
11 18 C C Proprietary I am working at Phoenix Contact in process automation field. I worked on a small industrial PLC development for a number of years before... Simulations, test code for test-automation, logging STM32 Keil ARM uVision Pro 1-5 minutes Not sure When it does more then one thing Only had 1. Not much help.... 70 10 20 the architectural design part of it and technical challenges(problem solving). Dependency on hardware. Nothing really. I do develop tests to help better understand and implement my solutions. I am always interested to learn new or different ways of development. And the company is covering the expense. win-win. Show
7 20+ C C++, Java emulators,dongles, other hw Nothing interesting unit test code, console commands, wireless remote test commands, interfaces, emulators/debuggers, GUI/Management software for integration/system tests ARM3/4 32 bit or Linux SBC GCC, IAR, Eclipse 1-5 minutes Standard C coding standards created in house more than a page(66 lines) or I am trying to do too much in one function mandotory, at least 2 developers use Fisheye 50% 40% 10% Challenges me it is my job I can spell it and know it stands for test driven development learn the new development life cycle methodologies, new tools, learn something new, Bring myself from Yourdon to Agile world Show
2 4 C C++ CPPUnit, Python unittest I want to understand how TDD is a programming technique and the levels. As I have been doing unit testing in embedded software development, I am looking forward to learning how I can build a test framework which keeps scaling as the product's software design matures. Mix of manual and gtest: Using gtest on the host to check on application logic. Using emulator (breakpoints) to check on logic at target system. Using open source toolchains, ARM GCC STMF4/STMF7, No RTOS(Bare Metal), FreeRTOS Using open source tools. 5-30 minutes Company has customized coding standards both for Embedded C and C++ By Lines of code Peer code reviews 30 40 30 I like the process of designing, writing, testing and troubleshooting. Too much to learn Easy to get lost in the details TDD is like Test First-Development, where you write the test before you write enough production code. Because I want to hone my programming skill that can further enhance my career as a new software developer. Show
9 25+ C C++ In-house developed test station. Simulated software. Seasoned embedded software developer who wants to learn more. Debugger, regression test scripts using custom test harnesses, software simulator running in Windows environment. Microcontroller based government systems IAR Workbench 31-60 seconds Netrino Embedded C-Coding Standard When the code start to turn sphagetti, and it is difficult to follow what the code is trying to do. Peer reviews usually toward the end of coding 50 15 35 The logic involved in developing code to solve a problem. Code can be easily modified by rebuilding and reprogramming. The "invisibility" of software which is less recognized by people outside of the embedded community. Also, in embedded software (which requires a target hardware for testing), it is difficult to run automated tests for TDD purposes. Just the basics. Incorporate testing into each new code feature, and retest all old code as new features are added. Want to see how AGILE can be applied specifically to embedded software, where a dedicated hardware is usually required for testing. Wants to add AGILE and TDD to our software process. Show
10 8 C++ C, Python Gtest, Parasoft Medical device software development with a electrical test background. Gtest, currently getting familiar with parasoft tools. Some experience with Segger trace tools. STM32F4/7 Eclipse, Cmake, Under 10 seconds Vague, but improving actively. When it does more than one logical activity. Manual and inefficient. 25 25 50 Developing an elegant solution to a complicated problem. Searching for the cause of bugs. I've read about half of your book. I'm very curious, but it's a large mindset shift. I need some concrete examples seeing and feeling TDD work. I need to be able to articulate agile for embedded to my team. Show
7 20 c none none Manager role, I am curious to learn how to use Agile for embedded systems Manual testing Cortex M-3 GNU 1-5 minutes Our own coding standard more than a page Team based code reviews 40 30 30 I like Solving problems Exhaustive testing is time consuming Not much As a manager who uses Waterfall, I want to understand if Agile will help me with embedded systems development Show
3 10 Matlab C None I manage the embedded systems group at Raymond Corporation. We are owned by Toyota. Some amount of unit testing, we do a certain amount of integration testing. Mostly lab testing Freescale HC12 and TI TIva Understand 1-2 hours We have not yet written down something concrete. When you to scroll painfully to understand the implementation. We do them consistently 3 hours 2 days 0.5 day The fun of solving problems Asking estimates, hearing about bugs from customers Front loading more testing into the development. As a manager, I want to seem like I know what I am talking about for a change! ;) Show
2 10 C python NA SW developer with background in customer support of ARM-Cortex-M devices. Now leading small team. unit tests using ceedling + integration tests using proprietary HW platform. watch :) jlink + exlipse, KEIL, Jtrace 1-5 minutes internal company coding standard by feeling, by code reviews using bitbucket for each pull request 50% 20% 30% see it working see it not working by someone else forced by the management :) at the moment we do "reverse" TDD by just unit test the code. I'd like to understand if it makes sense to make real TDD for not only lesson examples but if it is really feasible to make it for any SW. I'd like to know best practices in TDD and to get answers to already prepared questions. Show
1 18 c assembly, c++, python google test(used for 3 years), hands on Ceedling I'm 38, father of 2 children, passionate by the connected world, I used to work on Bluetooth low energy product since 2010. Due to time constraints. I'm testing in on emulator... Trying to write unit tests when/if there is a bug.. to show highlight the bug, and demonstrate the fix. 8Bits EM microelectronic Coolrisc. Eclipse and Winidea (Raisonance), I also used to work with IAR, Keil uVision, Code Composer Studin 1-5 minutes I'm pretty strict about coding standard, especially about naming, making short self descriptive function which does a single thing and can be easily tested, For low level function, if it does more than one thing. On higher level function if it contains too much conditions, doesn't fit on a standard display a standard 100% resolution The software shall build and all the unit tests shall pass. Regarding the way I'm reviewing, code aspect and the atomicity of the commit are important in order to be able to focus on the implementation change. 35 40 25 Code writing is fun for me. I like to find the best design exchange with colleagues to achieve it. By the way I now tend to prefer the design , definition, aspect than the implementation itself. Having to debug/edit someone else's code which doesn't follow any standard or is of poor quality. I've been using it a bit 2010-2014 and heavily since. But min this company it is "new". To complete my current experience with TDD which I learned on the "Heap" within my precedent teams. Show
1 3 C/C++ Python Ceedling Junior embedded dev in watch manufacturer company Bachelor degree in embedded and automated systems Master degree in embedded systems Unit test, On the target Small 8 bits uC, 32k flash, 4k Ram Eclipse 31-60 seconds Internal coding standard Dozen lines of codes, ~1 A4 page Code reviews done by 3-4 team members on bitbucket, 2 approuvals are needed 50 10 40 Conception Create new things Debugging the tools Test before code Iterate between code and test writing Helps to avoid regression during refactoring Learn the "good" practices in TDD Learn what is important and what is less in TDD. What we should focus on when we are doing tdd Show
2 6 c python, matlab ceedling Junior embedded dev in watch manufacturer company Bachelor degree in embedded and automated systems Unit test and manual integration tests 8 bits EM chip with CoolRisc core eclipse/winidea 31-60 seconds WE do have some coding quideline inspire by misra that we need to follow When to complicated to test We do a code review for each pull request 40 40 20 The analysis that we need to split a big task in very small easy tasks Good question, maybe too many formalism Great way to think your design, Code which is easily testable is most of time easy to understand and maintain We are currently using starting with tdd, therfore all our team is following this training to know a bit more about tdd. Show
3 15 C C++, python, java ceedling confidental manual manipulation, target interface control by python tests, test code emulated on pc confidental CLion IDE 1-5 minutes subset of misra-C rules, object-like interface of modules hard to understand whole functionality done on each pull request 30 % 20 % 50 % --- unstable or limited tools basic concept how to use it for OOP partially how to use it for C to clarify how to integrate it to our development how to use TDD for our coding style of C Show
2.5 8 C Python Unity + CMock + Ceedling, Python unittest Embedded dev in watch manufacturer company Bachelor degree in embedded and automated systems In love with Python, always looking for a new script to write. 2nd most ancient team member although it's my first job and I've got my degree only 3 years ago. I currently test my code by playing with the target and sometimes modifying the internal states with the debugger. Mostly 32 bits ARM Cortex-M (M0-M4) gcc toolchain, Makefile + Eclipse. Sometimes Ozone for debugging. 1-5 minutes Many MISRA principles make sense to me and my golden rule is to write code for others, not just for me. It has to be quickly understood. It's too long when it does too many different things and/or does not fit on a screen. I can tolerate a long function consisting of a single large switch dispatching to multiple functions, if the switch contains no logic. We review every branch before it's merged. We pay attention to readability, standards, function size, and try to spot weak points, although we know we're never able to get enough understanding of the code reviewed to spot real logic issues. 10 20 70 I like the fact that without SW the target is inert, with SW it comes to life. I like when we know the SW well enough to be able to change it really quickly. I like the feeling we have when we understand the root cause of a complex bug. I don't like having to work with third-party code because it usually means that any issue found will take ages to be fixed. It's also always harder to debug because it has no consistency with the company code. I've read "TDD for Embedded Systems", I've contributed to the introduction of Ceedling/Unity/CMock in the team. I've written unit tests for a personal Python project, which were executed on a CI server. I want to experience TDD (writing test first) to see the impact it has on the design. I want to see if we can make mocking easier. I'm curious about the answers to the questions we've had while trying to add unit tests to our code. Show
1 6 C Python, Verilog, SystemVerilog Ceedling . Integration tests. . Eclipse and Keil 31-60 seconds We have set of coding guidelines with specified standard When it get messy Reviews are obligatory to push our changes to the server 30 30 40 . . Is sw development flow that should start with writing tests according to delivered specification. Improvement of internal development flow to use TDD on new code blocks. Show
7 7 C (last 3 years) python, VHDL ceedling, unity I like fun and good cuisine :) I wrote integration tests of module/system which is platform depending and it is closer to reality (we uses external IC and etc...) But recently we started using unit test approach in our compony. So I write unit tests for all functions of module including static function (to get 100% code and branch coverage). NA Eclipse, Ceedling, Unity, Pytest 1-5 minutes We set some internal rules of coding standard based on MISRA-C 2004 rules and add some extra name convention It depends on function, usually it should fit into one screen... Our company review mechanism is maintained by BitBucket where we need to have two approves from reviewers before we can put our code to develop branch of repository. During review we need to check coding standards and partially functionality of code. 45 40 15 I like creativity of this work especially in embedded development. Some time it is hard to finish something to the perfect outcome. I know that it is exist and I think that I know the idea of this development approach. On the other side I am not sure if there is someone who really follow this TDD flow :( I would like to know the best practice of applying TDD in our company projects. Show
1 6 C Python Unity, CUnit I am working mostly on modules used for exchanging information over Bluetooth Low Energy. Unit tests, Automated integration tests, Exploratory testing ARM Cortex-M4 Keil MDK, GNU Arm Embedded toolchain 31-60 seconds MISRA C with some exceptions. It exceeds 50 lines of code. Pull requests in Bitbucket reviewed at least by 2 people. 35 25 40 Software development is a creative process. When the requirements change after a significant part of the design or implementation is complete. Test-driven development is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved to pass the new tests, only. To discover new and efficient ways to improve code quality. Show
19 19 C Assembler None Interested to learn about TDD Most of the time, manually with the debugger. Sometimes, I write unit test, executed directly on the target. MCU 8 bits WinIDEA 11-30 seconds We have a document for the coding guideline Often,I prefer more lines with a good structure rather a lot of call. But I know it's not really testable with TDD We use bitbucket PR (attlassian), 2 reviews before merging 50% 30% 20% The analyse of the problem and the design of the solution. --- Develop the test according the requirement, then develop the functionnality and test it automatically. Side effect due to a correction are tested quickly. Convince me: 1) We will improve our productivity with TDD. 2) TDD is better as DDD (Design Driven Developpement) Show
3 3 C C++, Matlab Ceedling I am currently a student at BFH (Biel) and I work by ETA SA part-time. By ETA SA, I mainly do tests on C code, using Ceedling With Ceedling, I do tests and try to maximize test coverage For tests: The target is the computer If possible, I apply test driven development 31-60 seconds MISRA When it is larger that one "page" Tests with Ceedling 60 20 20 - See that the code is working as expected - The part related to the design of a certain feature (How could we implement this feature? How could we do to improve the implementation of this feature? etc...) - Ecounter many mistakes after compiling the code. In particular, ecounter mistakes, that require a significant amount of time to debug. TDD lifecycle (graphical representation). Read a book about TDD. By the fact that I already wrote Unit tests, using Ceedling. I want to known, if what I've done was correct. I also want to know more about TDD. In particular, I want to know how many tests, that we have to do, depending on the code's complexity. Show
3 weeks 10 years C C++, Python, NodeJS Nothing I like to do work with care. Currently, I always test my code with only some specific cases. The reason of this bad method is often the time missing. :( uC 8 bits We use the GCC toolchain with an Eclipse IDE. For debug, we use WinIDEA IDE. 1-5 minutes We use the internal coding rules and i think we use some rules of MISRA When there are to many end directions We use the pull request method of Git 60 10 20 I like the hardware integration and the size code optimization. Read the code written without care. It's a development philosophy. I read that this working method recommends to write the tests before code. Much practice without political discussions. Show
1.5 years 14 C++ C# VectorCAST I have been in the medical device software arena for over 13 years, so I have a good grasp on software in a safety critical, regulated environment. Manually test in target system based on requirements or design expectations Write a test harness "hello world" to execute code I pulled out of a system An NXP iMX6 Dual Core processor running at 800 MHz running an Integrity operating system Visual Studio, Understand, Green Hills MULTI, Cygwin 1-5 minutes We have a formalized coding standard. I am not sure it is used during development or enforced during code reviews. A given function should have strong functional cohesion, the name should describe what it does. If these things hold then the function can grow. In general, one two pages is a good length. It depends more strongly on purpose than lines of code. Some teams perform code reviews on a story by story basis to remove defects early. This is not required by our process. Formal code reviews happen to groups of code changes associated with feature changes that can span weeks to months. 65 25 10 Thinking critically about how systems will interact and ensuring a solid design before jumping into the code. It is a joy to write documentation that actually helps myself and others understand a system and maintain its architectural integrity. Producing documentation to check off that it was produced. Much of what external standards and the FDA require us to produce, if done correctly, will help us write better, more maintainable, software. This is rarely done well or valued. I went to a developers group meeting that covered TDD in C#. I have read Code Complete at least 6 times over the past 14 years. I attempt to write test cases against my requirements, design, and code that I will execute when I think I am done. I would like to encourage more diligent developer testing at my company and feel I can support that by being part of this training. Show
3 16 C++ C None I manage the group, and don't develop anymore. Received my masters in Software Engineering in 2007 and am now helping to drive best practices in my organization. Multiple layers. Informal bench testing. Code analysis. Code Reviews. Manual integration tests. Coverage unit tests and some functional (requirements) tests using VectorCAST. Also manual functional tests (we have a separate group set up for this). Systems V&V. Algorithm verification tests automated in MATLAB/Simulink. 4 boards, main target is iMX.6 based. Editors, Green Hills emulators, RTOS debuggers, VectorCAST. 11-30 seconds Its defined but there are very few "shalls" and in general underdeveloped and under-utilized. If I hear about it from developers :) Code Reviews on all code. Many sentiments that they are not that useful. We have certain personnel who analyze code for defects. 25 0 75 Making hardware move and do stuff. Helping patients. Improving code quality. Struggling to figure out what a method does. Worrying about the unknown rationale for why a method was implemented, and concerned that I might break that. TDD is a method of development where tests are written first before code is developed, and results in short test-code loops. This aids in quickly recognizing when code breaks. TDD provides a means toward continuous integration. Because I want to learn along with the team. Show
12.5 18 C C#, assembly Unity very little, LDRAUnit very little I'm a father of three wonder kids, Grady (10), Gwyneth (3) and Griffin (1). We love the water and spend a lot of our time on the lake. We have something we call CBAT (Continuous Build and Automated Testing), which includes all of automated builds that are executed within TeamCity. Once the builds are complete we run unit tests (for those that have implemented them) then integration tests on the target devices and monitor them with various lab equipment to measure performance, current draw, test interfaces, pre-compliance testing, etc. We also do separate design validation tests in our Electronics Lab, which are sometimes manual in nature. We also have an SQA department that does testing from a customer perspective. Some products use microcontrollers (ARM M3/M4, 8051, MSP430) running bare metal code. The other end of the spectrum are microprocessors (BlackFin) and FPGAs IAR, Keil, PC-lint, RSM, Doxygen, JTAG debuggers, oscilloscopes, protocol analyzers, spectrum analyzers, DC current analyzers 11-30 seconds We currently have an existing embedded coding and best practices document that is going through internal updates this year to condense and clarify. We expect to land on implementing the Barr Group coding standard possibly some aspects of MISRA. Page or so is about the max. Also high essential essential cyclomatic complexity could trigger that a function is too long. All code merged to mainline is done via Pull Request, which generates online review on our internal Bitbucket server. 60 25 15 It's a new challenge every day that can be solved in an almost infinite amount of ways. Solving problems is fun. There's not much I don't like about developing SW. Probably the amount of time spent on DV testing and documentation. I know the idea is to create the tests first then write the code to pass the tests. I've managed people working on implementation of unit tests (not straight TDD) on a few development projects with mixed results. I'm attending the class because I want to understand exactly what TDD has to offer and how to effectively implement TDD and unit testing within a department so we can trial it on an upcoming project to gauge its effectiveness. Show
1 4 C C++, Python, Matlab, Java VectorCast I graduated from the U of M one year ago. Code inspection and running the code on the machine. PrisMax Visual Studio 5-30 minutes It's pretty straight-forward. When you look at it and want to throw up. This is where most of our issues are found. 50 25 25 It's challenging and its always a different challenge. I like figuring out why a piece of code isn't working like it should. Having to load the code on the machine to test it, we don't have a simulator. Nothing It's required. Show
1.5 24 C C++ VectorCast Worked on both highly regulated and unregulated systems. Functional testing using actual system HW and events that drive all paths to uncover all timing dependent race conditions to determine sufficient margins. No OS Oscilloscopes, LA, in-house tools 11-30 seconds boiler plate-ish with not enough examples Depends on complexity but generally like to keep below 30 lines too much focus on syntax/coding-std and not enough on overall structure of design 30 60 10 Problem solving Separate reporting structures are used hide behind scheduling and system issues. Shifts time resources on completing a design and testing before coding the design. In theory, less time spent debugging issues... at least academics say without considering the moving requirements and undocumented and/or changing HW behavior. Learn new tool for designing, implement and updating UT protocols in different UT tool than VectorCast (as directed by management). Show
3 28 c++ java, c#, python sunit, cppunit Programming in Smalltalk for about 10 years prior to coming to my current company printf Embedded Greenhills Integrity OS SlickEdit code editor, command line build 1-5 minutes Typical C++ coding standards does more than the function name would indicate Use Crucible, tend to be well after code has been written/tested 60% 10% 30% Simple pleasures of creating a button, pressing it, and seeing it do what you want. Only having VectorCast to do unit test (which means I don't do unit test). UGH! Have used it in the past. Loved it especially with data intensive tasks. Really helps you understand how something SHOULD be designed. To hopefully become an in-house advocate for TDD in our group. Show
6 7 C c++, ... --- --- --- --- --- 5-30 minutes --- --- --- --- --- --- --- --- --- --- Show
5 30 C++ Fortran, Ada VectorCast Enjoy bicycling and watching soccer Manual test procedures, unit tests written in VectorCast by engineers other than the developers imx6/ARM Cygwin 5-30 minutes Lackadaisical Generally SLOCs, should be cyclomatic complexity Not a big believer in code reviews 50 25 25 Making systems do new things Remaking systems do new things because someone didn't tell me the correct requirements up front Not all that much. Believe it or not, I'm really hoping that we can shift to a paradigm where all developers must unit test (and maintain those tests) their code. Right now, our unit tests mostly verify that the system runs as implemented. Show
6 30+ c++ lua, C# none I'm an amateur celebrity chef. I sort of like the Green Bay Packers. On the advice of counsel, I invoke my fifth amendment privilege against self-incrimination and respectfully decline to answer your question. 2006 cel phone Changing from Windows (Visual Studio) to Linux based 5-30 minutes nearly non-existant doesn't fit on the screen without scrolling Perfunctory 50 10 40 Problem solving. Success. Learning People forcing unit testing on me tiny bits Job loss Show
3 years 8 months 1 year full time/professionally C++ C and Python (limited experience) VectorCAST I really like being outdoors to explore and see the incredible variety of scenery we have in Minnesota and other states I've been able to visit. Using a debugger, trying the code on the system, and adding in test functionality that can run while the system is live (for example, changing a temporary test global value to be what's needed to inject a failure value in to see that system behaves correctly) 1 main processor running the application on a real time operating system (Green Hills), 3 bare metal processors that perform other secondary/safety functions of the system Green Hills Software MULTI debugger and SlickEdit 5-30 minutes has good guidelines for naming and formatting, not a lot of other opinions about it at the moment When it's difficult to understand or does too many unrelated tasks that need to be broken up They seem to focus (in general) on simple coding standard fixes when schedule is rushed, too late and rushed for it to be useful for making design improvements 50 30 20 I enjoy testing my own software to think of all the ways I need to verify and prove it does what I want it to. Pressure to get things working quickly Unit tests are defined and written before the code is written. All tests should fail initially. As the code is completed, more tests will pass until all tests are passing. That's when coding should be complete. I'm technically being required to go, but I am really excited about the topic, and look forward to learning and applying new ideas to my development skill set. If it was optional, I would still be attending. Show
0.1 4 C++ C NA I am a Computer Engineering student from the University of Minnesota here on Co-op. I started 2 weeks ago. I test my code by creating test scenarios and analyzing the output. NA NA Under 10 seconds NA A function is too long when it it could be easliy subdivided into simpler, easier to understand functions. NA 1/2 1/4 1/4 I enjoy planning for every scenario and creating code which is easily adaptable to multiple scenarios. I do not enjoy using code which I do not fully understand. Test driven development involves creating tests before code is written. From there, functions are written which are validated by those premade tests. I am attending this class because I am interested in learning more about test driven development. I hope I can apply this to my work. Show
1.2 1.2 C++ C, Java 0 I like food. Running it on the target system. It is many pumps. Notepad+++ 1 day or more IEC 62304 It goes off the screen. Peer to Peer 9% 9% 9% The feels, all the feels. The bugs, all the bugs. Who's todd? To learn about Todd... TDD? Show
<1 3 in a professional manor. C now but it was LabView LabView, C#, C++ None I have lovely blue eyes, though I expect that isn't what you where talking about. New company and still figuring that out. Before I just tested the code on the physical machines it controlled. It measures how much water is being used. IAR Embedded Workbench, Simplicity Studios, Git Flow, Bitbucket, SourceTree 11-30 seconds Its from the Burr Group for Embedded C When it extends to more than the a lotted screen size, or 1 page of paper We use Bitbucket to do pull requests where then everyone can review the code on their own time. 60 30 10 Its always provides new challenges and I love problem solving/finding unique solutions. It stimulates the mind. Can be frustrating to implement new tools that are suppose to help the coder develop efficient code. Nothing yet Joined Neptune and they had this already scheduled and I'm open to learning new things. Show
0.833333333 15 C C Sharp, C++, Verilog none I'm an electrical engineer by trade and have realized that aside from niche or specific dimensions most PCB design will become a commodity. I have shifted gears to focus more on software. I test my code by stepping through or via breakpoints. MCUs IAR compilers (ARM, MSP430), MLAB X, Linux 1-5 minutes In progress but leaning more towards Barr Group's standard C: Try to keep to 50-100 lines; C Sharp: Not sure yet.. Currently done via the build in Bitbucket interface 30 0 70 I like the idea that given one set of hardware, through software, that same hardware can be made to provide a wide range of possible experiences. It seems that sometimes things are deliberately difficult when it seems possible to be done in a simpler way. I am a near total noob. As I am new to the concept of (proper) programming, I don't know anything about Test Driven Development. I am here to learn and then apply it to my projects. Show
2 10 C Python, bash, Java None recently I'm an ex-Coastie who enjoys playing guitar and sailing, although I haven't been able to do much of that since my daughter was born 15 months ago. I add lots of asserts. Most testing is done manually, or I may write a script if manual testing is too tedious. Blackfin, 8051, MSP430, ARM. Bare-metal or Linux. GNU make, gcc, Keil, IAR, Simplicity Studio (Eclipse) 31-60 seconds Similar to Barr group standard, but we have lots of non-standard legacy code If I have to scroll to see it all, it's probably too big, although there always exceptions. Bitbucket pull requests with at least 2 approvers to merge 60 10 30 Thinking creatively, solving problems. Trying to understand or debug someone else's labyrinthine code, then not being allowed to rewrite it. It stands for Test Driven Development. I think it encourages writing tests before the code that will be tested. I'm always looking for ways to write better, more reliable code. I hope to learn some new skills, learn about useful tools, and write better code on my next project. Show
5 5 C Assembly, Python none I like gadgets and popular music Functionally, at my desk. We also use TeamCity. currently, a SiLabs blue gecko (ARM cortex m4 w/ integrated bluetooth) VS Code, IAR IDE, vendor-specific IDE's 1-5 minutes We use the Barr standard, with some modifications It doesn't fit on the screen Done on bitbucket 30% 35% 35% It's fun, it's fulfilling to make things, it's exciting when you can make everything work When it doesn't work That it prevents bugs and makes your code more robust. That I need to know how to work with it. To become better at my profession Show
3 8 C BASH scripts, occasionally some flavor of BASIC, and I copy and paste stuff from the internet that is python :) Unity We've met before when I worked for a previous employer. A co-worker of mine and I had contacted you about Agile consulting, and you did a presentation to our management. I have also went through your TDD workshop at a Barr Group Defect Prevention training in Maryland several years ago. Manually constructed test programs (no unit-test framework) put together on a case-by-case basis that run natively or on target depending on the situation. We also perform integration testing that is occasionally automated using Labview. Many of our systems have multiple processors. Most are bare metal systems, and we use a non-real time flavor of Linux. CCS (for MSP430), Doxygen, Notepad++, Cygwin, GCC/MinGW, GIT/Bitbucket 31-60 seconds We loosely follow the Barr Group standard. We are in the process of formalizing our internal standards which will likely include the Barr standard with some amendments. Excessive nesting, requires scrolling (<25-30 lines), has clear logical breaks or sections that could easily be standalone inline functions. Conducted within Bitbucket Pull Requests, with out of band verbal and slack conversations. 30 35 35 The chance to be creative and construct something. Fighting my tools, non-standard and confusing environments, poorly architected legacy systems that are a pain to extend or debug without massive amounts of overhaul, occasionally having to write software documentation in Microsoft Word. Red, Green, Refactor. We are evaluating different unit test frameworks. Cpputest is one of our candidates to explore using as a standard framework. I want to use it again since I haven't touched it since the last time I took your class. Show
Less than 1 Less than 1 C Java jUnit I'm a co-op student from Auburn University where I'm majoring in Computer Engineering. I started at Neptune Technology Group about a month ago, and I'm currently on my first rotation with the company. Before starting here, I hadn't had much programming experience apart from an intro class to Java last semester, but I've already learned much in the short time that I've been here. I add code to a main function that prints the result to stdout. Then, I'll check the printed result and compare it the expected result. Bare metal systems and linux Notepad++, Cygwin Under 10 seconds I try to adhere to Barr Group's embedded C coding standard. According to Barr Group's embedded C coding standard, a reasonable effort should be made to keep functions between 50-100 lines long, which I try to adhere to whenever possible. Typically, every team member is added as a reviewer for pull requests. Two approvals are needed before merging to the master branch. 25 5 70 I enjoy finding unique and creative solutions to difficult problems. Every day provides me with new challenges to meet and opportunities for self-improvement. Sometimes it can be tedious or repetitive. Very little to none. My team believes it would be a valuable learning experience for me. I'm eager to learn and hope to gain a lot from this training. Show
4 6 ish. C C++, C#, python, bash, LabVIEW, ASM Unity I like hiking and camping and reading. I'm a cat person, but I'm stuck with a Jack Russel Terror (spelling intentional) that came with the wife. :) Automated testing is handled by TeamCity. Manual testing is handled by our electronics lab technicians (we write a work order, someone picks it up, etc). We have a mix of unit tests, on-target tests, and static analysis. The amount of that depends on the project. Most of the unit-testing was implemented by a contractor. We've done some maintenance, but almost no expanding on that. We have a few on-target tests that we've implemented, but they are mostly black-box style tests. Mostly bare-metal, 8051 or ARM. Keil uVision, IAR, CCS, Simplicity Studio, gcc+make, Visual Studios, LabVIEW 5-30 minutes We have an ignored legacy coding standard, we're in process to develop a new one based on Barr. When I can only see less than half on screen, it's probably too long. We use crucible or bitbucket, depending on whether the project has been ported from SVN to git. 30 50 20 I like solving problems and I like the satisfaction of writing something out that fixes the problem. I hate fighting tools. Fixing something in one tool shouldn't lead to a break with another, but sometimes it does. Not a lot. My impression is that you write a test before you write a function. Make sure the test is failing, then go on to work on the function until all tests pass. Then move onto the next function. I want to be doing TDD, but I don't feel like I have the time to learn outside of dedicated training time. Show
5 20 C++ Python, Java CppuTest, Junit Working in the IGS Team, for just over a year now. Was in Enterprise Systems for 4 years before that, founding member of the Blue Data Management System team. That was Java. IGS is older code in C++, not written for easy unit testing, ie classes and methods that are huge and have cross domain responsibilities. The most useful tests today are all manual and take a lot of time. We have some unit tests using cpputest, and it's growing, but at current levels benefits have not outweighed efforts....yet. Linux, Windows Qt Creator, NetBeans, Spyder 1-5 minutes CMFM-PR0003_Safety_Critical_C++_Coding_Standards rule of thumb, when you have to scroll to read it, but really depends on what it does, some cases, 5 lines could be too long Usually too big, so suggestions rarely cause a noticeable impact 40 40 20 Ability to plan/architect, implement and fine tune implementation, all within a relatively short time. Manual Testing and writing unit tests for classes/methods that are not written with unit testing in mind. I have managed a team where 2 people paired to leverage TDD successfully, over 10 years ago. I did not do TDD myself, but created the environment so they had the freedom to execute, was supportive, and was able to observe. I would like to try this for myself, really. Show
3 30 years C C++, ASM, python, java, scala, javascript gtest, unity, cpputest I have a cat. TDD embedded avionics GreenHills, vscode 1-2 hours MISRA, JSF, and mitigations where standards are overly burdensome when it contains copy-pasta, when the detail of the operations becomes too complex to grasp the overall behavior comments go in, merge ensues (comments mostly ignored) 30% 50% 20% reducing complexity in both the design and the code creating large amounts of documentation beyond the code itself Great for development, but often see people jump straight into TDD without architecture/design- starting down the path of design by exception and unnecessary complexity share a common understanding with peers on development methodologies and best practices Show
3.5 20 c++ python CppUTest After this year I'll have been to all 7 continents. CppUTest for individual functions, integration tests for full system, and then user testing in a development environment Windows 7 and 10 QT Creator 5-30 minutes A company coding standards document is used if it's > 200 lines gitlab merge requests 20 60 20 I enjoy the problem solving aspect. There are always many solutions for an issue. Weighing the pros/cons of each and implementing the best is rewarding. Documentation for safety critical software can be time consuming. Very little. My understanding is that code is written in a manner such that it can be tested in a thorough manner (line coverage, unit tests, etc). I'm hopeful that it will reduce the time spent setting up and maintaining tests as well as allow for more thorough testing. Show
3 years 16 years C++ C, Python, Javascript Google Test, Mocha, CppUTest, JUnit I am doing TDD and pair programming with a friend during my free time in Javascript. I am attending the Seattle Software Craftsman meetup. Unit tests, integration tests in the HIL (Hardware In the Loop), and flight tests x86 and ARM Visual Studio Code, vim, spacemacs 31-60 seconds MISRA and JSF merged together When there are line breaks sectioning off code within the function or when you have to scroll. Done using code reviews, sometimes done over the shoulder Not actively coding regularly at work Not actively coding regularly at work Not actively coding regularly at work Being able to solve problems and see the results from working software. I like to see my software passing unit tests. Not always knowing how best to solve a problem with the most clean and direct code. Do not write one line of production code without first writing a failing unit test. Write a bare minimum unit test that fails, then write the minimum implementation to make the unit test pass. Refactor both the implementation and unit test. Repeat. I like TDD, I want to do more TDD regularly, I want to learn more about TDD and the best ways I can do it. I want my workplace to be doing TDD. Show
1.5 15+ C/C++ Python CppUTest Your form is more clever than I expected! Usually I can get away with putting a space in mandatory fields. manual debugger-based testing. The target is an embedded multicore processor. GCC toolchain, vendor-provided debugger/loader/BSP generator 1-5 minutes The company has a lengthy standard enforced to varying degrees. It's too long when it can't fit on the screen at once. extremely unofficial at this time 50 0 50 Problem solving Fighting with the tools very little I have seen other teams get good value out of automated test suites. I want to start using automated testing in my project. Show
1 5 C/C++ MATLAB, SImulink, Python Cpputest I enjoy coding 8-BIT AVR chips for fun; learned a lot for my current job by teaching myself outside the workplace. Aerospace engineer by study... fell into the software world and am trying to catch up. Was using Cpputest last year and found it very useful. On my current project, the testing is more at the system level with a development breakout board and breadboard... not enough time to unit test before delivery, but hopefully will have time to dive into that after delivery (which I realize is 100% ass backwards... but it's driven by our schedule and lack of resources). Avnet PicoZed SOC Xilinx Vivado/SDK (Eclipse) 31-60 seconds Wish I had one for this project! If I later find that a portion of that functionality could be used on it's own by another caller... then I split it out. Haven't had one yet for this project (time and resource limitation) 20 30 50 Software is the silent beast that brings automation to life; very few things can function without software today. Having to use Stack Overflow and dealing with arrogant, pompous, opinionated individuals; many of whom do not fully answer the question and do not exhibit patience towards those learning. That it's very effective and should be used. Test as you build approach to identify bugs earlier in the development life-cycle. You plan and create your first tests before developing a line of code. I want to learn more about this approach to testing and get some more practice testing code. I tend to be a hands-on learner, so I think this course might help. I hope to be able to keep up with the class! Show
2 10 Java python, c, c++, rust, junit, pytest I like to write and play music. I write unit and integration tests for it. ? vim and make mostly. Sometimes the intellij suite. 1-5 minutes Personal or company? Related to testing or not? I'm a fan of code over configuration and that a good design and a testable design are the same thing. When it becomes difficult to read or understand. We use them. I try to do mostly substantive comments, but sometimes the pedantic "too many spaces" or "brackets on the wrong line" slips through. 50 30 20 I like making things and helping people Sitting inside all day has some serious disadvantages. A fair bit from school. It's an excellent way to design software, esp. if you know "what your going to make before you make it." I think it can be used in lots of circumstances but not all. I'm curious about using it in "all circumstances" and I want to improve our controller testing (and write actual controller code, which hasn't really happened yet). Show
.5 10 C/C++ Python, JavaScript CppUTest, other proprietary frameworks - Prototypes: A simple program that exercises the primary use cases Production Code: Unit tests with 100% block statement coverage, integration tests Avionics hardware Visual Studio Code, gcc 11-30 seconds - - Quite thorough: must have 2+ approvers. >20% of our time each week is spent reviewing. 30 60 10 It's a mechanism for solving problems and creating new things. Developing software allows me to create things that are (almost) infinitely flexible and limited only by my imagination and programming abilities. Maintaining legacy code. - - Show
1.5 10 C/C++ Python Googletest I work on/with a large variety of software packages. Some are impenetrable monoliths and some are small, well-tested libraries. Most of the code is something I am a victim of rather than something I designed. Various levels of test ranging from code developed with TDD all the way to "give this to my (internal) customer and hope it still works because there is no other way to tell" Combination of real time and not real time software on x86-based servers clang or gcc, cmake, google test, vim Under 10 seconds My personal standard is that if it is not tested it is broken It does not do one thing I hope people are paying attention 40 55 5 Fairly regular doses of instant gratification. Easy to improve software to adapt to changing needs (as opposed to hardware, which is hard). Having to deal with pathologically bad products that I cannot change. TDD changed my life I already practice TDD for all my new code and as much as I can on new code I write in systems that I do not have design authority to fundamentally change. I am hoping to learn new TDD techniques and hone the ones I have. Show
1.5 43 c c++, python cpputest army brat cpputest on simarm and ontarget embedded ARM SOC Greenhills 1-5 minutes in-house longer than 1-2 pages lightweight delta reviews (github) 20 40 40 It's still a wind-up jigsaw puzzle debugging the rudiments - mostly the high level concepts looking forward to learning a new technique that I've dabbled slightly in in the past, but which has proven beneficial Show
4 Professionally, 5 C++ C, Python, C#, assembly gtest, cpputest I've really got a thing for old computers and retro technology in general. I write GameBoy music. By writing a sizeable chunk of code, backfilling unit-tests to exercise its nominal behavior & edge-cases, and then iteratively developing both tests and code together. This is not real TDD because my tests usually don't come first. Embedded microcontroller vim, and the compiler, that's pretty much it... 11-30 seconds In-house standard based on a combination of more common industry standards -- currently migrating to something that's more commonly used When it's grown to the point where it does a bunch of logically unrelated things. all merge requests into our mainline development branch are peer-reviewed by at least 2 other developers 40 40 20 - Writing code that makes a useful impact on real world systems. - Code-reviewing -- it seems I always learn something new from seeing how other devs solve problems. - Gnarly toolchains & infrastructure - Other peoples' commits breaking my code It involves writing the tests first and then writing code that makes the tests pass. I've never used TDD for literally anything and I'm interested in giving it a shot. Show
1 8 Python MATLAB, C/C++, Java Python unittest, Pytest, JUnit, MATLAB unittest I like to build robots MATLAB unittest and Pytest (mostly have been working in MATLAB and Python recently) Servers (for build tools) and embedded controllers (for flight code) MATLAB IDE, Eclipse, Sublime, Jenkins, Git, Subversion 1-5 minutes Minimal standards for most tooling, company guide for flight code Depends on the context, but generally no more than 50 lines including comments Varies by specific repo but usually GitLab reviews by 1-4 people 40 30 30 I get to work on interesting problems that have many possible solutions. I also like that it is possible to quickly iterate on and refactor solutions. Trying to remember specific syntax when switching between many languages, trying to remember all the various libraries available to use. Relatively little other than it stands for test driven design and it is a method where the design of a piece of software is based on the pre-written test cases for the code. I am interested because my job will soon be transitioning to writing more flight code and I want to have a better understanding of how to thoroughly test this code. Show
1.5 35 C Python, assembly, C++ cpputest I spent 20+ years in the set-top box industry. cpputest micro-controller-based embedded platform. Green Hills probe, Jenkins for CI, GIt for SCM. 5-30 minutes proprietary > 2000 lines Gitlab merge request 40 40 20 One can be creative. Can see the result working within minutes. Test code generation is not automatic. Testing is only as good as one intended. How to test code in an unexpected way? I also thought it was just a philosophy. I would like to know more about the official term. I use cpputest and would like to know more about it. Show
0 40 C++ C, python, lua cpputest, python unittest I don't like to give out personal information to strangers. CPPUTest, python unittest, or ad hoc testing C++ for a mission critical application <cough>MinGW 4.6.2 and python 2.7</cough>, Qt Creator and PyCharm as IDEs 5-30 minutes It's copious When it's hard to remember things from one end to the other while scrolling around in it. They take too long and nitpick about style as much as being about substance. 30% 45% 25% The gratification of seeing something working or fixed. The delays of a slow build/startup/test cycle, how long it takes for code to get reviewed. Mostly hype and things picked up by osmosis. Everyone agrees we should try it or do it, at least to some degree. Few places actually do it more than at the lip service level. My manager put it on my schedule. I'm interested to find out more, in any case. Show
1 8 C++ Python, Java, Matlab QTest, CppUTest, googletest, python unittest Degrees in aerospace engineer but learned coding along the way. Switched a few years ago to be a dedicated developer. Unit testing in CppUTest, manual system testing Windows desktop applications Qt Creator & Designer, PyCharm 1-5 minutes Coding standard is documented and enforced. Exceeds the size of the screen is a clear indicator. Also, if it attempts to accomplish too many things. Gitlab code review with at least one member of the team 40 40 20 Problem solving, developing creative solutions, seeing something I built used by customers Time lost to slow builds and ineffective processses TDD is a style of development where tests are developed first and then production code is written to make them valid. I want to learn how to design testable code and learn better unit testing techniques. Show
2 13 C++ Python, C# CppUTest, googletest (c++), nunit (C#), junit (java), unittest (python) I fly airplanes and compose electronic music. I have 2 kids and a wife. CppUTest Windows Desktop CppUTest, GDB, ant, ivy, Qt Creator Under 10 seconds Ad-hoc It does more than it's name, is > about 10-20 lines, has a cyclomatic complexity > 5. We use gitlab, and review all of our code. The process is somewhat fast and usually helpful. 35 60 5 Creating useful tools for people to have a better experience. Waiting for a build to finish. Taking ownership of legacy code with no tests. Wasting time debugging. Developing the wrong thing. A decent amount, I think. I've taken the class before and loved it. It has drastically changed me as a developer. I wanted 21 other folks at Blue to know about how to do TDD and go forth and teach others. Show
2 12 C C++, rust, python, c#(kinda) cpputest, python unittest/pytest, I like games, sports, politics, other things. In CI, sometimes at interfaces, with dependency injection, emulators, etc It's a computer gcc, gdb, MULTI, pdb, pytest, cpputest, valgrind, gperf, gcov, gprof, Under 10 seconds One per language, mostly based off existing standard context, experience, software development guidelines 1 or more people, varies with content of MR 20 40 40 Interface design, understanding system interfaces and interactions between internal components Sunk cost fallacies Write tests (that start off failing), implement features Our discipline is problem solving. There isn't a single hammer that solves every problem. Have very little experience with TDD but it seems like a good approach. Show
1 10 C# C, C++, Python CppUTest, GTest, pytest I like coffee a lot go through entry and exit points of the code and attempt to exercise all these routes and get 100% code coverage 32-bit unix RT Visual Studio Code, Green Hills 1-5 minutes for tools, we have a light tool qual procedure, some software we use the DAL (development assurance level) process probably when it can't fit on one page or be easily understood we use gitlab for code reviews, any comment that is made on a code review must be answered, discussed, and resolved before the code review can be closed. 60 10 30 I like getting to solve problems and create solutions that help people Documentation! and maintaining code that is a mess and untested. that it stands for "Test Driven Development", and it's supposed to minimize the amount of debug time that is spend during the development process. I only hope that the amount of time writing tests < amount of time debugging code. To learn how to write more reliable code. Show
1 2 C++ Python, C, CPPUTest, JUnit Test I like cake ECP where each node in the ECP represents a single CPPUTest Embedded platform/uController VSCode, CPPUTest, Jenkins, Git, in-house tools 31-60 seconds It's pretty close to DO-178 (I think that's the right number) The ECP is complicated Code reviews are generally done on Gitlab 20 40 40 Software is quick to change and "easy" to edit. Instant gratification is nice (I came from a hardware background) It's very hard to prove that you're doing exactly what you say you're doing. Doing so is time consuming. Legacy code. The expected behavior of the code and tests that verify that behavior should drive development. Small changes should make no difference in behavior, and changes that do should absolutely change a test. I am driving the test and verification of flight components. People like to know that we can trust what is getting put on a rocket. Show
2.5 34 C++ C, Python Google Mock, CxxTest Work on both embedded C and backend C++. Mix of light TDD, custom off-target test suite, manual testing. PIC32, AWS EC2 MPLAB X IDE, GCC 31-60 seconds No specific standard. When it is longer than a screenful or has many levels of nested logic. Code briefly reviewed by peer team members, but no specific review guidelines. 50% 20% 10% Making things work. Chasing erratic bugs that consume large amounts of time to reproduce. Have used it some in the past, but made the newbie mistake of putting too much internal knowledge in tests, making them very brittle when implementation was changed. Have been reading a couple of relatively recent books on TDD. I want to learn effective techniques for applying TDD as my general and long-term development methodology. Show
2 15 c primarily python, perl, bash scripting cmocka i play in a satanic pop-rock band usually via automated unit tests on a build server embedded devices, FreeRTOS as well as Linux on ARM vim, assorted *nix tools, make, gcc, IAR, git, 11-30 seconds internal company standard that has evolved over time if it doesnt fit on one screen, it's too big! using bitbucket, git-based pull request process. 2 approvals required. 40 10 50 We write code that control giant hydraulic robots. It is very fun. I generally enjoy solving challenging problems and working towards elegant solutions. Accurate requirements gathering from our typical clients (small company, mechanical engineering types) has been incredibly painful, historically. Managing dependencies is also never fun. i have a general working knowledge of it. I've watched a handful of Uncle Bob's videos and have successfully employed TDD practices into both work and personal projects. I would say i am on the beginner - intermediate spectrum of TDD. because my employer very rarely springs for training and so I am latching on to this opportunity! But, having said that, I am genuinely interested in furthering my TDD knowledge. Show
1 24 C# Python, C, C++, JavaScript, TypeScript, Java, CLISP, CUnit, Pytest, MSTest, JUnit, xUnit, Jasmine, Mocha\Chai I've spent the bulk of my career building business systems and I'm a strong proponent of TDD. The last year I've been writing embedded C applications and I need to understand how the concepts fit into that domain. Automated tests Linux micro services, running in docker, hosted on Arnouse BioDigital controls (C tools listed only) Vim, You Complete Me, Nerd Tree, Syntastic, clang, clang sanitizers, clang tidy, lldb, valgrind Under 10 seconds It differs among teams when it has more than one responsibility Pull requests must be reviewed before check in. Also, code is often critiqued during retrospectives 80 10 10 I love the variety of problems to solve, the extreme focus, and the feeling of being part of an industry that is constantly evolving and making the impossible happen. The overwhelming amount of communication and process involved as team size grows I've been a regular TDD practitioner for several years. I want expert advice on applying TDD to C code. Show
3 6 C C++, Python, Java Ceedling (Unity, Cmock), cpputest, Google Test/Mock I have a background in electronics and computer science. During my career I've done a bit of everything: designing PCB, developing apps and in the last 3 years I've specialized in programming embedded systems. I use unit tests in some parts of the code, however I have difficulties to make the rest of the team use it. If I'm the only one using it, even if it helps during development, it becomes pointless for maintainability. The rest of the code is manually tested. This is something I would also like to understand, where shall I draw the line between unit and integration tests? Currently working on an ESP32 project make, cmake, Visual Studio Code, Sublime Text, terminal, git 11-30 seconds No specific standard, it evolves When I have to read line by line to understand what's going on. I tend to focus on trying to find bugs instead of asking myself why is this done this or this other way 50 30 20 Software is like a brain teaser. Everyday there's a new challenge and everything has to play along. There are too many tools available and not much good information. Good non-beginners content is hard to find. I know it can speed up the development, specially when bugs happen. I also know unit testing is not the same as integration tests. I want to create good code because chances are it will result into good products. I also think it's a key tool for teamwork, but if I'm not confident using it, it's harder to encourage the rest of the team to do it. Show
1 1-2 C C++, C#, Python, (Shell) none. Testing Unity(Ceedling) currently Take a look into my mails. Copy paste like I tried it is to long ;) GTest & GMock. But writing test afterwards. But this tests are more for visual testing, not logical testing. (We are devolop a HMI) PC Software which is later compiled for a ECU Visual Studio 2005/2007 and its tools. During study Vim with gcc/clang and other console tools Under 10 seconds MISRA C, BAAR Group Standard and my own ;) If you cant see the end in the beginning or vice versa. Units (afterwards) in the current project. So we hope to see if the code do the same. But don't touch it, it runs and there are so much other thinks. Or "don't touch it, it will get yours " (C. Martins) 3 1 6 - Understand how a system works - Thinking how to solve problems and do it. - Thinking about where are current problems and how to do it better. - That you can control real hardware with "virtual" software (text instructions) (Head) Managers how don't know what's the problems of hardware, software, software development,and that we are humans. Those, who don't want to know that it will take time to develop/make good products but will save money afterwards -Documentation. - Let new developers "playing" with your code. - Control C code which can break so easy. - I want to get control over my code (directly) - Code must "cry" if it isn't happy anymore - TDD is the way to do all this thinks. Because I'm still at the beginning of my career and don't like to learn it the wrong way like I other guys I see. Show
2 I guess I started around 1977 but rusty now Java For work: Ada, various assembly languages, C, MPW Pascal JUnit Learning accordion off and on I don't currently code. n/a Comfortable with emacs. Used to use Eclipse. 2-4 hours none I guess it should fit on a screen. Fan of pair/mob programming. We did design and code reviews on aerospace stuff and they weren't super effective. 0 0 0 It's fun to be Frankenstein, creating life. Hard to get third party stuff to work. Configuration problems. Figuring out legacy code. Have done some in Java. Used to encourage it on my own Scrum team. Want to see if I can still code. Show
2 15 (10 professionally) C historically, C++ the past 2 years Lua, Groovy, Python, Bash scripting, many build system languages Cmocka, Doctest I work as a gardener at the Japanese Tea Garden in SF once a week. More than a programmer, I identify as a writer. I have a dog, and I try to walk 5+ miles a day with her. I cook a lot of food - lots of Thai, Vietnamese, French, Chinese (I'm *really* excited about my brand new German fermentation crock). Unit testing (written after the fact), manual integration testing, automated integration testing (usually controlled by a test sequence which talks to to the target hardware) Target code: variety of ARM/PIC/AVR systems, 8-bit to 64-bit, usually no OS. I also frequently program for POSIX systems gcc/clang, clang-format, lizard, GitNStats, Jenkins, meson, ninja, gdb, openocd 31-60 seconds I am currently developing my own standard. I reference Barr's standard, as well as the C++ core guidelines. Code is auto-formatted to eliminate formatting debates. CCC Metrics (collected by Jenkins for each build), Intuition (can I grok it all in one flow?), inconsistent resolution (are some function calls high-level, while others are groups of lower-level calls?) I am the only developer, so I use self-review checklists. When on a team: all changes reviewed by 1-2 other programmers. I encourage clients to have the team define a review process & review criteria. 25% 35% 40% I am a creative person, and coding is a great way to express that. I love embedded software in particular because it is more concrete - my code works on real hardware and does something in physical space. Poor quality everywhere, and seeming lack of concern over it. Teams complain they "don't have time" to do it any better. Teams responding to my suggested improvements with "we know we should be doing that", yet they never adjust. I am quite ignorant. Write the test before any code. Small incremental changes. If I want to preach quality, I must practice the techniques myself and insure they are incorporated into our development processes. We can only teach and influence by example, never exhortation. Show
1 5 Python C/C++, Java, Typescript/Javascript Pytest, CppuTest, Gtest, JUnit I graduated from UCF in May 2016. Go Knights! After I write it (usually). Primarily Linux hosts. Sublime Text, PDB, GDB, MULTI Under 10 seconds Python: PEP8 If it does more than one thing, or is annoying to look at, or is 50+ lines, it's probably too long. They are mandatory and gating for merge into master branches 55 35 10 Solving challenging problems. Solving un-challenging, yet tedious problems. I know the general strategy, like red, green, refactor, but struggle to find the discipline to actually adhere to TDD most of the time. Because I want to write more effective tests, and have a greater confidence that the tests that I write are actually indicative of correct behavior of the unit under test. Show
2.5 12 C++ Python, C#, C, Java, Rust (Learning) Too many to count. Mostly Pytest and CppuTest lately I used to work as a Software Tester for the Xbox360 Kernel and in-field Software-Update. Not TDD :( I like to setup an integration workbench project alongside the product code and use that to drive general test development (Both Integration and Unit). Then once interfaces are stable I'll spin up a formal unit-test project and move my unit-tests over there. Embedded Multi-Core Real-Time Network Device C++ (Product), Python (Integration Testing), VIM, VSCode, Markdown + PlantUML (for documentation), Gitlab, Jenkins (CI/CD), Pytest (Integration Testing), CppUTest (Unit Testing) 1-5 minutes We have a mature company-wide coding standard that no-one really uses. (I try, but ultimately my standard is to blend-in and improve with existing code) When I can't understand what it does/how it works in a single readthrough. Gitlab Merge Requests Yo! 10 20 20 Where to begin? The feeling of building out a system of interchangeable self-contained software lego-bricks that I can quickly reconfigure and adapt to solve an ever-increasing set of real-world problems. Just how bad we are as an industry at developing software. Seeing Complex, organic, unmaintainable code get written, and not having the ammunition to fight it. I've taken a C# based TDD class years ago back at MS. I remember the basics: * Don't write a single line of product code without a failing test. * Change the tests first, then only change the code needed to turn everything "green" again. ... Honestly, I'm just looking for a TDD Refresher. It's been long enough, and I don't normally practice TDD, but I still feel it's a good skill to keep polished. Show
10 40 C C++, python cpputest a b c gcc Under 10 seconds a c b 40 40 20 1 2 3 4 Show
<1 6 C PHP, Python phpunit, pytest, cpputest #intern Unit tests using cpputest, on sim & on target Too new VSC, probe to test on target 31-60 seconds Too new Can't see whole function on a page with a reasonable font size (e.g. 12pt) Too new 33 33 33 Fast iteration, repeatability Failure to anticipate a use case that requires a significant redesign. Ideally sw is flexible enough, but sometimes difficult to anticipate the ways in which the sw will need to be flexible Approach emphasizes designing tests before coding so that code is written in a testable manner + end up spending less time debugging Developing test harness for critical component, want it to be best it can possibly be Show
2 30+ C++ C, Matlab, Python, Chapel CPPUnit I developed parallel simulation frameworks. Unit tests and system tests. Real-time Linux based HIL systems. QT Creator, GitKraken, Crucible 5-30 minutes Blue internal code, although non-flight code is not as strict. That is function dependent. A procedural flow function is easier to understand than one with many nested if-then-else and multiple exit points. For flight code, crucible. For simulation code, immediate peer review. 30 50 20 Software is a creative process where it absolutely is possible to make use of successes and learn from failures of the past. Reading badly written, badly designed or uncommented code. In a professional environment, code should be written so it is clear the programmer cared about what was being done. Very little. I feel that I make use of some aspects but that's through an organic approach as opposed to a decision in methodology. If this is a process that can be easily applied, then it will be useful. It is important that this is not an all-or-nothing technique as that will be hard to implement across all sections of development engineering. Show
2.5 20 Python C++, C#, Visual Basic, Matlab CppUTest, Google Test, Matlab Unittest I don't have a compsci degree For personal projects, I tend to write scripted integration tests. For work, Matlab unittest suite, Simulink Test suite, native x86 Windows (personal), many (work) Visual C++ 2010 (personal), Matlab 2016b/2017b (work) 30-60 minutes N/A (work and personal) I start using comments to delineate its parts Done with Fisheye/Crucible 30 30 40 You can use it to simulate and offer helpful insights about real life. Every well-written software eventually "Peter principles" itself -- because it works, people keep adding to it until it becomes badly-written software. I worked for a year under Matthew Piatt. I am not time-efficient in developing software. Without a comp sci degree, I'm more of a hobbyist suddenly having to use his hobby to do work, and it shows. Show
1 12 C++ C# NUnit, Python UnitTest, GTest I like coffee? Unittest and integration Linux Visual Studio Under 10 seconds C# could be better C++ well established Number of code blocks that need to be covered with individual tests Required 40 40 20 Working code Broken code I like it To learn more and be better at TDD Show
4 42 C C#, Ruby nunit a while ago, Ruby MiniTest, in house developed simple C assert function Extensive software development in assembler, C, C++, and C# for telephone switching systems, analog photofinishing systems, scanners, and medical instrumentation. I switched to teaching software engineering (full-time) 4 years ago. I have an MSEE and a BS in Physics. I use a unit testing framework and/or a debugger. The STM32L476 discovery board (bare metal) and a PC-104 running QNX Keil and QNX Momentics 11-30 seconds I created a basic C programming standard for our students based on traditional K&R C. When it is doing more than one thing or is longer than a half page (say 20 lines or so). No formal reviews. My students use my framework code and provide feedback. 20 (40 percent doing requirements and design) 30 (mostly writing test cases) 10 Creating something that exceeds the customers expectations and has an elegant design and implementation. Setting up the development environment. When creating a programming examination I first create a few unit tests and then write the code. I never did TDD during my many years in industry. We did do unit testing but only because I took the lead to do that. To learn the latest embedded systems best practices from an industry perspective. I will then enhance our software engineering curriculum accordingly. Show
14 20+ on and off C# C, MFC, VB6, Ladder Logic None Degree B.S. EET Was Controls Engineer for 20+ years and moving into firmware now Manually Sensors & PC VS and MPLAB X 11-30 seconds Fairly simple Hard to follow na not sure not sure not sure Fun like a puzzle at times Debugging Very little I want to learn more in my new field, and this sounds interesting. Show
25 25 C assembler, .NET (Visual Studio Basic), scripting (windows) Never used one We are mainly interested in the Embedded aspects of TDD. How do we test stuff that is cross-compiled? Do we need to create a hardware "simulator" for the tested application? Programmer(s) are paired with QA tech(s). They participate together in creating the software specifications (algorithms, flow charts, etc.) Then, the programmer tests his own code, before handing it over to the QA tester. The QA tester often has a debugger, and will perform debugging tasks using it (i.e. insert breakpoints and look at internal variables/states). Other possible tests: - black-box testing - monkey tests - reusing code (however, this doesn't guarantee successful integration of this pre-tested code...) We are keenly aware that as applications get bigger, testing costs a lot, especially the regression tests, which should be automated somehow. Embedded ARM MCUs, 16-bit MCUs, non-ARM 32-bit MCUs Mostly IAR's suite of C cross-compilers/linkers/debuggers 1-5 minutes Informal standards, loosely based on Barr's (nothing even close to MISRA...) We don't... however, informal standards try to limit functions to single jobs. Rarely done, unless we have a problem, and a programmer needs help 30 50 20 Getting to see stuff work! Continuously retesting for regressions (i.e. prior bugs that come back out.) Using a framework to test code (i.e. write the test first, then write your code to pass the test.) Re-use the test continuously to ensure there are no regressions. How does TDD apply to the Embedded with H/W I/O's, as opposed to iOS or Windows? How do I test GUI elements? How do we apply continuous integration (Agile!) methodologies? How can test suites/frameworks work with C (and legacy C) code? Show
1 4 C++ Python, C, C# GoogleTest, Nunit, Junit, python unittest I enjoy being outside and biking quite a bit A mix of tdd and writing tests after the code. arm cortex gcc/msvc for testing, IAR for firmware Under 10 seconds We try to include tests for anything new that's added When its purpose becomes unclear or hard to follow Generally done during merge/pull requests or through informal meetings 50 30 20 The problem solving and creative aspects of designing/implementing it. Being stuck with hard to understand legacy code bases. The process of writing an interface, testing against it, and then writing the implementation to fulfill the test cases. I'm always trying to be a better developer and learn more. (Also my company is paying for it) Show
10 20 C C++, C#, JAVA and Assembly None Cubs fan and grew up in Chicago area. Some automated integrated tests, but a lot of manual Custom boards IAR, CCS, MPLAB, Atmel Studio 31-60 seconds We have a source/header template but no coding standards From Experience Requested by developer on as needed basis 50 20 30 Challenge of solving problems efficiently and the interface between Testing and writing test plans. I've read a few articles and have some basic knowledge of the principles and some details of the implementation. We are short staffed and often spend a long time in the test cycle only to find additional bugs. Manual testing is time consuming and still doesn't provide a quality level expected by our customers. Show
12 15 C++ C, Python, Ruby, Go Cpputes, gtest, pyunit Electrical engineer by schooling. Off target unit testing with gcc and gtest. On target integration testing driving serial communication with pyunit. Cortex M (stm32), baremetal IAR 1-5 minutes ??? When it consumes all available code space (our codebase, not me personally) Pull requests through gitlab 25 25 (not separate phase) 50 Creativity and problem solving Changing requirements Everything in your book, Kent Beck's book. To learn more effective testing techniques. To learn ways to introduce other developers to TDD. Show
8 12+ C/C++ Some Python and Java Rcentrly started using CppUTest, Ceedling and GoogleTest I am a new, but huge fan of TDD. I didn’t until just recetly. Typically Cortex-M based embedded systems. Eclipse, Kiel, IAR, 1-5 minutes Misra-2012 Too many lines of code? Formally - non-existent. 65 10 25 Architecting, design and solving problems Testing I have your book and am familiar with the core principles and have done a couple projects recently. I want to be really good and comfortable at using TDD so that I can use it for every project in the future. Show
2 27 C Python, C++, C# Unity/Ceedling, UnitTest++, CppUTest, (mu)nit, Cmocka, I love roller skating and have been coaching/reffing roller derby for ~7 years Limited Unit Test via gtest Manual Testing Pull Requests Cypress PSoC4, PIC, STM32 Vim, uC Vendor IDE/Toolchains, Team Foundation Server (PR's, CI), VisualStudio (when forced), Sigrok, Tiobe TiCS, 1-5 minutes Trying to move to the Barr coding standard, but having trouble getting Tiobe TiCS configured to enforce When it does more than one thing (Violates S in SOLID) TFS Pull Requests 15 10 75 Solving puzzles and bending the various processors involved to my will. Finding the incorrect assumption in the assumption stack when debugging. Uncertainty if I'm breaking things while debugging/developing new features. I've read your book and tried to apply it to a couple products, but have never been successful in a professional setting. I've heard from others that TDD is valuable. I want to implement it with my team, but have not been successful. Show
13 28 C Assembly, Rust, Python None I like photography and reading. Mostly manual. Several embedded systems ranging from 8-32 bit. Used in power electronics Eclipse, MPLabX 31-60 seconds Checked, not enforced, by our code analysis toolset Tiobe Our code analysis tools (Tiobe) gives me hints on that. No code is allowed to be pushed into our master branche(s), unless reviewed. 25 50 25 Making new stuff The administration afterwards. Based on the requirements for the new feature: Write the test first, (which then must fail) Make the code work, then make it nice. Proceed with the next feature/bugfix. We as a company want to introduce unit testing into our development, but have no good clue on where to start. Show
10 months 20years C,C++ Java,Python TestCoCoon ( - Manual testing STM ARM + FreeRTOS based (Mosttly) Eclipse GCC 1-5 minutes in house length, complexity, peer code review (gerrit) 4 2 3 Developing software is always fun especially when you hear a review/feedback from people who uses it. Of course when it fails to perform what it suppose to do.. :).. Have some experience with TDD. (However writing tests first is not happening always. Most of the time, writing code first gets priority due to several reasons like schedule, costs etc...). Has heard about BDD (behavior driven development) Company decision and I never had any training in TDD even though I have used it.. I expect to learn more about TDD and use it from now.. Show
10 20 C assembly none Developed RFID readers used for access to buildings/car-parks but also reading e-Passports. Protocol conversions are not my favorite but i did quite a lot of those. Using firmware to control and act upon hardware is what I like the most in my job. I think programming language RUST might be the first serious candidate to be used for Embedded firmware development after C and assembly. - Reviewing each others code - TiCS analyze tool from Tiobe ( STM32L4, STM32F2, PIC24HJ, PIC18F Eclipse + gcc, MPLAB X + XC16 + C18 11-30 seconds Try to get to level C or better (within TiCS analyze tool) Cyclomatic Complexity of more than 4 to 5 should be avoided (within TiCS analyze tool) Using Gerrit server ( to review each others code 40 40 20 Bringing (embedded) hardware to live using firmware Depending on third party software/firmware (compiler libraries, CubeMX from STM, Harmony from Microchip, etc.)... It requires a different way of working on a project which extends beyond the software department. It is not easy to get the rest of the company (management) along in such a process... Getting legacy code unit tested. Don't know how to start at the moment... Show
27 20 C assembly none - TIOBE software rating and test in hardware application DSP real time control of power electronics Code Composer Studio 1-5 minutes - bad TIOBE score / function is difficult to read - ? ? ? - - - - Show
5 10 Python Rust, Java, Javascript, C, PHP junit, unittest, cargo test Not really an embedded dev preferably with automated unit en integration tests Everything except non-arm bare metal VSCode 11-30 seconds Depends on the language When I can't read it easily anymore 4 eyes minimum 50 40 10 Modeling a problem domain Repeating work What is is, how it works, but never been able to properly apply it I hope to learn something new to improve my work Show
14 4 Delphi/LabwindowsCVI C none I have a passion for software and like to read up on coding / articles on (best) practices, pieces of code or for instance our TIOBE toolkit. Even though I decided to leave programming to the real proffesionals I do like it alot. I don't :) Mostly developed windows interfaces with hardware. This includes RS232, RS485 and other serial protocols. As part of testability mostly worked with Labwindows CVI and GPIB communication. Labwindows CVI 31-60 seconds My personal feeling is that I moved on within the company on the crossroad where I have build sufficient knowledge/experience to start proffesionalise my software code. when I need more than 5 minutes to understand it somehow no-one ever asked me... 50% 25% 25% building/creating something with only time, my mind, a target and a computer as limiting factors. the power of software provides an ease to expand your code with many paths and layers of functionality on top of each other. Keeping the overview and understanding how to improve your code becomes more complex. Supporting tools are not easy to find I know it as a buzz-word, I know (and read) the theory sounds nice and easy, the practice is less easy based on my experience thusfar. Hopefully after this training we will think different. 2-fold: - understanding the challenges and benefits from applying such a system and be able to spar with the team on the many steps forward - figure out the fine line between optimal use/ implementation vs overkill/insufficient benefit Show
0 10 C C#, VHDL, HTML, CSS - - Functional testing by hand. STM32 (ARM Cortex) Eclipse, Git, GCC 1-5 minutes We have a custom coding standard, based on the MISRA standard. We have a TICS system that shows that. Through a Gerrit server 70 20 10 Creating things. You start with a blank page and in the end you have a working system that actually does something. Nothing. Not much, other than you start with the test, instead of testing afterwards. To see if tdd is something for me/mastervolt. Show
0 20 c any required none really, android and Python have some automatic unit test generation support I am 41 years old, having electronics and software as a hobby. Also playing footbal, etc Different methods, sometimes writing dedicated code to test functionality. STM32 / freeRTOS, TI dsp28x / bare metal platform and Microchip bare metal. editors, compilers, simulators, etc 1-5 minutes I use the customer's coding standards. Normally when you find you need certain functionality in other parts / functions of your software as well. There is a code analysis tool which also indicates when functions become too long code review / merge to the master branche is done / managed by Gerrit. SmartGit flow. 20 50 30 Foremost the hardware interaction tbd, I probably like documentation the least, I have seen quit some methods but none ended up being used in regular development. Sometimes we used a method for a month or a few months or so but then fell back into 'normal' operation. As a subcontractor I got it offered and I accepted to see if this might change things with respect to the previous question. Show
0.5 3 C++ C Python Matlab Ceedling I like fennel probably the most in the entire world EmbUnit tests Matlab tests Win32, HALO Visual Studio 31-60 seconds High standards - readable, maintainable when it doesn't fit on the screen (normal font) I feel some of them are superficial and just based on the code aesthetics and not on the logic or efficiency. 40 10 50 Solving problems, seeing how everything fits together Reading other people's messy and undocumented code Test Driven Development - code development happens in tandem and is informed by testing (writing functions so that they are easily testable). Because my manager told me so :) Show
3 months 17 C/C++ Matlab script/ C# In my previous company I used in house test harness software. But it was limited. I am DSP algorithm developer I have recently joined this company. But in the past My code was first developed and tested in Matlab environment. I had then a VS projects which load Matlab engine run the code and get the result back and used it to compare/debug the C/C++ code. In house DSP system Visula Studio / In house IDE Under 10 seconds I prefer the camel case coding standard Too many functionality within a function. Used in house code review software 20% 40% 40% Algorithm development and debugging Bad variable naming, lon comments within the code. The code naming and short functions should tell much about the code with minimum comments Not much I have been too much concentrated in algorithm development, I want to get up to date with the best and latest practice. Show
1 20 C C++ Python Perl Ruby Embunit I am an experienced embedded software engineer Unit tests System-level test Touch test (manual exercise of some subset of use cases) Cirrus DSP Toolchain provided by Synopsys including their IDE Notepad++ SonarQube cppcheck 5-30 minutes Documented coding standard which is validated in review and via cppcheck / SonarQube / CheckStyle / vera++ Reviewers moan. It clearly doesn't fit in one or two screens worth of view. Failure of SonarQube complexity metric. We use CodeCollaborator for online code review - at least 2 reviewers per review 20 20 20 Logical problems Unexplained failures Not much beyond inference from the title It might give some useful insights for how I can improve the design/implementation/time-line of test suites for new projects - perhaps they shouldn't be knocked out after the main project development Show
1 7 C python google test Embedded Software Engineer with experience in the consumer electronics and automotive markets. manual testing, jenkins unit testing and google test framework. ARM Cortex M0+ and a DSP for audio applications (headsets) Keil, Eclipse, VIM, ARM compiler, Meson, jenkins, make, git, gerrit. 1-5 minutes 200+ rules many of them are misra compliant. ASNI C compliant. When there are too many return points, when it's difficult to understand the code flow, when too many calculation are done within the function. We review code using Gerrit. 30 30 40 Challenging and fun, most of the times is not a tedious task. Sometimes is difficult to estimate the tasks and activities, specially when dealing with debugging. This can translate into frustration and extra time. Just the basic concept, create a failing test case and produce enough code to make the test passing. Truth is because I have been told by my manager, but I am very happy to attend, if I would have a choice I would have raised my hand to attend anyway. I am truly interested in this topic, reducing my debug time? Increasing Quality? Where do I sign? Show
2 20 c C++ Assembly Java Python unity CUnit googletest Junit Embedded programmer Unit tests for unity/cmock, googletest, junit ARM based deeply embedded, OS-less ARM based NucleusOS Windows based unit tests framework Java DS-5 CodeBench MSVC Eclipse/Maven 1-5 minutes In house Gerrit/SonarQube-based criteria Gerrit based reviews on every commit 33 33 33 Pays the bills Can be exasperating Been using it in some guise for a few years (I th