Internship - Component testing - C, Docker & Automation
Kortrijk, BE
One of the key features of CTRL is that large desks (up to 16 monitors) can show different video streams, applications and remote desktops while being controlled from a single keyboard, mouse, and optionally a multi-touch touch screen. Although the video rendering is distributed over multiple decoders (nodes), the input events are processed and distributed by a single node of the desk. The distribution of those events between different nodes needs to be validated for all types of events and gestures.
The component responsible for this distribution is called Input Manager. It is written in C, packaged into a Debian package and runs as a systemd service on all nodes.
Request:
Validate the Input Manager. Writing tests, executing them from within a Docker container, automating validation, and generating reports about success rate and coverage.
Technologies: C, Docker, Debian Linux, test frameworks, Jenkins, git, VS Code, Copilot
Key Responsibilities:
- Determine the validation priorities: Analyze the Input Manager to identify the best approach for validation. This includes understanding the program's functionality and identifying key areas for testing. Create a priority list.
- Validate: Write and implement unit tests for the Input Manager. These tests will be performed inside a Docker container.
- Automate: Integrate the validation into our current release process to avoid regressions in future releases.
- Document: Prepare detailed reports on the validation process, including test cases, results, and recommendations for improvements.
- Report: Make sure the automated pipeline generates reports about the success rate and the coverage of the tests.
- Iterate: Start with a basic pipeline of the steps above; use the generated report to ensure maximum coverage.
Qualifications:
- Enrolled in a Bachelor's or master's program in Computer Science, Informatics, Electronics, or a related field.
- Strong knowledge of C programming language.
- Experience with writing and executing unit tests.
- Familiarity with Docker and containerized environments.
- Excellent analytical and problem-solving skills.
- Effective communication and teamwork abilities.