|title:||High level API for configuring active learning and black-box checking experiments|
|keywords:||active learning, black-box checking, API, LearnLib|
|topics:||Software Technology , Testing|
Behavior of systems can be learned with active learning algorithms. If -- additionally behavior is tested for correctness, black-box checking algorithms are used. A library that employs multiple such algorithms is called the LearnLib.
Currently, the LearnLib exposes a low level API to the developer that allows for easily configuring active learning and black-box checking experiments. However, the problem is that the developer may not be aware of the best performing configuration. We propose to design, implement and evaluate a high level API that already provides sensitive defaults to the developer. In addition to providing defaults, the high level API has to offer the developer the ability to easily enable logging and collecting statistics.
The tasks are:
- Do background research to assert which algorithms generally perform the best.
- Design a high level API with appropriate a design patterns (dependency injection, builders, factories come to mind).
- Evalutate the high level API for usability.
For more info see:
- Active learning: http://www.falkhowar.de/papers/SFM2011-Introduction-to-Active-Automata-Learning-from-a-Practical-Perspective.pdf.
- Black-box checking: https://research.utwente.nl/files/31512822/Author_s_version.pdf.
- The LearnLib: https://learnlib.de.
- Example active learning experiment: https://github.com/LearnLib/learnlib/blob/develop/examples/src/main/java/de/learnlib/examples/Example2.java (using low level API).
- Example black-box checking experiment: https://github.com/LearnLib/learnlib/blob/develop/examples/src/main/java/de/learnlib/examples/bbc/Example2.java (using low level API).
Bonus points will be awarded if you do a pull request and it gets accepted.