You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Automata Learning Experience (ALEX) is a web application that allows you run automated tests on web applications and JSON-based REST services using Active Automata Learning.
7
+
Automata Learning Experience (ALEX) is an extension of the [LearnLib](https://github.com/LearnLib/learnlib) that allows
8
+
you run automated tests on web applications and JSON-based REST APIs using active automata learning.
8
9
9
-
## How it works
10
+
Users model basic test inputs for their target application which are used by ALEX to automatically infer an automaton
11
+
model, or to be more precise, a [Mealy machine](https://en.wikipedia.org/wiki/Mealy_machine) that represents the
12
+
behavior of the web application.
10
13
11
-
Let us take a look at the example of an authentication system.
12
-
For an integration test you would probably write tests using Selenium or something else that check the following behavior:
13
-
14
-
* register > login > logout _should work_
15
-
* logout _should not work_
16
-
* register > logout _should not work_
17
-
* ...
18
-
19
-
With increasing complexity and feature set of an application, integration tests might be hard to maintain if all possible and impossible combinations of features should be tested.
20
-
With ALEX, we follow a different, more automated approach that
21
-
22
-
1. does not require any knowledge about the implementation of an application,
23
-
2. does not require any experience in programming and
24
-
3. separates the language specific tests from the application to test.
25
-
26
-
Assume the authentication system mentioned above has the following features: _register_, _login_ and _logout_.
27
-
Then, we model each feature independent of each other using e.g. [Selenium](http://www.seleniumhq.org/).
28
-
In Active Automata Learning, this set of testable features is called **alphabet** where the elements of the alphabet are called **symbols**.
29
-
A sequence of symbols is called a **word**.
30
-
31
-
We then pass the learning alphabet to a **learner** that uses specific algorithms to create a model of the underlying application and how it behaves based on the given symbols.
32
-
Therefore, words are executed on the real system under learning and its reactions are observed.
33
-
Finally, the learner creates a **hypothesis** as an output that is modeled as a [Mealy machine](https://en.wikipedia.org/wiki/Mealy_machine).
34
-
In this example, it would hopefully look like this:
35
-
36
-

37
-
38
-
As it can be seen, the learner has learned the application and all features work as intended.
39
-
From here on, more symbols can be added and learned.
40
-
41
-
It can be that the learner has not learned the application correctly, i.e. there is a word in the model that has a different output than the actual application.
42
-
In fact, one can never be a 100% sure if the model actually represents the system under learning.
43
-
How to check for and handle these mistakes is described in the [user manual](http://learnlib.github.io/alex/book/1.2.1/contents/user-manual/index.html).
44
-
45
-
If you want to know more about Active Automata Learning, you can find some resources at [Google Scholar](https://scholar.google.de/scholar?hl=de&q=active+automata+learning) or the homepage of the [LearnLib](http://learnlib.de/).
46
-
47
-
## Installation and first login
14
+
## Installation and login
48
15
49
16
We developed and tested ALEX using either Windows 8.1 and higher and Linux Ubuntu 14.10 and higher.
50
17
As the application runs on JAVA, any other system with an installed JVM should do fine.
51
-
We also advise to use a modern web browser like Google Chrome >= v46, Mozilla Firefox >= v42 or Microsoft Edge with JavaScript enabled in order to run the front-end properly.
18
+
We also advise to use a modern web browser like Google Chrome, Mozilla Firefox or Microsoft Edge with JavaScript enabled.
52
19
53
-
After the first start, you can login as admin backend using the account below.
20
+
After the first start, you can login as an admin using the account below.
54
21
55
22
Email: *admin@alex.example* <br>
56
23
Password: *admin*
@@ -60,57 +27,39 @@ Password: *admin*
60
27
Make sure you have Java 8 installed on your system.
61
28
62
29
1. Download the latest version. [Download](https://github.com/LearnLib/alex/releases/latest)
63
-
2. Open a terminal and start the war archive using `java -jar ALEX.war [--port=XXXX]`
30
+
2. Open a terminal and start the *war* archive using `java -jar ALEX.war [--port=XXXX]`
64
31
3. Open *http://localhost:8000* in a web browser
65
32
66
33
#### From source
67
34
68
-
For the Installation from the source files make sure your system matches the following system requirements:
35
+
For the installation from the source files make sure your system matches the following requirements:
69
36
70
37
* Java JDK 8
71
38
* Maven 3
72
39
* Node.js v7.9.* and the NPM
73
40
74
-
To install and run ALEX, execute the following commands in a directory of your choice:
41
+
To obtain ALEX execute the following commands in a directory of your choice:
0 commit comments