Electronic – Test automation framework/software for hardware applications

production-testingpython

I am an Electrical engineer so my background on software testing is limited. My application is not a software testing issue. I need to develop a software package in python to interact with a RF electronic board to do various test procedures and measurements. I want the software to be general enough so in future adding new test cases and changing parameters etc. be very easy and don't take time so we focus on results.

As far as I read through existing test automation tools that are available found they are for software tests, not for hardware applications.

I was wondering if you have suggestions or come across a framework/tool/arch. that fits hardware applications.

Best Answer

Is there a specific reason it needs to be Python? It's a great language, and a good fit for writing these kinds of programs. However, there are other more conventional options which are more likely to have drivers for your test equipment.

  • LabVIEW - very popular, graphical dataflow based language from National Instruments. It seems that almost all test equipment has drivers available for this environment. Don't let the point-and-click interface fool you though, programming in LabVIEW is still programming with all the inherent challenges that implies. If you're used to procedural languages, then it can take a while to learn how to write idiomatic LabVIEW code. It also does not play nice with version control systems (not textual, so diff doesn't work).
  • LabWindows/CVI - National Instruments' offering for the C language. It can use LabVIEW drivers. Last I checked, it was only a C compiler, not C++, though you can use your own compiler and linker to incorporate C++ modules.
  • VEE - by Agilent, formerly HP. It's a graphical language similar to LabVIEW. If you are primarily using Agilent test instruments it may be easier to use VEE.
  • ATEasy - by Geotest. Uses its own Visual Basic-like language. Somewhat obscure, but it can be made to use LabVIEW drivers. An advantage over the other offerings is that it has a built-in mechanism for sequencing smaller tests within a larger procedure.
  • vanilla programming language (like Python or C++) and serial communications - most instruments have a serial port interface, and with proper architecture you can separate out the low-level details of talking to instruments from the high-level test procedures. An advantage of this approach is that you can save thousands of dollars on software licensing, and you're less tied to a specific vendor. The major disadvantage is that you have to do the work of bringing together drivers for each piece of equipment, and possibly writing your own. Essentially, you end up rewriting some fraction of the above offerings.