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 libpng12-0 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 autoconf automake flex libpng12 libxml2-devel graphviz ImageMagick ImageMagick-devel gnuplot python-devel python-pyside tesseract ./autogen.sh # run only if you cloned sources from git ./configure make sudo make install (There is a known issue with Fedora: "make install" may install Python libraries to a directory that is not in the default PYTHONPATH. You may need to add it to PYTHONPATH, for instance: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/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 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.