ramahoel / TorXakis

A tool for Model Based Testing

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

TorXakis logo

Build Status Build status Code Climate License

TorXakis

TorXakis is a tool for Model Based Testing.

It is licensed under the BSD3 license.

For Users

User documentation at our wiki.

Installation

Windows

For Windows systems an installer is provided in the releases section.

Linux

For Linux systems we provide a snap package. To install TorXakis run:

sudo snap install torxakis --edge

If you don't have the snap package manager installed on your Linux distribution see the installation instructions for your platform.

When running TorXakis as a snap, the configuration file for TorXakis should go in the ~/snap/torxakis/current directory. This is because snaps run in an isolated environment, and they are not able to see any hidden files in the users home directory.

For Developers

TorXakis is written in Haskell and uses stack as build tool. In addition TorXakis needs an SMT solver, such as cvc4 or Z3. The SMT Solver needs to support SMTLIB version 2.5, Algebraic Data Types (as proposed for version 2.6), and Strings. The SMT Solvers are assumed to be located on the PATH. For development acceptance tests javac is needed.

The Haddock documentation is also available here.

Building

Make sure that stack is installed, then clone this repository. To build and install TorXakis locally, if you are on a Windows system run:

stack setup
stack install

For Unix systems a different stack configuration is used:

stack setup --stack-yaml stack_linux.yaml
stack install --stack-yaml stack_linux.yaml

The build might take an hour depending on the host system. There is an issue filed to improve this. Alternatively the --fast flag can be used:

stack install --fast

or on Unix systems:

stack install --fast --stack-yaml stack_linux.yaml

This disables all optimizations and takes the compile time down to around 5 minutes, however bear in mind that TorXakis will be slightly slower (for instance we experience a 10 seconds overhead when testing a model that took about 30 seconds with the optimized version).

The reason for having two configuration files is that on Windows systems the libraries are linked statically, and thus we cannot use the integer-gmp library, since TorXakis is licensed under the BSD3 license.

In the instructions that follow we will omit the --stack-yaml stack-linux.yaml flag, but bear in mind that if you're in an Unix system you need to add it (or set the STACK_YAML environment variable to "stack-linux.yaml")

Testing

When submitting a pull request, our continuous integration process will run a series of tests. There are two levels of tests that we use in TorXakis: unit-tests and integration tests. Unit-tests can be run when building using stack by passing this --test flag:

stack install --test

To run the integration tests go to the test/sqatt folder, and run:

stack test

See the README in the sqatt folder for more information.

Repository structure

There are several folders in this repository, which serve different purposes:

  • bin: utility scripts to start TorXakis UI and server.
  • ci: scripts used in our continuous integration process.
  • docs: documentation files for TorXakis.
  • examps: example models and systems-under-test (SUT's) to play around with.
  • snap: files needed to create Linux snaps.
  • sys: packages that make up TorXakis this is where the source code resides.
  • test: utilities for quality assurance tests (integration-tests, license-checking, etc).

See the README files in each folders to get a more detailed explanation.

About

A tool for Model Based Testing

License:BSD 3-Clause "New" or "Revised" License


Languages

Language:Haskell 72.8%Language:Yacc 20.2%Language:Java 4.2%Language:Logos 1.7%Language:Batchfile 0.6%Language:Shell 0.4%Language:Emacs Lisp 0.0%