Bundesamt für Sicherheit in der Informationstechnik

M 2.83 Testen von Standardsoftware

Verantwortlich für Initiierung: Leiter Fachabteilung, Leiter IT

Verantwortlich für Umsetzung: Tester

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

Testvorbereitung

  • Festlegung der Testmethoden für die Einzeltests (Testarten, -verfahren und -werkzeuge)
  • Generierung von Testdaten und Testfällen
  • Aufbau der benötigten Testumgebung

Testdurchführung

  • Eingangsprüfungen
  • Funktionale Tests
  • Tests weiterer funktionaler Eigenschaften
  • Sicherheitsspezifische Tests
  • Pilotanwendung

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 muss beachtet werden, dass einige dieser Testmethoden nur bei Vorliegen des Quellcodes durchführbar sind. In der Vorbereitungsphase muss die geeignete Testmethode ausgewählt und festgelegt werden.

Es muss 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, dass 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 muss geklärt werden, welche Daten während und nach der Prüfung festzuhalten sind.

Generierung von Testdaten und Testfällen

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

Für jeden einzelnen Testinhalt muss 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 muss als bei Standardfällen. Es muss daher überprüft werden, ob das Programm diese Fälle als solche erkennt und korrekt bearbeitet.

Beispiele:

  • Wenn die Eingabeparameter zwischen 1 und 365 liegen dürfen, sind Testläufe mit Falschwerten (z. B. 0 oder 1000), den Grenzwerten 1 und 365, sowie mit Normalwerten zwischen 1 und 365 durchführen.
  • Ein Programm zur Terminplanung soll Feiertage berücksichtigen. Ein Sonderfall ist dann gegeben, wenn ein bestimmter Tag Feiertag in allen Bundesländern ist, außer in einem. Für dieses Bundesland und für diesen Tag muss das Programm dann differenziert reagieren.

Ist die Generierung von Testdaten zu aufwendig oder schwierig, können auch anonymisierte Echtdaten für den Test eingesetzt werden. Aus Gründen des

Vertraulichkeitsschutzes müssen Echtdaten unbedingt zuverlässig anonymisiert werden. Zu beachten bleibt, dass die anonymisierten Echtdaten u. U. nicht alle Grenzwerte und Ausnahmefälle abdecken, so dass 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 muss 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 muss 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, dass 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, dass 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, dass 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, dass 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 muss 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 Misserfolg bei diesen Eingangsprüfungen zu direkten Aktionen oder dem Testabbruch führt:

  • Die Computer-Virenfreiheit des Produktes ist durch ein aktuelles Virensuchprogramm zu überprüfen.
  • In einem Installationstest muss festgestellt werden, ob das Produkt für den späteren Einsatzzweck einfach, vollständig und nachvollziehbar zu installieren ist. Ebenfalls muss überprüft werden, wie das Produkt vollständig deinstalliert wird.
  • Die Lauffähigkeit des Produktes ist in der geplanten Einsatzumgebung zu überprüfen; dies beinhaltet insbesondere eine Überprüfung der Bildschirmaufbereitung, der Druckerausgabe, der Mausunterstützung, der Netzfähigkeit, etc.
  • Die Vollständigkeit des Produktes (Programme und Handbücher) ist zu überprüfen, z. B. durch einen Vergleich mit dem Bestandsverzeichnis, der Produktbeschreibung oder ähnlichem.
  • Es sollten Kurztests von Funktionen des Programms durchgeführt werden, die nicht explizit in den Anforderungen erwähnt wurden, im Hinblick auf Funktion, Plausibilität, Fehlerfreiheit, etc.

Funktionale Tests

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

  • Existenz der Funktion durch Aufruf im Programm und Auswertung der Programmdokumentationen.
  • Fehlerfreiheit bzw. Korrektheit der Funktion
    Um die Fehlerfreiheit bzw. Korrektheit der Funktion sicherzustellen, sind je nach Prüftiefe bei der Untersuchung unterschiedliche Testverfahren wie Black-Box-Tests, White-Box-Tests oder simulierter Produktionsbetrieb anzuwenden.
    Die in der Vorbereitungsphase erstellten Testdaten und Testfälle werden im Funktionalitätstest eingesetzt. Bei den Funktionalitätstests ist es notwendig, die Testergebnisse mit den vorgegebenen Anforderungen zu vergleichen. Außerdem ist zu überprüfen, wie das Programm bei fehlerhaften Eingabeparametern oder fehlerhafter Bedienung reagiert. Die Funktion ist auch mit den Grenzwerten der Intervalle von Eingabeparametern sowie mit Ausnahmefällen zu testen. Diese müssen entsprechend erkannt und korrekt behandelt werden.
  • Eignung der Funktion
    Die Eignung einer Funktion zeichnet sich dadurch aus, dass die Funktion
    • tatsächlich die Aufgabe im geforderten Umfang und effizient erfüllt und
    • sich leicht in die üblichen Arbeitsabläufe integrieren lässt.
    Ist die Eignung der Funktion nicht offensichtlich, bietet es sich an, dies in einem simulierten Produktionsbetrieb, aber immer noch in der Testumgebung zu testen.
  • Widerspruchsfreiheit
    Die Widerspruchsfreiheit der einzelnen Funktionen ist zu überprüfen und zwar jeweils zwischen Anforderungskatalog, Dokumentation und Programm. Eventuelle Widersprüche sind zu dokumentieren. Abweichungen zwischen Dokumentation und Programm sind so festzuhalten, dass sie bei einem späteren Einsatz des Produktes in den Ergänzungen zur Dokumentation aufgenommen werden können.

Tests weiterer funktionaler Eigenschaften

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

  • Performance
    Das Laufzeitverhalten sollte für alle geplanten Konfigurationen des Produktes ermittelt werden. Um die Performance ausreichend zu testen, sind in der Regel Tests, in denen der Produktionsbetrieb simuliert wird oder auch Pilotanwendung bei ausgewählten Anwendern sinnvoll. Es muss festgestellt werden, ob die gestellten Performanceanforderungen erfüllt sind.
  • Zuverlässigkeit
    Das Verhalten bei zufälligen oder mutwillig herbeigeführten Systemabstürzen ("Crash-Test") ist zu analysieren und es ist festzustellen, welche Schäden dabei entstehen. Es ist festzuhalten, ob nach Systemabstürzen ein ordnungsgemäßer und korrekter Wiederanlauf des Produktes möglich ist. Es ist ebenfalls zu überprüfen, ob ein direkter Zugriff auf Datenbestände unabhängig von der regulären Programmfunktion erfolgen kann. In vielen Fällen kann ein solcher Zugriff zu Datenverlusten führen und sollte dann vom Produkt verhindert werden. Ebenfalls sollte festgehalten werden, ob das Programm Möglichkeiten unterstützt, "kritische Aktionen" (z. B. Löschen, Formatieren) rückgängig zu machen.
  • Benutzerfreundlichkeit
    Ob das Produkt benutzerfreundlich ist, ist in besonderem Maße vom subjektiven Empfinden der Testperson abhängig. Jedoch können bei der Beurteilung folgende Aspekte Anhaltspunkte liefern:
    • Technik der Menüoberflächen (Pull-Down-Menüs, Scrolling, Drag & Drop, etc.),
    • Design der Menüoberflächen (z. B. Einheitlichkeit, Verständlichkeit, Menüführung),
    • Tastaturbelegung,
    • Fehlermeldungen,
    • problemloses Ansprechen von Schnittstellen (Batchbetrieb, Kommunikation, etc.),
    • Lesbarkeit der Benutzerdokumentation,
    • Hilfefunktionen.
    Die Analyse der Benutzerfreundlichkeit muss mögliche Betriebsarten des Produktes beschreiben, einschließlich des Betriebes nach Bedien- oder Betriebsfehlern, und ihre Konsequenzen und Folgerungen für die Aufrechterhaltung eines sicheren Betriebes.
  • Wartbarkeit
    Der personelle und finanzielle Aufwand für die Wartung und Pflege des Produktes sollte während des Testens ermittelt werden. Dieser kann z. B. anhand von Referenzen wie anderen Referenzinstallationen oder Tests in Fachzeitschriften oder anhand des während des Testens ermittelten Installationsaufwandes geschätzt werden. Hierfür muss dokumentiert werden, wie viele manuelle Eingriffe während der Installation notwendig waren, um die angestrebte Konfiguration zu erreichen. Sind bereits Erfahrungen mit Vorgängerversionen des getesteten Produktes gesammelt worden, sollte hinterfragt werden, wie aufwendig deren Wartung war.
    Es sollte nachgefragt werden, inwieweit Support durch den Hersteller oder Vertreiber angeboten wird und zu welchen Konditionen. Wird vom Hersteller oder Vertreiber eine Hotline angeboten, sollte auch deren Erreichbarkeit und Güte betrachtet werden.
  • Dokumentation
    Die vorliegende Dokumentation muss daraufhin überprüft werden, ob sie vollständig, korrekt und widerspruchsfrei ist. Darüber hinaus sollte sie verständlich, eindeutig, fehlerfrei und übersichtlich sein.
    Es muss weiterhin kontrolliert werden, ob sie für eine sichere Verwendung und Konfiguration ausreicht. Alle sicherheitsspezifischen Funktionen müssen beschrieben sein.

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

  • Kompatibilitätsanforderungen
  • Interoperabilität
  • Konformität zu Standards
  • Einhaltung von internen Regelungen und gesetzlichen Vorschriften
  • Softwarequalität

Sicherheitsspezifische Tests

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

  • Wirksamkeit und Korrektheit der Sicherheitsfunktionen,
  • Stärke der Sicherheitsmechanismen und
  • Unumgänglichkeit und Zwangsläufigkeit der Sicherheitsmechanismen.

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 muss durch funktionale Tests zunächst nachgewiesen werden, dass 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 Passwö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.

  • Ändern der vordefinierten Befehlsabfolge,
  • Ausführen einer zusätzlichen Funktion,
  • Direktes oder indirektes Lesen, Schreiben oder Modifizieren interner Daten,
  • Ausführen von Daten, deren Ausführung nicht vorgesehen ist,
  • Verwenden einer Funktion in einem unerwarteten Kontext oder für einen unerwarteten Zweck,
  • Aktivieren der Fehlerüberbrückung,
  • Nutzen der Verzögerung zwischen dem Zeitpunkt der Überprüfung und dem Zeitpunkt der Verwendung,
  • Unterbrechen der Abfolge durch Interrupts, oder
  • Erzeugen einer unerwarteten Eingabe für eine Funktion.

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:

  • Kann der Mechanismus innerhalb von Minuten von einem Laien allein überwunden werden, dann kann er nicht einmal als niedrig eingestuft werden.
  • Kann ein erfolgreicher Angriff von jedem bis auf einen Laien innerhalb von Minuten durchgeführt werden, dann ist der Mechanismus als niedrig einzustufen.
  • Wenn für einen erfolgreichen Angriff ein Experte benötigt wird, der mit der vorhandenen Ausstattung Tage braucht, dann ist der Mechanismus als mittel einzustufen.
  • Kann der Mechanismus nur von einem Experten mit Sonderausstattung überwunden werden, der dafür Monate braucht und eine geheime Absprache mit einem Systemverwalter treffen muss, dann ist er als hoch einzustufen.

Es muss sichergestellt werden, dass die durchgeführten Tests alle sicherheitsspezifischen Funktionen umfassen. Wichtig ist zu beachten, dass 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:

Passwortschutz:

  • Gibt es vom Hersteller voreingestellte Passwörter? Typische Beispiele für solche Passwörter sind der Produktname, der Herstellername, "SUPERVISOR", "ADMINISTRATOR", "USER", "GUEST".
  • Welche Datei ändert sich, wenn ein Passwort geändert wurde? Kann diese Datei durch eine alte Version aus einer Datensicherung ersetzt werden, um alte Passwörter zu aktivieren? Werden die Passwörter verschlüsselt gespeichert oder sind sie im Klartext auslesbar? Ist es möglich, in dieser Datei Änderungen vorzunehmen, um neue Passwörter zu aktivieren?
  • Wird der Zugang tatsächlich nach mehreren fehlerhaften Passworteingaben gesperrt?
  • Werden in Zeitschriften oder Mailboxen Programme angeboten, die die Passwörter des untersuchten Produkts ermitteln können? Für einige Standardapplikationen sind solche Programme erhältlich.
  • Wenn Dateien mit Passwörtern geschützt werden, kann durch einen Vergleich einer Datei vor und nach der Passwortänderung die Stelle ermittelt werden, an der das Passwort gespeichert wird. Ist es möglich, an dieser Stelle Änderungen oder alte Werte einzugeben, um bekannte Passwörter zu aktivieren? Werden die Passwörter verschlüsselt gespeichert? Wie ist die Stelle belegt, wenn der Passwortschutz deaktiviert ist?
  • Kann die Passwort-Prüfroutine unterbrochen werden? Gibt es Tastenkombinationen, mit denen die Passworteingabe umgangen werden kann?

Zugriffsrechte:

  • In welchen Dateien werden Zugriffsrechte gespeichert und wie werden sie geschützt?
  • Können Zugriffsrechte von Unberechtigten geändert werden?
  • Können Dateien mit alten Zugriffsrechten zurückgespielt werden und welche Rechte benötigt man dazu?
  • Können die Rechte des Administrators so eingeschränkt werden, dass er keinen Zugriff auf die Nutz- oder Protokolldaten erhält?

Datensicherung:

  • Können erstellte Datensicherungen problemlos rekonstruiert werden?
  • Können Datensicherungen durch ein Passwort geschützt werden? Wenn ja, können die oben dargestellten Untersuchungsansätze für Passwörter eingesetzt werden.

Verschlüsselung:

  • Bietet das Produkt an, Dateien oder Datensicherungen zu verschlüsseln?
  • Werden mehrere verschiedene Verschlüsselungsalgorithmen angeboten? Hierbei ist im allgemeinen folgende Faustregel zu beachten: "Je schneller ein in Software realisierter Verschlüsselungsalgorithmus ist, um so unsicherer ist er."
  • Wo werden die zur Ver- oder Entschlüsselung genutzten Schlüssel gespeichert?
    Bei einer lokalen Speicherung ist zu untersuchen, ob diese Schlüssel passwortgeschützt oder mit einem weiteren Schlüssel überschlüsselt geschützt werden. Bei einem Passwortschutz sind die obigen Punkte zu berücksichtigen. Bei einer Überschlüsselung ist zu betrachten, wie der zugehörige Schlüssel geschützt wird.
    Dazu können folgende Punkte betrachtet werden: Welche Datei ändert sich, wenn ein Schlüssel geändert wurde? Durch den Vergleich dieser Datei vor und nach der Schlüsseländerung kann die Stelle ermittelt werden, an der dieser Schlüssel gespeichert wird. Ist es möglich, an dieser Stelle Änderungen vorzunehmen, um neue Schlüssel zu aktivieren, die dann vom Anwender genutzt werden, ohne dass dieser die Kompromittierung bemerkt?
  • Gibt es vom Hersteller voreingestellte Schlüssel, die vor der erstmaligen Benutzung des Programms geändert werden müssen?
  • Was passiert, wenn bei der Entschlüsselung ein falscher Schlüssel eingegeben wird?
  • Wird nach der Verschlüsselung einer Datei die unverschlüsselte Variante gelöscht? Wenn ja, wird sie zuverlässig überschrieben? Wird vor der Löschung überprüft, ob die Verschlüsselung erfolgreich war?

Protokollierung:

  • Wird der Zugriff auf Protokolldaten für Unbefugte verwehrt?
  • Werden die zu protokollierenden Aktivitäten lückenlos aufgezeichnet?
  • Hat der Administrator die Möglichkeit aufgrund seiner privilegierten Rechte, sich unberechtigt und unbemerkt Zugriff auf Protokolldaten zu verschaffen oder kann er die Protokollierung unbemerkt deaktivieren?
  • Wie reagiert das Programm, wenn der Protokollierungsspeicher überläuft?

Darüber hinaus muss 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, dass keine solchen Schnittstellen existierten.

Pilotanwendung:

Nach Abschluss 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, muss 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, muss ü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 muss.

Beispiel:

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

Eigenschaft Notwendig/
wünschenswert
Bedeutung Produkt 1 Produkt 2 Produkt 3 Produkt 4
korrekte Kompression und Dekompression N 10 2 2 j 0
Erkennen von Bitfehlern in einer komprimierten Datei N 10 2 2 n 2
Löschung von Dateien nur nach erfolgreicher Kompression N 10 2 2 j 2
DOS -PC, 80486, 8 MB N 10 2 2 j 2
Windows-tauglich W 2 0 2 j 2
Durchsatz bei 50 MHz über 1 MB/s W 4 2 2 j 2
Kompressionsrate über 40% W 4 2 1 n 0
Online-Hilfefunktion W 3 0 0 n 2
Passwortschutz für komprimierte Dateien W 2 2 1 n 2
Bewertung     100 98
K.O.
K.O.
Preisermittlung
(maximale Kosten 50.- EUR pro Lizenz)
    49,- EUR 25,- EUR
  39,- EUR

Tabelle: Testplan für Standardsoftware

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 eine 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.

Prüffragen:

  • Werden in der Testvorbereitung die Testmethoden für die Einzeltests mit Testarten, -verfahren und -werkzeugen festgelegt?

  • Sind im Testumfang Standard-, Fehler- und Ausnahmefälle berücksichtigt?

  • Bei Einsatz von Echtdaten zu Testzwecken: Werden die Echtdaten für Tests anonymisiert?

  • Ist die Installation und Konfiguration der Testumgebung dokumentiert?

  • Erfolgt die Durchführung der Tests anhand von Testplänen?

  • Werden funktionale Tests durchgeführt, die auch fehlerhafte Eingabeparameter überprüfen?

  • Werden sicherheitsspezifische Tests durchgeführt, die auch Penetrationstests umfassen?

  • Existiert eine Dokumentation der Tests, die alle Testergebnisse anhand der Entscheidungskriterien bewertet?

Stand: 13. EL Stand 2013