I have disappeared for 8 months… Even though there was no new posts in these months, but I did get a lot done:
First, the measurement and export tests in workstation are fully automated by TestPartner using VBA scripts, which saved 1 tester 18 testing days. (I won’t create any new posts for TestPartner, since if you fully understand the existing 20 posts of TestPartner, you should be able to solve any problem in TestPartner.)
Second, starting from June, in 3 months time, I finished writing XML scripts to automate the transducer tests for our Ultrasound Machines, which saved 1 tester 12 testing days. Use embedded XML scripts to automate Ultrasound Machine tests is a huge step for us, since this represents that we are not only able to automate pure software tests (workstation tests), we now able to automate Real-Time system tests which has its own hardware! For more discussions about how big this step is, please refer to post#15: Automated Testing for Real-Time Embedded Medical Systems.
Now let’s talk about how to use the embedded XML scripts to automate Ultrasound Machine tests:

The Ultrasound Systems developed by my company is just like those Ultrasound machines you see in hospitals. It contains a monitor, a custom designed keyboard, and a card cage. Inside the card cage, there are a normal computer and our custom designed hardware – multiple electronic boards. FPGA is on one of the board, which does all the calculation. Also, the system is connected to a transducer, which send and receive ultrasound signals.
In order to automate the Ultrasound Machine tests, we need to use scripts to simulate keyboard/user interface input, and read/write software/hardware parameter values. These become possible by using the embedded background Engineering mode of our Ultrasound application. The Ultrasound application is visible to customers, i.e., machine operators can see the ultrasound images and parameter values on the monitor, and able to use the keyboard to control these values in order to modify the ultrasound images. On the contrary, the Engineering mode is invisible to customers, but visible to developers and testers. All the software and hardware parameter values are actually controlled in Engineering mode. These values on the Ultrasound application are just an output of the Engineering mode values.
The Engineering mode was not originally designed for automation tests, it was needed by developers to support the Ultrasound application anyways. The Engineering mode is the internal core of the Ultrasound software, the customer visible Ultrasound application is just the outside shell. To interpret XML scripts is one of the functions of the Engineering mode. This scripting function was originally there since developers needed it to do their own tests. Now, what I need to do is just by adopting the script function in Engineering mode to do the automation tests of the Ultrasound Machines.
Extensible Markup Language (XML) is a set of rules for encoding documents in machine-readable form. All XML scripts are customized to make it your machine-readable. In my company, the Ultrasound software is coded by C++, so our XML script is customized in C++ by our developers. They also created a 30 pages long software design description to provide the software design and usage description for our customized XML scripting language, including script block, variable and array, log statement, action statement (assign, add, subtract, multiply, divide, abs, get type, change type, set length), sleep statement, loop statement, condition statement, link statement, function statement, file statement, and component specific script elements.
The component specific script elements section explaines how to simulate the keyboard/user interface input and read/write software/hardware parameter values:
Keyboard input:
User interface input:
Read from software (called as “pdm”) parameter values:
Write from software (called as “pdm”) parameter values:
3
Read from hardware (called as “dcm”) parameter values:
Write from hardware (called as “dcm”) parameter values:
not in use