Eine Strategie für den Testabschnitt eines Projekts beschreibt den allgemeinen Ansatz und die allgemeinen Ziele der
Testaufgaben. Sie beinhaltet die zu behandelnden Testabschnitte (Einheit, Integration und System) und die
auszuführenden Testarten (Funktions-, Leistungs-, Belastungs- und Stresstest).
Die Strategie definiert Folgendes:
-
Die Testtechniken und Testtools, die verwendet werden sollen.
-
Die Kriterien für den Testabschluss und den Testerfolg. Beispielsweise kann mit den Kriterien festgelegt werden,
dass die Software in den Abnahmetest geht, wenn 95 % der Testfälle erfolgreich ausgeführt wurden. Ein anderes
Kriterium ist die Codeabdeckung. Mit diesem Kriterium kann bei einem sicherheitskritischen System festgelegt
werden, dass 100 % des Codes durch die Tests abgedeckt sein müssen.
-
Besondere Tests wirken sich auf die Ressourcenanforderungen oder den Zeitplan aus, z. B.:
-
Tests aller Schnittstellen zu externen Systemen
-
Simulierung von physischen Beschädigungen oder Sicherheitsbedrohungen.
Einige Organisationen haben unternehmensweite Teststrategien definiert. In diesem Fall müssen Sie versuchen, diese
Strategien auf Ihr spezifisches Projekt anzuwenden.
Die wichtigsten Abmessungen für die Testaufgaben sind folgende:
-
Mit welcher Iteration arbeiten Sie, und was sind die Ziele dieser Iteration?
-
Welchen Testabschnitt führen Sie gerade aus (Einheitentest, Integrationstest, Systemtest)? Sie können eventuell
alle Testabschnitte in einer Iteration ausführen.
Sehen Sie sich an, wie die Merkmale Ihrer Testaufgaben sich ändern können, je nachdem, wo in den zuvor erwähnten
Testdimensionen Sie sich befinden. Es gibt viele Merkmale, die Sie sich ansehen können, z. B. erforderliche Ressourcen
und benötigte Zeit, aber an diesem Punkt sollten Sie sich auf die Dinge konzentrieren, die wichtig für die Definition
Ihrer Teststrategie sind:
-
Testtypen (Funktions-, Stress-, Volumen-, Leistungs-, Bedienbarkeits-, Verteilungstest usw.)
-
Verwendete Bewertungskriterien (codebasierte Testabdeckung, anforderungsbasierte Testabdeckung, Anzahl der Mängel,
mittlere Zeit zwischen auftretenden Fehlern usw.)
-
Verwendete Testtechniken (manuell und automatisch)
Es gibt kein allgemeingültiges Muster dafür, wie die Testtypen auf die Testzyklen verteilt werden. Sie konzentrieren
sich auf verschiedene Testtypen, die durch die Anzahl der Iterationen, die Größe der Iteration und die Art des
getesteten Projekts bestimmt werden.
Sie werden feststellen, dass der Systemtest deutlich darauf abzielt, sicherzustellen, dass Sie alle Anforderungen, die
durch eine Gruppe von Testfällen zum Ausdruck gebracht werden, abdecken. Das bedeutet, dass die Erfüllungskriterien
sich auf die anforderungsbasierte Testabdeckung konzentrieren. Beim Integrations- und Einheitentest werden Sie
feststellen, dass die codebasierte Testabdeckung das bessere Erfüllungskriterium ist. Die nächste Abbildung zeigt, wie
die Verwendung dieser zwei Ansätze zur Messung der Testabdeckung sich ändern kann, wenn Sie neue Iterationen Ihrer
Software entwickeln.
-
Der Testplan muss Gruppen von Erfüllungskriterien für den Einheitentest, den Integrationstest und den Systemtest
definieren.
-
Möglicherweise haben Sie verschiedene Gruppen von Erfüllungskriterien für einzelne Iterationen definiert.
Im Projekt sollten Sie in Erwägung ziehen, Ihre Tests weitmöglichst zu automatisieren, insbesondere die Testarten, die
sie mehrmals wiederholen. Denken Sie daran, dass die Erstellung und Verwaltung automatisierter Tests Zeit und
Ressourcen kostet. In jedem Projekt müssen Tests in einem gewissen Umfang manuell durchgeführt werden. Die folgende
Abbildung veranschaulicht, wann und in welchem Testabschnitt Sie wahrscheinlich manuelle Tests durchführen müssen.
Beispiel
Die folgenden Tabellen zeigen, wann die verschiedenen Testtypen identifiziert werden, und stellen die zu definierenden
Erfüllungskriterien beispielhaft dar. Die erste Tabelle zeigt ein typisches MIS-Projekt.
Iterationstest
|
Systemtest
|
Integrationstest
|
Einheitentest
|
Iteration 1
|
Automatischer Leistungstest für alle Anwendungsfälle.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel des Schweregrads 1
identifiziert.
|
Keiner
|
Formlose Tests
|
Iteration 2
|
Automatischer Leistungs- und Funktionstest für alle neuen Anwendungsfälle und vorheriger Test als
Regressionstest.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1 und 2 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel des Schweregrads 1
oder 2 identifiziert.
|
Keiner
|
Formlose Tests
|
Iteration 3
|
Automatischer Funktions- und Negativtest für alle neuen Anwendungsfälle sowie alle vorherigen Tests als
Regressionstest; 95 % der Testfälle müssen erfolgreich abgeschlossen werden.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1, 2 und 3 wurden identifiziert.
|
Automatischer Test, 70 % Codeabdeckung erforderlich
|
Formlose Tests
|
Iteration 4
|
Automatischer Funktions- und Negativtest für alle Anwendungsfälle, manueller Test für alle nicht
automatischen Teile sowie alle vorherigen Tests als Regressionstest. 100 % der Testfälle müssen
erfolgreich abgeschlossen werden.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1, 2 und 3 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel des Schweregrads 1
oder 2 identifiziert.
|
Automatischer Test, 80 % Codeabdeckung erforderlich
|
Formlose Tests
|
Die zweite Tabelle zeigt die Arten der Test- und Erfüllungskriterien für typische sicherheitskritische Systeme.
Iterationstest
|
Systemtest
|
Integrationstest
|
Einheitentest
|
Iteration 1
|
Automatischer Leistungstest für alle Anwendungsfälle; 100 % Testabdeckung erforderlich.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel identifiziert.
|
Keiner
|
Keiner
|
Iteration 2
|
Automatischer Leistungs-, Funktions- und Negativtest für alle Anwendungsfälle; 100 % Testabdeckung
erforderlich.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1 und 2 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel identifiziert.
|
Automatische Leistungstests
|
Formlose Tests
|
Iteration 3
|
Automatischer Leistungs-, Funktions-, Negativ- und Dokumentationstest für alle Anwendungsfälle; 100 %
Testabdeckung erforderlich.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1, 2 und 3 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel identifiziert.
|
Automatischer Leistungstest und vorheriger Test als Regressionstest.
|
Automatischer Test, 70 % Codeabdeckung erforderlich
|
Iteration 4
|
Automatischer Leistungs-, Funktions-, Negativ- und Dokumentationstest für alle Anwendungsfälle; 100 %
Testabdeckung erforderlich.
· Alle geplanten Tests wurden durchgeführt.
· Alle Mängel des Schweregrads 1, 2 und 3 wurden behoben.
· Alle geplanten Tests wurden erneut durchgeführt, und es wurden keine neuen Mängel identifiziert.
|
Automatischer Leistungstest und vorheriger Test als Regressionstest.
|
Automatischer Test, 80 % Codeabdeckung erforderlich
|
|