Master’s thesis: Virtual testing for Industrial IO modules

Writing my master’s thesis was, without a doubt, one of the biggest challenges of my academic career. Thankfully, I effectively combined my professional work with my thesis project, ensuring my efforts were practical and academically relevant. This approach allowed me to work on something genuinely useful while simultaneously advancing my master's thesis. As a result, I had the time to focus on various details and develop a fully functional product rather than just a proof-of-concept that might never be used.
The goal of my diploma thesis was to develop a Virtual Testing Framework that enables developers to test new modules without relying on physical hardware. This solution is designed to significantly enhance the overall efficiency of the development process while reducing the resources required for testing. Besides that, the thesis offers a comprehensive analysis of the framework's benefits for developers, testers, and project managers.
Success: The product of this thesis proved to be highly beneficial and continues to be utilized and improved by the company where I was employed during its development.
Content
The thesis addresses the following key topics:
- Theory of the Project management lifecycle
- Analyzing the current state of the development and testing processes
- Proposing solutions to mitigate existing inefficiencies
- Implementing the proposed solutions
- Demonstration of usage of the Virtual Testing Framework
- Evaluating the impact of the Virtual Testing Framework on project planning and resource allocation
Virtual Testing Framework
Architecture
The design and implementation of the Virtual Testing Framework are well described in the thesis. However, I would like to give you a general idea of the framework here and briefly explain its usefulness during its development.
The framework uses a client/server architecture and consists of three separate components:
- Virtual Testing Library (DLL)
- This component includes an Emulator that allows for the compilation and execution of the I/O module's technology code. The module can then be controlled through a predefined interface and a set of commands.
- Virtual Testing app (server)
- The testing application functions as a server that handles client requests. This design ensures that the emulation implementation is entirely independent of the client implementation. However, the client must implement the predefined API to control the module correctly.
- Testing client
- The testing client is any application that implements the module interface and, therefore, can use the Virtual Testing App.
As you can see in the picture below, the individual components are completely independent and can be developed separately as long as everyone respects the pre-defined interface.

Benefits
The project was positively received due to its numerous benefits for all parties involved.
Thanks to this framework, developers can easily test their newly implemented code without assembling a physical testing rack. Additionally, the virtual testing can seamlessly integrate into the automated CI/CD pipeline, enabling regression testing after any code changes. This approach allows early bug detection, reducing the risk of unexpected module behavior.
At the same time, project managers and stakeholders, who are concerned with project timelines and budgets, often worry about the unpredictability of the testing process. Late-phase bug detection can lead to significant project delays. This risk is mitigated by increasing the testing frequency by introducing virtual testing in the CI/CD pipeline.
In conclusion, virtual testing does not replace testing on physical hardware. However, it is a valuable tool for developers to verify their code's behavior even when physical hardware is unavailable. That leads to increasing the frequency and accessibility of testing and, therefore, enabling early bug detection.
Conlusion
Overall, my master’s thesis was a significant academic and practical success. This achievement resulted in excellent reports from both my supervisor and my opponent, which are available at the link below, along with the full text of my thesis. Additionally, my university nominated my thesis for the international IT SPY 2024 competition, a nomination I was happy to accept.
Regardless of the outcome, I am grateful for the opportunities that arose from writing this thesis. It allowed me to learn from my experienced colleagues, significantly improve both my hard and soft skills, and prepare me for my future career.
Official link
The thesis, along with the opponent’s and supervisor’s reports, is available at the following link.