Skip to content
Automatically generate test cases, execute them, reduce reproduce steps, report bug using Model Based Testing technique
Branch: master
Clone or download
Latest commit fc44770 Aug 22, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update and add other documentations Mar 24, 2019
src Add data helper Aug 22, 2019
tests Add data helper Aug 22, 2019
.php_cs Use Symfony coding standards Mar 24, 2019
.travis.yml Refactor composer scripts Feb 16, 2019 Update and add other documentations Mar 24, 2019 Fix typo Mar 24, 2019
LICENSE Minor updates Apr 15, 2019 Update version Aug 16, 2019
_config.yml Set theme jekyll-theme-hacker Feb 1, 2019
composer.json Update version Aug 16, 2019
phpunit.xml.dist Move bootstrap to config Jul 21, 2019

MBT Bundle Build Status Coverage Status

This Bundle provides ability to test your application using Model Based Testing techique.

The major features are:

  1. Allow to test your application even though the application is not implemented yet.
  2. Automatically generate test cases when a task is created.
  3. Automatically execute those test cases to test your application.
  4. Automatically reduce reproduce path when a bug is found.
  5. Automatically report the bug when the reproduce path is reduced.

All you have to do:

  1. Define models to describe your application.
  2. Define subjects to interact with your application.
  3. Create tasks based on your need. e.g.:
    1. Test the whole application to make sure there are no bugs in the application.
    2. Test only models that have a tag to make sure the part of your application is still working while developing a feature.
    3. Test a model to make sure a bug that has been fixed is not regressed.
  4. Manage bugs that has been found. e.g. mark a bug has been fixed.
  5. You don't have to maintains test cases that has been generated automatically, instead, you may need to maintains models and subjects.


  • PHP 7.1 / 7.2 / 7.3
  • Symfony 4.3
  • See also the require section of composer.json


Step 1: Create symfony project

Before testing your application, you need to create new symfony project to use this bundle:

$ composer create-project symfony/skeleton my-project

Step 2: Download the Bundle

Install lastest version of this bundle:

$ composer require tienvx/mbt-bundle "^1.9"

Step 3: Config file storage

In order to save screenshots of bug report, we need to configure file system:

        # Name of the storage is matter
            adapter: 'local'
                directory: '%kernel.project_dir%/var/storage/screenshots'

Step 4: Create models and subjects

Model is the way to describe part your application. Subject is the way to tell this bundle to interact with your application.


You can run the tests with:

$ phpunit
$ composer run-script test # if you want to clear the cache


For the usage guide and reference, see wiki

Built With

  • Symfony - The web framework, and its components
  • Graphp algorithms - Common mathematical graph algorithms implemented in PHP
  • Doctrine - Database storage and object mapping


Pull requests are welcome, please send pull requests.

If you found any bug, please report issues.

Please read for details on our code of conduct, and for the process for submitting pull requests to us.


  • Tien Vo - Initial work - tienvx

See also the list of contributors who participated in this project.


This package is available under the MIT license.

You can’t perform that action at this time.