attest-testsystem
A modular and flexible embedded system test framework with dedicated hardware for test execution specifically designed for use in university courses.
Science Score: 57.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.7%) to scientific vocabulary
Keywords
Repository
A modular and flexible embedded system test framework with dedicated hardware for test execution specifically designed for use in university courses.
Basic Info
Statistics
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
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.
Owner
- Name: EAS-ATTEST
- Login: EAS-ATTEST
- Kind: organization
- Repositories: 1
- Profile: https://github.com/EAS-ATTEST
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite it using the metadata from this file."
authors:
- given-names: "Meinhard"
family-names: "Kissich"
orcid: "https://orcid.org/0000-0003-4810-8312"
- given-names: "Klaus"
family-names: "Weinbauer"
orcid: "https://orcid.org/0000-0002-3349-9157"
- given-names: "Marcel"
family-names: "Baunach"
orcid: "https://orcid.org/0000-0002-3716-2682"
title: "ATTEST: Automated and Thorough Testing of Embedded Software in Teaching"
doi: "10.1145/3593663.3593678"
preferred-citation:
type: conference-paper
authors:
- given-names: "Meinhard"
family-names: "Kissich"
orcid: "https://orcid.org/0000-0003-4810-8312"
- given-names: "Klaus"
family-names: "Weinbauer"
orcid: "https://orcid.org/0000-0002-3349-9157"
- given-names: "Marcel"
family-names: "Baunach"
orcid: "https://orcid.org/0000-0002-3716-2682"
doi: "10.1145/3593663.3593678"
title: "ATTEST: Automated and Thorough Testing of Embedded Software in Teaching"
year: 2023
GitHub Events
Total
- Push event: 2
Last Year
- Push event: 2
Dependencies
- attest latest
- mysql latest
- actions/checkout v3 composite
- actions/setup-python v4 composite
- PicoSDK *
- SQLAlchemy ==1.4.48
- black *
- gitpython *
- matplotlib *
- numpy *
- pandas *
- pyserial *
- pytest *
- pytest-cov *
- sphinx *
- sphinx-rtd-theme *
- tqdm *