I have developed an embedded product, which has a dot-matrix LCD, some buttons, bluetooth and WiFi functions. To me, the functions are rather complicated as one of the operating mode can interact or change other modes. And one mode can be actived by different ways, such as by the graphical user interface, Bluetooth or WiFi.

The requirement of the functions keep changing. I found that it is very difficult for me to test the software thoroughly before release it on time. (My manager requires me to release the software in the same day of a software change). As a result I found many bugs after the software is released.

To solve the problem, we found 4 engineers to test the software, somewhat likes a manual monkey test. However it still take a whole week for them to test. This make the development cost high (and the development time long).

Is there other way to test embedded product's software? May be in a automatical way? Or a manual monkey test is a must?

Thank you very much.

  • 2
    I highly recommend this book on the subject: amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/… The first few chapters will explain how you can unit test business logic while mocking hardware dependencies.
    – Eternal21
    Oct 27 '17 at 18:38
  • 1
    As an inspirational anecdote you might enjoy reading The Amazing DevOps Transformation Of The HP LaserJet Firmware Team (15min read). It discusses how hardware emulation led to faster feedback cycles which led to faster deliveries, e.g. from 6 weeks manual testing to 24 hrs automated testing. Not all of that will be applicable for you, but it demonstrates well how automated testing can have tremendous business value.
    – amon
    Oct 27 '17 at 19:40
  • Look into formal verification and contract based software engineering. Testing will always be slow and incomplete. Oct 31 '17 at 1:27

At some point in the process a "manual monkey test" has to be performed, QA "has" to happen. Where in the process that is can be difficult to figure out.

Automated unit tests can always be written but it takes some time to set up a testing framework where none exists. Convincing a boss to spend the money on something that is not an obvious return (money here being developer time that does not bring in revenue) can sometimes be a challenge, but if you can cut one of the QA engineers there would be an obvious ROI.

Embedded systems does have its own quirks for mocking out hardware but being a common issue there are most likely testing frameworks built with that in mind.

  • Could you suggest any existing testing framework that is good for embedded product?
    – eepty
    Oct 28 '17 at 19:14
  • @eepty If you're using C++, then google test framework is your best bet: github.com/google/googletest
    – Eternal21
    Oct 30 '17 at 11:48
  • googletest is not necessarily an embedded test framework, it can work but so are many other command line frameworks depending on the specific capabilities of the product.
    – Rsf
    Nov 14 '17 at 13:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.