<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ersocon.net - Science Blog &#187; Testfallermittlung</title>
	<atom:link href="http://blog.ersocon.net/tag/testfallermittlung/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.ersocon.net</link>
	<description>Zend Framework, PHP, Java</description>
	<lastBuildDate>Sat, 08 Oct 2011 10:21:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>Die Klassifikationsbaum-Methode für Testfallermittlung</title>
		<link>http://blog.ersocon.net/die-klassifikationsbaum-methode-fur-testfallermittlung-pid16.html</link>
		<comments>http://blog.ersocon.net/die-klassifikationsbaum-methode-fur-testfallermittlung-pid16.html#comments</comments>
		<pubDate>Wed, 03 Feb 2010 20:41:26 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Äquivalenzklasse]]></category>
		<category><![CDATA[Klassifikationsbaum]]></category>
		<category><![CDATA[Testfallermittlung]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=16</guid>
		<description><![CDATA[Die grundsätzliche Idee der Klassifikationsbaum-Methode is es den Eingabedatenraum des Testobjektes nach verschiedenen Test relevanten Gesichtspunkten jeweils getrennt voneinander in Klassen, die auch als Äquivalenzklassen verstanden werden können, zu zerlegen. Aus der Kombination geeigneter Klassen werden Testfälle ermittelt. Die Hauptinformationsquelle zur Findung der Klassen ist dabei die Spezifikation, die das geforderte Verhalten des Testobjektes beschreibt. [...]]]></description>
			<content:encoded><![CDATA[<p>Die grundsätzliche Idee der Klassifikationsbaum-Methode is es den Eingabedatenraum des Testobjektes nach verschiedenen Test relevanten Gesichtspunkten jeweils getrennt voneinander in Klassen, die auch als Äquivalenzklassen verstanden werden können, zu zerlegen. Aus der Kombination geeigneter Klassen werden Testfälle ermittelt. Die Hauptinformationsquelle zur Findung der Klassen ist dabei die Spezifikation, die das geforderte Verhalten des Testobjektes beschreibt.</p>
<p>Der Tester kann durch die Automatisierung einzelner Aktivitäten bei der Testfallermittlung geleitet werden. Des Weiteren bietet die Klassifikationsbaum-Methode eine Möglichkeit zur grafischen Notation, die eine Visualisierung der Testfallermittlung unter Verwendung moderner grafischer Oberflächen ermöglicht. Nachfolgend möchte ich die Methode zunächst allgemein beschreiben und danach zum besseren Verständnis an einem Beispiel verdeutlichen.</p>
<p>Die Ermittlung der Test relevanten Aspekte erfolgt meist manuell durch den Tester mittels der funktionalen Spezifikation des Testobjektes. Diese dienen der einfachen Unterscheidung der möglichen Eingabedaten. Im Anschluss wird die Menge aller möglichen Eingaben unter dem jeweiligen Aspekt disjunkt in Klassen zerlegt. Alle Werte einer Klasse sind demzufolge äquivalent (bei Interesse kann man sich zusätzlich meinen Beitrag zu Äquivalenzklassen durchlesen). Im konkreten Testfall reicht ein Repräsentant aus. Die Zerlegung unter den Aspekten sind Klassifikationen.</p>
<p>In komplexen Systemen werden Klassen mit Hilfe vo Klassifikationen wiederum in weitere Klassen unterteilt. Das rekursive Vorgehen resultiert in einem Klassifikationsbaum, der die anschaueliche Darstellung der mehrstufigen Zerlegung repräsentiert. Klassifikationen werden in der grafischen Darstellung des Baumes als benannte Rechtecke dargestellt. Darunter werden jeweilige Klassen angeordnet. Entsprechend werden die tiefer liegenden Klassifikationen mit ihren Klassen jeweils unter der zugehörigen Klasse notiert.</p>
<p>Im letzten Schritt der Methode werden die Testfälle gebildet. Aus der Kombination verschiedener Klassifikationen entsteht jeweils ein Testfall. Dieser wird in Form einer Zeile in einer Kombinationstabelle notiert. Die Namen der Spalten dieser Tabelle resultieren aus den Blättern (Klassen) des Baumes. Bei logisch unvereinbaren Kombinationen (z.B. Klassen ein und derselben Klassifikation) bleibt der Tabelleneintrag leer.</p>
<p>Die Ermittlung der Test relevanten Aspekte ist oft vom Tester abhängig. Genauer kommt es hierbei auf Kreativität und Verständnis des Problembereichs an. Dadurch ergibt sich die Möglichkeit, dass Fehler im Testobjekt aufgrund unvollständiger Klassifikationsbäume unerkannt bleiben.</p>
<p>Die Methode soll am folgenden Beispiel veranschaulicht werden: Ausgangspunkt ist eine Spezifikation einer Computer-Vision-Systems, welches mit einer Kamera verschiedene Objekte erkennen soll. Mögliche Test relevante Aspekte können hierbei Farbe und Form sein. Damit ergeben sich die KLassifikationen für Farbe und Form. Die Klassifikation Farbe lässt sich beispielhaft in drei Klassen unterteilen: Rot, Gelb und Blau. Bei der Form könnte das Objekt exemplarisch in Kreis, Dreieck oder Rechteck unterteilt sein. Zur Repräsentation einer tiefer liegenden Klassifikation wird die Art eines Dreiecks betrachtet. Hierbei wird zwischen gleichseitigen, gleichschenkligen und ungleichseitigen Dreiecken unterschieden. Mit Hilfe des Klassifikationsbaums können nun Testfälle bestimmt werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/die-klassifikationsbaum-methode-fur-testfallermittlung-pid16.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Äquivalenzklassenbildung mit Grenzwertanalyse</title>
		<link>http://blog.ersocon.net/aquivalenzklassenbildung-mit-grenzwertanalyse-pid10.html</link>
		<comments>http://blog.ersocon.net/aquivalenzklassenbildung-mit-grenzwertanalyse-pid10.html#comments</comments>
		<pubDate>Tue, 02 Feb 2010 12:59:05 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Äquivalenzklasse]]></category>
		<category><![CDATA[Black-Box-Test]]></category>
		<category><![CDATA[Testfallermittlung]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=10</guid>
		<description><![CDATA[Die Grenzwertanalyse stellt einen Spezialfall bzw. Verfeinerung der Äquivalenzklassenbildung dar. Bei dieser Technik werden durch Grenzwerterzeugung zusammenhängende Wertebereiche getestet. Im Gegensatz zur reinen Äquivalenzklassenbildung werden hierbei jedoch nicht beliebige Werte als Repräsentanten einer KLasse gewählt, sondern vorzugsweise die Randbereiche. Es genügt den unteren Grenzwert sowie den nächstkleineren Wert, den oberen Grenzwert sowie den nächstgrößeren Wert [...]]]></description>
			<content:encoded><![CDATA[<p>Die Grenzwertanalyse stellt einen Spezialfall bzw. Verfeinerung der Äquivalenzklassenbildung dar. Bei dieser Technik werden durch Grenzwerterzeugung zusammenhängende Wertebereiche getestet. Im Gegensatz zur reinen Äquivalenzklassenbildung werden hierbei jedoch nicht beliebige Werte als Repräsentanten einer KLasse gewählt, sondern vorzugsweise die Randbereiche.</p>
<p>Es genügt den unteren Grenzwert sowie den nächstkleineren Wert, den oberen Grenzwert sowie den nächstgrößeren Wert und einen Mittelwert zu generieren, um einen geschlossenen Wertebereich zu testen. Diese Werte sind stellvertretend für alle weiteren innerhalb und außerhalb des jeweiligen Wertebereichs. Ein kleines Beispiel dazu findet ihr im vorangegangenem Beitrag über Äquivalenzklassen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/aquivalenzklassenbildung-mit-grenzwertanalyse-pid10.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Basics zu Äquivalenzklassen (Methoden zur Testfallreduzierung)</title>
		<link>http://blog.ersocon.net/basics-zu-aquivalenzklassen-pid9.html</link>
		<comments>http://blog.ersocon.net/basics-zu-aquivalenzklassen-pid9.html#comments</comments>
		<pubDate>Mon, 01 Feb 2010 22:36:54 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Äquivalenzklasse]]></category>
		<category><![CDATA[Defensive testing]]></category>
		<category><![CDATA[Testfallermittlung]]></category>
		<category><![CDATA[Testing-by-contract]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=9</guid>
		<description><![CDATA[Die Äquivalenzklassenbildung ist eine Technik, die zur Reduzierung der Anzahl an Testfällen verwendet wird. Hierbei werden die möglichen Werte einer Eingabegröße in Klassen eingeteilt. Dadurch kann durch eine relativ kleine Anzahl an Testfällen eine angemessene Testabdeckung erzielt werden. Eine Äquivalenzklasse besteht aus einer Menge an Daten, welche als äquivalent angesehen werden, d.h. sie liefern erwartungsgemäß [...]]]></description>
			<content:encoded><![CDATA[<p>Die Äquivalenzklassenbildung ist eine Technik, die zur Reduzierung der Anzahl an Testfällen verwendet wird. Hierbei werden die möglichen Werte einer Eingabegröße in Klassen eingeteilt. Dadurch kann durch eine relativ kleine Anzahl an Testfällen eine angemessene Testabdeckung erzielt werden.</p>
<p>Eine Äquivalenzklasse besteht aus einer Menge an Daten, welche als äquivalent angesehen werden, d.h. sie liefern erwartungsgemäß bei einem Test dieselben Ergebnisse. Jeder Datenwert innerhalb einer Äquivalenzklasse ist also so gut wie jeder andere. Die Datenwerte können dabei entweder aus tatsächlichen Wertebereichen, wie z.B. 0 bis 100, oder aus Mengen an Datensätzen bestehen. Für den Test bietet dies folgende Erkenntnisse (nachzulesen in <em>A Practitioner&#8217;s Guide to Software Test Design</em> &#8211; Copeland, L., 2003):</p>
<ol>
<li>Falls ein Testfall einer Äquivalenzklasse einen Fehler aufdeckt, so decken auch alle anderen Testfälle der Äquivalenzklasse den Fehler auf.</li>
<li>Falls ein Testfall einer Äquivalenzklasse keinen Fehler aufdeckt, so decken auch alle anderen Testfälle der Äquivalenzklasse keine Fehler auf.</li>
</ol>
<p>Interessant ist also die tatsächliche Wahl der äquivalenten Daten einer Äquivalenzklasse. Allgemein betrachtet ergeben sich zwei Möglichkeiten:</p>
<ol>
<li>Verwendung von gültigen Wertebereichen (Testing-by-contract)</li>
<li>Verwendung von ungültigen Wertebereichen (Defensive testing)</li>
</ol>
<p>Bei dem Testing-by-contract Ansatz geht man davon aus, dass der zu testende Softwareteil (auch Modul genannt) nur Eingabeparameter erhält, welche es verarbeiten kann. Zudem werden dem Modul unabhängig von der Eingabe Daten zur Verfügung gestellt, welche es zur fehlerfreien Verarbeitung der Eingabeparameter braucht. Entsprechend werden hierbei nur Äquivalenzklassen mit gültigem Wertebereich erstellt und durch ihre Repräsentanten getestet.</p>
<p>Äquivalenzklassen mit Daten außerhalb des zulässigen Bereichs werden hierbei nicht berücksichtigt, weil man evtl. davon ausgeht, dass die unzulässigen Bereiche nicht erreicht werden. Problematisch ist bei diesem Ansatz die Tatsache, dass Probleme auftreten könne, sobald ein unzulässiger Bereich in einem ausgelieferten Produkt tatsächlich erreicht wird (z.B. das Jahr 2000 bei einer 1985 geschriebenen Software). Um diesem Problem entgegenzuwirken, werden beim defensive-testing Ansatz auch unzulässige Bereiche zugelassen. Dies bedeutet, dass neben einer Äquivalenzklasse im gültigen Bereich auch mindestens eine Äquivalenzklasse für den ungültigen Bereich erstellt werden und durch einen Repräsentanten getestet werden muss. Die Anzahl nötiger Testfälle erhöht sich zwangsläufig.</p>
<p>Ein kleines Beispiel dazu:</p>
<p>Man hat ein Softwaremodul, das die Wurzelfunktion implementiert und nur ganze Zahlen im Bereich 0 bis 64 akzeptiert. Beim Testing-by-contract Ansatz benötigt man (grob betrachtet) zwei Äquivalenzklassen mit entsprechenden Repräsentanten. Eine davon nennen wir mal die Ganzzahl-Äquivalenzklasse und die andere Dezimal-Äquivalenzklasse. Wir gehen davon aus, dass die Ganzzahl-Äquivalenzklasse alle Eingabeparameter enthält, bei denen das Modul als Ergebnis eine Ganzzahl liefert, z.B. 4 oder 16. Hieraus wählen wir einen Repräsentanten, die 16, was dem ersten Testfall entspricht. Für die zweite Äquivalenzklasse nehmen wir entsprechend die 17, da hier bekannt ist, dass keine Ganzzahl als Ergebnis zu erwarten ist.</p>
<p>Beim defensive-testing werden nun weitere Äquivalenzklassen hinzugefügt. Wir erwarten z.B., dass das Modul bei der Eingabe einer negativen Zahl, einer Dezimalzahl oder einer Zahl größer 64 eine Fehlermeldung liefern muss. Mit der Bildung der entsprechenden Äquivalenzklassen (Negativ-Äquivalenzklasse, Dezimaleingabe-Äquivalenzklasse und Zugroßeeingabe-Äquivalenzklasse) erhält man drei weitere Testfälle: z.B. (-1|0,3|65) oder (-5|20,1|1200). Das erste Beispiel wird sicherlich öfter Anklang finden, da beim Testen versucht wird auch die Grenzbereiche (0/64) ausreichend zu testen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/basics-zu-aquivalenzklassen-pid9.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testfallermittlung beim Black-Box-Test</title>
		<link>http://blog.ersocon.net/testfallermittlung-beim-black-box-test-pid8.html</link>
		<comments>http://blog.ersocon.net/testfallermittlung-beim-black-box-test-pid8.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 23:54:39 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Äquivalenzklassen]]></category>
		<category><![CDATA[Black-Box-Test]]></category>
		<category><![CDATA[Error Guessing]]></category>
		<category><![CDATA[Grenzwertanalyse]]></category>
		<category><![CDATA[Testfallermittlung]]></category>
		<category><![CDATA[Ursache-Wirkungsgraph]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=8</guid>
		<description><![CDATA[In meinem Beitrag über die Testfallermittlung beim White-Box-Test habe ich bereits einige Informationen zu Testmethodiken (z.B. Vor-/Nachteile) erfasst. Dies möchte ich in diesem Beitrag auch für den Black-Box-Test nachholen. Der Black-Box-Test ist nämlich im industriellen Einsatz deutlich bedeutender als der White-Box-Test. Hierbei ist keine notwendige Kenntnis über die internen Abläufe und Ausführungspfade der Software notwendig. [...]]]></description>
			<content:encoded><![CDATA[<p>In meinem Beitrag über die Testfallermittlung beim White-Box-Test habe ich bereits einige Informationen zu Testmethodiken (z.B. Vor-/Nachteile) erfasst. Dies möchte ich in diesem Beitrag auch für den Black-Box-Test nachholen.</p>
<p>Der Black-Box-Test ist nämlich im industriellen Einsatz deutlich bedeutender als der White-Box-Test. Hierbei ist keine notwendige Kenntnis über die internen Abläufe und Ausführungspfade der Software notwendig. Ebenso werden hierbei auch Implementierungsdetails, wie z.B. IF-Anweisungen außer Acht gelassen. Entscheidend ist bei dieser Testvariante die Kenntnis über das, was die Software im Endeffekt leisten soll.</p>
<p>Ein Black-Box-Test sieht in allgemeiner Form wie folgt aus: Im ersten Schritt erfolgt eine genaue Analyse der Anforderungen oder der Spezifikation, z.B. mit Hilfe des Pflichtenheftes oder technischer Datenblätter. Anhand der gewonnenen Erkenntnisse werden Eingabeparameter ausgewählt und erwartetet Ergebnisse/Ergebniswerte definiert oder generiert. Oft werden die Eingabeparameter so gewählt, dass möglichst große Wertebereiche oder spezielle Grenzwerte abgedeckt werden. Zu beachten ist hierbei , dass bei einem Black-Box-Test nicht unbedingt alle implementierten Eigenschaften der Software allein anhand der Spezifikation erkannt werden können. Die gewählten Parameter verwendet man zur konkreten Testfalldefinition. Die Testfälle dienen als Grundlage für den eigentlichen Test. Nach jedem Testdurchlauf erfolgt die Überprüfung der Ergebnisse mittels der vordefinierten erwarteten Werte.</p>
<p>Der Black-Box-Test bezieht seine Vorteile aus der Tatsache, dass der Tester die Testfälle nach seinem Verständnis der Software gestalten muss und dadurch Testfälle erzeugt, die im Vergleich zu willkürlich gewählten deutlich effektiver und effizienter Fehler aufdecken können. Kritisch ist bei dieser Sichtweise wiederum der Tester selbst. Denn bei einem Black-Box-Test ist es nahezu unmöglich alle Kombinationsmöglichkeiten an Eingabeparametern abzudecken. Es bleibt also dem Tester überlassen, welche Testfälle ausgewählt werden. Diese Teilmenge fällt im Vergleich zu den Variationen sehr klein aus. Wie erfolgreich oder effizient der Test ist, hängt folgerichtig stark mit der Erfahrung des Testers, der Genauigkeit der Spezifikation und der gewählten Testfälle zusammen. Des weiteren ist Software nicht immer schlicht als Ein- und Ausgabe Maschine zu betrachten. Entscheidend sind auch die Zustände, in der sich eine Software befinden kann. Ein solches Universum an Zuständen, Eingabeparametern und erwarteten Ergebnissen ist nicht immer einfach zu überblicken.</p>
<p>Repräsentativ für den Black-Box-Test stehen folgende Methodiken: Äquivalenzklassen, Grenzwertanalyse, Ursache-Wirkungsgraph, Error Guessing</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/testfallermittlung-beim-black-box-test-pid8.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Testfallermittlung beim White-Box-Test</title>
		<link>http://blog.ersocon.net/testfallermittlung-beim-white-box-test-pid7.html</link>
		<comments>http://blog.ersocon.net/testfallermittlung-beim-white-box-test-pid7.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 23:25:24 +0000</pubDate>
		<dc:creator>ersocon</dc:creator>
				<category><![CDATA[Testmethoden]]></category>
		<category><![CDATA[Testfallermittlung]]></category>
		<category><![CDATA[White-Box-Test]]></category>

		<guid isPermaLink="false">http://blog.ersocon.net/?p=7</guid>
		<description><![CDATA[Im Rahmen dieses Beitrags möchte ich euch einige Tipps zur Testfallermittlung beim White-Box-Test an die Hand geben. Für mich war es bisher immer nützlich sich diese Informationen vor Augen zu führen. Ich hoffe, dass es möglichst effizient zusammengetragen ist, die wesentlichsten Teile dabei sind und die Informationen hilfreich sind. Zunächst einmal kann man sich natürlich [...]]]></description>
			<content:encoded><![CDATA[<p>Im Rahmen dieses Beitrags möchte ich euch einige Tipps zur Testfallermittlung beim White-Box-Test an die Hand geben. Für mich war es bisher immer nützlich sich diese Informationen vor Augen zu führen. Ich hoffe, dass es möglichst effizient zusammengetragen ist, die wesentlichsten Teile dabei sind und die Informationen hilfreich sind.</p>
<p>Zunächst einmal kann man sich natürlich fragen, worauf es beim White-Box-Test ankommt. Beim ablaufbezogenen Testen (White-Box-Test) wird das Programm gegen sich selbst getestet. Das Objekt des Testfalls ist der Ablaufgraph des jeweiligen Programms. Bei dieser Methode werden die Testfälle mit Kenntnissen über die innere Funktionsweise und der Spezifikation entwickelt.</p>
<p>Das Ziel ist es, die Überdeckung der möglichen und relevanten Pfade eines Programms in einem Test oder einer Testserie festzustellen.  Die Anweisungen, Zweige und Pfade lassen sich durch eine statische Analyse aus dem Programm ableiten. Bei der dynamischen Analyse des Ausführungen registriert und protokolliert.</p>
<p>Der Nachteil des White-Box-Test ist, dass nur eine bestimmte Klasse von Fehlern durch sie aufgedeckt werden &#8211; nämlich grobe Abbruchfehler, unerreichbare Zweige, Irrpfade, endlose Schleifen und unvollständige bzw. inkonsistente Bedingungen. Vergessene Funktionen, unberücksichtigte Daten, inkonsistente Schnittstellen, Tippfehler, IO-Fehler und Abweichungen von der Spezifikation können auch nach Ausführung aller Pfade, d.h. Überdeckung des Ablaufgraphs, unerkannt bleiben.</p>
<p>Den Hauptnutzen zieht der White-Box-Test daraus, dass er den Tester zwingt, sich intensiv mit dem zu testenden Objekt auseinander zu setzen. Dabei stößt dieser unwillkürlich auf logische Ungereimtheiten, da er stets bestrebt ist alle Anweisungen, Pfade und Zweige auszuführen.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ersocon.net/testfallermittlung-beim-white-box-test-pid7.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

