Die drei wichtigsten Regeln zum Testen lauten:
. Man sollte nie die eigenen Programme testen
. Immer die besten Programmierer sollten die Tests durchführen
. Das Ziel sollte das Finden von Fehlern, und nicht das Beweisen des Funktionierens des Programmes sein.
Man unterscheidet den Blackboxtest und den Whiteboxtest.
4.1 Whiteboxtest
Dieser wird auf der Basis des Programmcodes durchgeführt. Man sucht im Programmcode nach typischen Fehlern wie:
. of one error
. dangling pointer
. division by zero
. unreachable Code
. Endlosschleife
. falsche Parameterübergabe
Ideal wäre es, alle Pfade, die durch if-Klauseln oder Schleifen entstehen, durchzugehen, was aber bei Tausenden Schleifendurchläufen nicht möglich ist. Man sucht daher nach der besten Möglichkeit alle Fehler zu finden, und gleichzeitig nur die allernötigsten Pfade durchzugehen.
4.2 Blackboxtest
Dieser wird auf Basis der Spezifikation durchgeführt. Mittels geeigneter Testdaten versucht man alle Aktionen durchzuführen. Die Testdaten sollten gleichzeitig mit der Spezifikation erstellt werden. Dazu verwendet man Äquivalenzklassen. Die Testmenge wird in Teilmengen zerlegt, deren Werte ähnlich sind. Aus jeder Äquivalenzklasse soll ein Testfall entnommen werden (Bsp.: Programm zur Dreieckseinteilung).
4.3 Verfahren zur Schätzung der Fehleranzahl
4.3.1 Softwaremetrik
Dies sind Maßzahlen, über die mittels Formeln und Tabellen die Fehleranzahl eines Programmes geschätzt werden kann. Solche Maßzahlen sind z.B. die Anzahl der Zeilen, der if-Klauseln, der Schleifen, usw.
4.3.2 Seeding - Verfahren
Es werden bewußt Fehler eingebaut, und dann im Programm nach allen Fehlern gesucht. Aus dem Vergleich der gefundenen und der versteckten Fehlern kann Aufschluß über die Gesamtfehlerzahl gewonnen werden.
4.3.3 Verfahren durch Kommunikation (human testing):
. Codeinspektion: Programmierer treffen sich, und sprechen den Code Zeile für Zeile durch
. Walkthrough: Rollenspiel, wo jeder einen Programmteil spielt
. Peer Rating: 6 bis 20 Programmierer. Tauschen Programme aus, und kontrollieren sie gegenseitig auf Verständlichkeit, Wartbarkeit und Dokumentation
. Review: Standards werden vom SQS - Menschen und dem Programmierer durchgenommen.
|