MISTA: Model-based Integration and System Test Automation

Executable version with manuals and examples: MISTA1.0.zip.

Several complete testing examples: MISTATestingExamples.zip, including the source code of the sample programs under test and their corresponding MISTA input files. It is easy to try: (a) select a target sample program and create a sample project in your IDE, (b) run MISTA, open the MISTA input file with extension xmid, and click on the 'Generate test code' menu item or button. The generated test code file is saved under the same folder of the MISTA input file, and (c) run the generated test code file in your sample project.

Java source code and examples: MISTA-src.zip

Github address: https://github.com/dianxiangxu/MISTA

MISTA supports automated generation of executable test code. It is suitable for function testing, acceptance testing, GUI testing, security testing, and programmer testing.

1)    It uses visual notations for building test models, such as function nets and finite state machines. Function nets, which are lightweight high-level Petri nets, can specify both control-oriented and data-oriented test models. They can be animated and verified. 

2)    It provides test generators for comprehensive coverage criteria of test models, including reachability coverage, reachability with sneak paths, state coverage, transition coverage, depth coverage, goal coverage, random walk, counterexamples of model checking, deadlock/termination state coverage, and given sequences. Pairwise and partial order techniques are options for reducing the size of test suites.

3)    It supports a number of languages (Java, C, C++, C#, PHP, Python, HTML, and VB) and test frameworks (e.g., xUnit, Selenium IDE, and Robot Framework) for offline test execution.

4)    It supports on-the-fly testing and online execution of generated tests through Selenium WebDriver or a RPC protocol (JSON-RPC or XML-RPC).

YouTube Demos

1)    Workflow for generating Selenium IDE tests

2)    On-the-fly testing with Selenium WebDriver

3)    On-the-fly testing with JSON-RPC

4)    Online test execution with JSON-RPC

5)    Generation and execution of keyword-based tests (Robot Framework)

6)    Test code generation for a Java program

7)    Test code generation for a C++ program


Selected Publications


1)    Dianxiang Xu, Weifeng Xu, Michael Kent, Lijo Thomas, Linzhang Wang. An Automated Test Generation Technique for Software Quality Assurance, IEEE Transactions on Reliability, Vol. 64, No. 1, pp. 247-268, March 2015.

2)    Dianxiang Xu, Michael Kent, Lijo Thomas, Tejeddine Mouelhi, and Yves Le Traon. Automated Model-Based Testing of Role-Based Access Control Using Predicate/Transition Nets. IEEE Transactions on Computers, Vo. 64, No. 9, pp. 2490-2505, September 2015.

3)    Dianxiang Xu, Manghui Tu, Michael Sanford, Lijo Thomas, Daniel Woodraska, and Weifeng Xu, Automated Security Test Generation with Formal Threat Models, IEEE Transactions on Dependable and Secure Computing. Vol. 9, No.4, July/August 2012, pp. 525-539.

4)    Dianxiang Xu, Weifeng Xu, Bharath K Bavikati, and Eric W. Wong. Mining Executable Specifications of Web Applications from Selenium IDE Tests. Proc. of the Sixth IEEE International Conference on Software Security and Reliability (SERE'12), Washington DC, USA, June 2012.

5)    Dianxiang Xu, A Tool for Automated Test Code Generation from High-Level Petri Nets, Proc. of the 32nd International Conference on Application and Theory of Petri Nets and Concurrency (Petri Nets 2011), Newcastle upon Tyne, UK, June 2011.


Last update: August 2015