Automata Learning EXperience (ALEX) -- a free, open-source Java tool for easily combining active automata learning with web applications
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend
build
frontend
src/main/resources
.gitignore
.travis.yml
CHANGELOG.md
LICENSE.txt
README.md
pom.xml

README.md

ALEX

Travis CI

Automata Learning EXperience (ALEX) is an extension of LearnLib that allows you run automated tests on web applications and JSON-based REST APIs using active automata learning.

Users model Selenium- or HTTP-based test inputs for their application, which are used to automatically infer an automaton model (a Mealy machine), which represents the behavior of the web application.

Installation

Make sure you have Java 8 installed on your system. We advise to use a modern web browser like Google Chrome, Mozilla Firefox or Microsoft Edge with JavaScript enabled.

  1. Download the latest version.
  2. Open a terminal and start ALEX via java -jar alex-1.6.1.war [--server.port=XXXX].
  3. Wait until the command line prints something like de.learnlib.alex.App - Started App in XX.XXX seconds.
  4. Open http://localhost:8000 in a web browser.

After the first start, you can login as an admin using the account below:

Email: admin@alex.example
Password: admin

Build instructions

In order to build ALEX from source make sure your system matches the following requirements:

  • Java JDK 8
  • Maven 3
  • Node.js (v10.0.0) and the NPM (v6.0.0)

To build ALEX, open a terminal and follow the instructions below:

# clone the repository
git clone https://github.com/LearnLib/alex.git

# navigate to the project directory
cd alex

# build ALEX
mvn install package [-DskipTests]

The bundle can then be found at build/target/alex-build-1.6.1.war.

Connecting to a database

Per default, ALEX uses an embedded HSQL database which is stored in the target/alex-database directory. You can however also connect ALEX to a MySQL 5.7 database. Other databases have not been tested yet.

MySQL

Create a file called application.properties and add the following contents (and change the values according to your setup):

# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/alex
spring.datasource.username=root
spring.datasource.password=root
spring.jpa.hibernate.ddl-auto=update

Then, start ALEX like this:

java -jar alex-1.6.1.war "--spring.config.location=/path/to/your/application.properties"

Further reading