Student projects
Formal Methods Group (Prof. Aichernig)
B. K. Aichernig, F. Lorber, R. Schumi, and S. Tiran, Institute for Software Technology
2
Context
Context
Model-based testing
Generate test cases from a model
Different model notations (e.g. UML, contracts, timed automata,...)
Functional Programming in the Internet of Things Scala, Erlang
Research
1 European, 1 National research projects Academic and industrial partners
SMT solving
Satisfiability Modulo Theories
General purpose solvers for satisfiability of a formula
Usable for bounded model checking Theories correspond to data types
4
Context
Organization
12 selected projects
Most are suitable for: Bachelor Thesis,
Seminar/Project Software Technology, Project
(Software Development and Business Management), Master’s Thesis
Desired qualification: knowledge of the courses “Logic and Logic Programming”, “Quality Assurance in Software Development”, or “Selected Topics Software Technology 2”
The slides can be accessed online: http:
Encoding transition systems with complex data structures for model-checking with SMT solvers
Software models often contain complex data types like lists, sets, tuples
Idea: show how those types can be encoded as SMT formulae
also: show how the use of those theories scales for bigger models
Just proof-of-concept: we bypass the use of a modeling language
6
Topics
Project 2
Empirical evaluation of model-based testing tools using a com-prehensive set of benchmark examples
Idea: compare different model-based testing tools in terms of performance, usability of modeling notation includes literature research for examples which could be used as benchmarks
Standard coverage vs. fault-based test case selection
Idea: investigate on the relationship between standard coverage metrics and mutation testing optional: investigate which mutation operators are most powerful
8
Topics
Project 4
Proof-based development of test models
Idea: formally develop test models from informal requirements
Modeling language: Event-B
Integration of our existing test case generators with Event-B
Comparison between NuSMV and other model checking tech-niques
Idea: Model-checking of synchronous models Translate existing models into NuSMV
E.g. Car alarm system, wheel loader, railway interlocking system
10
Topics
Project 6
Test case generation for large interlocking system
Idea: apply model-based testing to larger industrial systems
generic model of interlocking system available model real-world train station (Leobersdorf) Used language: Scala, parametrized contracts
Test case generation for real-time systems Idea: Evaluate different (in-house) tools
Compare symbolic execution to bounded model checking
Transform timed-automata benchmark models to other formalisms and evaluate different tools
12
Topics
Project 8
Tool evaluations for models with non-functional requirements
Idea: create small models with resource-based non-functional requirements like time, memory, power, throughput ...
find and evaluate existing tools eg. UPPAAL CORA
Using Scala as an abstract modeling language
Given existing abstract formal models in a specification language (Event-B, VDM++, ...) Use Scala features to create elegant executable models
Evaluation what works and what does not E.g. Nasa’s propulsive backpack for EVA.
14
Topics
Project 10
Distributed Load Testing with Tsung
Tsung is implemented in Erlang Specify protocol and tester profiles Distribute testing process and test a chosen server application.
Controlling a Parrot drone via Embedded Erlang
Existing open source project and demo (hot code swapping)
Repeating the experiment and evaluation Extending the demo with cool features Automated testing the protocol of the drone
16
Topics
Project 12
Implementing a distributed neural network in the Actor Model.
Erlang: The Unintentional Neural Network
Programming Language, Gene Sher, Erlang Factory, Mar 2011.
Implementation in Scala or Erlang Training and solving of a task