3
\$\begingroup\$

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.

\$\endgroup\$
  • \$\begingroup\$ Can you give some details about what you need to test? What are you measuring? Also, where is the test software being run? External PC with test equipment measuring the device-under-test (DUT)? Or is the test being run on the RF board and output being streamed back to a PC? \$\endgroup\$ – Jon L Jul 20 '11 at 23:54
  • \$\begingroup\$ basically I need to read/write register values in a FPGA board which in turn send commands to another RF card.But I need to define various functions for setting freq. band,power amp tuning etc. and combine these functions to have a running test script.I need to design a tool that minimizes our focus on scripting so it has to be well architected and designed. \$\endgroup\$ – doubleE Jul 20 '11 at 23:58
  • \$\begingroup\$ First scripts are run in PC and we read measurement eq. in our scripts.But eventually scripts has to be transformed to C and go inside the fpga ,and in pc we just invoke the desired test from fpga.. \$\endgroup\$ – doubleE Jul 21 '11 at 0:01
  • \$\begingroup\$ I'm still confused as to what exactly you are testing. Are you testing the RF card's functionality or RF performance? Are you testing the FPGA's logic to communicate with the RF card? Are you testing the two of these devices together as one? Where is your "input" and what is your desired output that you will measure? When you say "But I need to define various functions for setting freq. band,power amp tuning etc." are these settings for the RF card? Test equipment? I suggest editing your question to provide more detail... maybe a diagram of the subsystems you plan to have. \$\endgroup\$ – Jon L Jul 21 '11 at 21:58
4
\$\begingroup\$

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.
\$\endgroup\$
  • \$\begingroup\$ Many thanks for defiled reply.Well we are using GPIB functions to read/write to measurement devices.We have libraries for each device.Reason for using Python is it's simplicity and fast coding time.Eventually python codes will migirate to fpga and we just invoke the function from PC. \$\endgroup\$ – doubleE Jul 21 '11 at 17:21
  • 2
    \$\begingroup\$ How the heck do you plan to put Python on an FPGA? And what exactly does that accomplish again? \$\endgroup\$ – AngryEE Jul 21 '11 at 20:17
  • \$\begingroup\$ I am not putting python on fpga python is accessing fpga etc.Converting python to c for fpga is next phase. \$\endgroup\$ – doubleE Jul 22 '11 at 5:37
  • \$\begingroup\$ LV has visual diff functionality. Regarding other languages hardware interface, there are the VISA libraries (Both Agilent and NI) which provide a hardware abstraction layer, with a relatively simple API. \$\endgroup\$ – Lior Bilia Jun 8 '15 at 6:26

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.