Free Model Based tool
Latest commit 6d6312b Oct 11, 2018
Failed to load latest commit information.
debian Version 0.40 Oct 11, 2018
doc doc: Added AAL/Python examples with Python embedded in names Jan 10, 2017
docker Windows: fixed building Windows installer Mar 8, 2016
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
packaging Version 0.40 Oct 11, 2018
pythonshare Version 0.40 Oct 11, 2018
src Add missing space between literal and string macro Jul 23, 2018
test fmbt-stats: update fmbt-stats test to new syntax Dec 22, 2017
utils pycosh: basis for better command parser Oct 9, 2018
.gitignore gitignore update Jun 14, 2013
.gitmodules Windows installer: add necessary dirs to PATH Oct 28, 2014
AUTHORS files Oct 25, 2011 android support for both "mm" and "ndk-build" Dec 30, 2011
COPYING files Oct 25, 2011
HACKING cleanup Oct 25, 2011
KNOWN_ISSUES KNOWN_ISSUES: VNC problems documented May 14, 2014 fmbt-debug: support debugging on Windows Nov 26, 2014
README doc: README: use libpng16-16 in Debian/Ubuntu Dec 22, 2017
README-windows.txt Windows installer: documented using the docker script Nov 11, 2015 use sh instead of bash Nov 21, 2014
bogus bogus commit to trigger build Nov 7, 2012 Windows build: fix graphviz download URL Aug 21, 2018 Version 0.40 Oct 11, 2018
exec_wrapper.c Windows: fix glib assertion in exec wrapper Nov 21, 2014 v0.1.2 Aug 29, 2012
fmbt.ico Windows: added a script for building the installer Oct 28, 2014 Version bump, development version 0.40-0.rc0 Oct 25, 2017
license.rtf windows build fix Oct 16, 2014


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.