Disziplin: Test
Diese Disziplin enthält eine Anleitung für die Auswertung und Bewertung der Produktqualität.
Beziehungen
Hauptbeschreibung

Die Disziplin Test dient in vielerlei Hinsicht als Serviceprovider für die anderen Disziplinen. Der Schwerpunkt der Tests liegt primär auf der Auswertung bzw. Bewertung der Produktqualität. Bei den Tests werden die folgenden Kernverfahren angewendet:

  • Mängel in der Softwarequalität finden und dokumentieren
  • Über erreichte Softwarequalität beraten
  • Im Design und in den Anforderungsspezifikationen getroffene Annahmen durch konkrete Demonstration validieren und beweisen
  • Validieren, dass das Softwareprodukt gemäß Design funktioniert
  • Validieren, dass die Anforderungen korrekt implementiert wurden.

Es besteht ein interessanter Unterschied zwischen der Disziplin Test und den anderen Disziplinen in RUP. Die Aufgaben in der Disziplin Test bestehen im Wesentlichen darin, die Schwächen im Softwareprodukt zu ermitteln und offen zu legen. Dies ist insofern interessant, als Sie, um den größten Nutzen daraus zu ziehen, einer völlig anderen Philosophie folgen müssen als in den Disziplinen Anforderungen, Analyse & Design und Implementierung. Der subtile Unterschied besteht darin, dass der Schwerpunkt dieser drei Disziplinen auf Vollständigkeit liegt, wohingegen in der Disziplin Test der Fokus auf Unvollständigkeit liegt.

Ein solider Test baut auf Fragen wie den folgenden auf:

  • Unter welchen Bedingungen versagt die Software?
  • In welchen Situationen funktioniert die Software nicht erwartungsgemäß?

Der Test prüft alle Annahmen, Risiken und Unsicherheitsfaktoren, die der Arbeit anderer Disziplinen innewohnen, gründlich. Er zeigt die ermittelten Problempunkte ganz konkret auf und bewertet sie unparteiisch. Beim Testen sollten Sie zwei Extreme zu vermeiden suchen:

  • Einen Ansatz, der die Software nicht angemessen bzw. nicht effektiv auf Herz und Nieren prüft und ihre Probleme und Schwächen nicht offenlegt
  • Einen übertrieben negativen oder gar destruktiven Ansatz - dies birgt die Gefahr in sich, dass eine angemessene Qualität des Softwareprodukts nicht erkannt wird und der Test die Akzeptanz der anderen Disziplinen verliert.

Aus verschiedenen Umfragen und Veröffentlichungen geht hervor, dass Softwaretests 30 bis 50 Prozent der Gesamtkosten der Softwareentwicklung ausmachen. Daher ist es einigermaßen überraschend, dass die meisten Leute glauben, dass Computersoftware vor der Auslieferung nicht ausreichend getestet wird. Dieser Widerspruch lässt sich auf einige Schlüsselfragen zurückführen:

  • Softwaretests sind schwierig. Wie kann man die verschiedenen Verhaltensweisen eines bestimmten Programms quantifizieren?
  • Tests werden normalerweise ohne klare Methodik durchgeführt. Dabei werden Ergebnisse erzielt, die je nach Projekt und Organisation variieren. Erfolg ist in erster Linie ein auf Qualität und individuellem Know-how beruhender Faktor.
  • Produktivitätstools werden nicht ausreichend eingesetzt, was zur Folge hat, dass die schwierigen Testaspekte nicht bewältigt werden können. Abgesehen vom Mangel an automatisierter Testausführung werden viele Tests ohne Tools zur effektiven Verwaltung umfangreicher Testdaten und Testergebnisse durchgeführt. Software, die flexibel und komplex ist, kann unmöglich in ihrer Gänze getestet werden. Wenn Sie eine klar konzipierte Methodik verwenden und technologisch ausgereifte Tools einsetzen, können Sie die Produktivität und Effektivität von Softwaretests verbessern.

Qualitativ hochwertige Software ist unabdingbar für den Erfolg sicherheitskritischer Systeme, die, wenn sie versagen, Menschen Schaden zufügen können. Beispiele: Flugsicherung, Raketensteuerung, Medikamentenlieferung. Wie kritisch ein typisches MIS-System sein kann, ist vielleicht nicht sofort deutlich zu erkennen, doch es ist wahrscheinlich, dass die Auswirkungen eines Mangels das Unternehmen, das die Software einsetzt, viel Geld kosten kann, wenn es Umsatzeinbußen hinnehmen oder einen Rechtsstreit führen muss. Im Informationszeitalter, da der Bedarf an Services, die elektronisch über das Internet bereitgestellt werden, zunimmt, gelten viele MIS-Systeme jetzt als unternehmenskritisch, d. h., wenn Fehler auftreten, können Unternehmen ihre Funktion nicht erfüllen und müssen massive Verluste hinnehmen.

Ein Ansatz, der sich kontinuierlich auf Qualität konzentriert, kann, wenn er in einem frühen Stadium des Softwarelebenszyklus eingeleitet wird, die Kosten für die Fertigstellung und Verwaltung der Software erheblich verringern. Damit wird das Risiko, dass Software schlechter Qualität implementiert wird, deutlich gemindert.

Beziehung zu anderen Disziplinen

Die Disziplin Test steht in enger Beziehung mit anderen Disziplinen :

  • Die Disziplin Anforderungen erfasst Anforderungen für das Softwareprodukt. Diese Anforderungen sind primäre Eingaben für die Identifizierung der durchzuführenden Tests.
  • Die Disziplin Analyse und Design bestimmt das richtige Design für das Softwareprodukt. Das Design ist eine weitere wichtige Eingabe für die Identifizierung der durchzuführenden Tests.
  • Die Disziplin Implementierung erzeugt Builds des Softwareprodukts, die von der Disziplin Test validiert werden. In einer Iteration werden mehrere Builds getestet, normalerweise ein Build pro Testzyklus.
  • Die Disziplin Deployment stellt dem Endbenutzer das vollständige Softwareprodukt zur Verfügung. Zuvor wird die Software von der Disziplin Test validiert, der Betatest und der Abnahmetest werden oft beim Deployment durchgeführt.
  • Die Disziplin Umgebung entwickelt und verwaltet die Artefakte, die beim Test verwendet werden, z. B. Testrichtlinien und Testumgebung.
  • Die Disziplin Projektmanagement plant das Projekt und die Arbeit in den einzelnen Iterationen. Dieses Artefakt wird in einem Iterationsplan beschrieben und wird verwendet, wenn Sie den richtigen Bewertungsauftrag für den Test definiert haben.
  • Die Disziplin Konfigurations- und Änderungsmanagement steuert Änderungen im Projektteam. Der Test stellt sicher, dass alle Änderungen richtig durchgeführt wurden.

Weiterführende Literatur

Es wird empfohlen, das Buch von Kaner, Bach & Pettichord Lessons Learned in Software Testing [KAN01] zu lesen, das eine ausgezeichnete Zusammenstellung wichtiger Punkte für Testteams enthält.

Weitere Informationen