Konzept: Teststrategie
Diese Richtlinie beschreibt, wie eine Teststrategie entwickelt wird, die den allgemeinen Ansatz und die Ziele der Testaufgaben beschreiben soll.
Beziehungen
Zugehörige Elemente
Hauptbeschreibung

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.

Tabelle mit anforderungs- und codebasierten Testbereichen

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.

Tabelle mit manuellen Testbereichen

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