contact: webadmin@linux.intel.com

January 14, 2026 ยท View on GitHub

THIS PROJECT IS ARCHIVED

Intel will not provide or guarantee development of or support for this project, including but not limited to, maintenance, bug fixes, new releases or updates. Patches to this project are no longer accepted by Intel.
If you have an ongoing need to use this project, are interested in independently developing it, or would like to maintain patches for the community, please create your own fork of the project.

contact: webadmin@linux.intel.com

INTEL/FMBT IS ARCHIVED

github.com/intel/fMBT is archived.

Please see other forks for updates, for instance:

github.com/askervin/fMBT

The fMBT (free Model-Based Testing) tool automatically generates and executes tests. It is suitable for testing anything from individual C++ classes to GUI applications and distributed systems containing a range of different devices. fMBT provides a model editor, test generator, adapters for various purposes and tools for analysing logs.

Building & installing

Quick start for Docker users:

Build an image including commandline and GUI utilities:

docker build . -t fmbt-gui:latest -f Dockerfile.fmbt-gui

See Dockerfile.fmbt-gui on running fmbt3-editor from the image.

Quick start for Ubuntu 24.04 and later users:

sudo apt install -y autoconf automake build-essential debhelper flex gawk git-core gnuplot graphviz imagemagick libboost-dev libboost-regex-dev libedit-dev libglib2.0-dev libmagickcore-dev libpng16-16 libtool libxml2-dev python3 python3-pip python3-dev python3-pexpect python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtwidgets tesseract-ocr
./autogen.sh && ./configure && make -j 4 && sudo make install

Quick start for Debian 11 / Ubuntu 22.04 users:

### Note: use fmbt3-editor instead of fmbt-editor.
sudo apt install -y autoconf automake build-essential debhelper flex gawk git-core gnuplot graphviz imagemagick libboost-dev libboost-regex-dev libedit-dev libglib2.0-dev libmagickcore-dev libpng16-16 libtool libxml2-dev python2 python2-dev python3-pexpect python3-distutils python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtwidgets tesseract-ocr
./autogen.sh && ./configure && make -j 4 && sudo make install
cd utils3 && sudo make install

Quick start for Debian 10 / Ubuntu 20.04 users:

### Note: use fmbt3-editor instead of fmbt-editor.
sudo apt install -y autoconf automake build-essential debhelper flex gawk git-core gnuplot graphviz imagemagick libboost-dev libboost-regex-dev libedit-dev libglib2.0-dev libmagickcore-dev libpng16-16 libtool libxml2-dev python python-dbus python-dev python3-pexpect python3-distutils python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtwidgets tesseract-ocr
./autogen.sh && ./configure && make -j 4 && sudo make install
cd utils3 && sudo python3 setup.py install

Quick start for Debian 9 / Ubuntu 18.04 and earlier users:

sudo apt-get install build-essential libglib2.0-dev libboost-regex-dev libedit-dev libmagickcore-dev python-dev python-pexpect python-dbus python-gobject gawk libtool autoconf automake debhelper libboost-dev flex libpng16-16 libxml2-dev graphviz imagemagick gnuplot python-pyside tesseract-ocr

Quick start for Fedora users:

yum install  glibc-devel glib2-devel boost-devel libedit-devel gcc-c++ pexpect dbus-python libtool dh-autoreconf flex libpng12 libxml2-devel graphviz ImageMagick ImageMagick-devel gnuplot python-devel python-pyside tesseract

Quick start for Arch users (assuming base and base-devel to be installed):

pacman -S libedit imagemagick libxml2 boost python2 python gnuplot graphviz gts leptonica tesseract tesseract-data python-pexpect python-dbus boost libtool flex imagemagick python2-pexpect python2-pyside python-pyside-common python2-shiboken

You will also need X (xorg-server) in order to use fmbt-editor and
fmbt-scripter.

./autogen.sh # run only if you cloned sources from git ./configure # add parameter PYTHON=python2 when building on Arch Linux make sudo make install

Known issue with Fedora and Arch Linux: By default "make install" installs Python libraries into directories that are not in the default PYTHONPATH. Add them to the path: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages:/usr/local/lib64/python2.7/site-packages

Windows users:

See README-windows.txt for building fMBT for Windows.

Binary downloads

See artifacts built in gitlab CI/CD pipelines.

https://gitlab.com/fmbt/fmbt_ci/pipelines

Getting started

  1. Create a model and a test configuration:

    fmbt-editor helloworld.aal helloworld.conf

  2. Run the first test:

    fmbt -l first.log helloworld.conf

  3. See what it executed:

    fmbt-log first.log

Documentation

doc/aal_python.txt AAL/Python language reference documentation.

doc/configuration.txt Test configuration reference documentation.

https://github.com/01org/fMBT/wiki/GUI-testing GUI testing interfaces for Android, Tizen, VNC, Windows and X11.

Examples

examples/filesystemtest Test a filesystem: mkdir, rmdir, access.

examples/c++-unittest Test a C++ class.

examples/javascript-unittest Test a JavaScript API in a browser.

examples/python-unittest Test a Python class.

https://github.com/askervin/fmbt-mplayertest Test MPlayer's pause, continue, next song, prev song, add song, and reset playlist.

https://github.com/askervin/fmbt-androidtest Test the phone application on Android: make calls, put calls on hold, swap calls, hang up calls from the phone application and homescreen menu.

fMBT self-tests

make check Run tests against the source tree as it is.

test/git-HEAD/run.sh Run tests against the latest commit in the current git branch.