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.
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.
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.
|