Bundesamt für Sicherheit in der Informationstechnik

M 2.82 Entwicklung eines Testplans für Standardsoftware

Verantwortlich für Initiierung: Behörden-/Unternehmensleitung

Verantwortlich für Umsetzung: Leiter Fachabteilung, Leiter IT

Die im nachfolgenden beschriebene Vorgehensweise beim Testen orientiert sich an den Standardwerken DIN ISO / IEC 12119 "Software-Erzeugnisse, Qualitätsanforderungen und Prüfbestimmungen", Vorgehensmodell für die Planung und Durchführung von IT-Vorhaben (V-Modell) und dem Handbuch für die Bewertung der Sicherheit von Systemen der Informationstechnik ( ITSEM ), die als weiterführende Literatur empfohlen werden.

Vor der Entscheidung für ein geeignetes Standardsoftwareprodukt müssen die nach der Vorauswahl (siehe M 2.81 Vorauswahl eines geeigneten Standardsoftwareproduktes ) in die engere Wahl gezogenen Produkte als Testlizenz beschafft und ausreichend getestet werden. War es aufgrund zeitlicher Beschränkungen, institutionsinterner Beschaffungsempfehlungen (Einhaltung von Hausstandards) oder anderen Gründen nicht möglich, dass Produkt vor der Beschaffung zu testen, müssen auf jeden Fall Tests vor der endgültigen Inbetriebnahme durchgeführt werden. Die Ergebnisse dieser Tests liefern dann die Grundlage für die Installationsvorschriften und anderer Freigabe-Bedingungen.

Obwohl bereits bei der Vorauswahl eine Überprüfung der notwendigen Anforderungen an das Produkt aufgrund der Herstelleraussagen stattgefunden hat, kann man nicht davon ausgehen, dass diese Anforderungen auch im gewünschten Maße erfüllt werden. Vielmehr muss nun durch systematisches Testen die Eignung und Zuverlässigkeit des Produktes auf Grundlage des Anforderungskataloges überprüft werden, um das geeignetste Produkt auszuwählen.

Dabei bietet es sich an, das Testen in vier Bereiche einzuteilen:

  • Eingangsprüfungen (Prüfung auf Computer-Viren, Lauffähigkeit in der gewünschten IT-Einsatzumgebung, ....),
  • funktionale Tests (Überprüfung der funktionalen Anforderungen),
  • Tests weiterer funktionaler Eigenschaften (Überprüfung von Kompatibilität, Performance, Interoperabilität, Konformität mit Regelungen oder Gesetzen, Benutzerfreundlichkeit, Wartbarkeit, Dokumentation), und
  • sicherheitsspezifische Tests (Überprüfung der Sicherheitsanforderungen).

Das prinzipielle Vorgehen beim Testen von Standardsoftware zeigt die folgende Abbildung.

Anhand der bei der Vorauswahl erstellten Hitliste sind diejenigen Produkte auszuwählen, die getestet werden sollen. Anschließend wird ein Testplan entwickelt.

Dieser umfasst folgende Inhalte:

  • Festlegung der Testinhalte anhand des Anforderungskataloges,
  • Überprüfung von Referenzen,
  • Festlegung des Gesamtprüfaufwandes,
  • Zeitplanung einschließlich Prüfaufwand je Testinhalt,
  • Festlegung der Testverantwortlichen,
  • Testumgebung,
  • Inhalt der Testdokumentation,
  • Festlegung von Entscheidungskriterien.

Die einzelnen genannten Punkte werden nachfolgend erläutert.

Festlegung der Testinhalte anhand des Anforderungskataloges

Aus dem Anforderungskatalog werden diejenigen Anforderungen ausgewählt, die überprüft werden sollen. Dies sollten insbesondere diejenigen Eigenschaften sein, die eine große Bedeutung oder einen hohen Vertrauensanspruch besitzen.

Überprüfung von Referenzen

Bei der Vorauswahl (siehe M 2.81 Vorauswahl eines geeigneten Standardsoftwareproduktes ) wurden bereits erste Referenzen über die zu testenden Produkte eingeholt. Diese können ersatzweise herangezogen werden, wenn man der jeweiligen externen Testgruppe ausreichendes Vertrauen entgegenbringt.

Wurde für das Produkt ein Zertifikat nach den Kriterien für die Bewertung der Sicherheit von Systemen der Informationstechnik ( ITSEC ) oder den Common Criteria ( CC ) vergeben, ist anhand des Zertifizierungsreportes zu prüfen, inwieweit die dort dokumentierten Testergebnisse berücksichtigt werden können.

Gegebenenfalls können dann eigene Test unterbleiben oder in geringerem Umfang stattfinden. Die frei werdenden Kapazitäten können auf andere Testinhalte verteilt werden.

Festlegung des Gesamtprüfaufwandes

Um den Aufwand für die Tests nicht ausufern zu lassen, sollte vorab der Gesamtprüfaufwand festgelegt werden, z. B. in Personentagen oder durch Fristsetzung.

Zeitplanung einschließlich Prüfaufwand je Testinhalt

Beim Testen mehrerer Produkte empfiehlt es sich, diese vergleichend zu testen. Das heißt, alle Produkte werden von einer Testgruppe bzgl. einer Anforderung des Anforderungskataloges getestet. Der Prüfaufwand ist damit für jede Anforderung des Anforderungskataloges festzulegen und wird damit automatisch gleichmäßig auf alle zu testenden Produkte verteilt. Der Prüfaufwand ergibt sich dabei aus Prüftiefe und Komplexität der Eigenschaft. Die Prüftiefe der jeweiligen Eigenschaften sollte sich zum einen an ihrem Vertrauensanspruch, das heißt an dem Vertrauen orientieren, das der Korrektheit dieser Eigenschaft entgegengebracht werden muss.

Zum anderen muss aber auch die Fehleranfälligkeit und Nutzungshäufigkeit der jeweiligen Eigenschaft berücksichtigt werden. Ausführlichere Informationen sind der Norm ISO 12119 zu entnehmen.

Hinweise:

  • Für sicherheitsspezifische Anforderungen kann die Prüftiefe entsprechend der geforderten Mechanismenstärke zusätzlich relativiert werden.
  • Der Prüfaufwand für die Eingangsprüfungen sollte gemessen an den anderen Tests gering sein.

Abschließend ist der Gesamtprüfaufwand entsprechend dem relativen Prüfaufwand der jeweiligen Eigenschaft auf die einzelnen Testabschnitte zu verteilen.

Festlegung der Testverantwortlichen

Für jeden Testinhalt ist nun festzulegen, welche Aufgaben durchzuführen sind und wer dafür verantwortlich ist. Insbesondere ist zu beachten, dass bei einigen Testinhalten der Personal- bzw. Betriebsrat, der Datenschutzbeauftragte und der IT-Sicherheitsbeauftragte zu beteiligen ist.

Testumgebung

Testen ist immer destruktiv, da vorsätzlich nach Fehlern gesucht wird. Aus diesem Grund muss das Testen immer in einer isolierten Testumgebung erfolgen.

Die Testumgebung sollte nach Möglichkeit ein genaues funktionales Abbild der Produktionsumgebung sein. In der Regel ist es jedoch nicht wirtschaftlich, die Produktionsumgebung in vollem Umfang nachzubilden.

Damit für die ausgewählten Produkte gleiche Randbedingungen gegeben sind, sollte eine Referenztestumgebung definiert werden. Für einzelne Tests kann diese weiter angepasst oder eingeschränkt werden.

Die für die einzelnen Prüfungen benötigten Ressourcen (Betriebsmittel, IT-Infrastruktur) sind zu spezifizieren. Es sollte im Detail beschrieben werden, wann und in welchem Umfang sie verfügbar sein müssen.

Wichtig ist, dass alle Betriebssysteme in allen im Produktionsbetrieb eingesetzten Versionen (Releases) in der Testumgebung zur Verfügung stehen. Die Intention ist dabei die Ermittlung von systembedingten Schwachstellen von Komponenten der Produktionsumgebung im Zusammenspiel mit dem zu installierenden Standardsoftwareprodukt. In Ausnahmefällen, wenn sich Aspekte verallgemeinern lassen, kann auf einzelne Komponenten verzichtet werden.

Folgende weitere Aspekte sind unbedingt zu beachten und helfen, eine sichere und geeignete Testumgebung aufzubauen:

  • Die Freiheit von Schadprogrammen der Testumgebung ist durch ein aktuelles Viren-Suchprogramm sicherzustellen.
  • Die Testumgebung muss frei sein von Seiteneffekten auf den Echtbetrieb. Um Wechselwirkungen von vornherein zu vermeiden, empfiehlt es sich, dedizierte IT-Systeme zu installieren.
  • Die Zugriffsrechte müssen in der Testumgebung derart konfiguriert werden, wie sie dem Produktionsbetrieb entsprechen.
  • Der Zutritt und Zugang zur Testumgebung muss geregelt sein.
  • Es muss sichergestellt werden, dass das Produkt genau in der Testumgebung ermittelten Konfiguration in den Produktionsbetrieb übernommen wird. Daher ist in der Testumgebung ein geeignetes Verfahren zum Integritätsschutz einzusetzen (digitale Signaturen, Checksummen).
  • Die Kosten für den Aufbau der Testumgebung müssen angemessen sein.

Nach Beendigung aller geplanten Tests ist zu entscheiden, ob die Testumgebung abgebaut werden soll. Ggf. sind weitere Tests auch nach der Beschaffung eines Produktes notwendig, so dass es eventuell wirtschaftlich ist, die Testumgebung vorzuhalten. Vor dem Abbau der Testumgebung sind die Testdaten zu löschen, falls sie nicht mehr benötigt werden (z. B. für eine spätere Installation). Druckerzeugnisse sind ordnungsgemäß zu entsorgen, Programme sind zu deinstallieren. Die Testlizenzen der nicht ausgewählten Produkte sind zurückzugeben.

Inhalt der Testdokumentation

Im Testplan ist vorzugeben, wie ausführlich die Testdokumentation zu erstellen ist. Hierbei sind die Aspekte der Nachvollziehbarkeit, Reproduzierbarkeit und Vollständigkeit zu berücksichtigen.

Die Testdokumentation muss Testpläne, -ziele, -verfahren und -ergebnisse enthalten und die Übereinstimmung zwischen den Tests und den spezifizierten Anforderungen beschreiben. Sämtliche Testaktivitäten sowie die getroffene Testbewertung (inklusive Entscheidungsargumentation) sind schriftlich festzuhalten. Dazu gehören im einzelnen

  • Produktbezeichnung und Beschreibung,
  • Testbeginn, -ende und -aufwand,
  • Testverantwortliche,
  • Konfiguration der Testumgebung,
  • Beschreibung der Testfälle,
  • Entscheidungskriterien, Testergebnisse und Argumentationsketten, und
  • nicht erfüllte Anforderungen des Anforderungskataloges.

Der Testgruppe sollte eine Möglichkeit zur übersichtlichen Dokumentation und Protokollierung der Testaktivitäten und -ergebnisse zur Verfügung gestellt werden (z. B. Protokollierungstool, Formblätter o. Ä. ).

Wird beim Testen ein automatisiertes Werkzeug verwendet, muss die Testdokumentation ausreichende Informationen über dieses Werkzeug und die Art seines Einsatzes enthalten, damit die Entscheidung nachvollzogen werden kann.

Festlegung von Entscheidungskriterien

Bei der Bewertung der jeweiligen Testinhalte kann beispielsweise folgende dreistufige Skala verwendet werden:

Note   Entscheidungskriterien
0 - Anforderungen sind nicht erfüllt.
  oder  
  - Es wurden nicht tolerierbare Fehler festgestellt, die sich nicht beheben lassen.
1 - Anforderungen sind erfüllt, aber es bestehen Vorbehalte (z. B. Funktion ist nur eingeschränkt geeignet).
  oder  
  - Es sind geringfügige Fehler festgestellt worden. Diese spielen nur eine untergeordnete Rolle, da sie tolerierbare Auswirkungen auf den Produktionsbetrieb haben oder da sie nur mit vernachlässigbarer Wahrscheinlichkeit vorkommen können.
2 - Anforderungen sind in vollem Umfang erfüllt.
  oder  
  - Fehler, die ggf. aufgetaucht sind, sind entweder zu beheben oder haben für den Betrieb keinerlei Bedeutung.

Tabelle: Bewertungsskala

Sind Fehler aufgetaucht, die nicht reproduziert werden können, hat der Prüfer zu entscheiden, welcher Kategorie (Note) der Fehler zuzuordnen ist.

Sind Fehler aufgetreten, die während des Tests behoben werden können, ist nach deren Behebung erneut im erforderlichen Umfang zu testen.

Beispiel:

Das Beispiel des Kompressionsprogramms aus M 2.81 Vorauswahl eines geeigneten Standardsoftwareproduktes wird hier fortgesetzt, um eine Möglichkeit zu beschreiben, den Prüfaufwand für jede Anforderung des Anforderungskataloges festzulegen. Hier wird der Prüfaufwand aus Prüftiefe und Komplexität abgeleitet. Der Vertrauensanspruch kennzeichnet den Bedarf an Vertrauen in die Eigenschaft.

Die Nutzungshäufigkeit, Fehleranfälligkeit und Komplexität einer Eigenschaft werden wie folgt bewertet:

  • 1 bedeutet "niedrig",
  • 2 bedeutet "mittel",
  • 3 bedeutet "hoch".

Ein besonderer Fall ist gegeben, wenn eine unveränderbare Eigenschaft des Produktes betrachtet werden soll, die unabhängig von der Fehleranfälligkeit oder Nutzungshäufigkeit ist. Für diesen Fall wird der Wert 0 vergeben. Für das Beispiel des Kompressionsprogramms ergibt sich folgende Abbildung:

In diesem Beispiel wurde der Prüfaufwand folgendermaßen definiert:

Prüfaufwand = Komplexität * Prüftiefe

dabei ist

Prüftiefe = Vertrauensanspruch + Fehleranfälligkeit + Nutzungshäufigkeit

(Die Prozentzahlen für den Prüfaufwand in der letzten Spalte der Tabelle ergeben sich aus den für den Prüfaufwand errechneten Werten bei Division durch die Summe dieser Werte.)

Ein Beispiel für eine andere Methode, den Prüfaufwand zu berechnen und die Prüfergebnisse zu bewerten, findet sich in der Norm ISO 12119. Hier wird folgende Gewichtung der einzelnen Anforderungen vorgenommen: Bewertung jedes Prüfinhaltes =(Komplexität+Fehleranfälligkeit) * (Benutzungshäufigkeit + Wichtigkeit).

Letztendlich muss der Testverantwortliche eine dem Produkt und der Institution adäquate Bewertungsmethode individuell festlegen.

Nach Erstellung des Testplans wird für jeden im Testplan spezifizierten Testinhalt ein Tester oder eine Testgruppe mit der Durchführung des ihr zugeteilten Tests beauftragt. Der Testplan ist der Testgruppe zu übergeben und die für die Einzeltests vorgegebenen Zeiten sind mitzuteilen.

Prüffragen:

  • Ist ein Testplan für das Testen von Standardsoftware auf Basis des Anforderungskataloges erstellt?

  • Ist die Testumgebung logisch oder physisch von der Produktivumgebung getrennt?

  • Existiert eine nachvollziehbare, reproduzierbare und vollständige Testdokumentation?

  • Enthält die Testdokumentation Testpläne, -ziele, -verfahren und -ergebnisse und zeigt die Übereinstimmung zwischen den Tests und den spezifizierten Anforderungen?

Stand: 13. EL Stand 2013