<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bedingungs%C3%BCberdeckungstest</id>
	<title>Bedingungsüberdeckungstest - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Bedingungs%C3%BCberdeckungstest"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bedingungs%C3%BCberdeckungstest&amp;action=history"/>
	<updated>2026-06-26T09:04:47Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Bedingungs%C3%BCberdeckungstest&amp;diff=148350&amp;oldid=prev</id>
		<title>imported&gt;Maximum 2520: Korrekturen, Links hinzugefügt</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Bedingungs%C3%BCberdeckungstest&amp;diff=148350&amp;oldid=prev"/>
		<updated>2023-03-02T21:49:50Z</updated>

		<summary type="html">&lt;p&gt;Korrekturen, Links hinzugefügt&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der &amp;#039;&amp;#039;&amp;#039;Bedingungsüberdeckungstest&amp;#039;&amp;#039;&amp;#039; (engl. Condition Coverage) gehört zu einer Gruppe von [[Überdeckungstest]]s, die zum Testen von [[Software]] verwendet werden.&lt;br /&gt;
&lt;br /&gt;
Das Problem der bisherigen [[Überdeckungstest]]s (C1-Test, C2-Test) ist, dass zusammengesetzte, [[Hierarchie|hierarchische]] Bedingungen nicht ausreichend getestet werden.&lt;br /&gt;
&lt;br /&gt;
== C3a – Einfachbedingungsüberdeckungstest ==&lt;br /&gt;
Jede einfache Bedingung muss einmal mit [[Aussagenlogik|true]] und einmal mit [[Aussagenlogik|false]] getestet werden&amp;lt;ref&amp;gt;{{Literatur | Autor = Karol Frühauf, Jochen Ludewig, Helmut Sandmayr | Titel = Software-Prüfung. Eine Anleitung zum Test und zur Inspektion |Auflage = 6., überarbeitete und aktualisierte| Jahr = 2007| Verlag = vdf, Hochschulverlag AG an der ETH | Ort = Zürich | ISBN = 978-3-7281-3059-4 | Seiten = 63}}&amp;lt;/ref&amp;gt;. Das bedeutet, dass für folgenden Code zwei verschiedene Möglichkeiten für C3a existieren:&lt;br /&gt;
 boolean a, b;&lt;br /&gt;
 if (a || b) {...}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mögliche Belegungen für C3a&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |A&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |B&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Möglichkeit A mit A1 und A2 ist ein valider Fall von C3a, B mit B1 und B2 ebenso. Problematisch ist hierbei, dass der Ausdruck &amp;lt;code&amp;gt;a || b&amp;lt;/code&amp;gt; bei Belegung B immer zu &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; evaluiert. Es wird nie getestet, was passiert, wenn die Bedingung nicht passiert wird.&lt;br /&gt;
&lt;br /&gt;
== C3b – Mehrfachbedingungsüberdeckungstest ==&lt;br /&gt;
Dieser Test betrachtet alle atomaren Bedingungen einer Bedingung. Wenn n atomare Bedingungen in der Bedingung stehen, dann werden &amp;lt;math&amp;gt;2^n&amp;lt;/math&amp;gt; Kombinationen gebildet. Das heißt für das obige Beispiel, dass 4 Testfälle gebildet werden und nur noch eine Möglichkeit besteht:  &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mögliche Belegungen für C3b&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; |A&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== C3c – minimaler Mehrfachbedingungsüberdeckungstest ==&lt;br /&gt;
Diese Version erstellt mehr Testfälle als C3a und weniger als C3b, indem jede Bedingung (atomar und zusammengestellt) einmal zu true und einmal zu false evaluiert wird. Die logische Struktur wird hierbei berücksichtigt und der C1-Test ([[Zweigüberdeckungstest]]) ist vollständig in diesem Test enthalten.&lt;br /&gt;
Außerdem ist der C3c-Test berechenbar. Für obiges Codebeispiel ergeben sich dann wieder zwei Möglichkeiten: &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Mögliche Belegungen für C3c&lt;br /&gt;
!&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |A&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; |B&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;a&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;a || b&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Nachteil ===&lt;br /&gt;
Es besteht die Gefahr einer unvollständigen Auswertung einer Bedingung durch eine [[Programmiersprache]] mit sogenannter [[Kurzschlussauswertung|short circuit evaluation]] wie beispielsweise [[C (Programmiersprache)|C]], [[C++]], [[Java (Programmiersprache)|Java]] und [[C-Sharp|C#]].&lt;br /&gt;
 boolean a, b;&lt;br /&gt;
 if (a &amp;amp;&amp;amp; b) {...} else { lies b aus }&lt;br /&gt;
Wenn &amp;lt;code&amp;gt;a=false&amp;lt;/code&amp;gt;, dann ist die Belegung der Variable &amp;lt;code&amp;gt;b&amp;lt;/code&amp;gt; theoretisch egal. Im Falle von &amp;lt;code&amp;gt;a=false&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;b=null&amp;lt;/code&amp;gt; allerdings, tritt im else-Zweig ein Fehler auf.&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
{{DEFAULTSORT:Bedingungsuberdeckungstest}}&amp;lt;references /&amp;gt;&lt;br /&gt;
[[Kategorie:Testen (Software)]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Maximum 2520</name></author>
	</entry>
</feed>