Skip to content

A modular and flexible embedded system test framework with dedicated hardware for test execution specifically designed for use in university courses.

License

Notifications You must be signed in to change notification settings

EAS-ATTEST/ATTEST-Testsystem

Repository files navigation

ATTEST: Automated and Thorough Testing of Embedded Software in Teaching

RTOS Testsystem is a python-based test system for the Real-Time Operating Systems course in the Embedded Automotive Systems group at the Institute of Technical Informatics at Graz University of Technology. It was revised from scratch in the winter term of 2022 to improve its performance and functionality. The system utilizes dedicated external hardware for testing to guarantee precise and reliable results. It is firmly git-oriented to embed its functionality in the best possible way.

For comprehensive documentation, please visit the project website.

Getting started

The test system is easiest to use with the provided docker file. The current implementation uses MSP430 microcontroller boards as target devices and 2205A PicoScopes as measurement devices. These devices form test units. A test unit is the dedicated hardware where test cases are executed.

Requirements and Installation

Install docker by following the official setup instructions.

The test system is supposed to run as a docker container, but there are still some requirements on the host system. Run the following command to install the required packages.

apt-get update && apt-get install -y git usbutils

Start the Testsystem

If you just want to start the test system run the following command:

./bootstrap.sh

Or run the hello world equivalent:

./bootstrap.sh --hello-testsystem

If you already have an MSP430 or a PicoScope connected to your host, you can check the availability by running the startup routine.

./bootstrap.sh --run-startup

Docker

The test system runs in a docker container. We suggest you first build the docker image because this may take a while.

docker build -t attest:latest .

When you have the docker image ready, you can inspect the available commands of the test system.

docker run --rm -t attest:latest python3 main.py --help

The provided docker-compos.yml file is a ready-to-use setup for the test system. It combines the test system with a MySQL database for persistent storage. Adjust the environment variables and the volumes according to your system setup. The docker-compose-template.yml is used by the bootstrap script for automatically generating a compose file with the correct device configuration.

Documentation

For comprehensive documentation, please visit the project website.

Or you build the documentation locally by running the following command after you have the docker image ready. The documentation will be generated in the current working directory.

docker run --rm -t \
    -v "$(pwd)":/host attest:latest \
    bash -c "make html && cp -R _build/html /host/documentation"

Contributing

The recommended way for developing the test system is by using VSCode and the development container feature. The project contains a dev container configuration for VSCode to make contributions as easy as possible. To start the dev container, press CTRL+SHIFT+P, type Dev Containers: Open Folder in Container... and select the cloned test system directory. The dev container configures the environment, includes all the required packages, and contains some useful VS Code extensions for development. If test units are available, add the respective devices to the runArgs section in the .devcontainer/devcontainer.json file and restart the container by typing Dev Containers: Rebuild Container into the VSCode Command Palette.

Authors

Cite

@inproceedings{10.1145/3593663.3593678,
  title = {{ATTEST: Automated and Thorough Testing of Embedded Software in Teaching}},
  author = {Kissich, Meinhard and Weinbauer, Klaus and Baunach, Marcel},
  year = {2023},
  doi = {10.1145/3593663.3593678},
  booktitle = {Proceedings of the 5th European Conference on Software Engineering Education},
  pages = {199–203},
  numpages = {5}
}

License

This project is published under the MIT license.

About

A modular and flexible embedded system test framework with dedicated hardware for test execution specifically designed for use in university courses.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages