Skip to content

intel/fMBT

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
doc
 
 
 
 
 
 
m4
 
 
man
 
 
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 Debian 11 / Ubuntu 22.04 and later 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.