Melden Sie sich hier an, um auf Kommentare und die Whitepaper-Datenbank zugreifen zu können.

Kein Log-In? Dann jetzt kostenlos registrieren.

Falls Sie Ihr Passwort vergessen haben, können Sie es hier per E-Mail anfordern.

Der Zugang zur Reseller Only!-Community ist registrierten Fachhändlern, Systemhäusern und Dienstleistern vorbehalten.

Registrieren Sie sich hier, um Zugang zu diesem Bereich zu beantragen. Die Freigabe Ihres Zugangs erfolgt nach Prüfung Ihrer Anmeldung durch die Redaktion.

09.12.1998 - 

Trotz erwiesener Wirksamkeit

Softwaretests fallen nicht selten dem Zeitdruck zum Opfer

Die Notwendigkeit des Software-Testings ist inzwischen allgemein akzeptiert. Dennoch werden die Prüfverfahren oft nur zur Fehlersuche am Ende der Anwendungsentwicklung anstatt während des Entwicklungsprozesses zur Qualitätsverbesserung eingesetzt. Mit Szenekenner Dieter Rombach, Leiter des Fraunhofer-Instituts für experimentelles Software-Engineering in Kaiserslautern, sprach CW-Redakteur Sascha Alexander auf der Münchner Eurostar.

CW: Welche Rolle spielen Tests heute bei der Anwendungsentwicklung?

Rombach: Es ist allgemein akzeptiert, daß Tests eine zentrale Rolle bei der Anwendungsentwicklung spielen. Allerdings muß man feststellen, daß sie in der Praxis zu einseitig für die Fehlerfindung und zu spät im Entwicklungsprozeß eingesetzt werden. Es ist aus vielen Studien bekannt, daß spät entdeckte Fehler ein Vielfaches an Korrekturkosten erfordern. Außerdem weiß man, daß Inspektionen, also menschliches Testen, in den frühen Phasen der Entwicklung sehr effektiv und kostengünstig eingesetzt werden können. Dies führt nicht nur zur Reduktion der Überarbeitungskosten, sondern ermöglicht auch eine bessere Abschätzung der zu erwartenden Qualität. Geeignete Kombinationen von Inspektion und Test können, wie unter anderem an Beispielen von Nasa-Projekten belegt wurde, den Entwicklungsaufwand um bis zu 30 Prozent und die Fehlerraten auf Null reduzieren.

CW: Oft ist der Zeitdruck ein Grund, warum die Tests zu kurz kommen.

Rombach: In der Praxis wird dem Testen ein erheblicher Aufwand eingeräumt - im allgemeinen über 50 Prozent des gesamten Entwicklungsaufwands. Allerdings beginnt das Testen zu spät und klare Terminierungskriterien fehlen. Zu spät gefundene Fehler, die ihren Ursprung in frühen Stadien wie der Anforderungsphase haben, werden unter Zeitdruck nur unsystematisch über sogenannte Patches behoben. Damit werden aber neue Probleme für zukünftige Wartungsphasen oder in bezug auf neue Systemvarianten geschaffen. Dieses Phänomen kennt jeder Software-Entwickler.

Ein weiteres Problem besteht in der Unklarheit, wann das Testen beendet werden kann. In der Praxis wird der Abschluß meist durch das Projektende definiert. Wenn man sich aber bis zu diesem Zeitpunkt nur auf die Fehlersuche beschränkt, ist es meist unmöglich, genügend Tests auf das gesamte, fertig entwickelte Softwaresystem anzuwenden, um Vorhersagen bezüglich des Einsatzes in der Praxis machen zu können.

CW: Ist die von Ihnen geforderte Vorgehensweise auch in kleinen und mittelständischen Unternehmen möglich?

Rombach: Da die Einführung geeigneter Inspektionsmethoden kaum Mehraufwand bedeutet, andererseits aber Entwicklungsaufwand in späteren Phasen erspart, stellt die kombinierte Inspektions- und Teststrategie gerade für kleine und mittelständische Unternehmen einen geeigneten Ansatz dar. Systematische Inspektionen als Teil der Entwicklungskultur motivieren zudem die Anwender, indem sie Erfahrungen aus guten und schlechten Testpraktiken sammeln.

CW: Soweit der Idealfall. Wie sauber wird heute denn wirklich getestet?

Rombach: Die Qualität des Testens und Inspizierens wird heute mehr durch qualifizierte Personen als durch die eingesetzten Techniken beeinflußt. Deshalb kann die Qualität der Software-Entwicklung auf nahezu Null sinken, wenn nur einige Testexperten ein Unternehmen verlassen. Dies stellt natürlich ein enormes Risiko für die Kompetenz von Entwicklungsfirmen dar, die Softwarequalität auch für Folgeprodukte garantieren müssen.

CW: Gibt es besonders gute Tests?

Rombach: Die unterschiedlichen Testverfahren beinhalten verschiedene Kriterien für die Testfallbestimmung sowie für die Terminierung. Die sogenannten Blackbox-Verfahren richten sich nach einer Anforderungsbeschreibung und ziehen mindestens einen Test für jedes Anforderungselement nach sich. Bei Whitebox-Verfahren zielen die Tests auf den Programmcode ab, hier ist mindestens ein Test pro Programmelement üblich.

CW: Welche Bedeutung haben Test-Tools?

Rombach: Tools sind beim Testen wie in anderen Phasen der Softwareentwicklung nicht wegzudenken. Insbesondere in größeren Projekten ist ausschließlich manuelles Testen zu ineffizient. Dort kann die Generierung und Auswertung einer großen Anzahl von Tests oder die Organisation und Durchführung von Inspektionssitzungen anhand von Tools deutlich erleichtert werden. Allerdings sollte die Auswahl der geeigneten Testverfahren der Selektion der Tools vorausgehen.

Die Situation heute ist aber immer noch so, daß Test-Tools isoliert, das heißt ohne klare Integration in Entwicklungsumgebungen angeboten werden. Die Zukunft besteht in integrierten Umgebungen, die Werkzeuge für Konstruktion und Testen anbieten.

CW: Wird das Testen durch neue Entwicklungen wie Web oder Java erschwert?

Rombach: Grundsätzlich erfordern neue Architektur-, Sprach- beziehungsweise Verteilungskonzepte ein Überdenken der Kernaktivitäten der Software-Entwicklung einschließlich des Testens. Allerdings wird die Bedeutung von Sprachen im allgemeinen überschätzt. Neue Architekturen und die verteilte Entwicklung etwa mit Java im Netz erfordern standardisiertere Beschreibungen der Tests. Wenn ich aus dem Netz eine Komponente übernehmen möchte, so muß ich mich mit vertretbarem Aufwand von ihrer Qualität überzeugen können. Es sollte also die Möglichkeit geben, sich über Art und Umfang des Testens erkundigen zu können.