{"id":9413,"date":"2024-11-12T22:02:55","date_gmt":"2024-11-12T21:02:55","guid":{"rendered":"https:\/\/medtech-ingenieur.de\/?p=9413"},"modified":"2025-06-17T08:01:48","modified_gmt":"2025-06-17T06:01:48","slug":"unittest-vectorcast-in-der-medizintechnik","status":"publish","type":"post","link":"https:\/\/medtech-ingenieur.de\/en\/unittest-vectorcast-in-der-medizintechnik\/","title":{"rendered":"VectorCAST for efficient unit and integration tests in medical technology"},"content":{"rendered":"<p>In safety-critical software projects, software quality is paramount. Especially for Class C software, which must be certified according to strict standards such as IEC 62304 (medical technology), it is essential that every aspect of the software is thoroughly tested. Defects in such applications can not only result in economic losses but also pose real threats to human life.<\/p>\n<p>Unit tests and integration tests are essential in this context. They ensure that each functional unit of the software functions correctly (unit tests) and that all components function reliably together (integration tests). In practice, however, these tests often prove to be time-consuming and resource-intensive, especially when test coverage is to be maximized.<\/p>\n<p>The testing tool VectorCAST offers a solution to this challenge. It provides an environment for automating unit and integration tests and helps analyze test coverage to ensure that no critical parts of the code remain untested.<\/p>\n<p>This article presents the potential uses of VectorCAST for conducting unit and integration tests. The focus is on how to design such tests efficiently while maintaining a high level of test coverage and quality assurance. Finally, a practical example is presented that illustrates the practical application of test coverage and probe points.&nbsp;<\/p>\n<h2>What is VectorCAST?<\/h2>\n<p>VectorCAST is a testing platform specifically designed for automating unit and integration tests in safety-critical software projects. It helps development teams ensure the quality and reliability of their code by streamlining the entire testing process\u2014from test case creation to test coverage analysis.<\/p>\n<p>A key feature of VectorCAST is its ability to fully automate and repeat tests. The tool integrates seamlessly into existing development environments and allows both individual code units and entire modules to be tested at various test levels. This flexibility enables errors to be identified and corrected early, before they become more complex in later development phases.<\/p>\n<p>In addition, VectorCAST offers comprehensive test coverage analyses that provide a detailed overview of which parts of the code have been tested and which areas may still be untested. The probe point feature allows you to specifically monitor specific locations in the code to better understand runtime behavior and more precisely identify potential error sources.<\/p>\n<p>VectorCAST supports various programming languages such as C, C++ and Ada and is used in many safety-critical industries, including automotive, aerospace and medical technology.&nbsp;<\/p>\n<h2>Unit and integration tests with VectorCAST<\/h2>\n<p>VectorCAST supports both unit tests and integration tests to ensure that each functional unit and its interaction within the overall system functions flawlessly. While unit tests focus on testing individual functions or methods within a class or module, integration tests are used to verify the interaction of multiple modules and ensure that they function correctly in combination.<\/p>\n<p>In this example, we&#039;ll set up a test environment for the MotorStatusHandler class, which monitors the status of a stepper motor. The StepperMotorDriver class is used to receive motor data and process it further in the MotorStatusHandler. The goal of the unit tests is to ensure that the methods of these classes function as expected, especially with regard to motor data processing and error detection.<\/p>\n<p><figure id=\"attachment_9464\" aria-describedby=\"caption-attachment-9464\" style=\"width: 883px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-1.png\" alt=\"Zu testende Klasse (Header) in Vectorcast \" width=\"883\" height=\"860\" \/><figcaption id=\"caption-attachment-9464\" class=\"wp-caption-text\">Figure 1: Class to be tested (header)<\/figcaption><\/figure><figure id=\"attachment_9465\" aria-describedby=\"caption-attachment-9465\" style=\"width: 851px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-2.png\" alt=\"Zu testende Klasse (Implementation) in Vectorcast\" width=\"851\" height=\"839\" \/><figcaption id=\"caption-attachment-9465\" class=\"wp-caption-text\">Figure 2: Class to be tested (implementation)<\/figcaption><\/figure><\/p>\n<p>Let&#039;s start with the setup. In VectorCAST 2021, we create a new project and specify the compiler we want to use.<\/p>\n<figure id=\"attachment_9466\" aria-describedby=\"caption-attachment-9466\" style=\"width: 378px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-3.png\" alt=\"Anlegen eines Testprojekts in Vectorcast\" width=\"378\" height=\"153\" \/><figcaption id=\"caption-attachment-9466\" class=\"wp-caption-text\">Figure 3: Creating a test project<\/figcaption><\/figure>\n<p>Next, we create a test environment.<\/p>\n<figure id=\"attachment_9467\" aria-describedby=\"caption-attachment-9467\" style=\"width: 602px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-4.png\" alt=\"Erstellung einer Testumgebung in Vectorcast\" width=\"602\" height=\"456\" \/><figcaption id=\"caption-attachment-9467\" class=\"wp-caption-text\">Figure 4: Creating a test environment<\/figcaption><\/figure>\n<p>When creating the test environment in VectorCAST, the coverage types to be selected are &#039;Statement+MC\/DC&#039; (Statement Coverage and Modified Condition\/Decision Coverage). MC\/DC ensures that every condition in a decision and its combinations are tested at least once. We also select the white-box testing option because we know the internal structure of the methods and specifically test for different conditions.<\/p>\n<figure id=\"attachment_9469\" aria-describedby=\"caption-attachment-9469\" style=\"width: 764px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-5.png\" alt=\"Build Options bei dem Einrichten der Testumgebung in Vectorcast\" width=\"764\" height=\"645\" \/><figcaption id=\"caption-attachment-9469\" class=\"wp-caption-text\">Figure 5: Build Options when setting up the test environment<\/figcaption><\/figure>\n<p>Once the test environment is created, it provides a list of class methods that need to be tested.<\/p>\n<figure id=\"attachment_9470\" aria-describedby=\"caption-attachment-9470\" style=\"width: 606px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-6.png\" alt=\"Eine Testumgebung wird in Vectorcast aufgebaut\" width=\"606\" height=\"605\" \/><figcaption id=\"caption-attachment-9470\" class=\"wp-caption-text\">Figure 6: Test environment is set up<\/figcaption><\/figure>\n<p>To cover the ProcessStepperMotorData method with tests, we use automatic test case generation.<\/p>\n<p><figure id=\"attachment_9471\" aria-describedby=\"caption-attachment-9471\" style=\"width: 777px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-7.png\" alt=\"Zu testende Methode\" width=\"777\" height=\"555\" \/><figcaption id=\"caption-attachment-9471\" class=\"wp-caption-text\">Figure 7: Method to be tested<\/figcaption><\/figure><figure id=\"attachment_9472\" aria-describedby=\"caption-attachment-9472\" style=\"width: 601px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-8.png\" alt=\"Automatische Generierung von Testf\u00e4llen in Vectorcast\" width=\"601\" height=\"731\" \/><figcaption id=\"caption-attachment-9472\" class=\"wp-caption-text\">Figure 8: Automatic generation of test cases<\/figcaption><\/figure><\/p>\n<p>The result is three tests that were automatically generated to ensure method coverage. It&#039;s worth renaming these tests accordingly so the names convey their meaning.<\/p>\n<p>In the following figure you can see an automatically generated test case for the ProcessStepperMotorData() method, where we can configure the expected behavior and also change the return values in the \u201cStub Function\u201d section.<\/p>\n<figure id=\"attachment_9473\" aria-describedby=\"caption-attachment-9473\" style=\"width: 1243px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-9.png\" alt=\"Einrichten des Testfalls in Vectorcast\" width=\"1243\" height=\"730\" \/><figcaption id=\"caption-attachment-9473\" class=\"wp-caption-text\">Figure 9: Setting up the test case<\/figcaption><\/figure>\n<p>After the test is executed, a window opens with the test coverage for the tested method, in which the code sections and logical conditions covered by the test case are displayed in green.<\/p>\n<figure id=\"attachment_9474\" aria-describedby=\"caption-attachment-9474\" style=\"width: 1305px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-10-1.png\" alt=\"Testabdeckung nach der ersten Testdurchf\u00fchrung in Vectorcast\" width=\"1305\" height=\"876\" \/><figcaption id=\"caption-attachment-9474\" class=\"wp-caption-text\">Figure 10: Test coverage after the first test execution<\/figcaption><\/figure>\n<p>By performing the next test (Figure 11) we get additional coverage (to what we already have).<\/p>\n<figure id=\"attachment_9475\" aria-describedby=\"caption-attachment-9475\" style=\"width: 784px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-11.png\" alt=\"Der Test Path in Vectorcast\" width=\"784\" height=\"412\" \/><figcaption id=\"caption-attachment-9475\" class=\"wp-caption-text\">Figure 11: Test Path<\/figcaption><\/figure>\n<figure id=\"attachment_9476\" aria-describedby=\"caption-attachment-9476\" style=\"width: 1289px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-12.png\" alt=\"Zus\u00e4tzliche Testabdeckung\" width=\"1289\" height=\"739\" \/><figcaption id=\"caption-attachment-9476\" class=\"wp-caption-text\">Figure 12: Additional test coverage<\/figcaption><\/figure>\n<p>Then we set up the final test and run it until we get full test coverage for the method.<\/p>\n<figure id=\"attachment_9477\" aria-describedby=\"caption-attachment-9477\" style=\"width: 664px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-13.png\" alt=\"Volle Testabdeckung der Methode in Vectorcast\" width=\"664\" height=\"404\" \/><figcaption id=\"caption-attachment-9477\" class=\"wp-caption-text\">Figure 13: Full test coverage of the method<\/figcaption><\/figure>\n<h2>Using Probe Points in VectorCAST<\/h2>\n<p>A crucial aspect of testing safety-critical systems is the precise testing of all branches and conditions within the code. Especially when working with if-statements and dependencies on specific input values, certain paths may fail to execute without additional checks. This is precisely where probe points come into play. Let&#039;s look at an example from our test for the `ProcessFaultDriverStatus()` method (Figure 14). This code handles various engine fault states and outputs error messages when certain conditions are met.<\/p>\n<figure id=\"attachment_9478\" aria-describedby=\"caption-attachment-9478\" style=\"width: 676px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png\" alt=\"ProcessFaultDriverStatus Methode in Vectorcast\" width=\"676\" height=\"454\" \/><figcaption id=\"caption-attachment-9478\" class=\"wp-caption-text\">Figure 14: ProcessFaultDriverStatus method<\/figcaption><\/figure>\n<p>In the following test path generated by VectorCAST, we see that the first if statement evaluates to TRUE, but all subsequent conditions remain FALSE:<\/p>\n<figure id=\"attachment_9479\" aria-describedby=\"caption-attachment-9479\" style=\"width: 1075px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-15.png\" alt=\"Spezieller Test Path\" width=\"1075\" height=\"281\" \/><figcaption id=\"caption-attachment-9479\" class=\"wp-caption-text\">Figure 15: Special Test Path<\/figcaption><\/figure>\n<p>To ensure that this test path is completed without any of the error detection conditions being met, the value of the motorDriverData variable must be adjusted accordingly.<\/p>\n<p>By placing a probe point before the line if ((motorDriverData &amp; MotorDriverDataMask::eTmc249aOt) != 0U), we can change the value of motorDriverData so that the conditions in the if statements remain FALSE, correctly covering the test path. This way, we can ensure that the first if statement evaluates to TRUE and all subsequent ones evaluate to FALSE, without having to change the original code.<\/p>\n<p>The following figure shows the use of a probe point to ensure that the test case covers the targeted test path.<\/p>\n<figure id=\"attachment_9480\" aria-describedby=\"caption-attachment-9480\" style=\"width: 1430px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-16.png\" alt=\"Platzieren eines Probe Point in Vectorcast\" width=\"1430\" height=\"519\" \/><figcaption id=\"caption-attachment-9480\" class=\"wp-caption-text\">Figure 16: Placing a Probe Point<\/figcaption><\/figure>\n<p>Without the use of probe points, this test case could not be fully covered, since we have no direct influence on the value of motorDriverData at runtime.<\/p>\n<p>Probe points allow us to intervene in the testing process in a targeted manner, changing values or gathering additional information without altering the original code. The use of probe points contributes significantly to ensuring that safety-critical software is fully tested according to standards, thus guaranteeing high reliability.&nbsp;<\/p>\n<h2>Best practices when using VectorCAST<\/h2>\n<p>To make the testing process efficient and achieve maximum test coverage, the following best practices should be observed:<\/p>\n<ol>\n<li><strong>Early integration of tests<\/strong>Tests should be integrated early in the development cycle to detect errors early and avoid costly fixes in later phases.<\/li>\n<li><strong>Use of Probe Points<\/strong>Probe points help test hard-to-reach code paths by manipulating variables during test execution, ensuring that all conditions are checked.<\/li>\n<li><strong>Combination of coverage types<\/strong>The combination of Statement Coverage and MC\/DC (Modified Condition\/Decision Coverage) ensures seamless coverage, especially for safety-critical applications.<\/li>\n<li><strong>Using stubs and UTT (Unit Test Targets)<\/strong>Stubs simulate external dependencies to focus on the functional unit. It&#039;s important to choose between stubs and real implementations (UTT) depending on your needs. Stubs are used to simulate external dependencies, while UTT is used to test the real code. Stubs are recommended for external libraries, while UTT is ideal when functionality needs to be verified in the real-world environment.<\/li>\n<li><strong>Regular maintenance of test environments<\/strong>Test cases and environments should be updated regularly to ensure that they always reflect the current state of development.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<h2>Conclusion<\/h2>\n<p>VectorCAST is a versatile and powerful tool for performing unit and integration tests in safety-critical applications such as medical technology. It offers extensive functionality to model complex test scenarios and meet test coverage requirements. Through the use of probe points, the flexible use of stubs or unit test targets, and comprehensive support for various coverage types such as MC\/DC or statement coverage, even complex and safety-critical systems can be tested efficiently.<\/p>","protected":false},"excerpt":{"rendered":"<p>In sicherheitskritischen Softwareprojekten steht die Qualit\u00e4t der Software an erster Stelle. Besonders bei Klasse-C-Software, die nach strengen Normen wie IEC 62304 (Medizintechnik) zertifiziert werden muss, ist es essenziell, dass jeder Aspekt der Software gr\u00fcndlich getestet wird. Fehler k\u00f6nnen in solchen Anwendungen nicht nur wirtschaftliche Verluste, sondern auch reale Gefahren f\u00fcr Menschenleben bedeuten. Unit-Tests und Integrationstests [&hellip;]<\/p>\n","protected":false},"author":50,"featured_media":9478,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","tve_updated_post":"<div class=\"thrv_wrapper tve_wp_shortcode\"><div class=\"tve_shortcode_raw\" style=\"display: none\">___TVE_SHORTCODE_RAW__&lt;p&gt;In sicherheitskritischen Softwareprojekten steht die Qualit\u00e4t der Software an erster Stelle. Besonders bei Klasse-C-Software, die nach strengen Normen wie IEC 62304 (Medizintechnik) zertifiziert werden muss, ist es essenziell, dass jeder Aspekt der Software gr\u00fcndlich getestet wird. Fehler k\u00f6nnen in solchen Anwendungen nicht nur wirtschaftliche Verluste, sondern auch reale Gefahren f\u00fcr Menschenleben bedeuten.&lt;\/p&gt;\n&lt;p&gt;Unit-Tests und Integrationstests sind in diesem Zusammenhang unverzichtbar. Sie stellen sicher, dass jede Funktionseinheit der Software korrekt arbeitet (Unit-Tests) und dass alle Komponenten im Zusammenspiel zuverl\u00e4ssig funktionieren (Integrationstests). In der Praxis erweisen sich diese Tests jedoch oft als zeit- und ressourcenaufwendig, besonders wenn die Testabdeckung maximiert werden soll.&lt;\/p&gt;\n&lt;p&gt;Ein L\u00f6sungsansatz f\u00fcr diese Herausforderung bietet das Testwerkzeug VectorCAST. Es bietet eine Umgebung zur Automatisierung von Unit- und Integrationstests und hilft dabei, die Testabdeckung zu analysieren und sicherzustellen, dass keine kritischen Teile des Codes ungetestet bleiben.&lt;\/p&gt;\n&lt;p&gt;In diesem Beitrag werden die Einsatzm\u00f6glichkeiten von VectorCAST f\u00fcr die Durchf\u00fchrung von Unit- und Integrationstests vorgestellt. Der Fokus liegt darauf, wie solche Tests effizient gestaltet und gleichzeitig die Testabdeckung und Qualit\u00e4tssicherung auf einem hohen Niveau gehalten werden k\u00f6nnen. Abschlie\u00dfend wird ein praktisches Beispiel gezeigt, das die Anwendung von Testabdeckung und Probe Points in der Praxis verdeutlicht.&lt;br \/&gt;\n&amp;nbsp;&lt;\/p&gt;\n&lt;h2&gt;Was ist VectorCAST?&lt;\/h2&gt;\n&lt;p&gt;VectorCAST ist eine Testplattform, die speziell f\u00fcr die Automatisierung von Unit- und Integrationstests in sicherheitskritischen Softwareprojekten entwickelt wurde. Es unterst\u00fctzt Entwicklerteams dabei, die Qualit\u00e4t und Zuverl\u00e4ssigkeit ihres Codes zu gew\u00e4hrleisten, indem es den gesamten Testprozess \u2013 von der Testfallerstellung bis hin zur Analyse der Testabdeckung \u2013 effizienter gestaltet.&lt;\/p&gt;\n&lt;p&gt;Ein zentrales Merkmal von VectorCAST ist die F\u00e4higkeit, Tests vollst\u00e4ndig zu automatisieren und wiederholbar zu machen. Das Werkzeug integriert sich nahtlos in bestehende Entwicklungsumgebungen und erlaubt es, sowohl einzelne Code-Einheiten als auch ganze Module in verschiedenen Teststufen zu \u00fcberpr\u00fcfen. Diese Flexibilit\u00e4t erm\u00f6glicht es, Fehler fr\u00fchzeitig zu erkennen und zu beheben, bevor sie in sp\u00e4teren Entwicklungsphasen aufwendiger werden.&lt;\/p&gt;\n&lt;p&gt;Dar\u00fcber hinaus bietet VectorCAST umfangreiche Testabdeckungsanalysen, die einen detaillierten \u00dcberblick dar\u00fcber geben, welche Teile des Codes getestet wurden und welche Bereiche m\u00f6glicherweise noch ungetestet sind. Mit der Funktion der Probe Points k\u00f6nnen gezielt bestimmte Stellen im Code beobachtet werden, um das Laufzeitverhalten besser zu verstehen und m\u00f6gliche Fehlerquellen genauer zu identifizieren.&lt;\/p&gt;\n&lt;p&gt;VectorCAST unterst\u00fctzt verschiedene Programmiersprachen wie C, C++ und Ada und wird in vielen sicherheitskritischen Branchen, darunter die Automobilindustrie, Luftfahrt und Medizintechnik, eingesetzt.&lt;br \/&gt;\n&amp;nbsp;&lt;\/p&gt;\n&lt;h2&gt;Unit- und Integrationstests mit VectorCAST&lt;\/h2&gt;\n&lt;p&gt;VectorCAST unterst\u00fctzt sowohl Unit-Tests als auch Integrationstests, um sicherzustellen, dass jede Funktionseinheit und deren Zusammenspiel im Gesamtsystem fehlerfrei funktioniert. W\u00e4hrend Unit-Tests sich auf das Testen einzelner Funktionen oder Methoden innerhalb einer Klasse oder eines Moduls konzentrieren, dienen Integrationstests dazu, das Zusammenspiel mehrerer Module zu \u00fcberpr\u00fcfen und sicherzustellen, dass sie in Kombination korrekt funktionieren.&lt;\/p&gt;\n&lt;p&gt;In diesem Beispiel richten wir eine Testumgebung f\u00fcr die Klasse MotorStatusHandler ein, die den Status eines Schrittmotors \u00fcberwacht. Dazu wird die Klasse StepperMotorDriver verwendet, um Motordaten zu empfangen und diese im MotorStatusHandler weiterzuverarbeiten. Ziel der Unit-Tests ist es, sicherzustellen, dass die Methoden dieser Klassen erwartungsgem\u00e4\u00df funktionieren, besonders in Bezug auf die Verarbeitung von Motordaten und die Fehlererkennung.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9464\" align=\"aligncenter\" width=\"883\"]&lt;img class=\"wp-image-9464 size-full\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-1.png\" alt=\"Zu testende Klasse (Header) in Vectorcast \" width=\"883\" height=\"860\" \/&gt; Abbildung 1: Zu testende Klasse (Header)[\/caption]&lt;br \/&gt;\n[caption id=\"attachment_9465\" align=\"aligncenter\" width=\"851\"]&lt;img class=\"size-full wp-image-9465\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-2.png\" alt=\"Zu testende Klasse (Implementation) in Vectorcast\" width=\"851\" height=\"839\" \/&gt; Abbildung 2: Zu testende Klasse (Implementation)[\/caption]&lt;\/p&gt;\n&lt;p&gt;Fangen wir mit dem Setup an. In VectorCAST 2021 erstellen wir ein neues Projekt und geben den Compiler an, den wir verwenden m\u00f6chten.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9466\" align=\"aligncenter\" width=\"378\"]&lt;img class=\"size-full wp-image-9466\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-3.png\" alt=\"Anlegen eines Testprojekts in Vectorcast\" width=\"378\" height=\"153\" \/&gt; Abbildung 3: Anlegen eines Testprojekts[\/caption]&lt;\/p&gt;\n&lt;p&gt;Als n\u00e4chstes erstellen wir eine Testumgebung.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9467\" align=\"aligncenter\" width=\"602\"]&lt;img class=\"size-full wp-image-9467\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-4.png\" alt=\"Erstellung einer Testumgebung in Vectorcast\" width=\"602\" height=\"456\" \/&gt; Abbildung 4: Erstellung einer Testumgebung[\/caption]&lt;\/p&gt;\n&lt;p&gt;Bei der Erstellung der Testumgebung in VectorCAST ist Coverage-Typen als 'Statement+MC\/DC' (Statement Coverage und Modified Condition\/Decision Coverage) zu w\u00e4hlen. MC\/DC stellt sicher, dass jede Bedingung in einer Entscheidung und ihre Kombinationen mindestens einmal gepr\u00fcft werden. Wir w\u00e4hlen auch die Option White-Box-Testing aus, da wir den internen Aufbau der Methoden kennen und gezielt auf verschiedene Zust\u00e4nde testen.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9469\" align=\"aligncenter\" width=\"764\"]&lt;img class=\"size-full wp-image-9469\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-5.png\" alt=\"Build Options bei dem Einrichten der Testumgebung in Vectorcast\" width=\"764\" height=\"645\" \/&gt; Abbildung 5: Build Options bei dem Einrichten der Testumgebung[\/caption]&lt;\/p&gt;\n&lt;p&gt;Sobald die Testumgebung erstellt ist, stellt sie eine Liste der Klassenmethoden bereit, die getestet werden m\u00fcssen.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9470\" align=\"aligncenter\" width=\"606\"]&lt;img class=\"size-full wp-image-9470\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-6.png\" alt=\"Eine Testumgebung wird in Vectorcast aufgebaut\" width=\"606\" height=\"605\" \/&gt; Abbildung 6: Testumgebung wird aufgebaut[\/caption]&lt;\/p&gt;\n&lt;p&gt;Um ProcessStepperMotorData Methode mit Tests abzudecken, nutzen wir die automatische Generierung von Testf\u00e4llen.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9471\" align=\"aligncenter\" width=\"777\"]&lt;img class=\"size-full wp-image-9471\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-7.png\" alt=\"Zu testende Methode\" width=\"777\" height=\"555\" \/&gt; Abbildung 7: Zu testende Methode[\/caption]&lt;br \/&gt;\n[caption id=\"attachment_9472\" align=\"aligncenter\" width=\"601\"]&lt;img class=\"size-full wp-image-9472\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-8.png\" alt=\"Automatische Generierung von Testf\u00e4llen in Vectorcast\" width=\"601\" height=\"731\" \/&gt; Abbildung 8: Automatische Generierung von Testf\u00e4llen[\/caption]&lt;\/p&gt;\n&lt;p&gt;Das Ergebnis sind drei Tests, die automatisch so generiert wurden, dass sie zusammen eine Methodenabdeckung gew\u00e4hrleisten. Es lohnt sich, diese Tests entsprechend umzubenennen, damit die Namen ihre Bedeutung vermitteln.&lt;\/p&gt;\n&lt;p&gt;In der folgenden Abbildung sehen Sie einen automatisch generierten Testfall f\u00fcr die Methode ProcessStepperMotorData(), in dem wir das erwartete Verhalten konfigurieren und auch die R\u00fcckgabewerte im Abschnitt \u201eStub-Funktion\u201c \u00e4ndern k\u00f6nnen.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9473\" align=\"aligncenter\" width=\"1243\"]&lt;img class=\"size-full wp-image-9473\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-9.png\" alt=\"Einrichten des Testfalls in Vectorcast\" width=\"1243\" height=\"730\" \/&gt; Abbildung 9: Einrichten des Testfalls[\/caption]&lt;\/p&gt;\n&lt;p&gt;Nach der Ausf\u00fchrung des Tests \u00f6ffnet sich ein Fenster mit der Testabdeckung f\u00fcr die getestete Methode, in dem die Codeabschnitte und logischen Bedingungen, die der Testfall abdeckt, gr\u00fcn angezeigt werden.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9474\" align=\"aligncenter\" width=\"1305\"]&lt;img class=\"size-full wp-image-9474\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-10-1.png\" alt=\"Testabdeckung nach der ersten Testdurchf\u00fchrung in Vectorcast\" width=\"1305\" height=\"876\" \/&gt; Abbildung 10: Testabdeckung nach der ersten Testdurchf\u00fchrung[\/caption]&lt;\/p&gt;\n&lt;p&gt;Durch die Durchf\u00fchrung des n\u00e4chsten Tests (Abbildung 11) erhalten wir zus\u00e4tzliche Abdeckung (zu dem, was wir bereits haben).&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9475\" align=\"aligncenter\" width=\"784\"]&lt;img class=\"size-full wp-image-9475\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-11.png\" alt=\"Der Test Path in Vectorcast\" width=\"784\" height=\"412\" \/&gt; Abbildung 11: Test Path[\/caption]&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9476\" align=\"aligncenter\" width=\"1289\"]&lt;img class=\"size-full wp-image-9476\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-12.png\" alt=\"Zus\u00e4tzliche Testabdeckung\" width=\"1289\" height=\"739\" \/&gt; Abbildung 12: Zus\u00e4tzliche Testabdeckung[\/caption]&lt;\/p&gt;\n&lt;p&gt;Dann richten wir den letzten Test ein und f\u00fchren ihn aus, bis wir die vollst\u00e4ndige Testabdeckung f\u00fcr die Methode erhalten.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9477\" align=\"aligncenter\" width=\"664\"]&lt;img class=\"size-full wp-image-9477\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-13.png\" alt=\"Volle Testabdeckung der Methode in Vectorcast\" width=\"664\" height=\"404\" \/&gt; Abbildung 13: Volle Testabdeckung der Methode[\/caption]&lt;br \/&gt;\n&amp;nbsp;&lt;\/p&gt;\n&lt;h2&gt;Verwendung von Probe Points in VectorCAST&lt;\/h2&gt;\n&lt;p&gt;Ein wesentlicher Aspekt beim Testen sicherheitskritischer Systeme ist das pr\u00e4zise Testen aller Verzweigungen und Bedingungen im Code. Besonders bei der Arbeit mit if-Statements und Abh\u00e4ngigkeiten von spezifischen Eingabewerten kann es vorkommen, dass bestimmte Pfade ohne zus\u00e4tzliche Kontrolle nicht ausgef\u00fchrt werden k\u00f6nnen. Genau hier kommen Probe Points ins Spiel.&lt;br \/&gt;\nSchauen wir uns ein Beispiel aus unserem Test f\u00fcr die Methode ProcessFaultDriverStatus() an (Abbildung 14). Dieser Code verarbeitet verschiedene Fehlerzust\u00e4nde des Motors und gibt Fehlermeldungen aus, wenn bestimmte Bedingungen erf\u00fcllt sind.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9478\" align=\"aligncenter\" width=\"676\"]&lt;img class=\"size-full wp-image-9478\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png\" alt=\"ProcessFaultDriverStatus Methode in Vectorcast\" width=\"676\" height=\"454\" \/&gt; Abbildung 14: ProcessFaultDriverStatus Methode[\/caption]&lt;\/p&gt;\n&lt;p&gt;Im folgenden Test Path, der durch VectorCAST erzeugt wurde, sehen wir, dass das erste if-Statement als TRUE ausgewertet wird, aber alle nachfolgenden Bedingungen FALSE bleiben:&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9479\" align=\"aligncenter\" width=\"1075\"]&lt;img class=\"size-full wp-image-9479\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-15.png\" alt=\"Spezieller Test Path\" width=\"1075\" height=\"281\" \/&gt; Abbildung 15: Spezieller Test Path[\/caption]&lt;\/p&gt;\n&lt;p&gt;Um sicherzustellen, dass dieser Testpfad durchlaufen wird, ohne dass eine der Bedingungen f\u00fcr die Fehlererkennung erf\u00fcllt wird, muss der Wert der Variablen motorDriverData entsprechend angepasst werden.&lt;\/p&gt;\n&lt;p&gt;Durch das Platzieren eines Probe Points vor der Zeile if ((motorDriverData &amp;amp; MotorDriverDataMask::eTmc249aOt) != 0U), k\u00f6nnen wir den Wert von motorDriverData so \u00e4ndern, dass die Bedingungen in den if-Anweisungen FALSE bleiben, was den Testpfad korrekt abdeckt. Auf diese Weise k\u00f6nnen wir sicherstellen, dass das erste if-Statement als TRUE und alle nachfolgenden als FALSE ausgewertet werden, ohne den urspr\u00fcnglichen Code ver\u00e4ndern zu m\u00fcssen.&lt;\/p&gt;\n&lt;p&gt;Die folgende Abbildung zeigt die Verwendung eines Probe Point, damit der Testfall den gezielten Testpfad abdeckt.&lt;\/p&gt;\n&lt;p&gt;[caption id=\"attachment_9480\" align=\"aligncenter\" width=\"1430\"]&lt;img class=\"size-full wp-image-9480\" src=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-16.png\" alt=\"Platzieren eines Probe Point in Vectorcast\" width=\"1430\" height=\"519\" \/&gt; Abbildung 16: Platzieren eines Probe Point[\/caption]&lt;\/p&gt;\n&lt;p&gt;Ohne die Verwendung von Probe Points k\u00f6nnte dieser Testfall nicht vollst\u00e4ndig abgedeckt werden, da wir keinen direkten Einfluss auf den Wert von motorDriverData in der Laufzeit haben.&lt;\/p&gt;\n&lt;p&gt;Probe Points erlauben es uns, gezielt in den Testprozess einzugreifen und Werte zu ver\u00e4ndern oder zus\u00e4tzliche Informationen zu sammeln, ohne den urspr\u00fcnglichen Code zu ver\u00e4ndern. Die Nutzung von Probe Points tr\u00e4gt erheblich dazu bei, dass sicherheitskritische Software gem\u00e4\u00df den Normen vollst\u00e4ndig getestet wird und somit eine hohe Zuverl\u00e4ssigkeit garantiert ist.&lt;br \/&gt;\n&amp;nbsp;&lt;\/p&gt;\n&lt;h2&gt;Best Practices beim Einsatz von VectorCAST&lt;\/h2&gt;\n&lt;p&gt;Um den Testprozess effizient zu gestalten und maximale Testabdeckung zu erreichen, sollten folgende Best Practices beachtet werden:&lt;\/p&gt;\n&lt;ol&gt;\n&lt;li&gt;&lt;strong&gt;Fr\u00fche Integration von Tests&lt;\/strong&gt;&lt;br \/&gt;\nTests sollten fr\u00fch im Entwicklungszyklus integriert werden, um Fehler fr\u00fchzeitig zu erkennen und teure Korrekturen in sp\u00e4teren Phasen zu vermeiden.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Verwendung von Probe Points&lt;\/strong&gt;&lt;br \/&gt;\nProbe Points helfen, schwer zug\u00e4ngliche Codepfade zu testen, indem sie Variablen w\u00e4hrend der Testausf\u00fchrung manipulieren und so sicherstellen, dass alle Bedingungen gepr\u00fcft werden.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Kombination von Coverage-Typen&lt;\/strong&gt;&lt;br \/&gt;\nDie Kombination aus Statement Coverage und MC\/DC (Modified Condition\/Decision Coverage) gew\u00e4hrleistet eine l\u00fcckenlose Abdeckung, insbesondere bei sicherheitskritischen Anwendungen.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Verwendung von Stubs und UTT (Unit Test Targets)&lt;\/strong&gt;&lt;br \/&gt;\nStubs simulieren externe Abh\u00e4ngigkeiten, um den Fokus auf die Funktionseinheit zu legen. Es ist wichtig, je nach Bedarf zwischen Stubs und echten Implementierungen (UTT) zu w\u00e4hlen. Stubs werden genutzt, um externe Abh\u00e4ngigkeiten zu simulieren, w\u00e4hrend UTT verwendet wird, um den echten Code zu testen. F\u00fcr externe Bibliotheken empfiehlt es sich Stubs zu verwenden, w\u00e4hrend UTT ideal ist, wenn die Funktionalit\u00e4t in der tats\u00e4chlichen Umgebung \u00fcberpr\u00fcft werden muss.&lt;\/li&gt;\n&lt;li&gt;&lt;strong&gt;Regelm\u00e4\u00dfige Wartung von Testumgebungen&lt;\/strong&gt;&lt;br \/&gt;\nTestf\u00e4lle und -umgebungen sollten regelm\u00e4\u00dfig aktualisiert werden, um sicherzustellen, dass sie stets den aktuellen Stand der Entwicklung widerspiegeln.&lt;\/li&gt;\n&lt;\/ol&gt;\n&lt;p&gt;&amp;nbsp;&lt;\/p&gt;\n&lt;h2&gt;Fazit&lt;\/h2&gt;\n&lt;p&gt;VectorCAST ist ein vielseitiges und leistungsstarkes Werkzeug zur Durchf\u00fchrung von Unit- und Integrationstests in sicherheitskritischen Anwendungen wie zum Beispiel in der Medizintechnik. Es bietet umfangreiche Funktionen, um komplexe Testszenarien abzubilden und die Anforderungen an Testabdeckung zu erf\u00fcllen.&lt;br \/&gt;\nDurch den Einsatz von Probe Points, die flexible Nutzung von Stubs oder Unit Test Targets sowie die umfassende Unterst\u00fctzung f\u00fcr verschiedene Coverage-Typen wie MC\/DC oder Statement Coverage, k\u00f6nnen selbst komplexe und sicherheitskritische Systeme effizient getestet werden.&lt;\/p&gt;\n__TVE_SHORTCODE_RAW___<\/div><\/div>","tve_custom_css":"@media (min-width: 300px){.tcb-post-list[data-css=\"tve-u-18d31773283\"] .post-wrapper.thrv_wrapper { width: calc(33.3333% - 13.3333px); }.tcb-post-list[data-css=\"tve-u-18d31773283\"] .post-wrapper.thrv_wrapper:nth-child(n+4) { margin-top: 20px !important; }.tcb-post-list[data-css=\"tve-u-18d31773283\"] .post-wrapper.thrv_wrapper:not(:nth-child(n+4)) { margin-top: 0px !important; }.tcb-post-list[data-css=\"tve-u-18d31773283\"] .post-wrapper.thrv_wrapper:not(:nth-child(3n)) { margin-right: 20px !important; }.tcb-post-list[data-css=\"tve-u-18d31773283\"] .post-wrapper.thrv_wrapper:nth-child(3n) { margin-right: 0px !important; }}","tve_user_custom_css":"","tve_globals":{"e":"1","font_cls":[]},"tcb2_ready":1,"tcb_editor_enabled":1,"tve_landing_page":"","_tve_header":"","_tve_footer":""},"categories":[2,6,468,8],"tags":[764,250,664,762,763],"class_list":["post-9413","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-allgemein","category-software","category-testen","category-tools","tag-integrationstest","tag-softwaretest","tag-unittest","tag-vector","tag-vectorcast","post-wrapper","thrv_wrapper"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.0 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik - MEDtech Ingenieur GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/medtech-ingenieur.de\/en\/unittest-vectorcast-in-der-medizintechnik\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik - MEDtech Ingenieur GmbH\" \/>\n<meta property=\"og:description\" content=\"In sicherheitskritischen Softwareprojekten steht die Qualit\u00e4t der Software an erster Stelle. Besonders bei Klasse-C-Software, die nach strengen Normen wie IEC 62304 (Medizintechnik) zertifiziert werden muss, ist es essenziell, dass jeder Aspekt der Software gr\u00fcndlich getestet wird. Fehler k\u00f6nnen in solchen Anwendungen nicht nur wirtschaftliche Verluste, sondern auch reale Gefahren f\u00fcr Menschenleben bedeuten. Unit-Tests und Integrationstests [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/medtech-ingenieur.de\/en\/unittest-vectorcast-in-der-medizintechnik\/\" \/>\n<meta property=\"og:site_name\" content=\"MEDtech Ingenieur GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/medtechIngenieur\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-12T21:02:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-06-17T06:01:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png\" \/>\n\t<meta property=\"og:image:width\" content=\"676\" \/>\n\t<meta property=\"og:image:height\" content=\"454\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Volodymyr Skoryk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:site\" content=\"@MedtechIng\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Volodymyr Skoryk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/\"},\"author\":{\"name\":\"Volodymyr Skoryk\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/17e64830aa76799dd48296f31359acda\"},\"headline\":\"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik\",\"datePublished\":\"2024-11-12T21:02:55+00:00\",\"dateModified\":\"2025-06-17T06:01:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/\"},\"wordCount\":1593,\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Abbildung-14.png\",\"keywords\":[\"Integrationstest\",\"Softwaretest\",\"unittest\",\"Vector\",\"VectorCAST\"],\"articleSection\":[\"Allgemein\",\"Software\",\"Testen\",\"Tools\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/\",\"name\":\"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik - MEDtech Ingenieur GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Abbildung-14.png\",\"datePublished\":\"2024-11-12T21:02:55+00:00\",\"dateModified\":\"2025-06-17T06:01:48+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#primaryimage\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Abbildung-14.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/11\\\/Abbildung-14.png\",\"width\":676,\"height\":454,\"caption\":\"Abbildung 14: ProcessFaultDriverStatus Methode\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/unittest-vectorcast-in-der-medizintechnik\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#website\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"name\":\"MEDtech Ingenieur GmbH\",\"description\":\"Ingenieursdienstleister f\u00fcr Medizintechnik\",\"publisher\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\"},\"alternateName\":\"MEDtech\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/medtech-ingenieur.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#organization\",\"name\":\"MEDtech Ingenieur\",\"alternateName\":\"MEDtech\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2024\\\/01\\\/logo-700x700-1.png\",\"width\":700,\"height\":700,\"caption\":\"MEDtech Ingenieur\"},\"image\":{\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/medtechIngenieur\",\"https:\\\/\\\/x.com\\\/MedtechIng\",\"https:\\\/\\\/www.instagram.com\\\/medtech.ingenieure\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/37871229\\\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/#\\\/schema\\\/person\\\/17e64830aa76799dd48296f31359acda\",\"name\":\"Volodymyr Skoryk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Med_Mit-059-scaled-96x96.jpg\",\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Med_Mit-059-scaled-96x96.jpg\",\"contentUrl\":\"https:\\\/\\\/medtech-ingenieur.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Med_Mit-059-scaled-96x96.jpg\",\"caption\":\"Volodymyr Skoryk\"},\"url\":\"https:\\\/\\\/medtech-ingenieur.de\\\/en\\\/author\\\/volodymyr-skoryk\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"VectorCAST for efficient unit and integration testing in medical technology - MEDtech Ingenieur GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/medtech-ingenieur.de\/en\/unittest-vectorcast-in-der-medizintechnik\/","og_locale":"en_US","og_type":"article","og_title":"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik - MEDtech Ingenieur GmbH","og_description":"In sicherheitskritischen Softwareprojekten steht die Qualit\u00e4t der Software an erster Stelle. Besonders bei Klasse-C-Software, die nach strengen Normen wie IEC 62304 (Medizintechnik) zertifiziert werden muss, ist es essenziell, dass jeder Aspekt der Software gr\u00fcndlich getestet wird. Fehler k\u00f6nnen in solchen Anwendungen nicht nur wirtschaftliche Verluste, sondern auch reale Gefahren f\u00fcr Menschenleben bedeuten. Unit-Tests und Integrationstests [&hellip;]","og_url":"https:\/\/medtech-ingenieur.de\/en\/unittest-vectorcast-in-der-medizintechnik\/","og_site_name":"MEDtech Ingenieur GmbH","article_publisher":"https:\/\/www.facebook.com\/medtechIngenieur","article_published_time":"2024-11-12T21:02:55+00:00","article_modified_time":"2025-06-17T06:01:48+00:00","og_image":[{"width":676,"height":454,"url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png","type":"image\/png"}],"author":"Volodymyr Skoryk","twitter_card":"summary_large_image","twitter_creator":"@MedtechIng","twitter_site":"@MedtechIng","twitter_misc":{"Written by":"Volodymyr Skoryk","Est. reading time":"13 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#article","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/"},"author":{"name":"Volodymyr Skoryk","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/17e64830aa76799dd48296f31359acda"},"headline":"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik","datePublished":"2024-11-12T21:02:55+00:00","dateModified":"2025-06-17T06:01:48+00:00","mainEntityOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/"},"wordCount":1593,"publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png","keywords":["Integrationstest","Softwaretest","unittest","Vector","VectorCAST"],"articleSection":["Allgemein","Software","Testen","Tools"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/","url":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/","name":"VectorCAST for efficient unit and integration testing in medical technology - MEDtech Ingenieur GmbH","isPartOf":{"@id":"https:\/\/medtech-ingenieur.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#primaryimage"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#primaryimage"},"thumbnailUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png","datePublished":"2024-11-12T21:02:55+00:00","dateModified":"2025-06-17T06:01:48+00:00","breadcrumb":{"@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#primaryimage","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/11\/Abbildung-14.png","width":676,"height":454,"caption":"Abbildung 14: ProcessFaultDriverStatus Methode"},{"@type":"BreadcrumbList","@id":"https:\/\/medtech-ingenieur.de\/unittest-vectorcast-in-der-medizintechnik\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/medtech-ingenieur.de\/"},{"@type":"ListItem","position":2,"name":"VectorCAST f\u00fcr effiziente Unit- und Integrationstests in der Medizintechnik"}]},{"@type":"WebSite","@id":"https:\/\/medtech-ingenieur.de\/#website","url":"https:\/\/medtech-ingenieur.de\/","name":"MEDtech Ingenieur GmbH","description":"Engineering service provider for medical technology","publisher":{"@id":"https:\/\/medtech-ingenieur.de\/#organization"},"alternateName":"MEDtech","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/medtech-ingenieur.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/medtech-ingenieur.de\/#organization","name":"MEDtech Engineer","alternateName":"MEDtech","url":"https:\/\/medtech-ingenieur.de\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2024\/01\/logo-700x700-1.png","width":700,"height":700,"caption":"MEDtech Ingenieur"},"image":{"@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/medtechIngenieur","https:\/\/x.com\/MedtechIng","https:\/\/www.instagram.com\/medtech.ingenieure\/","https:\/\/www.linkedin.com\/company\/37871229\/"]},{"@type":"Person","@id":"https:\/\/medtech-ingenieur.de\/#\/schema\/person\/17e64830aa76799dd48296f31359acda","name":"Volodymyr Skoryk","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2025\/04\/Med_Mit-059-scaled-96x96.jpg","url":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2025\/04\/Med_Mit-059-scaled-96x96.jpg","contentUrl":"https:\/\/medtech-ingenieur.de\/wp-content\/uploads\/2025\/04\/Med_Mit-059-scaled-96x96.jpg","caption":"Volodymyr Skoryk"},"url":"https:\/\/medtech-ingenieur.de\/en\/author\/volodymyr-skoryk\/"}]}},"_links":{"self":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/9413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/users\/50"}],"replies":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/comments?post=9413"}],"version-history":[{"count":24,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/9413\/revisions"}],"predecessor-version":[{"id":10173,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/posts\/9413\/revisions\/10173"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media\/9478"}],"wp:attachment":[{"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/media?parent=9413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/categories?post=9413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/medtech-ingenieur.de\/en\/wp-json\/wp\/v2\/tags?post=9413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}