This is a personal web page. More information.

overview | download | tool demo | authors | publications ]

Modbat

A model-based tester

Overview

Modbat is a model-based testing tool that is based on annotated (extended) finite-state machines.

Modbat is specialized to testing the application programming interface (API) of software. The model used by Modbat is compatible with Java bytecode. The user defines and compiles a model, which is then explored by Modbat and executed against the system under test. Failed test runs are reported as an error trace.

Modbat is based on Scala and compatible with any Java-based software. The model has the structure of a non-deterministic finite-state machine. From all possible transitions, one is chosen to be tested; annotations of the transition specify which code to execute.

For the source code and more information, see the Github repository.

News (2020-07-28): Modbat 3.5 has been released. This release brings better Java 11 compatibility and facilitates the library dependency management with different Scala 2.11.x releases and configurations. As a result of this, the executable file is now slightly over 5 MB, as it bundles certain libraries that are hard to find on some systems.

Modbat is currently under active development and available under the Apache 2.0 license.

Modbat requires Scala 2.11. It also requires a subset of the ASM bytecode library to display line numbers of an error trace. A subset of that library, together with the license information, is bundled with Modbat.

See README for more information on how to use Modbat.

Download

modbat-3.5.jar Pre-compiled version of Modbat
Repository on github. Recent releases are tagged by version number. Source code: Use the repository.
LICENSE License: Apache License 2.0
CHANGELOG Changes from older versions of Modbat
modbat-examples-3.4.jar Examples for version 3.4 (including source code)
asm-LICENSE ASM license: New BSD license (part of ASM is bundled with Modbat)
akka-mock-LICENSE License for the bundled Akka mock scheduler: Apache license
javassist-LICENSE License for the bundled javassist: Apache license
sourcecode-LICENSE License for the bundled sourcecode analysis macro: Apache license

Tool demo

Authors

Cyrille Artho and many other contributors (see the LICENSE).

Publications on Modbat

[7] K. Banzai: Optimization of Test Oracles in Model-based Testing for Distributed Systems. Master's thesis, the University of Tokyo, Japan 2018. PDF
[6] J. Yoneyama: Model-based Testing Simulating Unstable Networks and Devices for IoT Software. Master's thesis, the University of Tokyo, Japan 2018. PDF
[5] C. Artho, G. Rousset: Model-based testing of the Java network API. FESCA@ETAPS 2017, April 2017, Uppsala, Sweden. PDF
[4] C. Artho, Q. Gros, G. Rousset, K. Banzai, L. Ma, T. Kitamura, M. Hagiya, Y. Tanabe, M. Yamamoto: Model-Based API Testing of Apache ZooKeeper. IEEE Int. Conf. on Software Testing, Verification, and Validation (ICST 2017), March 2017, Tokyo, Japan. PDF
[3] C. Artho, M. Seidl, Q. Gros, E. Choi, T. Kitamura, A. Mori, R. Ramler, Y. Yamagata. Model-based Testing of Stateful APIs with Modbat. Int. Conf. on Automated Software Engineering (ASE 2015), November 2015, Lincoln, USA. PDF
[2] C. Artho, A. Biere, M. Hagiya, M. Seidl, E. Platon, Y. Tanabe, M. Yamamoto. Modbat: A Model-based API Tester for Event-driven Systems. 9th Haifa Verification Conference (HVC 2013), November 2013, Haifa, Israel. PDF
[1] C. Artho, A. Biere, M. Hagiya, R. Potter, R. Ramler, Y. Tanabe, F. Weitl, M. Yamamoto. Modbat: A model-based API tester for event-driven systems. Short paper (tool demo) at the Dependable Systems Workshop 2012, Kobe, Japan, December 2012. PDF

E-mail: artho (at) kth (dot) se

Last update: October 18, 2019.

Obsolete versions (use not recommended): 1.0, 1.0.1, 1.0.2, 3.0, 3.2, 3.3; 3.4, modbat-1.0-examples.jar. Note that these versions have a more restrictive license (see LICENSE in the jar file: jar xf modbat-1.0-x.jar LICENSE). Version 2.0 was made available to selected partners but never released to the public; version 3.1 was used only internally.

KTH Logo