Open HMI Tester: an Open and adaptable framework for GUI testing

The Open HMI Tester is an Open Source GUI Testing tool which follows an open architecture that describes a non intrusive capture/replay tool based on GUI (and non-GUI) Events. Its aim is to give developers the possibility of testing HMIs (Human-Machine Interfaces) by performing both a recording (capturing the events generated by the tested HMI) and replay (executing the previously recorded events) processes over the tested application.

This tool can be modified in order to be adapted to the diferent characteristics of the testing environment: windowing system, operating system, test file representation, etc. It allows the developers to adapt and use this tool in their developments regardless of the characteristics of the execution (and testing) environment.

The Open HMI Tester has been built by the Cátedra SAES-UMU Team, working at the University of Murcia, Spain. It has been written C++ and uses Qt library version 4.x and the Boost C++ standard based libraries. It can be downloaded from here.

In which architecture is it based on?

The Open HMI Tester is based on the Open HMI Tester Architecture. This architecture describes a capture/replay tool based on GUI Events System, which represents one of the most used techniques in current windowing systems. Its design supports major event-based and open-source windowing systems, thus providing generality, besides some other features such as scalability and tolerance to modifications in the HMI design process.

By performing a non-intrusive application hooking, the Open HMI Tester Architecture is able to capture the events generated by the interaction with the tested application and then post them to it. It also allows adapting the implementation of a few modules to fit both the windowing system and the operating system in use.

The Open HMI Tester Architecture also is a contribution to the open-source community by the Cátedra SAES-UMU Team.

How does it work?

The Open HMI Tester works as easy as a sound recorder: the developers only have to record a set of Test Cases by performing the actions to be tested over the target application; then they only need to select a Test Case and play it.

To create a new Test Suite and record new Test Cases, follow these five steps:

  1. Open the Open HMI Tester tool.
  2. Choose New in the File menu.
  3. Enter the name of the new Test Suite and select the binary file to test.
  4. Click the record button and enter the name of the new Test Case.
  5. Perform the actions.
Once recorded one or more Test Cases:
  1. Open the Test Suite (if not open yet) clicking Open in the File menu.
  2. Select a Test Case to play in the Test Suite menu.
  3. Click the play button.
In order to quickly become familiar with the tester it is recommended to watch the following videos:

The Open HMI Tester experience

The proposed architecture has been also integrated as part of a complex industrial scenario, which helped to identify a set of realistic requirements of the testing architecture, as well as to test it with real HMI developers.


This tool is free software and it has been built under a LGPL (GNU Lesser General Public License) License. This license allows you to redistribute and/or modify the code under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 3.0 of the License, or (at your option) any later version.

License annotations:

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA