{"id":511347,"date":"2020-06-11T09:00:00","date_gmt":"2020-06-11T07:00:00","guid":{"rendered":"https:\/\/www.johner-institut.de\/blog\/?p=511347"},"modified":"2024-05-31T15:23:59","modified_gmt":"2024-05-31T13:23:59","slug":"code-coverage","status":"publish","type":"post","link":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/","title":{"rendered":"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen"},"content":{"rendered":"\n<p><strong>Code Coverage<\/strong> dient den meisten Software-Entwicklern als die wichtigste Metrik f\u00fcr die Vollst\u00e4ndigkeit von Software-Tests.<\/p>\n\n\n\n<div class=\"blog-column\">Dieser Artikel verschafft Ihnen einen \u00dcberblick \u00fcber die Abdeckungsgrade und gibt Tipps zum deren Bestimmung.<\/div>\n\n\n\n<div class=\"blog-column\">\n<table class=\"table-blog\" style=\"width: 110.862%; height: 120px;\">\n<tbody>\n<tr style=\"height: 24px;\">\n<th class=\"table-blog-header\" style=\"height: 24px; width: 100%;\"><i class=\"fa fa-play\" style=\"color: red;\" aria-hidden=\"true\"> &nbsp;<\/i>Inhalts\u00fcbersicht<\/th>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 100%;\"><a href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#coverage\">1. Varianten des Code Coverage \u00bb<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 100%;\"><a href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#regularien\">2. Regulatorische Anforderungen \u00bb<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 100%;\"><a href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#bewertung\">3. Bewertung der Code Coverage \u00bb<\/a><\/td>\n<\/tr>\n<tr style=\"height: 24px;\">\n<td style=\"height: 24px; width: 100%;\"><a href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#tipps\">4. Bestimmen der Code Coverage \u00bb<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n\n\n\n<div class=\"blog-clear\">\u00a0<\/div>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\" id=\"coverage\">1. Was Code Coverage ist<\/h2>\n\n\n\n<p>Code Coverage \u00fcbersetzt man meist mit <strong>Abdeckungsgrad<\/strong>, <strong>Testabdeckung<\/strong> oder <strong>Code-Abdeckung<\/strong>. Diese Ma\u00dfzahl gibt das Verh\u00e4ltnis von tats\u00e4chlich durchgef\u00fchrten Tests und den theoretisch m\u00f6glichen Tests an.<\/p>\n\n\n\n<p>Abh\u00e4ngig davon, wie man die Anzahl theoretisch m\u00f6glicher Tests bestimmt, unterscheidet man zwischen Statement Coverage, Branch Coverage, Decision Coverage und weiteren Abdeckungsgraden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">a) Statement Coverage \u2013 Anweisungsabdeckung<\/h3>\n\n\n\n<p>Die <strong>Anweisungsabdeckung<\/strong> (englisch: Statement Coverage) entspricht den beim Test durchlaufenen Anweisungen im Verh\u00e4ltnis zu allen Anweisungen. Beispiele f\u00fcr Anweisungen w\u00e4ren Wertezuweisungen bei Variablen, Fallunterscheidungen, Schleifen und Methodenaufrufe. Bei vielen Programmiersprachen ist es gute Praxis, pro Code-Zeile (nur) eine Anweisung zu schreiben.<\/p>\n\n\n\n<p><strong>Beispiel<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image alignnone\"><a href=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png\" data-rel=\"lightbox-image-0\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" width=\"806\" height=\"482\" src=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png\" alt=\"Code Coverage: Ein Beispiel\" class=\"wp-image-512594\" srcset=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png 806w, https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54-300x179.png 300w, https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54-768x459.png 768w, https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54-150x90.png 150w\" sizes=\"auto, (max-width: 806px) 100vw, 806px\" \/><\/a><figcaption>Abb. 1: Farbliche Markierung der beim Testen durchlaufenen Code-Abschnitte<\/figcaption><\/figure>\n\n\n\n<p>Ruft man in diesem Beispiel die Methode einmal mit den Werten (23, 80) und einmal mit den Werten (160, 80) auf, so werden nicht alle Zeilen durchlaufen: Rot steht f\u00fcr nicht durchlaufene Zeilen und gr\u00fcn f\u00fcr durchlaufene Zeilen. \u00dcber die gelben sprechen wir gleich.<\/p>\n\n\n\n<p>Die Anweisungsabdeckung z\u00e4hlt zu den schwachen Abdeckungsgraden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">b) Branch Coverage \u2013 Zweigabdeckung<\/h3>\n\n\n\n<p>Ein st\u00e4rkerer Abdeckungsgrad ist die <strong>Zweigabdeckung.<\/strong> Sie entspricht dem Verh\u00e4ltnis der beim Test durchlaufenen Zweige (auch Kanten genannt). Was ein Zweig bzw. eine Kante ist, l\u00e4sst sich am Beispiel eines Programmgrafs (passend zum obigen Code-Ausschnitt) verstehen.<\/p>\n\n\n\n<figure class=\"wp-block-image alignnone\"><a href=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/10\/program-graf.png\" data-rel=\"lightbox-image-1\" data-rl_title=\"\" data-rl_caption=\"\" title=\"\"><img loading=\"lazy\" decoding=\"async\" width=\"753\" height=\"153\" src=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/10\/program-graf.png\" alt=\"Programmgraf zum Bestimmen des Code Coverage\" class=\"wp-image-511376\" srcset=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/10\/program-graf.png 753w, https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/10\/program-graf-300x61.png 300w, https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/10\/program-graf-150x30.png 150w\" sizes=\"auto, (max-width: 753px) 100vw, 753px\" \/><\/a><figcaption>Abb. 2: Programmgraf des in Abb. 1 gezeigten Codes<\/figcaption><\/figure>\n\n\n\n<p>Wenn die in Abb. 1 gezeigte Funktion mit den Werten (23, 80), (160, 80), (180, 40) und (160, 60) aufgerufen wird, werden zwar alle Anweisungen durchlaufen, aber nicht alle Zweige. In unserem Beispiel fehlt der Zweig, der die Anweisungen 11 und 15 verbindet (Abb. 2).<\/p>\n\n\n\n<p>Eine 100%ige Zweigabdeckung bedingt eine 100%ige Anweisungsabdeckung. Das Umgekehrte gilt nicht. Damit ist die Zweigabdeckung das st\u00e4rkere Ma\u00df und nicht die Anweisungsabdeckung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">c) Condition Coverage \u2013 Bedingungsabdeckung<\/h3>\n\n\n\n<p>Viele Bedingungen (if-Bedingungen, Schleifenk\u00f6pfe) bestehen aus Teilbedingungen. In unserem Beispiel enth\u00e4lt die Bedingung in Zeile 6 insgesamt vier atomare Teilbedingungen.<\/p>\n\n\n\n<p>Die Zweigabdeckung unterscheidet nicht, aufgrund welcher Teilbedingungen eine Bedingung als wahr oder falsch ausgewertet wird. Dies erreicht die <strong>Bedingungsabdeckung<\/strong>. Man unterscheidet dabei zwischen der Einfach- und der Mehrfachbedingungsabdeckung.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Einfachbedingungsabdeckung<\/h4>\n\n\n\n<p>Die Einfachbedingungsabdeckung gibt den Anteil der atomaren Teilbedingungen an, die mindestens einmal den Wert wahr und mindestens einmal den Wert falsch angenommen haben.<\/p>\n\n\n\n<p>Eine 100%ige Einfachbedingungsabdeckung f\u00fchrt nicht zu 100%iger Zweigabdeckung, wie folgendes Beispiel zeigt:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Gesamtbedingung = (Teilbedingung_1 OR Teilbedingung_2)<\/pre>\n\n\n\n<p>Testf\u00e4lle<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Teilbedingung_1 =&nbsp;wahr, Teilbedingung_2 =&nbsp;falsch (nicht erf\u00fcllt)<\/li><li>Teilbedingung_1 =&nbsp;falsch, Teilbedingung_2 =&nbsp;wahr (erf\u00fcllt)<\/li><\/ul>\n\n\n\n<p>Obwohl jede der beiden Teilbedingungen einmal erf\u00fcllt und einmal nicht erf\u00fcllt war, wurde die Gesamtbedingung immer als \u201ewahr\u201c ausgewertet. Das hei\u00dft, der Test f\u00fchrte den \u201efalsch-Zweig\u201c nie aus.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Mehrfachbedingungsabdeckung<\/h4>\n\n\n\n<p>Bei der Mehrfachbedingungsabdeckung werden die Testf\u00e4lle so gew\u00e4hlt, dass alle Kombinationen dieser&nbsp;Bedingungen getestest werden. Bei vier atomaren Teilbedingungen (wie im obigen Beispiel) bedarf es somit mindestens 4<sup>2<\/sup> = 16 Testf\u00e4lle. F\u00fcr 5 Teilbedingungen w\u00e4ren es 32 Testf\u00e4lle, da der Anzahl 2<sup>n<\/sup> ist, wobei n die Anzahl der Teilbedingungen angibt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">d) Weitere Code-Coverage-Ma\u00dfe<\/h3>\n\n\n\n<p>Zu den weiteren&nbsp;Abdeckungsgraden z\u00e4hlen die Schleifenabdeckung und die&nbsp;Pfadabdeckung.<\/p>\n\n\n\n<div class=\"defbox\">\n    <div class=\"definition\">\n        <i class=\"fa fa-external-link\"><\/i> Weiterf\u00fchrende Informationen\n    <\/div>\n    <p>Bitte beachten Sie auch den <a href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/kombinatorische-testen-nicht-nur-bei-software\/\">Artikel zum kombinatorischen Testen<\/a>, der weitere &#8222;Coverage-Grade&#8220; einf\u00fchrt, die sich sogar f\u00fcr Blackbox-Tests eigenen.<\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"regularien\">2. Regulatorische Anforderungen an das Code Coverage<\/h2>\n\n\n\n<p>In vielen regulierten Branchen wie der Flugzeugindustrie oder der Medizintechnik gibt es normative Anforderungen. Sie finden diese am Beispiel der Medizintechnik hier vorgestellt.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">a) Europa<\/h3>\n\n\n\n<p>Immerhin kennt die <a href=\"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/\">IEC 62304<\/a> (Version 1.1) den Begriff Code Coverage. Die Norm fordert aber nicht, dass diese Metrik \u00fcberhaupt erhoben wird. Sie empfiehlt aber im nicht-normativen Teil, die Code Coverage zu erh\u00f6hen.<\/p>\n\n\n\n<p>Ein <a href=\"https:\/\/www.johner-institut.de\/blog\/qualitaetsmanagement-iso-13485\/interne-audits-interner-auditor\/\">Auditor<\/a> kann somit keine Nicht-Konformit\u00e4t bescheinigen, wenn Sie die Code Coverage nicht bestimmen. Er oder sie kann aber durchaus eine Begr\u00fcndung verlangen, weshalb man die Festlegung und die \u00dcberpr\u00fcfung der Akzeptanzkriterien f\u00fcr eine <a href=\"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/\">Software-Einheit<\/a> als ausreichend vollst\u00e4ndig betrachtet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">b) USA, FDA<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Die Forderungen<\/h4>\n\n\n\n<p>Die <a href=\"https:\/\/www.johner-institut.de\/blog\/category\/fda\/\">FDA<\/a> geht auf die Code Coverage im Guidance Document <em>General Principles of Software Validation<\/em> ein. Sie schreibt:<\/p>\n\n\n\n<p><cite>\u201eMeasures such as [&#8230;] testing coverage [&#8230;] are all used to develop an acceptable level of confidence before shipping the product.\u201c<\/cite><\/p>\n\n\n\n<p>Die FDA diskutiert die verschiedenen Abdeckungsgrade und stellt fest:<\/p>\n\n\n\n<p><cite>\u201eIt [Decision Coverage] is considered to be a minimum level of coverage for most software products, but decision coverage alone is insufficient for high-integrity applications.\u201c<\/cite><\/p>\n\n\n\n<p>Dabei versteht die FDA unter <strong>\u201eCoverage\u201c eine 100%ige Abdeckung<\/strong> \u2013 gleich f\u00fcr welchen Typ an Abdeckungsgrad.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Die Realit\u00e4t<\/h4>\n\n\n\n<p>Wir haben in unserer langj\u00e4hrigen Beratungspraxis keinen Medizinproduktehersteller kennengelernt, der Produkte in den USA zugelassen und eine 100%ige Code-Abdeckung erreicht hat. Wir haben sehr selten F\u00e4lle erlebt, in denen ein FDA Inspektor dies thematisierte.<\/p>\n\n\n\n<p>Wie Sie vorgehen k\u00f6nnen, um diesbez\u00fcglich Schwierigkeiten bei FDA-Inspektionen zu vermeiden, lesen Sie weiter unten.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"bewertung\">3. Kritische Bewertung der Code Coverage<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">a) Vorteile<\/h3>\n\n\n\n<p>Ein Hersteller kann ohne \u201eausreichendes\u201c Testen nicht vermuten, dass seine Software ausreichend fehlerfrei ist. Eine notwendige (aber nicht hinreichende) Voraussetzung f\u00fcr die Annahme, dass das Testen \u201eausreichend\u201c ist, besteht darin, dass der Code beim Testen \u00fcberhaupt (vollst\u00e4ndig) durchlaufen wird.<\/p>\n\n\n\n<p>Die Abdeckungsgrade sind eine (Dank Werkzeugen) einfach zu erhebende, quantitative Metrik f\u00fcr die Vollst\u00e4ndigkeit von Tests. Damit k\u00f6nnen Entwickler, F\u00fchrungskr\u00e4fte und Auditoren erkennen, welche Teile der Software intensiver getestet werden m\u00fcssen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">b) Nachteile<\/h3>\n\n\n\n<p>Beim Bestimmen der Code Coverage sollten Sie beachten:<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li><strong>Source Code notwendig<\/strong><br>Eine Voraussetzung stellt der Source Code dar. Bibliotheken und kompilierte Artefakte k\u00f6nnen zwar als Blackbox getestet werden, die Abdeckungsgrade lassen sich aber meist nicht bestimmen.<\/li><li><strong>Nicht vollst\u00e4ndig testbar<\/strong><br>Ebenso widersetzen sich Teile des Codes wie sehr hardwarenahe Anweisungen dem Testen und damit dem Bestimmen der Code Coverage.<\/li><li><strong>Kein Korrektheitsbeweis<\/strong><br>Selbst eine vollst\u00e4ndige Testabdeckung von 100 % Decision Coverage stellt keinen Korrektheitsbeweis der Software dar. Dazu m\u00fcssten alle m\u00f6glichen Inputwerte getestet werden, was kombinatorisch in fast allen F\u00e4llen unm\u00f6glich ist.<\/li><li><strong>Aufwand<\/strong><br>Das Aufsetzen der Werkzeuge zum Bestimmen der Code Coverage bedeutet einen (einmaligen) Aufwand. Das Schreiben des Tests ebenso.<\/li><li><strong>Timing-Verhalten<\/strong><br>Werkzeuge ver\u00e4ndern den Source Code z.B. dadurch, dass sie<em> Z\u00e4hlen<\/em> einf\u00fcgen. Diese Instrumentierung kann das Timing-Verhalten \u00e4ndern und dadurch ggf. Fehler maskieren, die ohne die Instrumentierung sichtbar w\u00e4ren.<\/li><li><strong>Werkzeugunterst\u00fctzung<\/strong><br>Die markt\u00fcblichen Werkzeuge erlauben es nicht, alle der o.g. Varianten der Testabdeckung zu bestimmen (was auch nicht immer notwendig ist).<\/li><\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tipps\">4. Tipps zum Bestimmen der Code Coverage<\/h2>\n\n\n\n<p>Eine Software-Entwicklung, die den Anspruch der Professionalit\u00e4t erhebt, wird auf das Bestimmen der Code Coverages nicht verzichten. Daher folgen einige Tipps.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">a) Integration im Entwicklungsprozess<\/h3>\n\n\n\n<p>Legen Sie in der entsprechenden Verfahrensanweisung, der Arbeitsanweisung oder im Software-Entwicklungsplan fest,&nbsp;<span class=\"s1\">welche Variante der Code Coverage zu welchem Grad erreicht werden muss<\/span>. Fordern Sie auch, dass die Unit-Tests parallel zum Code entwickelt werden und nicht erst am Ende der Software-Entwicklung.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">b) Umgang mit altem Code<\/h3>\n\n\n\n<p>Damit Sie sich mit altem Code nicht \u00fcbernehmen, k\u00f6nnen Sie fordern, dass (nur) jede neue und jede ge\u00e4nderte Methode zu testen und damit die Code Coverage zu bestimmen ist.<\/p>\n\n\n\n<p>Alternativ k\u00f6nnen Sie mit sehr niedrigen Zielwerten starten und diese im Lauf der Zeit langsam erh\u00f6hen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">c) Risikobasierter Ansatz<\/h3>\n\n\n\n<p>Wenn Sie mit weniger als 100 % arbeiten, dann bestimmen Sie die Abdeckungsgrade f\u00fcr verschiedene Komponenten unterschiedlich, z.B. abh\u00e4ngig von<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>der Sicherheitsklasse (d.h. dem maximalen Schaden, den ein Fehler verursachen w\u00fcrde),<\/li><li>der Bew\u00e4hrtheit der Komponente oder<\/li><li>der Komplexit\u00e4t der Komponente, die Sie mit dem McCabe-Ma\u00df quantifizieren.<\/li><\/ul>\n\n\n\n<p>Im letzteren Fall lie\u00dfe sich beispielsweise fordern, dass f\u00fcr alle Methoden mit einer zyklomatischen Komplexit\u00e4t (McCabe-Ma\u00df) von acht oder gr\u00f6\u00dfer die Zweigabdeckung 100 % betragen muss. Bei Methoden mit einer Komplexit\u00e4t von drei bis sieben muss eine Zweigabdeckung von \u00fcber 50 % erreicht werden.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">d) Refactoring<\/h3>\n\n\n\n<p>Eine h\u00e4ufig genannte Begr\u00fcndung f\u00fcr niedrige Coverage-Grade lautet, dass sich der Code \u00fcberhaupt nicht testen lie\u00dfe. Das ist ein starkes Indiz f\u00fcr eine schlechte Architektur, z.B. f\u00fcr einen fehlenden Hardware Abstraction Layer (HAL) oder f\u00fcr Komponenten, die nicht funktional gebildet sind. Nutzen Sie diese niedrigen Testabdeckungen als Indikator daf\u00fcr, wo ein Refactoring notwendig ist.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">e) Werkzeuge<\/h3>\n\n\n\n<p>Vergessen Sie nicht, das Code-Coverage-Werkzeug in Ihre Liste der zu validierenden Werkzeuge aufzunehmen. Das bedingt, dass Sie das Werkzeug einschlie\u00dflich der Konfigurationsdateien unter Versionskontrolle halten, ggf. auf allen Entwickler-Maschinen.<\/p>\n\n\n\n<p>Sie finden hier eine <a href=\"https:\/\/de.wikipedia.org\/wiki\/Testabdeckung#Tools_zur_Messung_der_Codeabdeckung\">Liste von Werkzeugen zum Bestimmen der Abdeckungsgrade<\/a>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">f) FDA-Inspektionen<\/h3>\n\n\n\n<p>Bereiten Sie sich argumentativ auf die Frage eines FDA-Inspektors vor, warum Sie eine Testabdeckung unter 100 % erreicht haben. Folgende Argumente k\u00f6nnen Ihnen dabei dienlich sein:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Eine Testabdeckung (z.B. eine Zweigabdeckung) von 100 % ist in der Regel nicht m\u00f6glich.<\/li><li>Sie sind der Empfehlung der FDA nach einem risikobasierten Ansatz gefolgt und haben kritische Methoden in der Tat mit dem geforderten Abdeckungsgrad getestet.<\/li><li>Sie flankieren Ihre analytische Qualit\u00e4tssicherung mit weiteren Ma\u00dfnahmen wie Code Review und statischer Code-Analyse.<\/li><li>An der steigenden Testabdeckung erkennt man, dass Sie kontinuierlich besser werden.<\/li><\/ul>\n\n\n\n<div class=\"defbox\">\n    <div class=\"definition\">\n        <i class=\"fa fa-external-link\"><\/i> Weiterf\u00fchrende Informationen\n    <\/div>\n    <p>Tipp: Nutzen Sie die Coverage-Grade auch dazu, um die Wahrscheinlichkeit von Software-Fehlern abzusch\u00e4tzen. Lesen Sie <a href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/fehlerwahrscheinlichkeit-bei-software\/\">dazu hier mehr<\/a>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Code Coverage dient den meisten Software-Entwicklern als die wichtigste Metrik f\u00fcr die Vollst\u00e4ndigkeit von Software-Tests. Dieser Artikel verschafft Ihnen einen \u00dcberblick \u00fcber die Abdeckungsgrade und gibt Tipps zum deren Bestimmung. &nbsp;Inhalts\u00fcbersicht 1. Varianten des Code Coverage \u00bb 2. Regulatorische Anforderungen \u00bb 3. Bewertung der Code Coverage \u00bb 4. Bestimmen der Code Coverage \u00bb \u00a0<\/p>\n","protected":false},"author":85,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":true,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[184],"tags":[364],"ppma_author":[1223],"class_list":["post-511347","post","type-post","status-publish","format-standard","hentry","category-iec-62304-medizinische-software","tag-software-testing","category-184","description-off"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen<\/title>\n<meta name=\"description\" content=\"Die Code Coverage ist eine Metrik, die angibt, wie vollst\u00e4ndig Software getestet wird. Was Sie als Medizinprodukte-Hersteller beachten sollten.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen\" \/>\n<meta property=\"og:description\" content=\"Die Code Coverage ist eine Metrik, die angibt, wie vollst\u00e4ndig Software getestet wird. Was Sie als Medizinprodukte-Hersteller beachten sollten.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/\" \/>\n<meta property=\"og:site_name\" content=\"Regulatorisches Wissen f\u00fcr Medizinprodukte\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/JohnerInstitut\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-06-11T07:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-31T13:23:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png\" \/>\n<meta name=\"author\" content=\"Urs M\u00fcller\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Urs M\u00fcller\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"7\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/\"},\"author\":{\"name\":\"Urs M\u00fcller\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#\\\/schema\\\/person\\\/4c70917482b3c6eea6f21274fad28e49\"},\"headline\":\"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen\",\"datePublished\":\"2020-06-11T07:00:00+00:00\",\"dateModified\":\"2024-05-31T13:23:59+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/\"},\"wordCount\":1525,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/Bildschirmfoto-2016-09-19-um-13.47.54.png\",\"keywords\":[\"Software-Testing: Die Forderungen der IEC 62304 und FDA erf\u00fcllen\"],\"articleSection\":[\"Software &amp; IEC 62304\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/\",\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/\",\"name\":\"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/Bildschirmfoto-2016-09-19-um-13.47.54.png\",\"datePublished\":\"2020-06-11T07:00:00+00:00\",\"dateModified\":\"2024-05-31T13:23:59+00:00\",\"description\":\"Die Code Coverage ist eine Metrik, die angibt, wie vollst\u00e4ndig Software getestet wird. Was Sie als Medizinprodukte-Hersteller beachten sollten.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/Bildschirmfoto-2016-09-19-um-13.47.54.png\",\"contentUrl\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2016\\\/09\\\/Bildschirmfoto-2016-09-19-um-13.47.54.png\",\"width\":806,\"height\":482,\"caption\":\"Code Coverage: Ein Beispiel\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/iec-62304-medizinische-software\\\/code-coverage\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Software &amp; IEC 62304\",\"item\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/category\\\/iec-62304-medizinische-software\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/\",\"name\":\"Regulatorisches Wissen f\u00fcr Medizinprodukte\",\"description\":\"Fachartikel zur Entwicklung und Zulassung von Medizinprodukten und weiteren regulatorischen Themen\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#organization\",\"name\":\"Johner Institut GmbH\",\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/Johner-Institut.png\",\"contentUrl\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/07\\\/Johner-Institut.png\",\"width\":1213,\"height\":286,\"caption\":\"Johner Institut GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/JohnerInstitut\\\/\",\"https:\\\/\\\/x.com\\\/christianjohner\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/JohnerInstitut\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/#\\\/schema\\\/person\\\/4c70917482b3c6eea6f21274fad28e49\",\"name\":\"Urs M\u00fcller\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Urs_Mueller_300x300.png8ba2aed015c39b7100fd17f459d456d6\",\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Urs_Mueller_300x300.png\",\"contentUrl\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/Urs_Mueller_300x300.png\",\"caption\":\"Urs M\u00fcller\"},\"description\":\"Informatiker; Experte f\u00fcr Computerized Systems Validation (CSV) und Prozessvalidierung; Senior Berater am Johner Institut; Leiter des Seminars zur CSV\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/urs-mueller-1506997b\\\/\"],\"url\":\"https:\\\/\\\/www.johner-institut.de\\\/blog\\\/author\\\/ursmueller\\\/\"}]}<\/script>\n<meta name=\"copyright\" content=\"Johner Institut GmbH\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen","description":"Die Code Coverage ist eine Metrik, die angibt, wie vollst\u00e4ndig Software getestet wird. Was Sie als Medizinprodukte-Hersteller beachten sollten.","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:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/","og_locale":"de_DE","og_type":"article","og_title":"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen","og_description":"Die Code Coverage ist eine Metrik, die angibt, wie vollst\u00e4ndig Software getestet wird. Was Sie als Medizinprodukte-Hersteller beachten sollten.","og_url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/","og_site_name":"Regulatorisches Wissen f\u00fcr Medizinprodukte","article_publisher":"https:\/\/www.facebook.com\/JohnerInstitut\/","article_published_time":"2020-06-11T07:00:00+00:00","article_modified_time":"2024-05-31T13:23:59+00:00","og_image":[{"url":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png","type":"","width":"","height":""}],"author":"Urs M\u00fcller","twitter_misc":{"Verfasst von":"Urs M\u00fcller","Gesch\u00e4tzte Lesezeit":"7\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#article","isPartOf":{"@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/"},"author":{"name":"Urs M\u00fcller","@id":"https:\/\/www.johner-institut.de\/blog\/#\/schema\/person\/4c70917482b3c6eea6f21274fad28e49"},"headline":"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen","datePublished":"2020-06-11T07:00:00+00:00","dateModified":"2024-05-31T13:23:59+00:00","mainEntityOfPage":{"@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/"},"wordCount":1525,"commentCount":5,"publisher":{"@id":"https:\/\/www.johner-institut.de\/blog\/#organization"},"image":{"@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#primaryimage"},"thumbnailUrl":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png","keywords":["Software-Testing: Die Forderungen der IEC 62304 und FDA erf\u00fcllen"],"articleSection":["Software &amp; IEC 62304"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/","url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/","name":"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen","isPartOf":{"@id":"https:\/\/www.johner-institut.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#primaryimage"},"image":{"@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#primaryimage"},"thumbnailUrl":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png","datePublished":"2020-06-11T07:00:00+00:00","dateModified":"2024-05-31T13:23:59+00:00","description":"Die Code Coverage ist eine Metrik, die angibt, wie vollst\u00e4ndig Software getestet wird. Was Sie als Medizinprodukte-Hersteller beachten sollten.","breadcrumb":{"@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#primaryimage","url":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png","contentUrl":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/09\/Bildschirmfoto-2016-09-19-um-13.47.54.png","width":806,"height":482,"caption":"Code Coverage: Ein Beispiel"},{"@type":"BreadcrumbList","@id":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/code-coverage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.johner-institut.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Software &amp; IEC 62304","item":"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/"},{"@type":"ListItem","position":3,"name":"Code Coverage: Vollst\u00e4ndigkeit von Software-Tests bestimmen"}]},{"@type":"WebSite","@id":"https:\/\/www.johner-institut.de\/blog\/#website","url":"https:\/\/www.johner-institut.de\/blog\/","name":"Regulatorisches Wissen f\u00fcr Medizinprodukte","description":"Fachartikel zur Entwicklung und Zulassung von Medizinprodukten und weiteren regulatorischen Themen","publisher":{"@id":"https:\/\/www.johner-institut.de\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.johner-institut.de\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.johner-institut.de\/blog\/#organization","name":"Johner Institut GmbH","url":"https:\/\/www.johner-institut.de\/blog\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.johner-institut.de\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/07\/Johner-Institut.png","contentUrl":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/07\/Johner-Institut.png","width":1213,"height":286,"caption":"Johner Institut GmbH"},"image":{"@id":"https:\/\/www.johner-institut.de\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/JohnerInstitut\/","https:\/\/x.com\/christianjohner","https:\/\/www.youtube.com\/user\/JohnerInstitut"]},{"@type":"Person","@id":"https:\/\/www.johner-institut.de\/blog\/#\/schema\/person\/4c70917482b3c6eea6f21274fad28e49","name":"Urs M\u00fcller","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2024\/05\/Urs_Mueller_300x300.png8ba2aed015c39b7100fd17f459d456d6","url":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2024\/05\/Urs_Mueller_300x300.png","contentUrl":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2024\/05\/Urs_Mueller_300x300.png","caption":"Urs M\u00fcller"},"description":"Informatiker; Experte f\u00fcr Computerized Systems Validation (CSV) und Prozessvalidierung; Senior Berater am Johner Institut; Leiter des Seminars zur CSV","sameAs":["https:\/\/www.linkedin.com\/in\/urs-mueller-1506997b\/"],"url":"https:\/\/www.johner-institut.de\/blog\/author\/ursmueller\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":3322,"url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/unit-testing-iec-62304\/","url_meta":{"origin":511347,"position":0},"title":"Unit Testing und IEC 62304","author":"Urs M\u00fcller","date":"14. August 2024","format":false,"excerpt":"Unter Unit-Testing wird in der Software-Entwicklung das Testen von Software-Units verstanden. Allerdings gibt es kein einheitliches Verst\u00e4ndnis dar\u00fcber, was eine Software-Unit ist, was einen guten Unit-Test auszeichnet und welche regulatorischen\/gesetzlichen Anforderungen erf\u00fcllt werden m\u00fcssen. Dieser Artikel verschafft Klarheit. 1. Testobjekte: Was beim Unit-Testing getestet wird a) \u00dcbliches Verst\u00e4ndnis von Software-Units\u2026","rel":"","context":"In &quot;Software &amp; IEC 62304&quot;","block_context":{"text":"Software &amp; IEC 62304","link":"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/"},"img":{"alt_text":"Unit Testing: Was sind die Units?","src":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/05\/unit-testing.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/05\/unit-testing.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/05\/unit-testing.jpg?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":11468,"url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/software-lebenszyklus\/","url_meta":{"origin":511347,"position":1},"title":"Software-Lebenszyklus: Was ist damit gemeint?","author":"Dr. Tina Priewasser","date":"22. Januar 2024","format":false,"excerpt":"Die Medizinprodukteverordnung (MDR) (wie bereits\u00a0 die Medizinprodukterichtlinie (MDD) und damit das Medizinproduktegesetz zuvor) verlangt, dass Hersteller f\u00fcr ihre Software Lebenszyklus-Prozesse einhalten. Auch die IEC 62304\u00a0 und die IEC 82304 sprechen von Software-Lebenszyklus-Prozessen. Doch was versteht man unter einem Software-Lebenszyklus? Der Software-Lebenszyklus beinhaltet alle Phasen, die ein Software-Produkt von der ersten\u2026","rel":"","context":"In &quot;Software &amp; IEC 62304&quot;","block_context":{"text":"Software &amp; IEC 62304","link":"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/"},"img":{"alt_text":"Software-Lebenszyklus","src":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/08\/software-lebenszyklus.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/08\/software-lebenszyklus.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/08\/software-lebenszyklus.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/08\/software-lebenszyklus.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":11771,"url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/software-einheiten-iec-62304\/","url_meta":{"origin":511347,"position":2},"title":"Software-Einheit: spezifizieren und testen unter IEC 62304","author":"Janos Hackenbeck","date":"15. September 2015","format":false,"excerpt":"Der Begriff der Software-Einheit (englisch: Software Unit) entstammt der IEC 62304. Vielen\u00a0Herstellern unterlaufen beim Spezifizieren und Testen dieser Software-Einheiten\u00a0Fehler. Diese Artikel gibt Ihnen Tipps, diese zu vermeiden. Definitionen Definition Software-Einheit Die IEC 62304 definiert eine Software-Einheit als \"Software-Komponente, die nicht in weitere Komponenten unterteilt ist\". Definition Software-Komponente Eine Software-Komponente definiert\u2026","rel":"","context":"In &quot;Software &amp; IEC 62304&quot;","block_context":{"text":"Software &amp; IEC 62304","link":"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/"},"img":{"alt_text":"Software-Einheiten, Software-Komponenten und Software-System im Kompoentenbaum","src":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/09\/Software-Einheit-Software-Komponente-1.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/09\/Software-Einheit-Software-Komponente-1.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/09\/Software-Einheit-Software-Komponente-1.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2015\/09\/Software-Einheit-Software-Komponente-1.jpg?resize=700%2C400&ssl=1 2x"},"classes":[]},{"id":519976,"url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/fehlerwahrscheinlichkeit-bei-software\/","url_meta":{"origin":511347,"position":3},"title":"Fehlerwahrscheinlichkeit bei Software","author":"Christian Rosenzweig","date":"10. April 2023","format":false,"excerpt":"Die Fehlerwahrscheinlichkeit bei Software l\u00e4sst sich schwer absch\u00e4tzen. So schwer, dass die\u00a0\u201ealte\u201c DIN EN IEC 62304:2006 schrieb: \u201eEs gibt jedoch keine \u00dcbereinstimmung, wie die Wahrscheinlichkeit des Auftretens von Software-Ausf\u00e4llen unter Verwendung von traditionellen statistischen Methoden bestimmt werden kann.\u201c Die Norm schlussfolgerte, dass \u201edie Wahrscheinlichkeit einer solchen Fehlfunktion als 100 Prozent\u2026","rel":"","context":"In &quot;Risikomanagement &amp; ISO 14971&quot;","block_context":{"text":"Risikomanagement &amp; ISO 14971","link":"https:\/\/www.johner-institut.de\/blog\/category\/iso-14971-risikomanagement\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2023\/03\/Fehlerwahrscheinlichkeit-bei-Software-scaled.jpg?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2023\/03\/Fehlerwahrscheinlichkeit-bei-Software-scaled.jpg?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2023\/03\/Fehlerwahrscheinlichkeit-bei-Software-scaled.jpg?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2023\/03\/Fehlerwahrscheinlichkeit-bei-Software-scaled.jpg?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2023\/03\/Fehlerwahrscheinlichkeit-bei-Software-scaled.jpg?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2023\/03\/Fehlerwahrscheinlichkeit-bei-Software-scaled.jpg?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":11556,"url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/iso-9126-und-iso-25010\/","url_meta":{"origin":511347,"position":4},"title":"ISO 25010 und ISO 9126","author":"Prof. Dr. Christian Johner","date":"10. August 2015","format":false,"excerpt":"Die ISO 9126 ist eine nicht-harmonisierte Norm, die Qualit\u00e4tseigenschaften\u00a0f\u00fcr Software klassifiziert. \u00a0Inhalts\u00fcbersicht Qualit\u00e4tseigenschaften gem\u00e4\u00df ISO 9126 \u00bb Kritik an der ISO 9126 \u00bb Qualit\u00e4tseigenschaften gem\u00e4\u00df ISO 25010 \u00bb Zusammenspiel IEC 62304 \u00bb Software-Qualit\u00e4tseigenschaften gem\u00e4\u00df ISO 9126 Die ISO 9126 eignet sich, um die Vollst\u00e4ndigkeit der System-Anforderungen zu pr\u00fcfen und zu\u2026","rel":"","context":"In &quot;Software &amp; IEC 62304&quot;","block_context":{"text":"Software &amp; IEC 62304","link":"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/"},"img":{"alt_text":"ISO 9126","src":"https:\/\/i0.wp.com\/www.johner-institut.de\/fileadmin\/user_upload\/_imported\/ISO9126_02.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":12772,"url":"https:\/\/www.johner-institut.de\/blog\/iec-62304-medizinische-software\/software-systemtest\/","url_meta":{"origin":511347,"position":5},"title":"Software-Systemtest: Diese 6 Anforderungen m\u00fcssen Sie erf\u00fcllen","author":"Janos Hackenbeck","date":"4. M\u00e4rz 2016","format":false,"excerpt":"Software-Systemtest: Was versteht man genau darunter? Wann sind sie vorgeschrieben? Was sollten Software-Systemtests testen? Auf welche Fallen sollten Sie achten? Antworten gibt Ihnen dieser Beitrag. Software-Systemtest, was ist das? Ein Software-Systemtest ist eine Pr\u00fcfung des gesamten Software-Systems, ob die daran gestellten Software-Anforderungen erf\u00fcllt sind. Diese Pr\u00fcfung findet i.d.R. dadurch statt,\u2026","rel":"","context":"In &quot;Software &amp; IEC 62304&quot;","block_context":{"text":"Software &amp; IEC 62304","link":"https:\/\/www.johner-institut.de\/blog\/category\/iec-62304-medizinische-software\/"},"img":{"alt_text":"Software-Systemtest: Testen des Software-Systems \u00fcber Schnittstellen","src":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/03\/Software-Systemtest.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/03\/Software-Systemtest.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/03\/Software-Systemtest.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/www.johner-institut.de\/blog\/wp-content\/uploads\/2016\/03\/Software-Systemtest.png?resize=700%2C400&ssl=1 2x"},"classes":[]}],"jetpack_shortlink":"https:\/\/wp.me\/pavawf-291x","jetpack_sharing_enabled":true,"authors":[{"term_id":1223,"user_id":85,"is_guest":0,"slug":"ursmueller","display_name":"Urs M\u00fcller","avatar_url":{"url":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2024\/05\/Urs_Mueller_300x300.png","url2x":"https:\/\/www.johner-institut.de\/blog\/wp-content\/uploads\/2024\/05\/Urs_Mueller_300x300.png"},"0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":""}],"_links":{"self":[{"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/posts\/511347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/users\/85"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/comments?post=511347"}],"version-history":[{"count":15,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/posts\/511347\/revisions"}],"predecessor-version":[{"id":5378826,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/posts\/511347\/revisions\/5378826"}],"wp:attachment":[{"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/media?parent=511347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/categories?post=511347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/tags?post=511347"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.johner-institut.de\/blog\/wp-json\/wp\/v2\/ppma_author?post=511347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}