Skip to content
Free Model Based tool
Branch: master
Clone or download
Latest commit 50d2143 Jan 4, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
autodebug autodebug: buggy example README fixes Nov 9, 2018
examples syntax update for python conf Jun 9, 2015
m4 xrules parser built into fmbt_cparsers shared library with a C API Nov 7, 2011
man doc: LSTSs are state spaces (no finite state machines) Feb 5, 2014
misc AAL/Python: added aal-mode.el for emacs users Jan 22, 2014
test fmbt-stats: update fmbt-stats test to new syntax Dec 22, 2017
.gitmodules Windows installer: add necessary dirs to PATH Oct 28, 2014
AUTHORS android support for both "mm" and "ndk-build" Dec 30, 2011
COPYING files Oct 25, 2011
KNOWN_ISSUES KNOWN_ISSUES: VNC problems documented May 14, 2014
README-windows.txt use sh instead of bash Nov 21, 2014
bogus Windows build: fix graphviz download URL Aug 21, 2018
exec_wrapper.c v0.1.2 Aug 29, 2012


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 Debian/Ubuntu 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

./ # run only if you cloned sources from git
./configure  # add parameter PYTHON=python2 when building on Arch Linux
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:

fMBT is being ported to Windows, but the work is not ready yet. See
README-windows.txt for current status and instructions.

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


        AAL/Python language reference documentation.

        Test configuration reference documentation.
        GUI testing interfaces for Android,
        Tizen, VNC, Windows and X11.


        Test a filesystem: mkdir, rmdir, access.

        Test a C++ class.

        Test a JavaScript API in a browser.

        Test a Python class.
        Test MPlayer's pause, continue, next song, prev song, add
        song, and reset playlist.
        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.

        Run tests against the latest commit in the current git branch.
You can’t perform that action at this time.