I'm currently designing an automated testing framework for doing embedded systems testing on an embedded Linux system. There exists an old system, but it is particularly hard to use, mainly because it wasn't designed as a framework and was originally designed to test one product only. What this means is that the framework changes with each new product to test, which would take a lot of time spent simply understanding where to modify the system and how.

Now, I've been given the opportunity to create a new system from the ground up, with the goals of making it much more easy to use and a lot more intuitive. One of the things that I noticed in both the old system and other test systems I used was the idea of setting up all the tests and verification conditions, and then running the test so that the set up and test running were two different paths that occurred sequentially. One of the downsides to this is that any print statements would occur outside the flow path of the actual tester, so printing out failed variables needs to be added into the tester somehow.

Now that it falls on me to redesign the system. I'm wondering what added benefits are presented by going with a test-runner style architecture over simply setting things up, with checking variables and reporting back all at the same time.

  • Is this a generalized framework meant to have broad applicability, or is it a specialized framework intended to test one specific application or system? Commented Jun 11, 2013 at 19:04
  • It is intended to test many different products composed of embedded systems either over a CAN interface or serial, depending on the product. The system itself could be as basic as having 4 inputs and outputs that can read in voltage and feedback and put out analog signals, or it could be an all in one system with a touch screen and a dozen digital and analog outputs, which gives need for high modifiability in the test framework to accommodate many different tests
    – Ampt
    Commented Jun 11, 2013 at 19:07

1 Answer 1


I suggest taking a glance at the book XUnit Test Patterns. It covers a lot of different ways to define a test framework, and it discusses some of the pros and cons of many different approaches.

I think the best benefit of using a test runner vs. the approach that you mentioned, is that it becomes easier to run a subset of the tests (which could be just one of them).

  • Thanks for the response! That's definitely a step in the right direction, but hopefully not the only reason! Currently the system I'm designing wouldn't need the ability to run sub-tests independently and thus a test runner set-up might not make sense.
    – Ampt
    Commented Jun 12, 2013 at 13:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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