I have developed a microcontroller application using an ADC, a RS232 port and some digital I/O.

How can I verify the application in black box fashion (not using development tools)? And are there any test tools for that?


2 Answers 2


Start by forgetting about the "micro-controller" and "embedded" parts and design tests like for any other system. Look at the specifications, explicit and implicit, and design tests o cover them.

Test tools ? there are a lot of test tools that match your general description and can generate analog signals, RS232 (even your PC can) or digital signals, you'll have to be more specific.

  • I actually mean test automation tools. Could you give some examples for autamation tools which can be used in embedded domain?
    – Q Q
    Apr 4, 2014 at 11:51
  • Most of the traditional tools can be adapted to work with embedded devices using "drivers" or a software layer that communicate with the device. Actually if you use a tool that runs on your desktop you'll always have to implement such a software layer, although some vendors has built in drivers for known interfaces (e.g. Qualisystems) Android has many test environments, some even run on target, but again those that run on a desktop need adaptation.
    – Rsf
    Apr 7, 2014 at 6:26

The four basic steps of any black box test are 1. Identify your oracles (How do you tell if something is a bug?), 2. Identify your "surfaces" (What are the variables that could change during testing?), 3. Identify your risks (What are the highest priority functions? - that will change as your testing progresses), and 4. Make a plan.

For oracles, do you have other devices to compare to? Do you have a list of formal requirements or an informal statement of how it should work?

For surfaces, is there any interface specifications or limitations? How is the RS-232 configured? What are the expected limits on the ADC?

For risks, what is the most important function to evaluate for now? Again, this will change as you get deeper into the testing.

For the plan, don't get fancy. Just figure out a set of tests that will cover the surfaces you identified in a reasonable amount of time. You probably want to start with some fast, basic steps and then expand from there as things appear to be working. (Tests never "pass", they just haven't been explored enough. Make it break!)

Hope that helps!

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.