Hintergrund

Testen findet nicht isoliert statt; Testaktivitäten sind immer bezogen auf Softwareentwicklungsaktivitäten. Verschiedene Entwicklungslebenszyklusmodelle erfordern verschiedene Testansätze.

 

V-Modell (sequentielles Entwicklungsmodell) 

Es existieren Varianten des V-Modells. Das Gängigste, das allgemeine V-Modell, besteht aus fünf Entwicklungsstufen und vier Teststufen. Die vier Teststufen korrespondieren mit den Entwicklungsstufen.

 

Die vier in diesem Lehrplan verwendeten Teststufen nach dem allgemeinen V-Modell sind:

  • Komponententest (unit test)
  • Integrationstest
  • Systemtest
  • Abnahmetest

 

In der Praxis kann ein V-Modell, entsprechend dem Projekt(-vorgehen) oder Produkt, das entwickelt und getestet werden soll, weniger, mehr oder andere Stufen aufweisen. Beispielsweise kann es Komponentenintegrationstests nach Komponententests oder Systemintegrationstests nach Systemtests geben.

Entwicklungsdokumente (wie Geschäftsvorfälle oder Anwendungsfälle, Anforderungsspezifikationen, Entwurfsdokumente und Code), die während der Entwicklung entstehen, sind oft die Basis für Tests in einer oder mehreren Stufen.  Referenzen für generische Arbeitspapiere können unter anderem in folgenden Standards gefunden werden:

  • CMMI-2004 (Capability Maturity Model Integration)
  • IEEE/IEC 12207-2008 (‘Software life cycle processes’)

 

Verifizierung und Validierung (und früher Testentwurf) können während der Erstellung der Entwicklungsdokumente durchgeführt werden.

 

Iterativ-inkrementelle Entwicklungsmodelle 

Bei iterativ-inkrementeller Entwicklung werden Anforderungen, Entwurf, Entwicklung und Test in einer Reihe kurzer Entwicklungszyklen durchlaufen. Beispiele hierfür sind Prototyping, Rapid Application Development (RAD), der Rational Unified Process (RUP) und agile Entwicklungsmodelle. Ein System, welches unter Nutzung dieser Entwicklungsmodelle erstellt wird, kann in jeder Iteration die verschiedenen Teststufen durchlaufen. Jedes Inkrement bzw. Erweiterung, die der bisherigen Entwicklung hinzugefügt wird, ergibt ein wachsendes System, das ebenso getestet werden muss. Regressionstests haben daher bei allen Iterationen nach dem ersten Zyklus eine zunehmende Bedeutung. Verifizierung und Validierung können für jede Erweiterung durchgeführt werden.

 

Testen innerhalb eines Entwicklungslebenszyklus

In jedem Entwicklungslebenszyklus findet man einige Charakteristika für gutes Testen:

  • Zu jeder Entwicklungsaktivität gibt es eine zugehörige Aktivität im Testen.
  • Jede Teststufe hat Testziele, die spezifisch für diese Stufe sind.
  • Die Analyse und der Entwurf der Tests für eine Teststufe sollten während der zugehörigen Entwicklungsaktivität beginnen.
  • Die Tester sollten im Reviewprozess der Entwicklungsdokumente (Anforderungen, Analyse und Design) eingebunden werden, sobald eine Vorabversion eines der Dokumente verfügbar ist.

 

Teststufen können in Abhängigkeit des Projekts oder der Systemarchitektur kombiniert oder neu festgelegt (geordnet) werden. Zum Beispiel kann ein Käufer für die Integration kommerzieller Standardsoftware den Integrationstest auf Systemebene (z.B. zur Integration in die Infrastruktur und mit anderen Systemen oder zur Nutzung in der Produktivumgebung) und den Abnahmetest (beispielsweise funktionale und/oder nicht-funktionale Tests und Nutzer- und/oder Betriebstests) durchführen.

Pin It on Pinterest

Shares