M 2.83 Testen von Standardsoftware

Verantwortlich für Initiierung: Leiter Fachabteilung, Leiter IT-Bereich

Verantwortlich für Umsetzung: Testgruppe

Das Testen von Standardsoftware läßt sich in die Abschnitte Vorbereitung, Durchführung und Auswertung unterteilen. In diesen Abschnitten sind folgende Aufgaben wahrzunehmen:

Testvorbereitung

Testdurchführung Testauswertung

Die einzelnen Aufgaben werden nachfolgend beschrieben.

Testvorbereitung

Festlegung der Testmethoden für die Einzeltests (Testarten, verfahren und -werkzeuge)

Methoden zur Durchführung von Tests sind z. B. statistische Analyse, Simulation, Korrektheitsbeweis, symbolische Programmausführung, Review, Inspektion, Versagensanalyse. Hierbei muß beachtet werden, daß einige dieser Testmethoden nur bei Vorliegen des Quellcodes durchführbar sind. In der Vorbereitungsphase muß die geeignete Testmethode ausgewählt und festgelegt werden.

Es muß geklärt werden, welche Verfahren und Werkzeuge zum Testen von Programmen und zum Prüfen von Dokumenten eingesetzt werden. Typische Verfahren zum Testen von Programmen sind z. B. Black-Box-Tests, White-Box-Tests oder Penetrationstests. Dokumente können z. B. durch informelle Prüfungen, Reviews oder anhand von Checklisten kontrolliert werden.

Ein Black-Box-Test ist ein Funktionalitätstest ohne Kenntnis der internen Programmabläufe, bei dem z. B. das Programm mit allen Datenarten für alle Testfälle mit Fehlerbehandlung und Plausibilitätskontrollen durchlaufen wird.

Bei einem White-Box-Test handelt es sich um einen Funktionalitätstests unter Offenlegung der internen Programmabläufe, z. B. durch Quellcode-Überprüfung oder Tracing. White-Box-Tests gehen in der Regel über den IT-Grundschutz hinaus und können für Standardsoftware in der Regel nicht durchgeführt werden, da der Quellcode vom Hersteller nicht offengelegt wird.

Bei Funktionalitätstests soll der Nachweis erbracht werden soll, daß der Testinhalt der Spezifikation entspricht. Durch Penetrationstests soll festgestellt werden, ob bekannte oder vermutete Schwachstellen im praktischen Betrieb ausgenutzt werden können, beispielsweise durch Manipulationsversuche an den Sicherheitsmechanismen oder durch Umgehung von Sicherheitsmechanismen durch Manipulationen auf Betriebssystemebene.

Weiterhin ist die Art und Weise der Ergebnissicherung und -auswertung festzuschreiben, insbesondere im Hinblick auf die Wiederholbarkeit von Prüfungen. Es muß geklärt werden, welche Daten während und nach der Prüfung festzuhalten sind.

Generierung von Testdaten und Testfällen

Die Vorbereitung von Tests umfaßt auch die Generierung von Testdaten. Methode und Vorgehensweise sind zuvor festzulegen und zu beschrieben.

Für jeden einzelnen Testinhalt muß eine dem Testaufwand angemessene Anzahl von Testfällen generiert werden. Jede der folgenden Kategorien ist dabei zu berücksichtigen:

Standardfälle sind Fälle, mit denen die korrekte Verarbeitung der definierten Funktionalitäten überprüft werden soll. Die eingehenden Daten nennt man Normalwerte oder Grenzwerte . Normalwerte sind Daten innerhalb, Grenzwerte sind Eckdaten des jeweils gültigen Eingabebereichs.

Fehlerfälle sind Fälle, in denen versucht wird, mögliche Fehlermeldungen des Programms zu provozieren. Diejenigen Eingabewerte, auf die das Programm mit vorgegebenen Fehlermeldungen reagieren soll, nennt man Falschwerte .

Ausnahmefälle sind Fälle, bei denen das Programm ausnahmsweise anders reagieren muß als bei Standardfällen. Es muß daher überprüft werden, ob das Programm diese Fälle als solche erkennt und korrekt bearbeitet.

Beispiele:

Ist die Generierung von Testdaten zu aufwendig oder schwierig, können auch anonymisierte Echtdaten für den Test eingesetzt werden. Aus Gründen des Vertraulichkeitsschutz müssen Echtdaten unbedingt zuverlässig anonymisiert werden. Zu beachten bleibt, daß die anonymisierten Echtdaten u. U. nicht alle Grenzwerte und Ausnahmefälle abdecken, so daß diese gesondert erzeugt werden müssen.

Über die Testdaten hinaus sollten auch alle Arten möglicher Benutzerfehler betrachtet werden. Problematisch sind insbesondere alle Benutzerreaktionen, die im Programmablauf nicht vorgesehen und dementsprechend nicht korrekt abgewiesen werden.

Aufbau der benötigten Testumgebung

Die im Testplan beschriebene Testumgebung muß aufgebaut und die zu testenden Produkte dort installiert werden. Die eingesetzten Komponenten sind zu identifizieren und deren Konfiguration ist zu beschreiben. Treten bei der Installation des Produktes Abweichungen von der beschriebenen Konfiguration auf, so ist dies zu dokumentieren.

Testdurchführung

Die Durchführung der Tests muß anhand des Testplans erfolgen. Jede Aktion sowie die Testergebnisse müssen ausreichend dokumentiert und bewertet werden. Insbesondere wenn Fehler auftreten, sind diese derart zu dokumentieren, daß sie reproduziert werden können. Die für den späteren Produktionsbetrieb geeigneten Betriebsparameter müssen ermittelt und für die spätere Erstellung einer Installationsanweisung festgehalten werden.

Werden zusätzliche Funktionen beim Produkt erkannt, die nicht im Anforderungskatalog aufgeführt, aber trotzdem von Nutzen sein können, so ist hierfür mindestens ein Kurztest durchzuführen. Zeigt sich, daß diese Funktion von besonderer Bedeutung für den späteren Betrieb sind, sind diese ausführlich zu testen. Für den zusätzlich anfallenden Prüfaufwand ist ggf. eine Fristverlängerungen bei den Verantwortlichen zu beantragen. Die Testergebnisse sind in die Gesamtbewertung mit einzubeziehen.

Zeigt sich bei Bearbeitung einzelner Testinhalte, daß eine oder mehrere Anforderungen des Anforderungskataloges nicht konkret genug waren, sind diese gegebenenfalls zu konkretisieren.

Beispiel: Im Anforderungskatalog wird zum Vertraulichkeitsschutz der zu bearbeitenden Daten Verschlüsselung gefordert. Während des Testens hat sich gezeigt, daß eine Offline-Verschlüsselung für den Einsatzzweck ungeeignet. Daher ist der Anforderungskatalog hinsichtlich einer Online-Verschlüsselung zu ergänzen. (Eine Offline-Verschlüsselung muß vom Anwender angestoßen und die zu verschlüsselnden Elemente jeweils spezifiziert werden; eine Online-Verschlüsselung erfolgt transparent für den Anwender mit voreingestellten Parametern.)

Eingangsprüfungen

Vor allen anderen Tests sind zunächst die folgenden grundlegenden Aspekte zu testen, da ein Mißerfolg bei diesen Eingangsprüfungen zu direkten Aktionen oder dem Testabbruch führt:

Funktionale Tests

Die funktionalen Anforderungen, die im Anforderungskatalog an das Produkt gestellt wurden, sind auf folgende Aspekte zu untersuchen:

Tests weiterer funktionaler Eigenschaften

Die im Anforderungskatalog neben den funktionalen und den sicherheitsspezifischen Anforderungen spezifizierten weiteren funktionalen Eigenschaften sind ebenfalls zu überprüfen:

Darüber hinaus sind als weitere Punkte des Anforderungskatalogs zu testen: Sicherheitsspezifische Tests

Wurden sicherheitsspezifische Anforderungen an das Produkt gestellt, so sind zusätzlich zu den vorgenannten Untersuchungen auch folgende Aspekte zu untersuchen:

Als Grundlage für eine Sicherheitsuntersuchung könnte beispielsweise das Handbuch für die Bewertung der Sicherheit von Systemen der Informationstechnik (ITSEM) herangezogen werden, in dem viele der nachfolgend aufgezeigten Vorgehensweise beschrieben sind. Die weiteren Ausführungen dienen zur Orientierung und zur Einführung in die Thematik.

Zu Beginn muß durch funktionale Tests zunächst nachgewiesen werden, daß das Produkt die erforderlichen Sicherheitsfunktionen bereitstellt.

Anschließend ist zu überprüfen, ob alle erforderlichen Sicherheitsmechanismen im Anforderungskatalog genannt wurden, ggf. ist dieser zu ergänzen. Um die Mindeststärke der Mechanismen zu bestätigen oder zu verwerfen sind Penetrationstests durchzuführen. Penetrationstests sind nach allen anderen Tests durchzuführen, da sich aus diesen Tests Hinweise auf potentielle Schwachstellen ergeben können.

Durch Penetrationstests kann das Testobjekt oder die Testumgebung beschädigt oder beeinträchtigt werden. Damit solche Schäden keine Auswirkungen haben, sollten vor der Durchführung von Penetrationstests Datensicherungen gemacht werden.

Penetrationstests können durch Verwendung von Sicherheitskonfigurations- und Protokollierungstools unterstützt werden. Diese Tools untersuchen eine Systemkonfiguration und suchen nach gemeinsamen Schwachstellen wie etwa allgemein lesbaren Dateien und fehlenden Paßwörtern.

Mit Penetrationstests soll das Produkt auf Konstruktionsschwachstellen untersucht werden, indem dieselben Methoden angewandt werden, die auch ein potentieller Angreifer zur Ausnutzung von Schwachstellen benutzen würde, wie z. B.

Die Mechanismenstärken werden anhand der Begriffe Fachkenntnisse, Gelegenheiten und Betriebsmittel definiert, in der ITSEM werden diese näher erläutert. Beispielsweise können zur Bestimmung der Mechanismenstärke folgende Regeln angewandt werden: Es muß sichergestellt werden, daß die durchgeführten Tests alle sicherheitsspezifischen Funktionen umfassen. Wichtig ist zu beachten, daß durch Testen immer nur Fehler oder Abweichungen von den Spezifikationen festgestellt werden können, niemals jedoch die Abwesenheit von Fehlern.

An einigen Beispielen sollen typische Untersuchungsaspekte aufgezeigt werden:

Paßwortschutz:

Zugriffsrechte: Datensicherung: Verschlüsselung: Protokollierung: Darüber hinaus muß festgestellt werden, ob durch das neue Produkt Sicherheitseigenschaften an anderer Stelle unterlaufen werden. Beispiel: das zu testende Produkt bietet eine Schnittstelle zur Betriebssystemumgebung, das IT-System war aber vorher so konfiguriert, daß keine solchen Schnittstellen existierten.

Pilotanwendung

Nach Abschluß aller anderen Tests kann noch eine Pilotanwendung, also ein Einsatz unter Echtbedingungen, für notwendig gehalten werden.

Erfolgt der Test in der Produktionsumgebung mit Echtdaten, muß vorab durch eine ausreichende Anzahl von Tests die korrekte und fehlerfreie Funktionsweise des Programms bestätigt worden sein, um die Verfügbarkeit und Integrität der Produktionsumgebung nicht zu gefährden. Dabei kann das Produkt beispielsweise bei ausgewählten Benutzern installiert werden, die es dann für einen gewissen Zeitraum im echten Produktionsbetrieb einsetzen.

Testauswertung

Anhand der festgelegten Entscheidungskriterien sind die Testergebnisse zu bewerten, alle Ergebnisse zusammenzuführen und mit der Testdokumentation der Beschaffungsstelle bzw. Testverantwortlichen vorzulegen.

Anhand der Testergebnisse sollte ein abschließendes Urteil für ein zu beschaffendes Produkt gefällt werden. Hat kein Produkt den Test bestanden, muß überlegt werden, ob eine neue Marktsichtung vorgenommen werden soll, ob die gestellten Anforderungen zu hoch waren und geändert werden müssen oder ob von einer Beschaffung zu diesem Zeitpunkt abgesehen werden muß.


Beispiel:

Am Beispiel eines Kompressionsprogramms wird nun eine Möglichkeit beschrieben, Testergebnisse auszuwerten. Getestet wurden vier Produkte, die nach der dreistufige Skala aus M 2.82 Entwicklung eines Testplans für Standardsoftware bewertet wurden.

Produkt 3 war bereits in der Vorauswahl gescheitert und wurde daher nicht getestet.

Produkt 4 scheiterte in dem Testabschnitt "korrekte Kompression und Dekompression", weil die Erfüllung der Eigenschaft mit 0 bewertet wurde, es sich dabei aber um ein notwendige Eigenschaft handelt.

Bei der Berechnung der Bewertungspunktzahlen für die Produkte 1 und 2 wurden die Noten als Multiplikatoren für die jeweilige Bedeutungskennzahl benutzt und schließlich die Summe gebildet:

Produkt 1: 10*2+10*2+10*2+10*2+2*0+4*2+4*2+2*2 = 120

Produkt 2: 10*2+10*2+10*2+10*2+2*2+4*2+4*1+2*1 = 118

Nach der Testauswertung ist somit Produkt 1 auf dem ersten Platz, wird aber knapp gefolgt von Produkt 2. Die Entscheidung für ein Produkt hat jetzt die Beschaffungsstelle anhand der Testergebnisse und des daraus resultierenden Preis-/Leistungsverhältnisses zu treffen.

Ergänzende Kontrollfragen:


© Copyright by Bundesamt für Sicherheit in der Informationstechnik 2000 .